Advertisement
ErshEight

Jacobi

Apr 7th, 2022
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.56 KB | None | 0 0
  1. function[x] = jacobi(A,b)
  2.  
  3. eps = 10^(-6)
  4.  
  5. n=size(A,1);
  6. L=zeros(n);
  7. D=zeros(n);
  8. U=zeros(n);
  9. x=zeros(n,1);
  10.  
  11. for i=n-1:n-1
  12.     for j=2:n
  13.         L(i,j) = A(i,j)
  14.     end
  15. end
  16.  
  17. for i=1:n
  18.     for j=1:n
  19.         D(i,j) = A(i,j)
  20.     end
  21. end
  22.  
  23. for i=2:n
  24.     for j=1:i-1
  25.         U(i,j) = A(i,j)
  26.     end
  27. end
  28.  
  29. MJ= -D^(-1) * (L+U)
  30.  
  31. p=abs(eigs(MJ,1,'largestabs'))
  32. if p < 1
  33.     disp('Zbiezne')
  34. end
  35.  
  36. x0=x;
  37. k=0;
  38. do=0;
  39.  
  40. while do==0
  41.     x= -D^(-1)*(L+U)*x0+D^(-1)*b
  42.     if (norm(x-x0) < eps)
  43.         do=do+1;
  44.     else
  45.         k = k + 1;
  46.     end
  47. end
  48.  
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement