最適化コマンドにおける代数式の入力
|
目的関数
|
|
•
|
問題のは、exp(tan(x)) や x^2-3*x+y^2+3*y+3 など代数表現を用いなければなりません。
変数は目的関数およびの中の不定元をとります。
|
•
|
Optimization[LSSolve] は最小二乗問題を計算するコマンドで、目的関数として代数式のリスト [r_1,r_2,...,r_q] を許します。このときの目的関数は (1/2)*((r_1)^2+(r_2)^2+...+(r_q)^2) になります。
|
|
|
制約条件
|
|
•
|
制約条件は関係式のリストで与えなけばいけません。使える関係式は `<=` と `>=` と`=` のみで、 {x<=5,y^2+z>=,w=1} のように書きます。
|
|
|
境界条件
|
|
•
|
境界条件は vname を変数、vrange を y=-1..2 のような範囲とするとき、 vname=vrange の形の列で与えます。
|
•
|
境界条件は制約条件に含めることができます。たとえば、不等式制約条件の集合 x>=1.5 と x<=3.2 は x=1.5..3.2 と同値です。境界条件は分けて入力する必要はありませんが、分けることで計算をより効率的に行うことができます。
|
•
|
はじめ、変数は非負変数と仮定していませんが、assume=nonnegative オプションを指定することで使うことができます。詳しくは Optimization/Options を参照ください。
|
|
|
初期値
|
|
•
|
initialpoint=p オプションを使うことで初期値を指定できます。ただし、p は varname=value の形のリストまたは集合です。varname は変数で、value は初期点の値です。initialpoint={x=-1.2, y=5.7} ように使います。initialpoint について詳しい情報は Optimization/Options を参照ください。
|
|
|
解
|
|
•
|
Maple は解として最小値 (最大値) およびそのときの点 () のリストを返します。点は varname を変数、 value を変数に対応する値とするとき varname=value のリストです。
|
|
|
例
|
|
代数関数で与えられる関数の線形計画問題、2 次計画問題、非線形計画問題を解きます。
>
|
LPSolve(-4*x-5*y, {x+2*y<=6, 5*x+4*y<=20, x>=0, y>=0});
|
| (6.1) |
>
|
QPSolve(2*x+5*y+3*x^2+3*x*y+2*y^2, {x-y>=2});
|
| (6.2) |
>
|
NLPSolve(sin(x)/x, x=1..10);
|
| (6.3) |
|
|
Download Help Document
Was this information helpful?