how to break from the following for loop when beta( J+1) become zero
1 view (last 30 days)
Show older comments
Nitish Reddy Kotkur
on 28 Sep 2019
Commented: Nitish Reddy Kotkur
on 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 Comments
Accepted Answer
the cyclist
on 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 Comments
the cyclist
on 28 Sep 2019
As I said, you need to try a "suitably small tolerance". You could try a smaller power.
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!