2017-02-10 7 views
-1

「fsolve」を使用して以下の機能を最適化するにはどうすればよいですか。それはベクトルの形で入力引数を取るだけですが、私は行列の形で以下の関数に入力引数を渡さなければなりません。"fsolve"を使用して目的関数を最適化する方法は?

最適化ツールボックスに最適化を実行している

エラーを使用している間、私は以下のエラーを取得しています。内側の行列の寸法は一致していなければなりません。

function f = object(w) 
k=10; 
B=20; 
f = sum ((w(1,:)/(w(2,:).^w(3,:)*k)+((w(3,:)-1)*w(4,:)/B*w(3,:)))); 
end 

答えて

0

あなたは外の状況についてのあなたの問題の説明には非常に簡単だが、機能はサイズ4 x Nw引数を期待するかもしれないようなあなたの関数からそれが見えます。私は正しく推測しましたか?その場合は、

w_initial = rand(4*N,1); % resonable initialization. maybe random? maybe zeros? 
fsolve(@(w) object(reshape(w,4,N)), w_initial, ...) 
関連する問題