用割线法求根,我感觉逻辑上对,但是不知道为什么运行不出来,麻烦各位帮忙给看看
function [k,y,n] = secant(f,x0,x1,epsilon)
syms x
n = 1;
fx1 = subs(f,x,x1);
while norm(fx1) > epsilon && n<1000
fx0 = subs(f,x,x0);
x2 = x1-fx1*(x1-x0)/(fx1-fx0);
x0 = x1;
x1 = x2;
n = n+1;
end
k = vpa(x1);
y = fx1;
然后我运行
syms x
fun = x^3-x^2-x-1;
[k,y,n] = secant(fun,2,1,1e-6)
答案应该是1.8多,但是用这个代码运行不出来。