MATLAB: Question about for loop in SOR method

for loopsor

I'm trying to do a SOR method to find the eigenvalue and eigenvector. I need to change the scalar weight w from 1 to 1.99 in increment of 0.01. The goal is to find w that corresponds to the smallest of the lambda values. Really appreciate it.
The code i have right now:
D_dig=diag(diag(D_final));
U = triu(D_final);
L=tril(D_final);
P=(1/w)*D_dig + L;
T = [(w-1)/w]*D_dig + U;
lambda=eig(-L \ T);

Best Answer

D_dig=diag(diag(D_final));
U = triu(D_final);
L=tril(D_final);
w = 1:0.01:1.99 ;
N = length(w) ;
iwant = zeros(N,1) ;
for i = 1:N
P=(1/w(i))*D_dig + L;
T = (w(i)-1)/w(i)*D_dig + U;
lambda=eig(-L \ T);
iwant(i) = norm(lambda) ;
end
[val,idx] = min(iwant) ;
w(idx)