while loop doesn't produce correct result

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!

 Respuesta aceptada

Roger Stafford
Roger Stafford el 12 de Abr. de 2017

1 voto

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 comentarios

Jimmy W
Jimmy W el 12 de Abr. de 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 el 12 de Abr. de 2017
C get small rather quickly, so the sum never even gets close to 1/2.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 12 de Abr. de 2017

Comentada:

el 12 de Abr. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by