Looping until conditions met
显示 更早的评论
I have a (rather ineffective, but still does it's job) code doing a method I can only call "middlepoint method" as I lack any direct translation. But in basics it's an alternative method to Newtons Method and does the same thing but with MANY more repeats required.
Anyway here is the loop of the code itself; (note that before this there are a few lines containing the function and certain values, but they aren't important)
for n=1:inf
if f(y)<0
b=y
y=y/2
else y=((b+y)/2)
end
if f(y)==0
break
end
end
I know it's not pretty and might even be VERY inefficient, but it actually produces the answer down to 10^-15 accuracy. It takes 646 loops. Now normally that would be absolutely perfect, but the task itself only asks me to make a code that loops until the accuracy is within 10^-5 and how many loops this takes.
What I am wondering is this; is there something I can type in the "if f(y)" line (the one that breaks the for loop if certain conditions are met) that makes the loop stop after f(y) produces an answer between 0 to 0.0001 range rather than exactly 0?
1 个评论
the cyclist
2014-11-20
You might also consider doing this with a while loop. Type
doc while
into the command window for details.
采纳的回答
更多回答(1 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!