Guest User

Untitled

a guest
Apr 24th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. function z = coolshift2(y,dx)
  2.  
  3. % Matrixgröße :
  4. [a,b] = size(y);
  5. z = zeros(a,b);
  6. % Eckpunkte :
  7. z(1,1) = (y(1,2) + y(2,1) - 2*y(1,1)) / dx^2;
  8. z(end,1) = (y(end,2) + y(end-1,1) - 2*y(end,1)) / dx^2;
  9. z(1,end) = (y(1,end-1) + y(2,end) - 2*y(1,end)) / dx^2;
  10. z(end,end) = y(end,end-1) + y(end-1,end) - 2*y(end,end) / dx^2;
  11.  
  12. % Ränder :
  13. % oberer Rand
  14. for i = 2:b-1
  15. z(1,i) = (y(2,i) + y(1,i-1) + y(1,i+1) - 3*y(1,i)) / dx^2;
  16. end
  17.  
  18. % unterer Rand
  19. for i = 2:b-1
  20. z(end,i) = (y(end-1,i) + y(end,i-1) + y(end,i+1) - 3*y(end,i)) / dx^2;
  21. end
  22.  
  23. %linker Rand
  24. for i = 2:a-1
  25. z(i,1) = (y(i,2) + y(i-1,1) + y(i+1,1) - 3*y(i,1)) / dx^2;
  26. end
  27.  
  28.  
  29.  
  30. % rechter Rand
  31. for i = 2:a-1
  32. z(i,end) = (y(i,end-1) + y(i-1,end) + y(i+1,end) - 3*y(i,end)) / dx^2;
  33. end
  34.  
  35. % mittlerer Bereich :
  36. %lp = [0 1 0;1 -4 1;0 1 0];
  37. %y(2:end-1,2:end-1) = conv2(y(2:end-1,2:end-1),lp,'same');
  38.  
  39. % y(2:end-1,2:end-1) = (circshift(y(2:end-1,2:end-1),[0 1]) + ...
  40. % circshift(y(2:end-1,2:end-1),[0 -1]) + ...
  41. % circshift(y(2:end-1,2:end-1),[1 0]) + ...
  42. % circshift(y(2:end-1,2:end-1),[-1 0]) - ...
  43. % 4*y(2:end-1,2:end-1))/dx^2;
  44.  
  45. for i = 2:a-1
  46. for j = 2:b-1
  47. 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;
  48. end
  49. end
  50.  
  51.  
  52. end
Add Comment
Please, Sign In to add comment