- 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!