Issue using sum() for QR method script

The following is a cut-out from a QR method script for finding all the eigenvalues of a matrix. When the line for a(:,i)=.... is run within the 'for' loop it fails to complete. I am trying to mimic the expression from the image below with a(:,i) and having a lot of trouble, please help me.
A=[8 -2 -2; -2 4 -2; -2 -2 13]; %initial matrix
k=0; %starts iteration count
while ((max(abs((lambdak-lambda0)/lambda0))>toler) && (k<maxiter)); %as long as the change between the previous and current lamda are >toler, keep going until you hit the iteration limit
lambda0=lambdak; %establish baseline values for lamda
k=k+1; %iteration number for display +1
a=A;
q(:,1)=a(:,1)./norm(a(:,1));
for i=2:n
a_p(:,i)=a(:,i)-sum(transpose(q(:,i-1))*a(:,i).*q(:,i-1),i,1,i-1) %where I am getting stuck
q(:,i)=a_p(:,i)./norm(a_p(:,i))
end
end

Réponses (1)

Brandon Eidson
Brandon Eidson le 7 Oct 2016
Modifié(e) : Brandon Eidson le 29 Déc 2016

0 votes

Hey Chris,
It looks to me that your implementation of the "sum" function is incorrect. This function only takes two inputs, but I think you are passing it four inputs. See the documentation at the link below.

Catégories

En savoir plus sur Linear Algebra dans Centre d'aide et File Exchange

Produits

Question posée :

le 3 Oct 2016

Modifié(e) :

le 29 Déc 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by