Not sure why the loop's not working??

1 visualización (últimos 30 días)
Nav
Nav el 13 de Mayo de 2013
the loop parts suppose to repeat until (abs((a+b)^2/(4*t)-pi)<= thres).
a=1;
b=1/sqrt(2);
t=1/4;
x=1;
thres = 0.001;
while abs((a+b)^2/( 4*t )-pi) > thres
y=a;
a=(a+b)/2;
b=sqrt(b)*sqrt(y);
t=t-(x)*(y-a)^2;
x=2*x;
if (abs((a+b)^2/(4*t)-pi)<= thres)
break
mypi= (a+b)^2/(4*t);
end
end
  2 comentarios
Image Analyst
Image Analyst el 13 de Mayo de 2013
Matthew - please change this to an answer, rather than a comment.
Matthew Doveton
Matthew Doveton el 13 de Mayo de 2013
Thanks. Its my first time :)

Iniciar sesión para comentar.

Respuesta aceptada

Matthew Doveton
Matthew Doveton el 13 de Mayo de 2013
mypi is never reached due to the positioning of the break statement, should be:
a=1; b=1/sqrt(2); t=1/4; x=1; thres = 0.001;
while abs((a+b)^2/( 4*t )-pi) > thres
y=a;
a=(a+b)/2; b=sqrt(b)*sqrt(y);
t=t-(x)*(y-a)^2; x=2*x;
if (abs((a+b)^2/(4*t)-pi)<= thres)
mypi = (a+b)^2/(4*t);
break
end
end

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by