Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. iter=0;
  2. flag=1;
  3. while flag==1
  4. iter=iter+1;
  5. miu=h(n,n);
  6. pt=eye(n);
  7. h=h-miu*eye(n);
  8. for k=1:n-1
  9. r=sqrt(h(k,k)^2+h(k+1,k)^2);
  10. if r==0
  11. fprintf('r=0: STOP');
  12. return;
  13. end
  14. ck=h(k,k)/r;
  15. dk=h(k+1,k)/r;
  16. p=eye(n);
  17. p(k,k)=ck;
  18. p(k+1,k)=-dk;
  19. p(k,k+1)=dk;
  20. p(k+1,k+1)=ck;
  21. h=p*h;
  22. pt=pt*p';
  23. q=p*q;
  24. end
  25. h=h*pt+miu*eye(n);
  26. for i=1:n-1
  27. sum=(abs(h(i,i))+abs(h(i+1,i+1)))*EPS;
  28. if abs(h(i+1,i))<=sum
  29. h(i+1,i)=0;
  30. end
  31. end
  32. flag=0;
  33. i=1;
  34. while (i<=n-2)&&(flag==0)
  35. if (h(i+1,i)~=0)&&(h(i+2,i+1)~=0)
  36. flag=1;
  37. end
  38. i=i+1;
  39. end
  40. if flag==0
  41. i=1;
  42. while (i<=n-1)&&(flag==0)
  43. if h(i+1,i)~=0
  44. ca=1;
  45. cb=-(h(i,i)+h(i+1,i+1));
  46. cc=h(i,i)*h(i+1,i+1)-h(i+1,i)*h(i,i+1);
  47. delta=cb*cb-4*ca*cc;
  48. if delta>=0
  49. flag=1;
  50. end
  51. end
  52. i=i+1;
  53. end
  54. end
  55. iter
  56. s=h;
  57. s
  58. fprintf('Forma canonica Schur:');
  59. s
  60. end
  61. qt=q';
  62. fprintf('matricea de transformare:');
  63. qt
  64. ic=sqrt(-1);
  65. valp=zeros(1,n);
  66. vectp=zeros(n);
  67. j=1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement