FindArgMax

FindArgMax[f,x]

f の極大値の位置 xmaxを与える.

FindArgMax[f,{x,x0}]

x=x0から検索を始め,f の極大値の位置 xmaxを与える.

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

複数の変数を持つ関数の極大値の位置{xmax,ymax,}を与える.

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

条件 cons に従って極大値の位置を与える.

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

条件で定義された範囲内の点からスタートする.

詳細とオプション

  • FindArgMax[,{x,y,}]は実質的に{x,y,}/.Last[FindMaximum[,{x,y,},]に等しい.
  • 変数の始点がリストで与えられる場合,変数の値は同じ次元のリストであるとみなされる.
  • cons は等式,不等式,これらの論理結合を含むことができる.
  • 制約条件 cons は以下の論理結合でよい.
  • lhs==rhs等式
    lhs>rhs または lhs>=rhs 不等式
    {x,y,}reg領域指定
  • FindArgMaxはまず変数の値を局所化し,次に記号化した変数で f を評価し,次に結果を繰り返し数値的に評価する.
  • FindArgMaxは属性HoldAllを有し,事実上Blockを使って変数を局所化する.
  • FindArgMax[f,{x,x0,x1}]x0x1x の最初の2つの値として使い導関数の使用を避けて f 内の極大値を探す.
  • FindArgMax[f,{x,x0,xmin,xmax}]は極大値を検索し,xxminから xmaxまでの範囲外に出ると検索を中止する.
  • fcons の両方が線形の場合を除き,FindArgMaxが求めた結果は極大値には対応するが最大値には対応しない場合がある.
  • デフォルトで,すべての変数は実数であると想定される.
  • 線形の fcons について,xIntegersを使って変数が整数値のみを取るように指定することができる.
  • FindArgMaxFindMaximumと同じオブションを取る.
  • 全オプションのリスト

例題

すべて開くすべて閉じる

  (4)

一変数関数-2x^2-3x+5が最大となる点{x}を求める:

関数Sin[x]Sin[2y]が最大となる点{x,y}を求める:

制約条件に従って関数が最大となる点を求める:

幾何学領域上で関数が最大となる点を求める:

これをプロットする:

スコープ  (12)

異なる始点で異なる極大の位置を得る:

x=2, y=2から始めた二変数関数の極大の位置:

円板内に制約された極大の位置:

始点は与えなくてもよい:

線形目的および制約について,整数の制約条件を課すことができる:

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

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

これをプロットする:

最大距離を実現する2つの領域内の点を求める:

これをプロットする:

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

これをプロットする:

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

これをプロットする:

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

最大距離を実現する2領域内の点を求める:

これをプロットする:

オプション  (7)

AccuracyGoalとPrecisionGoal  (2)

これは収束基準TemplateBox[{{{x, _, k}, -, {x, ^, *}}}, Norm]<=max(10^(-9),10^(-8)TemplateBox[{{x, _, k}}, Norm])TemplateBox[{{del , {f, (, {x, _, k}, )}}}, Norm]<=10^(-9)を強制する:

これは収束基準TemplateBox[{{{x, _, k}, -, {x, ^, *}}}, Norm]<=max(10^(-20),10^(-18)TemplateBox[{{x, _, k}}, Norm])TemplateBox[{{del , {f, (, {x, _, k}, )}}}, Norm]<=10^(-20)を強制する:

WorkingPrecisionを高く設定するとプロセスが収束する:

EvaluationMonitor  (1)

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

Gradient  (1)

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

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

Method  (1)

この場合,デフォルトの導関数に基づくメソッドには無理がある:

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

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

StepMonitor  (1)

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

WorkingPrecision  (1)

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

特性と関係  (1)

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

FindArgMaxは最大となる位置を与える:

FindMaxValueは最大となる点における値を与える:

考えられる問題  (4)

制約範囲が空であると,アルゴリズムは収束しない:

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

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

適切な始点を与えると,アルゴリズムの収束が助けられることがある:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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