- for loop ends when error<tol
- while loop continues when error<tol
Info
此问题已关闭。 请重新打开它进行编辑或回答。
need help for transfer Whlile loop from For loop
1 次查看(过去 30 天)
显示 更早的评论
two newton method written with for and while loop.
the result is quite different
where should i fix it?
big thx from bottom of my heart.
0 个评论
回答(1 个)
Sindar
2020-10-1
First issue:
4 个评论
Sindar
2020-10-1
switching between text and code blocks helps readability
"for"
function p1=newton(ex31,a)
tol=10^-10;
a=5;
p0=2;
for k=1:1000
p1=1/2*(p0+a/p0);
error=abs((p1-p0)/p0);
p0=p1;
if error<tol
p=p1;
break
end
end
"while"
function p1=newton(ex31,a)
tol=10^-4;
error=1.0;
p0=2;
pn=p0;
a=5
while error>tol
pn1=1/2*(pn+a/pn);
error=abs(pn1-pn)/abs(pn1-p0);
pn=pn1;
end
pn1
issues in both
- regardless of what value is passed to the function, you set a=5
- error is an important built-in function, use a different variable name
- you have more p variables than necessary (you only need two)
differences between codes:
- tol is not the same
- "while" error is defined incorrectly
- "while" returns a variable that is never defined (p1)
My comment on consistency referred to the fact that your original "while" screenshot wasn't doing anything in particular each loop.
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!