while loop doesn't produce correct result

12 Ansichten (letzte 30 Tage)
Jimmy W
Jimmy W am 12 Apr. 2017
Kommentiert: James Tursa am 12 Apr. 2017
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!

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 12 Apr. 2017
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 Kommentare
Jimmy W
Jimmy W am 12 Apr. 2017
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 am 12 Apr. 2017
C get small rather quickly, so the sum never even gets close to 1/2.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by