how to break from the following for loop when beta( J+1) become zero
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Nitish Reddy Kotkur
le 28 Sep 2019
Commenté : Nitish Reddy Kotkur
le 21 Oct 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 commentaires
Réponse acceptée
the cyclist
le 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 commentaires
the cyclist
le 28 Sep 2019
As I said, you need to try a "suitably small tolerance". You could try a smaller power.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!