1

ネストされた関数を使用していくつかのパラメーターを共有しながら、2つの非線形方程式のシステムを解くために、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ただし、とを指定した後で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 に答える