二分法求解多项式的根

function y = dichotomy(fun,a,b,error)
if nargin < 4
error = 1.0e-5;
end
n = 1;
if feval(fun,a) * feval(fun,b) < 0
c = (a + b)/2;
while (abs(b - c) > error) && (abs(feval(fun,c)) > error)
if(feval(fun,c) * feval(fun,a) > 0)
a = c;
c = (a + b)/2;
elseif (feval(fun,c) * feval(fun,b) > 0)
b = c;
c = (a + b)/2;
else
y = c;
error = 1.0e+5;
end
n = n + 1;
end
y = c;
elseif (feval(fun,a) == 0)
y = a;
elseif (feval(fun,b) == 0)
y = b;
else
disp('sorry,');
end
n
end

 

求解函数

function y = fun(x)
y = x^3 - 5*x + 4.272;
end

posted on 2015-03-24 16:40  Kermit.Li  阅读(188)  评论(0编辑  收藏  举报

导航