FindMaximum

FindMaximum[f,x]

自動的に選ばれた点から始めて f の極大値を求める.

FindMaximum[f,{x,x0}]

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

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

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

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

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

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

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

詳細とオプション

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

例題

すべて開くすべて閉じる

  (4)

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

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

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

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

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

これをプロットする:

スコープ  (12)

始点を変えると異なる極大値が求まる:

, から始めた,二変数関数の極大値:

円板内に制限された極大値:

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

線形目的と条件については,整数条件を強制することができる:

Or制約条件が指定できる:

領域上の最大値を求める:

これをプロットする:

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

これをプロットする:

矩形と楕円が交差する最大の を求める:

これをプロットする:

が指定された3点を含むような最大の を求める:

これをプロットする:

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

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

これをプロットする:

オプション  (7)

AccuracyGoalとPrecisionGoal  (2)

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

次は,収束基準を強制する.これはデフォルトの機械精度計算では達することができない:

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

EvaluationMonitor  (1)

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

Gradient  (1)

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

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

Method  (1)

この場合は,デフォルトの導関数に基づいた方法はうまくいかない:

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

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

StepMonitor  (1)

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

WorkingPrecision  (1)

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

特性と関係  (2)

FindMaximumは極大値を求めようとするのに対し,NMaximize は大域的最大値を求めようとする:

Maximizeは大域的最大値を求め,無限大の精度で使うことができる:

FindMaximumは最大値と最大になる点の両方を与える:

FindArgMaxは最大となる点を与える:

FindMaxValueは最大値を与える:

考えられる問題  (6)

機械精度の計算では,滑らかな最大値を持つ関数でさえも凸凹に見える:

機械精度を超えると,このような問題を避けられることがしばしばある:

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

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

整数線形計画法アルゴリズムは機械数の問題にのみ使うことができる:

適切な初期値を与えるとアルゴリズムが収束するようになることがある:

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

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

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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