how to break from the following for loop when beta( J+1) become zero
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Nitish Reddy Kotkur
am 28 Sep. 2019
Kommentiert: Nitish Reddy Kotkur
am 21 Okt. 2019
for j=2:inf
w = A*V(:,j) - beta(j)*V(:,j-1);
alpha(j) = w'*V(:,j);
w = w - alpha(j)*V(:,j);
beta(j+1) = norm(w,2);
V(:,j+1) = w/beta(j+1);
loopcnt = loopcnt + 1;
end
0 Kommentare
Akzeptierte Antwort
the cyclist
am 28 Sep. 2019
Put this inside your loop:
if beta(j+1) == 0
break
end
You might not want to check for exact equality, because of possible floating point error. Instead, you could check like this
if abs(beta(j+1)) < 1.e-8
break
end
or use some other suitably small tolerance.
3 Kommentare
the cyclist
am 28 Sep. 2019
As I said, you need to try a "suitably small tolerance". You could try a smaller power.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!