Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function z = coolshift2(y,dx)
- % Matrixgröße :
- [a,b] = size(y);
- z = zeros(a,b);
- % Eckpunkte :
- z(1,1) = (y(1,2) + y(2,1) - 2*y(1,1)) / dx^2;
- z(end,1) = (y(end,2) + y(end-1,1) - 2*y(end,1)) / dx^2;
- z(1,end) = (y(1,end-1) + y(2,end) - 2*y(1,end)) / dx^2;
- z(end,end) = y(end,end-1) + y(end-1,end) - 2*y(end,end) / dx^2;
- % Ränder :
- % oberer Rand
- for i = 2:b-1
- z(1,i) = (y(2,i) + y(1,i-1) + y(1,i+1) - 3*y(1,i)) / dx^2;
- end
- % unterer Rand
- for i = 2:b-1
- z(end,i) = (y(end-1,i) + y(end,i-1) + y(end,i+1) - 3*y(end,i)) / dx^2;
- end
- %linker Rand
- for i = 2:a-1
- z(i,1) = (y(i,2) + y(i-1,1) + y(i+1,1) - 3*y(i,1)) / dx^2;
- end
- % rechter Rand
- for i = 2:a-1
- z(i,end) = (y(i,end-1) + y(i-1,end) + y(i+1,end) - 3*y(i,end)) / dx^2;
- end
- % mittlerer Bereich :
- %lp = [0 1 0;1 -4 1;0 1 0];
- %y(2:end-1,2:end-1) = conv2(y(2:end-1,2:end-1),lp,'same');
- % y(2:end-1,2:end-1) = (circshift(y(2:end-1,2:end-1),[0 1]) + ...
- % circshift(y(2:end-1,2:end-1),[0 -1]) + ...
- % circshift(y(2:end-1,2:end-1),[1 0]) + ...
- % circshift(y(2:end-1,2:end-1),[-1 0]) - ...
- % 4*y(2:end-1,2:end-1))/dx^2;
- for i = 2:a-1
- for j = 2:b-1
- z(i,j) = (y(i+1,j) + y(i-1,j) + y(i,j+1) + y(i,j-1) - 4*y(i,j))/dx^2;
- end
- end
- end
Add Comment
Please, Sign In to add comment