我正在尝试解决以下问题:
使用二分法在以下函数的
10^−4
区间内找到精确到[−5, 5]
范围内的解法:f(x)= x^5-10x^3-4
这是我的代码:
function sol=bisect(fn,a,b,tol)
%Bisection method for the Nonlinear Function
fa=feval(fn,a);fb=feval(fn,b);
if fa*fb>0;fprintf('Endpoints have same sign')
return
end
k=0;
while abs (b - a)>tol
c =(a+b)/2;
fc=feval(fn,c);
if fa*fc < 0; b=c; else a = c;
k=k+1;
end
end
sol=(a+b)/2;
当我运行程序时,我会这样做:
a= -5
b=5
fn = x^5-10x^3-4
但是最后一行返回错误:
未定义的函数或变量x
答案 0 :(得分:1)
定义可由feval
评估的等式,您需要定义为函数。
尝试将fn
定义为fn=@(x)(x^5-10x^3-4)
。
这样您就可以使用feval(fn,3)
。