Advertisement
_malfunction

metoda Jacobiego

Dec 7th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.87 KB | None | 0 0
  1. clc
  2. clear all
  3. A(:,:,1)=[1 1 1;1 5 7;1 7 8];
  4. s=3; %rozmiar
  5. n=10; %liczba iteracji
  6. T(:,:,1)=[1 0 0;0 1 0;0 0 1];
  7. V(:,:,1)=[1 0 0;0 1 0;0 0 1];
  8.  
  9. for i=1:n,
  10.     p=1;
  11.     q=2;
  12.     for j=1:s,
  13.         for k=1:s,
  14.             if(j~=k)
  15.                 if(abs(A(j,k,i))>abs(A(p,q,i)))
  16.                     p=j;
  17.                     q=k;
  18.                 end
  19.             end
  20.         end
  21.     end
  22.     u=(1/2)*(A(p,p,i)-A(q,q,i));
  23.     E=(-1)*A(p,q,i);
  24.     v=sqrt(E^2+u^2);
  25.     cost=sqrt((abs(u)+v)/(2*v));
  26.     sint=(E*sign(u))/(2*v*cost);
  27.     T(:,:,i+1)=T(:,:,1);
  28.     T(p,p,i+1)=cost;
  29.     T(q,q,i+1)=cost;
  30.     T(p,q,i+1)=sint;
  31.     T(q,p,i+1)=(-1)*sint;
  32.     disp(i)
  33.     disp('T=')
  34.     disp(T(:,:,i+1))
  35.     A(:,:,i+1)=inv(T(:,:,i+1))*A(:,:,i)*T(:,:,i+1);
  36.     disp('A=')
  37.     disp(A(:,:,i+1))
  38.     V(:,:,i+1)=V(:,:,i)*T(:,:,i+1);
  39.     disp('V=')
  40.     disp(V(:,:,i+1))
  41. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement