ネストされた関数を使用していくつかのパラメーターを共有しながら、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
実際に関数ハンドルを使用する必要があると書かれています...