bisection method - can't see error in code
Show older comments
I am unable to pin point the error in my code of my funtion for the bisection method, any help would be greatly appreciated
function [rootx]=bisect(fhandle,a,b,epsilon)
rootx=[];
Fa=fhandle(a);
Fb=fhandle(b);
m=((b-a)/2);
Fm=fhandle(m);
while abs(m)>epsilon ;
if Fb*Fm <0
a=m
else
b=m
end
end
return m=((a+b)/2)
end
rootx
2 Comments
Accepted Answer
More Answers (2)
One idea:
m=((b-a)/2);
Shouldn't it be + instead of - ?
Also, you don't assign anything to rootx in the code except the initialization rootx=[]. Also, throughout the loop, you are not updating, m, Fb, or Fm.
Babak
on 3 Oct 2012
In the while loop
while abs(m)>epsilon ;
if Fb*Fm <0
a=m
else
b=m
end
end
you are not changing m and you are trying to check the abs(m)
I think you meant
m=a
and
m=b
instead...
Categories
Find more on Parallel Computing 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!