ここから本文です

マトラボの無名関数について

ben********さん

2017/8/1813:15:41

マトラボの無名関数について

matlab初心者です


f=@(x)x(1)^2+x(2)^2

例えばこのような無名関数を定義して、fminuncによって最小のx1,x2を求めることは可能だと思いますが

f=@(x)a+b
a=x(1)^2
b=x(2)^2

このようにしてfminuncによって最小のx1,x2を求めるにはどうすれば良いでしょうか?


例が悪いかもしれませんが、無名関数fに、ifによる場合分けなどを用いて導出した値(a,b)を代入し、fminuncによってfが最小になるときのx1,x2を求めたいと考えています

説明が足りないようでしたらご指摘お願いします
協力して頂けると幸いです

補足回答ありがとうございます
いま、y=f(x1,x2,x3,x4,x5)という関数をmファイルに作りました

次にfminuncによって初期値x1=x2=x3=x4=x5=0としてこの関数のx1〜5までを変化させ、y最小値の最小値とその時のx1から5を求めたいのですが、どのような文を作れば良いのでしょう、、
度重なる質問申し訳ございません
教えていただけると幸いです

閲覧数:
86
回答数:
1

違反報告

ベストアンサーに選ばれた回答

min********さん

編集あり2017/8/1813:29:49

無名関数では難しそうですね。

詳細は分かりませんが、別途 m ファイル (例えば myfcn.m ) に関数を定義して、

f = @(x) myfcn(x, a, b)

などとすれば自由度高い目的関数作れますが、この方法で実現できそうですか?


[日本語で投稿できるQ&Aサイト] MATLAB Answers:https://jp.mathworks.com/matlabcentral/answers/

この回答は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる