while loop doesn't produce correct result

조회 수: 9 (최근 30일)
Jimmy W
Jimmy W 2017년 4월 12일
댓글: James Tursa 2017년 4월 12일
sum = 0;
n = 0;
C = (2/(pi*(1-4*n^2)))^2;
while sum < (1/2)*0.99
n = n+1;
sum = sum + C;
end
disp(['number of terms:',num2str(n),'sum',num2str(sum)])
These are my codes. I want matlab to keep calculating until sum is greater than 99% of a half. However it stops at the first calculation and the result is clearly wrong. Any help would be greatly appreciated! Thanks!

채택된 답변

Roger Stafford
Roger Stafford 2017년 4월 12일
You have not placed the line "C = (2/(pi*(1-4*n^2)))^2;" inside the 'while' loop where it could be updated with changing values of 'n', so 'C' stays constant. That will produce erroneous computation for you.
  댓글 수: 2
Jimmy W
Jimmy W 2017년 4월 12일
If I put the C line in the loop, it never stops calculating. The equation is always positive so at some point the sum should reach the target value. Is there anything else that I have done wrong?
James Tursa
James Tursa 2017년 4월 12일
C get small rather quickly, so the sum never even gets close to 1/2.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by