how to stop logical operators?

2 views (last 30 days)
kakato
kakato on 25 Nov 2013
Commented: kakato on 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

Answers (2)

Walter Roberson
Walter Roberson on 25 Nov 2013
if condition
break
end
  3 Comments
Aviram Gelblum
Aviram Gelblum on 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 on 25 Nov 2013
Thanks a lot :)

Sign in to comment.


Laurent
Laurent on 25 Nov 2013
Edited: Laurent on 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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!