Metodo QR con shift

tinassinstant
Avrei bisogno di qualcuno che controllasse il mio algoritmo basato sulla fattorizzazione QR con shif per il calcolo degli autovalori... Non riesco a farlo girare correttamente in Matlab:
function [B,D,iter]=QRshift(A,toll,Nmax)
n=size(A,1);
iter=1; %iterazioni
m=1;%numero autovalori
while n>1 & iter<=Nmax
if (abs(A(n,n-1)))>=(toll*(abs(A(n-1,n-1))+abs(A(n,n))))
D(m)=A(n,n);
m=m+1;
n=n-1;
end
I=eye(n);
mu=A(n,n);
iter=iter+1;
[Q,R]=qr(A(1:n,1:n)-mu*I);
B(1:n,1:n)=R*Q+mu*I;
A=B;
end
D(m+1)=B(1,1);
end
end

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.