how to stop logical operators?

1 Ansicht (letzte 30 Tage)
kakato
kakato am 25 Nov. 2013
Kommentiert: kakato am 25 Nov. 2013
I need to create a program that calculates square root of 2 using loop. starting with t=0.5. I need to stop cycle (and print iteration number i) when the t(i) is same for approximation : if abs((t(i)-t(i+1)))<10^-6. Can anyone help me? please please please :)
t(1)=0.5
for i=1:10
t(i+1)=1/2*(t(i)+2/t(i));
if abs((t(i)-t(i+1)))<10^-6
[ i, t(i)]
else
end
end

Antworten (2)

Walter Roberson
Walter Roberson am 25 Nov. 2013
if condition
break
end
  3 Kommentare
Aviram Gelblum
Aviram Gelblum am 25 Nov. 2013
t(1)=0.5;
t(2)=1/2*(t(1)+2/t(1));
i=1;
while abs((t(i)-t(i+1)))>=10^-6
t(i+2)=1/2*(t(i+1)+2/t(i+1));
i=i+1;
end
t=t(end-1);
kakato
kakato am 25 Nov. 2013
Thanks a lot :)

Melden Sie sich an, um zu kommentieren.


Laurent
Laurent am 25 Nov. 2013
Bearbeitet: Laurent am 25 Nov. 2013
Instead of a for-loop, you can use a while loop. Something like this:
while abs((t(i)-t(i-1)))>10^-6
your calculations
i=i+1;
end

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by