|
3.4.12 最小化と最大化

最小化と最大化
MinimizeとMaximizeは最大あるいは最小に達した値のリストを,最大と最小になる場所を特定する規則とともに与える.
これは2次関数の最小値を求める.
In[1]:= Minimize[x^2 - 3x + 6, x]
Out[1]= 
xの規則を適用すると最小の位置における値が与えられる.
In[2]:= x^2 - 3x + 6 /. Last[%]
Out[2]= 
これはxと yについて最大にする.
In[3]:= Maximize[5 x y - x^4 - y^4, {x, y}]
Out[3]= 
Minimize[expr, x]はxを から のすべての可能な値の範囲でexprを最小にする.Minimize[ expr, cons , x]は制約条件consが満足されるという条件のもとでexprを最小にする.制約条件は方程式と不等式のどのような組合せでもよい.
これは制約条件 に従って最小を求める.
In[4]:= Minimize[{x^2 - 3x + 6, x >= 3}, x]
Out[4]= 
これは単位円上で最大を求める.
In[5]:= Maximize[{5 x y - x^4 - y^4, x^2 + y^2 <= 1}, {x, y}]
Out[5]= 
これは楕円内で最大を求める.結果はかなり複雑になる.
In[6]:= Maximize[{5 x y - x^4 - y^4, x^2 + 2y^2 <= 1}, {x, y}]
Out[6]= 
これは線に沿って最大を求める.
In[7]:= Maximize[{5 x y - x^4 - y^4, x + y == 1}, {x, y}]
Out[7]= 
MinimizeとMaximizeは目的関数exprと制約条件consの両方が線形にのみ変数 を含んでいるどのような「線形計画法」の問題も解くことができる.
これは典型的な線形計画法の問題である.
In[8]:= Minimize[{x + 3 y, x - 3 y <= 7 && x + 2y >= 10}, {x, y}]
Out[8]= 
これらは原則として,目的関数と制約条件が任意の変数についての多項式関数を含むいかなる「線形計画法」の問題も解くことができる.これを使って形成できる幾何学その他の重要な問題がたくさんある.
これは辺の長さの合計が一定の長方形の面積を最大にする簡単な幾何学問題を解く.
In[9]:= Maximize[{x y, x + y == 1}, {x, y}]
Out[9]= 
これは単位球内の立方体の最大体積を求める.
In[10]:= Maximize[{8 x y z, x^2 + y^2 + z^2 <= 1}, {x, y, z}]
Out[10]= 
MinimizeとMaximizeの重要な特徴は,これらが常に「大局的」最小値と最大値を求められる点である.関数はそこで導関数が消失するさまざまな極大値と極小値を持つことが多い.しかし,MinimizeとMaximizeは大局的な方法を用いて極小値と極大値だけでなく絶対最小値と絶対最大値も求める.
これは多くの極大値と極小値を持つ関数である.
In[11]:= Plot[x + 2 Sin[x], {x, -10, 10}]

Out[11]= 
Maximizeは大局的最大値を求める.
In[12]:= Maximize[{x + 2 Sin[x], -10 <= x <= 10}, x]
Out[12]= 
境界を持たない関数を与えるとMinimizeとMaximizeは - と+ を最小と最大として返す.また,決して満足し得ない制約条件を与えると,+ と - が最大と最小として返され,Indeterminateが変数の値として返される.
MinimizeとMaximizeはx <= vという形式の「厳密ではない」不等式とx < vという形式の「厳密な」不等式の両方を受け入れる.厳密ではない不等式の場合,最小と最大が境界x -> v上にあっても全く問題ないが,厳密な不等式の場合は最小と最大は原則として少なくともほんのわずかでも境界の内側になければならない.
厳密な不等式の場合,Mathematicaは警告メッセージを出し,次いで境界上の点を返す.
In[13]:= Minimize[{x^2 - 3x + 6, x > 3}, x]

Out[13]= 
MinimizeとMaximizeは通常与えられたすべての変数が実数であると仮定する.x Integersのような制約条件を与えて変数が整数でなければならないと指定することもできる.
これはxとyの整数値についてのみ最大化を行う.
In[14]:= Maximize[{x y, x^2 + y^2 < 120 && (x | y) Integers}, {x, y}]
Out[14]= 
|