IPOPTLink`
IPOPTLink`

IPOPTMinimize

IPOPTMinimize[f,{x1,},{x1i0,}]

xj についての f の極小値をxj=xj0 から始めて数値的に検索する.

IPOPTMinimize[f,{x1,},{x1i0,},{{x1min,x1max},}]

変数境界制約条件 xj minxjxj max の下で極小値を数値的に検索する.

IPOPTMinimize[f,{x1,},{x1i0,},{{x1min,x1max},},{g1,},{{g1min,g1max},}]

関数制約条件 gi mingi(x)gi max の下で極小値を数値的に検索する

詳細とオプション

  • IPOPTMinimizeを使うにはまずNeeds["IPOPTLink`"]を使ってそれをロードする必要がある.
  • IPOPTMinimizeは,変数の境界制約条件および/または関数の制約条件の下で,目的関数 の実数値の極小化問題を数値的に解く.
  • 目的関数 f と制約条件関数{g1,}は実数値で,2回連続微分可能でなければならない.
  • 最適化問題は凸状でも線形でもない必要がある.
  • 等式制約条件 は制約条件の境界を{b,b}と設定することで指定できる. »
  • IPOPTMinimizeは解のオブジェクトをIPOPTData式の形で返す.
  • IPOPTMinimizeには以下のオプションが与えられる:
  • StepMonitor Noneステップを取るときに評価する式
    IPOPTOptions {}IPOPTライブラリに渡されるオプション
    RuntimeOptions Automaticランタイム設定を指定するオプション
  • IPOPTライブラリオプションには文字列名と,実数,整数,文字列の値がある.
  • IPOPTOptionsに指定できるオプションの例:
  • "tol"real希望する収束許容範囲(相対的)
    "max_iter"integer許可される最大繰返し回数
    "linear_solver"string使用する線形ソルバ(例:"mumps")
  • IPOPTライブラリオプションすべてとその可能な値のリストはWebページに掲載されている.

例題

すべて開くすべて閉じる

  (3)

から始めて,の極小値を求める.

IPOPTData式から極小値とその位置を抽出する:

解をプロットする:

変数の境界がである場合に,から始めて,を極小化する:

IPOPTData式から極小値とその位置を抽出する:

解をプロットする:

変数の境界が,関数の制約条件がである場合に,から始めて,を極小化する:

IPOPTData式から極小値とその位置を抽出する:

解をプロットする:

スコープ  (2)

目的関数の負数を極小化することによって,関数を極大化する:

IPOPTData式から極大値とその位置を求める:

等しい上下界を指定することで,関数を等式制約条件 で極小化する:

IPOPTData式から極小値とその位置を抽出する:

オプション  (5)

StepMonitor  (1)

関数の極小値を求める際にIPOPTMinimizeが取ったステップ:

IPOPTOptions  (2)

IPOPTライブラリのドキュメント(http://www.coin-or.org/Ipopt/documentation/node39.html)に記載されているように,IPOPTOptionsを使ってオプションを設定する:

"tol"を使って相対許容誤差を10.^-6に設定する:

このオプションを指定すると,およそ6桁精度が期待できる:

厳密解と比較する:

"max_iter"を使って最大繰返し回数を5に設定する:

上記誤差は,デフォルトの許容誤差10^-8を満足するためには,繰返し回数が十分でなかったことを示唆する:

RuntimeOptions  (2)

RuntimeOptionsはランタイム設定の指定に使用できる:

深刻なエラーが生じた際にIPOPTDataオブジェクトを返すか$Failedを返すかを"RuntimeErrorHandler"を使って指定する:

Automatic設定では,マシンのオーバーフロー等,エラーによっては$Failedが返される:

IPOPTReturnCodeが抽出できるように解のオブジェクトを返す:

戻りコードを抽出する:

ランタイムの問題を示す警告メッセージは"WarningMessges"で表示をオンにしたりオフにしたりできる:

警告メッセージの表示をオフにする:T

アプリケーション  (1)

直径が である 辺の多角形の面積が最大となるような多角形を求める.{r[i],t[i]}を多角形の頂点の極座標とする.変数とその境界は以下のようになる:

多角形の面積は以下のようになる:

極小化問題を使って記述するために,目的関数の負数を取る:

制約条件と制約境界を設定する:

極小化の開始点を定義する:

パッケージをロードし,極小化問題を解く:

解のオブジェクトから最大面積を抽出する:

解のオブジェクトから最適変数値を抽出する:

直交座標における点を求める:

結果をプロットする

Wolfram Research (2016), IPOPTMinimize, Wolfram言語関数, https://reference.wolfram.com/language/IPOPTLink/ref/IPOPTMinimize.html.

テキスト

Wolfram Research (2016), IPOPTMinimize, Wolfram言語関数, https://reference.wolfram.com/language/IPOPTLink/ref/IPOPTMinimize.html.

CMS

Wolfram Language. 2016. "IPOPTMinimize." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/IPOPTLink/ref/IPOPTMinimize.html.

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2023_ipoptminimize, organization={Wolfram Research}, title={IPOPTMinimize}, year={2016}, url={https://reference.wolfram.com/language/IPOPTLink/ref/IPOPTMinimize.html}, note=[Accessed: 26-November-2024 ]}