Writing a 'while loop'

Hello, I am trying to write a while loop and I want it to keep iterating until the answer converges to within 1.e-4 of the previous iteration. Every time I run this code, it only iterates it once. How would I go about fixing my first line so that it keeps running until the difference between the last two iterations is less than or equal to 1.3-4?
while (error>=1.e-4);%%This is where I am getting confused
iteration=iteration+1;
phi(:,iteration)=D\(rho-T*phi(:,iteration-1));
error=norm(phi(:,iteration)-phi(:,iteration-1),Inf);
end
Thank you in advance for you help.

回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 1 月 29 日
編集済み: Azzi Abdelmalek 2013 年 1 月 29 日

0 投票

Initialize error to 1 for example
error=1
while (error>=1.e-4)
%your code
end

1 件のコメント

Jan
Jan 2013 年 1 月 30 日
No, do not use "error" as a variable, because this shadows a very important Matlab function. I assume that the OP does have problems with this already, therefore avoiding such shadowing is strongly recommended.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2013 年 1 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by