Question about for loop in SOR method

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);

 Respuesta aceptada

KSSV
KSSV el 27 de Abr. de 2018
Editada: KSSV el 27 de Abr. de 2018
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)

6 comentarios

Jiawen Sun
Jiawen Sun el 27 de Abr. de 2018
I get that the cell stores all the lambda vectors at different w. But i still don't know how to find the w that corresponds to the smallest of the infinity norm for each of the lambda vectors.
KSSV
KSSV el 27 de Abr. de 2018
Edited the answer
Jiawen Sun
Jiawen Sun el 27 de Abr. de 2018
i get an error saying the min command is invalid.
KSSV
KSSV el 27 de Abr. de 2018
Show full code you used....
Jiawen Sun
Jiawen Sun el 27 de Abr. de 2018
Editada: KSSV el 27 de Abr. de 2018
D_dig=diag(diag(D_final));
U = triu(D_final);
L=tril(D_final);
w=1:0.01:1.99;
N=length(w);
ineed = cell(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);
ineed{i} = norm(lambda,Inf);
end
[val,idx] = min(ineed) ;
w(idx)
KSSV
KSSV el 27 de Abr. de 2018
D_dig=diag(diag(D_final));
U = triu(D_final);
L=tril(D_final);
w=1:0.01:1.99;
N=length(w);
ineed = 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);
ineed(i) = norm(lambda,Inf);
end
[val,idx] = min(ineed) ;
w(idx)

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 27 de Abr. de 2018

Comentada:

el 27 de Abr. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by