MATLAB: Need check for Bisection Method

bisection methodMATLAB

%bisection_method
f='func31'
Nmax=100;
tol=0.000001;
a=-10
b=10
if feval(f,a)*feval(f,b)>0
disp('no sol')
else
a0=a; b0=b;
for n=1:Nmax
p=(a+b)/2
if (b-p)/(b0-a0)<tol <————————————————————is this right?? b-p? not a b-a?
break
else
if feval(f,a)*feval(f,p)<=0
a=a;
b=p;
else
a=p
b=b
end
end
end
================================
made an expression from relative error
i wrote it down at the class
but there are difference with books
is it
b-p or b-a?

Best Answer

When you are close to the solution it won't much matter if you use b-p or b-a. However, you shoud probably use
abs((b-p)/(b0-a0))<tol
Related Question