Advertisement
Guest User

NMVaje3

a guest
Oct 17th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. %{
  2. -2*y1 + y2 = h^2
  3. y1 - 2y2 + y3 = h2
  4. ......................
  5.  
  6. y(n-1) - 2yn = h^2
  7. %}
  8.  
  9. %x = linspace(0,1);
  10. n = 100;
  11. x = linspace(0,1,n);
  12. y = (x.*x)/2 - x/2;
  13.  
  14. plot(x,y, 'b');
  15. hold on
  16.  
  17. A = diag(-2*ones(n,1)) + diag(ones(n-1,1),1) + diag(ones(n-1,1),-1);
  18.  
  19. h = x(2) - x(1);
  20.  
  21. b = ones(n) * h^2;
  22.  
  23. y2 = A\b;
  24.  
  25. plot(x, y, 'r');
  26.  
  27. enke = ones(n-1,1);
  28. dvojke = -2*ones(n,1);
  29.  
  30. M=[[0;enke],dvojke,[enke;0]];
  31.  
  32. y3 = tridiag(M, b);
  33.  
  34. %%%%%%%%%%%%%%%
  35.  
  36.  
  37. funkcija
  38.  
  39.  
  40. function y = tridiag (M, d);
  41. %{
  42. Resi tridiagonalen sistem A*y=b
  43. kjer n x n matriko A predstavimo y n x 3 matriko M
  44. %}
  45.  
  46. n=length(d);
  47.  
  48. for i=1:n-1
  49. k = -M(i+1,1)/M(i,2);
  50. M(i+1,1)=0;
  51. M(i+1,2) = M(i+1,2)+ k*M(i,3);
  52. d(i+1) = d(i+1)+k*d(i);
  53. endfor
  54.  
  55. y=zeros(n,1);
  56. y(n)=d(n)/M(n,2);
  57.  
  58. for i=n:-1:2
  59. y(i-1)=(d(i-1)-M(i-1,3)*y(i))/M(i-1,2);
  60. endfor
  61.  
  62.  
  63. endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement