how to break from the following for loop when beta( J+1) become zero
    8 views (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!
