重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【解消】通知が届かない不具合について

課題のレポートを書くために定義を確認したいです。
Nelder-Mead法は最小二乗法のなかの1つ、という考えであってますか?

最小二乗法は差分が小さくなるような値を探してカーブフィッティングする。
その差分の計算方にNelder-Mead法やニュートン法があるって理解してますが、違うようでしたら簡単に教えてほしいです。

A 回答 (2件)

ANo.1です。



少し言葉足らずでした。
Nelder-Mead法は「関数の"局所的"最小値を探索する手法」です。

最適化問題のアルゴリズムは系統があり、大雑把には「導関数を用いないアルゴリズム」、「導関数を用いるアルゴリズム」に分かれます。
「導関数を用いないアルゴリズム」はNelder-Mead法、単体法、差分進化法等があります。
「導関数を用いるアルゴリズム」としては、ニュートン法、最急降下法、内点法等があります。

matlabは詳しくないのですが、fminsearchはfuncで定義した関数と初期値を設定して、funcで定義した関数の最小値を「導関数を用いないアルゴリズム」で探索する命令文です。
この「導関数を用いないアルゴリズム」で使われているのがNelder-Mead法です。
(おそらく最適化問題に応じて、複数の「導関数を用いないアルゴリズム」が用意されていると思われます)

mathworksにfminsearchの説明と事例が書いてあるので、そちらを参照してみて下さい。

https://jp.mathworks.com/help/matlab/ref/fminsea …


最小二乗法は、最小値を求めるのが目的ではなく、測定で得られた数値群に対し、近似度が高い関数を求めるのが目的です。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。助かりました。Mathworksのサイトは見ていてどんな結果になるかは分かったのですが、仕組みが良くわからずにいたので質問しました。ありがとうございます。

お礼日時:2019/09/07 12:01

違います。



最小二乗法:測定で得られた数値群を特定の関数で近似する際、近似の精度を高めるため、残差の二乗和を最小とするような係数を決める手法

Nelder-Mead法:最適化問題(特定の集合上で定義された関数について、その値が最小または最大になる状態を解析する問題)のアルゴリズムの一つで、単体(ある次元における最小の頂点を持つ直線図形、二次元であれば三角形、三次元であれば四面体等)を反射、膨張、収縮させて関数の最小値を探索する手法
    • good
    • 2
この回答へのお礼

ありがとうございます。勝手を言って申し訳ないのですが、もしよければ追加で質問させてください。

matlabスクリプトをみるとfminsearchの引数に別のfunctionが入っています。(fminsearchはNelder-Mead法を使ったものと読みました。)その関数内で(観測値ー理論値)を二乗しています。

このプログラムは最小二乗法とNelder-Mead法の両方を使ってパラメータの最適値を求めているという解釈であったいますでしょうか。

「理論上、y(m, n)=A m^2 + sin(n) + B についてA=3.2, B=5 だったものが、測定データを基に最適化するとA=3.4, B=4.8とした方がより正確なyが求められる」とあるのですが、 fminsearchが何をしているのかイメージがわきません。

Nelder-Mead法は「関数の最小値を探索する手法」とご説明いただきましたが、この場合、y(m, n)を最小化しているわけではないですよね?


独学なので聞ける先生などがいなくて。ごめんなさい。

お礼日時:2019/09/07 00:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!