fminconまたはfminsearchの引数 funの書き方について

25 ビュー (過去 30 日間)
Kimiyasu Sasaki
Kimiyasu Sasaki 2019 年 9 月 16 日
回答済み: Kimiyasu Sasaki 2019 年 9 月 20 日
simulinkでMATLAB function ブロックを用いてx(w)とy(w)を用いて、目的関数(x -y)^2が最小となるようなwを求めたいです。このときfminsearch関数を用いるかと思いますが、この関数の引数であるfunの定義の仕方がわかりません。 fun = @(x,y) (x - y)^2としていいのでしょうか? x,yはともにwの関数なので fun = @(w)... としたいところですが、複雑になるのでMATLAB function ブロックの入力であるx, yの関数として定義したいです。 うまいやり方ご存知の方いらっしゃいましたらご回答よろしくお願いいたします。

採用された回答

Etsuo Maeda
Etsuo Maeda 2019 年 9 月 19 日
fminsearch関数の入力引数のうち、どの値をSimulinkから入力したいのか分かりませんが、MATLABで2変数の関数出力を使ってfminsearch関数を動かしたいなら次のように記述します。
fun = @(s) (funX(s(1)) - funY(s(2)))^2;
s0 = [1 2];
t = fminsearch(fun,s0)
function out = funX(in)
out = 2*in;
end
function out = funY(in)
out = 0.5*in;
end
HTH

その他の回答 (1 件)

Kimiyasu Sasaki
Kimiyasu Sasaki 2019 年 9 月 20 日
ご回答ありがとうございました。

カテゴリ

Help Center および File ExchangeOptimization Toolbox 入門 についてさらに検索

製品


リリース

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!