bisection method - can't see error in code
이전 댓글 표시
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
채택된 답변
추가 답변 (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
2012년 10월 3일
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...
카테고리
도움말 센터 및 File Exchange에서 Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!