guoshandong 发表于 2011-4-24 09:21:14

数值分析二分法matlab编程inline 与function

编的一个二分法的程序如下
function x=nabisect(fname,a,b,e)
if nargin<4,e=1e-4;end;
fa=feval(fname,a);fb=feval(fname,b);
if fa*fb>0
error('(a,b) 不是有根区间');
end
x=(a+b)/2;
while (b-a)>(2*e),
    fx=feval(fname,x);
    if fa*fx<0,b=x;fb=fx;else a=x;fa=fx;end
    x=(a+b)/2;
end
在调用的时候,用f=inline('x^4-x-1'),x=nabisect(f,1,2)可以用
但若用function定义一个function y=f(x)
                                          y=x^4-x-1;
x=nabisect(f,1,2)调用 时却会出现??? Input argument "x" is undefined.
Error in ==> f at 2
y=x^4-x-1;
的错误呢

gfl 发表于 2011-4-24 10:23:25

加一句fname=@f,再调用nabisect(fname, a, b, e)就可以了。

guoshandong 发表于 2011-4-24 13:42:26

2# gfl
ok,thank you ^
页: [1]
查看完整版本: 数值分析二分法matlab编程inline 与function