Hi Guys, I need help in writing code for finding difference between two successive values of a variable in for loop.
Show older comments
Actually, I am writing code for bisection method. Following is the part of code which repeats iterations of the method.
disp('iter a b s=(a+b)/2 y(s) yd')
% for loop starts here
for k=1:N
c=(a+b)/2;
if (f(c)==0)
root=c;
return
elseif (f(a)*f(c)<0)
b=c;
else
a=c;
end
s = (a+b)/2;
y = f(s);
%yd=y(k)-y(k-1);
iter = k;
out=[iter, a , b, s, y, yd];
fprintf(1,'%.0f %.05f %.05f %.05f %.05f %.05f\n',out') %
end
I want my stop the iteration process when difference between the values of the function at two successive approximations is less than a specified tol value. I don't know what to add in the above code to do so. I appreciate any help in fixing this problem. Thanks! Regards Shah
Answers (1)
Walter Roberson
on 2 Jun 2016
hint:
oldval = inf;
while true
newval = rand(); %some calculation to create a new value
if abs(oldval - newval) < tol
break;
end
oldval = newval;
end
Categories
Find more on Utilities for the Solver 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!