minimize - 最小値の計算
maximize - 最大値の計算
使い方
minimize(expr, opt1, opt2, ..., optn)
maximize(expr, opt1, opt2, ..., optn)
パラメータ
expr - 代数式
opt1, opt2, ..., optn - オプション -- 以下を参照
|
説明
|
|
•
|
minimize(expr, opt1, opt2, ..., optn) 関数は、可能な場合、expr の下限を返します。minimize が下限を求められない場合、未評価の関数呼び出しを返します。
|
•
|
オプション location または location = true が与えられた場合、1 番目の引数が最小値で、2 番目の引数がリストの集合であるような式列を返します。ここで各リストの 1 番目の引数は、下限に到達する点、またはそれに近づくような近傍を記述する代入の集合です。minimize が未評価値を返す場合、2 番目の引数は空集合 {} で、location フラグは除去されます。
|
•
|
オプションが範囲に等しい名前である場合、minimize は与えられた範囲でその関数の下限を求めます。範囲が全実直線 -infinity..infinity の場合、範囲を省略できます。
|
•
|
式を最小にするための変数をオプションとして暗示的に与えることもできるし、そのような変数のすべての範囲からなるリストとして明示的に与えることもできます。minimize のオプションとして現れる変数に関して最小にしたい場合、2 番目のフォーマットが必要です。
|
•
|
最小にしたい名前を 1 つも与えない場合、minimize は型 name を持つすべての不定元について下限を求めます。
|
•
|
関数 maximize は expr の -1倍に minimize を適用した結果の -1 倍を計算するよう定義されています。
|
•
|
Optimization パッケージのソルバーは、数式の最大化、最小化を求めるときに使用します。これらのソルバーは、制約を指定することが可能なので minimiza, maximize コマンドより効率的です。しかしながら、浮動小数点値を使用して計算を実行するため、凸面でない最適化問題のローカルの解決策だけを返します。
|
|
|
例
|
|
>
|
minimize(cos(x), x=1..3);
|
| (2.1) |
>
|
maximize(cos(x), x=1..3);
|
| (2.2) |
>
|
minimize(exp(tan(x)), x=0..10);
|
| (2.3) |
>
|
minimize(x^2-3*x+y^2+3*y+3);
|
| (2.4) |
>
|
minimize(x^2-3*x+y^2+3*y+3, location);
|
| (2.5) |
>
|
minimize(x^2-3*x+y^2+3*y+3, x=2..4, y=-4..-2, location);
|
| (2.6) |
>
|
minimize(abs(exp(-x^2)-1/2), x=-4..4);
|
| (2.7) |
>
|
minimize(x^4 - x^2, x=-3..3, location=true);
|
| (2.8) |
>
|
minimize(x^2 + cos(x), [x=0..3]);
|
| (2.9) |
>
|
# 'location' is an option and therefore all variables
# to be minimized over must be placed in a list
minimize(sin(location*y), [location=1..1, y=-1..1], location);
|
| (2.10) |
|
|