FindMinimum

FindMinimum[f,x]

自動的に選んだ点から始めて f の極小値を求める.

FindMinimum[f,{x,x0}]

x=x0から始めて f の極小値を求める.

FindMinimum[f,{{x,x0},{y,y0},}]

複数の変数を持つ関数の極小値を求める.

FindMinimum[{f,cons},{{x,x0},{y,y0},}]

制約条件 cons のもとで極小値を求める.

FindMinimum[{f,cons},{x,y,}]

制約条件で定義された範囲内の点から始める.

詳細とオプション

  • FindMinimum{fmin,{x->xmin}}の形式のリストを返す.ただし,fminf の見出された極小値で,xmin x の値である.
  • 変数の初期値がリストで与えられている場合は,変数の値は同じ次元のリストであると解釈される.
  • 制約条件 cons は,方程式,不等式,あるいはこれらの論理結合を含むことができる.
  • 制約条件 cons は以下の論理結合でよい.
  • lhs==rhs方程式
    lhs>rhs または lhs>=rhs 不等式
    {x,y,}reg領域指定
  • FindMinimumは,まずすべての変数の値を局所化し,次に記号的となった変数で f を評価し,繰り返して結果を数値的に評価する.
  • FindMinimumは属性HoldAllを持ち,Blockを用いて実質的に変数を局所化する.
  • FindMinimum[f,{x,x0,x1}]x0x1x の最初の2つの値として用い,導関数を使用せずに f の極小値を求める.
  • FindMinimum[f,{x,x0,xmin,xmax}]は極小値を求める.x xmin から xmaxまでの区間からはみ出したところで探索を中止する.
  • fcons の両方が線形の場合を除き,FindMinimumが求めた結果は極小値のみに対応し,大域的である最小値には対応しない.
  • デフォルトで,変数はすべて実数であると仮定される.
  • 線形の f cons については,xIntegersを使って変数が整数値のみを取るように指定することができる.
  • 可能なオプション
  • AccuracyGoalAutomatic目標確度
    EvaluationMonitor Nonef が評価されたときに常に評価される式
    Gradient Automaticf の勾配要素のリスト
    MaxIterationsAutomatic使用する最大反復回数
    Method Automatic使用するアルゴリズム
    PrecisionGoalAutomatic目標精度
    StepMonitor None段階を取るたびに常に評価される式
    WorkingPrecision MachinePrecision内部計算で使用する精度
  • AccuracyGoalPrecisionGoalの設定値で,極小値の位置の値と極小値に達したときの関数の値の両方で目標とする有効桁精度を指定する.
  • FindMinimumは,AccuracyGoalまたはPrecisionGoalで指定された精度(または確度)に達するまで計算を続ける.
  • Methodが取り得る設定には,"ConjugateGradient""PrincipalAxis""LevenbergMarquardt""Newton""QuasiNewton""InteriorPoint""LinearProgramming"等がある.デフォルト値はAutomaticである.

例題

すべて開くすべて閉じる

  (4)

から探索を始めて極小値を求める:

極小値における x の値を抽出する:

から始め,制約条件に従って極小値を求める:

線形制約条件と整数制約条件に従って線形関数の最小値を求める:

幾何学領域上で関数の最小値を求める:

これをプロットする:

スコープ  (12)

始点を変えると異なる極小値が求まることがある:

x=2, y=2から始めた二変数関数の極小値:

円板内という制約条件を持つ極小値:

初期値は与えなくてもよい:

線形目的および制約条件には,整数制約条件を強制することができる:

Or制約条件を指定することができる:

領域内の最小値を求める:

これをプロットする:

2領域間の最短距離を求める:

これをプロットする:

三角形と楕円が交差する最小の を求める:

これを可視化する:

指定された3点を含む,半径が最小の円板を求める:

これをプロットする:

Circumsphereを使うと同じ結果が直接与えられる:

を使い,内のベクトルであると指定する:

2領域間の最短距離を求める:

これをプロットする:

オプション  (7)

AccuracyGoalとPrecisionGoal  (2)

次は,収束基準を強制する:

次は,収束基準を強制する:

WorkingPrecisionの設定値を高くするとこのプロセスは収束する:

EvaluationMonitor  (1)

極小値への収束をプロットする:

Gradient  (1)

与えられた勾配を使う.ヘッシアンは自動的に計算される:

勾配とヘッシアンの両方を与える:

Method  (1)

この場合は,デフォルトの導関数に基づいたメソッドではうまくいかない:

これらの場合には,導関数を必要としない直接探索法が役に立つ:

NMinimizeもまた,さまざまな直接探索法を使う:

StepMonitor  (1)

関数の最小値を求める際にFindMinimumが取るステップ:

WorkingPrecision  (1)

作業精度をにする.デフォルトでAccuracyGoalPrecisionGoalに設定されている:

アプリケーション  (3)

1973年から1994年までのS&P 500からの長期債券の年間配当(R):

配当から平均と共分散を計算する:

最低10%の配当という制約下で変動を最小にする:

について,半径 の重なり合ない 個の円が入る最小の正方形を求める.円の数と各円の半径を指定する:

が円 の中心なら,目的はを最小化することになる.この目的は, のときに を最小化することに変形できる:

円は重なり合ってはならない:

変数をまとめる:

を最小化する:

円は正方形の中に収まる:

円に覆われた正方形の割合を計算する:

出発点と到着点の間の距離が最小になるようにして,円形の障害物の間を通る経路を求める:

点と点の間の距離を として,経路を 個に離散化する. は最小化する経路の長さである:

各点は円形オブジェクトの中にあってはならない:

出発点と到着点は既知である:

変数をまとめる:

制約条件に従って長さ を最小化する:

結果を可視化する:

特性と関係  (2)

FindMinimumは極小を求めようとするのに対し,NMinimizeは大域的最小を求めようとする:

Minimizeは最小値を求め,無限大の精度でも使うことができる:

FindMinimumは最小値と最小となる点の両方を与える:

FindArgMinは最小となる位置を与える:

FindMinValueは最小値を与える:

考えられる問題  (6)

機械精度の計算では,スムーズな極小値を持つ関数でも凸凹に見えることがある:

機械精度以上の精度にするとこのような問題が避けられることがある:

制約範囲が空の場合,アルゴリズムは収束しない:

最小値が有限ではない場合,アルゴリズムは収束しない:

整数線形計画法アルゴリズムは機械数問題にしか使えない:

初期値を与えることでアルゴリズムの収束を助けられる場合がある:

関数を記号的に計算するのには時間がかかることがある:

関数定義を制限すると記号評価が避けられる:

Wolfram Research (1988), FindMinimum, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindMinimum.html (2014年に更新).

テキスト

Wolfram Research (1988), FindMinimum, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindMinimum.html (2014年に更新).

CMS

Wolfram Language. 1988. "FindMinimum." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/FindMinimum.html.

APA

Wolfram Language. (1988). FindMinimum. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindMinimum.html

BibTeX

@misc{reference.wolfram_2024_findminimum, author="Wolfram Research", title="{FindMinimum}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FindMinimum.html}", note=[Accessed: 24-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_findminimum, organization={Wolfram Research}, title={FindMinimum}, year={2014}, url={https://reference.wolfram.com/language/ref/FindMinimum.html}, note=[Accessed: 24-November-2024 ]}