0
我有一個M文件定義此功能:如何通過一個函數作爲參數在Matlab
function[it,xvect,xdif,fx]=bisez(a,b,nmax,toll,fun)
it=-1;
xvect=[];
xdif=[];
fx=[];
err=toll+1;
while(it<nmax && err>toll)
x=(b+a)/2;
if(fun(x)==0)
err=0;
else
err=abs(b-a)/2;
end
it=it+1;
xvect=[xvect;x];
xdif=[xdif;err];
fx=[fx:fun(x)];
if(fun(x)*fun(a)>0)
a=x;
else
b=x;
end;
end;
if(it<nmax)
fprintf('Convergence computed at step k:%d\n',it);
else
fprinf('Iteration limit reached: %d\n',it);
end
fprintf('Computed root: %-12.8f\n',xvect(it+1));
return
然後,如果我嘗試使用這些命令來調用它:
[email protected](x)exp(x);
a=1;
b=1.5;
nmax=1000;
toll=2;
bisez(a,b,nmax,toll,fun)
我得到此錯誤:
??? Undefined function or method 'bisez' for input arguments of type 'function_handle'.
我錯過了什麼?
PS:我使用的是Matlab 2007b
行動,你是對的,謝謝! – Aslan986