while loop doesn't produce correct result

10 visualizaciones (últimos 30 días)
Jimmy W
Jimmy W el 12 de Abr. de 2017
Comentada: James Tursa el 12 de Abr. de 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!

Respuesta aceptada

Roger Stafford
Roger Stafford el 12 de Abr. de 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 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 Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by