NMinValue

NMinValue[f,x]

x についての f の最小値を与える.

NMinValue[f,{x,y,}]

x, y, についての f の最小値を与える.

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

制約条件 cons に従った f の最小値を与える.

NMinValue[,xreg]

x が領域 reg 内にあるように制限する.

詳細とオプション

  • NMinValueは大域的最適化(GO)としても知られている.
  • NMinValueは,与えられた制約条件に従って常に f の最小値を求めようとする.
  • NMinValueは,通常,制約が与えられた場合に可能な最小値を求めるために使われる.分野によっては,最適な戦略,最良適合,最適な構成等と呼ばれることがある.
  • fcons が線形または凸のとき,NMinValueが与える結果は実数および整数値の両方の上で最小値になる.それ以外の場合は結果が単に極小値であるかもしれない.
  • NMinValueが制約条件を満足できないと判断した場合はInfinityが返される.
  • NMinValueは,目的関数 f と制約条件 cons がスカラー変数またはベクトル変数に依存する式で与えられるモデリング言語をサポートする.fcons は,一般に,非常に効率的な形に解析されるが,fcons の項が変数の数値に対して数値を与える限りNMinValueはしばしば解を求めることができる.
  • 制約条件 cons は以下の論理結合でよい.
  • lhs==rhs等式
    lhs>rhs, lhsrhs, lhs<rhs, lhsrhs不等式 (LessEqual, )
    lhsrhs, lhsrhs, lhsrhs, lhsrhsベクトル不等式 (VectorLessEqual, )
    {x,y,}rdom領域指定
  • NMinValue[{f,cons},xrdom]は,事実上,NMinValue[{f,cons&&xrdom},x]に等しい.
  • xrdomについては,Indexed[x,i]を使って別の座標に言及することができる.
  • 次は,使用可能な領域 rdom である.
  • Reals実数スカラー変数
    Integers整数スカラー変数
    Vectors[n,dom]のベクトル変数
    Matrices[{m,n},dom]の行列変数
    幾何学領域 に制限されたベクトル変数
  • デフォルトで,変数はすべて実数であるとみなされる.
  • 次は,指定可能なオプションである.
  • AccuracyGoalAutomatic目標となる最終確度桁数
    EvaluationMonitor Nonef が評価されたときに常に評価される式
    MaxIterationsAutomatic使用する最大反復回数
    Method Automatic使用されるメソッド
    PrecisionGoalAutomatic目標となる最終精度桁数
    StepMonitor Noneステップを取るたびに常に評価される式
    WorkingPrecision MachinePrecision内部計算に使用する精度
  • AccuracyGoalPrecisionGoalの設定で,最小値の位置の値と最小になったときの関数の値の両方で目標とする桁数を指定する.
  • NMinValueは,AccuracyGoalPrecisionGoalで指定された目標値のどちらかが達成されるまで計算を続ける.
  • NMinValueのためのメソッドには2つのクラスがある.最初のクラスは問題の特性を使うので,メソッドが収束する際に求まった最小値は大域的であることが保証される.2番目のクラスは発見的なメソッドで,複数の局所探索を使うことがあるが,一般的には確率論によって調整され,大域的最小値に焦点が当てられる.このメソッドもしばしば大域的な最小値を求めるが,必ずそうするとは保証されない.
  • 次は,解に収束する場合に最小値を与えることが保証されているメソッドである.
  • "Convex"凸法だけを使う
    "MOSEK"凸問題用の商用MOSEKライブラリを使う
    "Gurobi"凸問題用の商用Gurobiライブラリを使う
    "Xpress"凸問題用の商用Xpressライブラリを使う
  • 次は,発見的な方法である.
  • "NelderMead"Nelder・Meadのシンプレックス法
    "DifferentialEvolution"差分進化を使う
    "SimulatedAnnealing"焼きなまし法を使う
    "RandomSearch"複数のランダムな初期点から始めて求まった最良の極小値を使う
    "Couenne"非凸混合整数非線形問題にCouenneライブラリを使う

例題

すべて開くすべて閉じる

  (4)

一変数関数の最小値を求める:

多変数関数の最小値を求める:

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

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

スコープ  (40)

基本的な用法  (12)

制約条件 に従って の最小値を求める:

いくつかの線形不等式制約がVectorGreaterEqualで表現できる:

v>= または\[VectorGreaterEqual]を使ってベクトル不等式の記号を入力する:

スカラー不等式を使った同等の形:

ベクトル変数 を使う:

にスレッディングの可能性があるので,不等式 とは等しくないかもしれない:

での意図しないスレッディングを避けたければInactive[Plus]を使うとよい:

定数パラメータを持つ方程式を使って での意図しないスレッディングを回避する:

VectorGreaterEqual"NonNegativeCone"についての錐不等式を表す:

円錐の次元を明示的に指定したければ,{"NonNegativeCone",n}を使うとよい:

最小値を求める:

制約条件 に従って の最小値を求める:

"NormCone"で錐不等式を使って制約条件 を指定する:

最小値を求める:

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

Indexedを使ってベクトル変数の成分(例:TemplateBox[{x, 1}, IndexedDefault])にアクセスする:

ベクトル変数の次元と領域が曖昧なときはVectors[n,dom]を使って指定する:

NonNegativeReals (TemplateBox[{}, NonNegativeReals])を使って非負の制約条件を指定する:

ベクトル不等式 を使った同等の形:

NonPositiveReals (TemplateBox[{}, NonPositiveReals])を使って非正の制約条件を指定する:

ベクトル不等式を使った同等の形:

Orという条件を指定することができる:

領域制約1  (4)

Integersを使って整数領域の制約を指定する:

Vectors[n,Integers]を使ってベクトル変数に整数領域の制約を指定する:

NonNegativeIntegers (TemplateBox[{}, NonNegativeIntegers])を使って非負の整数領域の制約を指定する:

NonPositiveIntegers (TemplateBox[{}, NonPositiveIntegers])を使って非正の整数領域の制約を指定する:

領域制約2  (5)

領域上で の最小値を求める:

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

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

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

Circumsphereを使って同じ結果を直接得ることができる:

を使って 内のベクトルであると指定する.ただし,TemplateBox[{x}, Norm]=1

線形問題  (5)

線形の目的関数と制約条件がある場合は,最小値が見付かるとそれは大域的になる:

制約条件は等式制約および不等式制約である:

Equalを使っていくつかの等式制約を一度に表現する:

いくつかのスカラー等式を使った同等の形:

VectorLessEqualを使っていくつかのLessEqual不等式制約を一度に表現する:

v<= を使ってベクトル不等式をコンパクトな形で入力する:

スカラー不等式を使った同等の形:

Intervalを使って変数の境界を指定する:

凸問題  (7)

"NonNegativeCone"を使って の形の線形関数を指定する:

v>= を使ってベクトル不等式をコンパクトな形で入力する:

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

凸二次制約条件の集合に従って凸二次関数の最小値を求める:

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

が半正定値になるような の最小値を求める:

が半正定値でとなるように凸目的関数を最小化する:

凸目的関数の最小値を4-ノルム単位円板上で求める:

凸に変換可能  (4)

縦が最大で横の半分になるようにして,面積が1の長方形の最短外周を求める:

この問題は対数凸問題で,変換{hExp[],wExp[ ]}を行なって対数を取り凸問題にすることで解ける:

不等式制約とノルム制約に従って擬似凹関数 の最小値を求める.目的関数は領域上の非負の関数と非正の関数の積なので,擬似凸関数である:

擬似凸問題はパラメータ についてのパラメトリック凸最適化問題として解くことができる:

目的関数を等位集合 の関数としてプロットする:

区間内の等位集合の値について,最小の目的関数が求まる:

等位集合の値が大きくなると,問題は実行不可能になる:

制約条件に従って を最小化する.目的関数は凸ではないが,凸関数の差 で表すことができる.ただし, は凸関数である:

領域と最小化点をプロットする:

制約条件に従って を最小化する.制約条件は凸ではないが凸制約の差 で表すことができる.ただし, は凸関数である:

領域と最小化点をプロットする:

一般的な問題  (3)

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

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

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

オプション  (7)

AccuracyGoalとPrecisionGoal  (2)

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

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

WorkingPrecisionの設定値を高くするとプロセスが収束するようになる:

EvaluationMonitor  (1)

関数の解を求める過程で評価したすべての点を最小値の環で記録する:

訪れた点の中で目的関数の値で最終的な解に近いすべての点をプロットする:

Method  (2)

メソッドの中には特定の問題について準最適な結果を返すものがある:

この問題については,自動選択されたメソッドが最適な結果を与える:

目的関数を最小値とともにプロットする:

速度を求めるなら,多くの変数がある問題には"NelderMead"メソッドを使う:

StepMonitor  (1)

NMinValueが古典的なRosenbrock関数の最小値を求めるのに取るステップ:

WorkingPrecision  (1)

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

アプリケーション  (6)

幾何学の問題  (3)

を中心とする半径1の2つの円板間の最短距離を求める.を円板1の上の点,を円板2の上の点とする.目的は制約条件に従ってを最小化することである:

与えられた領域を包み込む最小の球の半径 を求める:

制約条件 に従って半径 の最小値を求める:

包み込む最小の球はBoundingRegionを使って効率的に求めることができる:

包み込む球を可視化する:

指定された半径 ()の重なり合ない 個の円を収めることができる最小の正方形を求める.円の数と各円の半径を指定する:

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

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

変数を集める:

円は正方形の中に収まる.境界を求める:

データフィッティング問題  (1)

非線形離散データにフィットする の剰余を最小化するガウスの幅パラメータ を求める:

基底 を使ってデータをフィットする:

関数は で近似できる:

剰余を与えるパラメトリック関数を構築する:

剰余を の関数として示す:

最小剰余を生成するスケーリングパラメータを求める:

反復最適化  (1)

楕円 から点(1,2)までの距離が可能な限り小さくなるようなパラメータ を求める:

距離を の関数として示す:

距離の逆数を最大にする最適パラメータ を求める:

この点を円板との関係で可視化する:

軌跡の最適化  (1)

円形障害物を避けて始点と終点を結ぶ最短経路を求める:

経路は 個の異なる点で表すことができる.これらの点の間の距離は 未満でなければならない.ただし, は最小化する長さである:

点は円形障害物の内側にあってはならない:

始点と終点は既知である:

変数を集める:

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

特性と関係  (8)

NMinimizeは最小値と,変数の値を最小にする規則を与える:

NArgMinは最小にする値のリストを与える:

NMinValueは最小値だけを与える:

関数 f の最大化は-f の最小化に等しい:

凸問題については,ConvexOptimizationを使って追加的な解の特性が得られるかもしれない:

双対解を得る:

パラメータがある凸問題について,ParametricConvexOptimizationを使うとParametricFunctionが与えられる:

ParametricFunctionはパラメータの値について評価できる:

NMinValueを使ってパラメトリック問題についての関数を定義する:

2通りのアプローチの所要時間を比較する:

ParametricFunctionの導関数も計算できる:

RobustConvexOptimizationは,パラメータ制約がある凸問題についてはパラメータの可能なすべての値について有効な最適値を求める:

NMinValueはパラメータの特定の値についてより小さい最小値を求めるかもしれない:

この値を与えるミニマイザは の使用可能なすべての値についての制約条件は満足しない:

パラメータの特定の値について求まった最小値はロバストな最小値以下である:

NMinValueは線形計画問題を解くことができる:

LinearProgrammingを使って行列記法で与えられた同じ問題を解くことができる:

RegionDistanceを使って点から領域までの最短距離を求める:

NMinValueを使って距離を計算する:

RegionBoundsを使って境界ボックスを計算する:

NMaxValueNMinValueを使って同じ境界を計算する:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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