Not sure why the loop's not working??

1 Ansicht (letzte 30 Tage)
Nav
Nav am 13 Mai 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 Kommentare
Image Analyst
Image Analyst am 13 Mai 2013
Matthew - please change this to an answer, rather than a comment.
Matthew Doveton
Matthew Doveton am 13 Mai 2013
Thanks. Its my first time :)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matthew Doveton
Matthew Doveton am 13 Mai 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

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by