2017-12-10 12 views
0

私は非線形方程式OF3セットを持っていると私はMathWorks社のMATLABMATLABはソルバー

function F = root2d(y) 
syms b1 b2 b3 w21 w31 theta1 theta2 theta3 a1 a2 a3; 
F(1) = (1+exp(-b1*(w21*y(2)+w31*y(3)-theta1)))^(-1) - a1*y(1); 
F(2) = (1/(1+exp(-b2*(y(1)-theta2))))-a2*y(2); 
F(3)= (1/(1+exp(-b3*(y(1)-theta3))))-a3*y(3); 

でfsolveはを使用して、それらを解決する必要があります。 MATLABファイル

 fun = @root2d; 
     x0 = [0,0,0]; 
     x = fsolve(fun,x0) 

を使用している間、私はこのMathWorks社のMATLAB関数を呼び出すしかし、それは fsolveはdoubleデータ型であるとユーザ関数によって返されたすべての値が必要です(258行)fsolveはを使用して私にエラー エラーを与えています。

Untitled5(行3)のエラー x = fsolve(fun、x0) 誰かが助けることができますか?

答えて

0

あなたの関数root2dはシンボルを返します。したがって、fsolveの背後にあるアルゴリズムは数値なので、fsolveを記号関数に使用することはできません。 solve関数が役に立ちます。 F(x)はベクトル値を返す関数であるX、ため

はまた、fsolveドキュメント内ことを述べ。