所以我正在编写一个用于寻找根的二分法的matlab代码。我没有使用matlab,所以我使用的是GNU octave,以下是我的代码:
a=3*pi/2; b=2*pi; dig=35;
n=0;
x=0;
for tol=[.5e-7 .5e-15 .5e-33]
[n,x]=sbisec(dig,a,b,tol)
end
n=0;
function [ntol,x]=sbisec(dig,a,b,tol)
ntol=ceil(log((b-a)/tol)/log(2));
digits(dig);
a=vpa(a);
b=vpa(b);
for n=1:ntol
x=vpa((a+b)/2);
fx=subs(f(x));
if fx<0
a=x;
else
b=x;
end
end
endfunction
function y=f(x)
y=cos(x)*cosh(x)-1;
endfunction
当我运行flile.m时,我收到以下错误
error: subs: we do not support single-input w/ substitution from workspace
因为错误我认为这是一个八度问题,但我不知道。
我的问题是这个错误意味着什么以及我在做什么来引起它。