1二分法求根:
unction x = binary(st,en)
%g = inline('x^3+1');
g = inline('x^3 + 2*x^2+10*x-20');
a = st;
b = en;
EPS = 0.0001
i = 0;
while abs(b-a) > EPS
i = i+1;
m = (a+b)/2;
disp(m)
if(g(m) == 0)
x = m;
break;
elseif (g(m)*g(a) < 0)
b = m;
else
a = m;
end
end
str = sprintf("total itration: %d",i);
disp(str);
x = (a+b)/2;
2、牛顿迭代法求根
function x = iteration(x0)
%g = inline('x^3 + 2*x^2+10*x-20');
xc = x0;
xn = 20/(xc^2+2*xc+10);
i = 1;
disp(xn);
while(abs(xn-xc) > 0.0001)
i = i+1;
disp(xn);
xc = xn;
xn = 20/(xc^2+2*xc+10);
end
str = sprintf("total itration: %d",i);
disp(str);
x = xn;