how to stop logical operators?

2 次查看(过去 30 天)
kakato
kakato 2013-11-25
评论: kakato 2013-11-25
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

回答(2 个)

Walter Roberson
Walter Roberson 2013-11-25
if condition
break
end
  3 个评论
Aviram Gelblum
Aviram Gelblum 2013-11-25
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);

请先登录,再进行评论。


Laurent
Laurent 2013-11-25
编辑:Laurent 2013-11-25
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

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by