- for loop ends when error<tol
- while loop continues when error<tol
Info
Questa domanda è chiusa. Riaprila per modificarla o per rispondere.
need help for transfer Whlile loop from For loop
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Sindar
il 1 Ott 2020
First issue:
4 Commenti
Sindar
il 1 Ott 2020
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.
Questa domanda è chiusa.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!