2016-05-28 13 views
0

を扱う、私は次の関数は、ハンドルを定義している:fsolveはパラメータ化機能では動作しません。たとえば

F = @(x, y, z)[x+y+z; x*y*z]; 
funcc = @(x, y)F(x, y, 0); 

コール

res = fsolve(funcc, [10; 10]); 

がエラーにつながる:

Error using @(x,y)F(x,y,0) 
Not enough input arguments. 

Error in fsolve (line 219) 
     fuser = feval(funfcn{3},x,varargin{:}); 

Caused by: 
Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue. 

どうすれば修正できますか?

答えて

2

requirements for the objective function in the documentationをもう一度お読みください。関数は単一のベクトル入力を受け取り、ベクトルを返す必要があります。 2つのスカラーを渡そうとしています。代わりに:

F = @(x, y, z)[x+y+z; x*y*z]; 
funcc = @(x)F(x(1), x(2), 0); 

あなたの初期の推測と一致している必要があり、目的関数への入力、x0[10; 10])。

関連する問題