1

我正在尝试在 matlab 中创建自己的函数来求解两个非线性方程组,同时使用嵌套函数来共享一些参数,这是一个示例代码:

function y=solve(a,x0)
a;
y=fsolve(nle,x0);                       % this is line 3

    function f=nle(x)
        f(1)=x(1)-a*x(1)^2-x(1)*x(2);   % this is line 6
        f(2)=2*x(2)-x(2)+3*x(1)*x(2);
    end

end

a是我想从命令行传递给函数的参数,x0也是fsolve.

a=4但是,当我在指定and后调用 malab 中的函数时x0=[1 1]',它给了我以下错误:

Error using solve/nle (line 6)
Not enough input arguments.

Error in solve (line 3)
y=fsolve(nle,x0);

我是matlab的新手,谁能告诉我哪里做错了?

提前致谢。

编辑: 我尝试nle用函数句柄替换@nle,但似乎还有其他问题:

Undefined function 'fsolve' for input arguments of type 'function_handle'.

Error in solve (line 3)
y=fsolve(@nle,x0);

似乎没有意义,因为我检查了文档fsolve,它说它确实应该在那里使用函数句柄......

4

1 回答 1

4

你错过了nle前面的'@',即

 y = fsolve(@nle,x0);

应该管用。

于 2012-10-23T14:57:28.057 回答