Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- iter=0;
- flag=1;
- while flag==1
- iter=iter+1;
- miu=h(n,n);
- pt=eye(n);
- h=h-miu*eye(n);
- for k=1:n-1
- r=sqrt(h(k,k)^2+h(k+1,k)^2);
- if r==0
- fprintf('r=0: STOP');
- return;
- end
- ck=h(k,k)/r;
- dk=h(k+1,k)/r;
- p=eye(n);
- p(k,k)=ck;
- p(k+1,k)=-dk;
- p(k,k+1)=dk;
- p(k+1,k+1)=ck;
- h=p*h;
- pt=pt*p';
- q=p*q;
- end
- h=h*pt+miu*eye(n);
- for i=1:n-1
- sum=(abs(h(i,i))+abs(h(i+1,i+1)))*EPS;
- if abs(h(i+1,i))<=sum
- h(i+1,i)=0;
- end
- end
- flag=0;
- i=1;
- while (i<=n-2)&&(flag==0)
- if (h(i+1,i)~=0)&&(h(i+2,i+1)~=0)
- flag=1;
- end
- i=i+1;
- end
- if flag==0
- i=1;
- while (i<=n-1)&&(flag==0)
- if h(i+1,i)~=0
- ca=1;
- cb=-(h(i,i)+h(i+1,i+1));
- cc=h(i,i)*h(i+1,i+1)-h(i+1,i)*h(i,i+1);
- delta=cb*cb-4*ca*cc;
- if delta>=0
- flag=1;
- end
- end
- i=i+1;
- end
- end
- iter
- s=h;
- s
- fprintf('Forma canonica Schur:');
- s
- end
- qt=q';
- fprintf('matricea de transformare:');
- qt
- ic=sqrt(-1);
- valp=zeros(1,n);
- vectp=zeros(n);
- j=1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement