主要内容gydF4y2Ba

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba

錐計画法を使用した区分線形ばね質量系のエネルギーの最小化(ソルバーベース)gydF4y2Ba

この例では2つの固定点からぶら下がっているばね質量系の平衡位置を見つける方法を示します。ばねには区分線形張力がかかります。系は2つの次元のgydF4y2Ba ngydF4y2Ba 個の質量で構成されます。質量gydF4y2Ba 我gydF4y2Ba はばねgydF4y2Ba 我gydF4y2Ba とばねgydF4y2Ba 我gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba に接続されます。ばねgydF4y2Ba 1gydF4y2Ba とばねgydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba は別々の固定点に接続されます。この場合,ばねgydF4y2Ba 我gydF4y2Ba の0力長さは正の長さgydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba で,ばねは長さgydF4y2Ba 问gydF4y2Ba +gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba に伸びたときに力gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba 问gydF4y2Ba を発生させます。問題は,質量の最小位置エネルギー構成を見つけることです。ここで,位置エネルギーは、重力と非線形ばねの伸びから生じます。平衡は、最小エネルギー構成で実現します。

この図は2つの固定点からつるされている5つのばねと4つの質量を示しています。gydF4y2Ba

高さgydF4y2Ba hgydF4y2Ba における質量gydF4y2Ba 米gydF4y2Ba の位置エネルギーはgydF4y2Ba 米gydF4y2Ba ggydF4y2Ba hgydF4y2Ba です。ここで,gydF4y2Ba ggydF4y2Ba は地球上の重力定数です。また,長さgydF4y2Ba 问gydF4y2Ba に伸びた,ばね定数gydF4y2Ba kgydF4y2Ba の理想的な線形ばねの位置エネルギーはgydF4y2Ba kgydF4y2Ba 问gydF4y2Ba 2gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba です。現在のモデルは,ばねが理想的ではありませんが,非ゼロの静止長gydF4y2Ba lgydF4y2Ba をもちます。gydF4y2Ba

この例の数学的基礎は,Lobo,范登堡,博伊德およびLebretgydF4y2Ba[1]gydF4y2Baにあります。この例の問題ベースのバージョンについては,gydF4y2Ba錐計画法を使用した区分線形ばね質量系のエネルギーの最小化,問題ベースgydF4y2Baを参照してください。gydF4y2Ba

数学的定式化gydF4y2Ba

質量gydF4y2Ba 我gydF4y2Ba の位置は,水平座標がgydF4y2Ba xgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba で,垂直座標がgydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba のgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba です。質量gydF4y2Ba 我gydF4y2Ba は,gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba の重力による位置エネルギーをもちます。ばねgydF4y2Ba 我gydF4y2Ba の位置エネルギーはgydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba (gydF4y2Ba dgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba です。ここで,gydF4y2Ba dgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba は,質量gydF4y2Ba 我gydF4y2Ba と質量gydF4y2Ba 我gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba 間のばねの長さです。固定点1を質量0の位置として,固定2点を質量gydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba の位置としてとります。前述のエネルギー計算は,ばねgydF4y2Ba 我gydF4y2Ba の位置エネルギーが以下であることを示しています。gydF4y2Ba

EgydF4y2Ba ngydF4y2Ba egydF4y2Ba rgydF4y2Ba ggydF4y2Ba ygydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba =gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba (gydF4y2Ba 为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

この位置エネルギー問題を2次錐問題として再定式化するには,LobogydF4y2Ba[1]gydF4y2Baで説明されているように,いくつかの新しい変数の導入が必要です。項gydF4y2Ba EgydF4y2Ba ngydF4y2Ba egydF4y2Ba rgydF4y2Ba ggydF4y2Ba ygydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba の平方根に等しい変数gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba を作成します。gydF4y2Ba

tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba =gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba (gydF4y2Ba 为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

egydF4y2Ba を単位列ベクトルgydF4y2Ba [gydF4y2Ba 0gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba とします。すると,gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba =gydF4y2Ba egydF4y2Ba TgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba になります。問題は次のようになります。gydF4y2Ba

最小值gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba (gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba egydF4y2Ba TgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba +gydF4y2Ba 为gydF4y2Ba tgydF4y2Ba 为gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba .gydF4y2Ba (1)gydF4y2Ba

ここで,gydF4y2Ba tgydF4y2Ba を,gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba の以前の方程式で与えるのではなく,自由ベクトル変数と見なします。gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba とgydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba の関係を次の錐制約の新しいセットに組み込みます。gydF4y2Ba

为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ≤gydF4y2Ba 2gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba .gydF4y2Ba (2)gydF4y2Ba

目的関数は,まだ,gydF4y2BaconeproggydF4y2Baに規定されているように,変数内で線形ではありません。新しいスカラー変数gydF4y2Ba ygydF4y2Ba を導入します。不等式gydF4y2Ba 为gydF4y2Ba tgydF4y2Ba 为gydF4y2Ba 2gydF4y2Ba ≤gydF4y2Ba ygydF4y2Ba は次の不等式と同等であることに注意してください。gydF4y2Ba

为gydF4y2Ba [gydF4y2Ba 2gydF4y2Ba tgydF4y2Ba 1gydF4y2Ba -gydF4y2Ba ygydF4y2Ba ]gydF4y2Ba 为gydF4y2Ba ≤gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba ygydF4y2Ba (3)。gydF4y2Ba

ここで,問題は,次を最小化することです。gydF4y2Ba

最小值gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba egydF4y2Ba TgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ygydF4y2Ba )gydF4y2Ba (4)gydF4y2Ba

これは,(2)に記載されているgydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba とgydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba に対する錐制約と追加の錐制約(3)の影響を受けます。錐制約(3)はgydF4y2Ba 为gydF4y2Ba tgydF4y2Ba 为gydF4y2Ba 2gydF4y2Ba ≤gydF4y2Ba ygydF4y2Ba であることを確保します。したがって,問題(4)は問題(1)と同等です。gydF4y2Ba

問題(4)の目的関数と錐制約はgydF4y2BaconeproggydF4y2Baを使用した解法に適しています。gydF4y2Ba

MATLAB®での定式化gydF4y2Ba

6つのばね制約gydF4y2Ba kgydF4y2Ba 6つの長さ制約gydF4y2Ba lgydF4y2Ba 5,およびつの質量gydF4y2Ba 米gydF4y2Ba を定義します。gydF4y2Ba

k = 40 * (1:6);L = [1 1/2 1 2 1/2];M = [2 1 3 2 1];gydF4y2Ba

地球gydF4y2Ba ggydF4y2Ba に対する近似重力定数を定義します。gydF4y2Ba

g = 9.807;gydF4y2Ba

最適化用の変数は,gydF4y2Ba xgydF4y2Ba ベクトルの10個の成分,gydF4y2Ba tgydF4y2Ba ベクトルの6つの成分,およびgydF4y2Ba ygydF4y2Ba 変数です。gydF4y2BavgydF4y2Baをこのすべての変数を含むベクトルとします。gydF4y2Ba

  • (v (1), (2))gydF4y2Baは2次元変数gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba に対応します。gydF4y2Ba

  • (v (3), (4))gydF4y2Baは2次元変数gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba に対応します。gydF4y2Ba

  • (v (5), (6)]gydF4y2Baは2次元変数gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 3.gydF4y2Ba )gydF4y2Ba に対応します。gydF4y2Ba

  • (v(7)、(8)]gydF4y2Baは2次元変数gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 4gydF4y2Ba )gydF4y2Ba に対応します。gydF4y2Ba

  • (v(9)、(10))gydF4y2Baは2次元変数gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 5gydF4y2Ba )gydF4y2Ba に対応します。gydF4y2Ba

  • [v (11): v (16))gydF4y2Baは6次元ベクトルgydF4y2Ba tgydF4y2Ba に対応します。gydF4y2Ba

  • v (17)gydF4y2Baはスカラー変数gydF4y2Ba ygydF4y2Ba に対応します。gydF4y2Ba

これらの変数を使用して,対応する目的関数ベクトルgydF4y2BafgydF4y2Baを作成します。gydF4y2Ba

f = 0(大小(m));f = [f, g * m];f = f (:);f = [f; 0(长度(k) + 1, - 1));f(结束)= 1;gydF4y2Ba

次の質量(2)間のばねに相当する錐制約を作成します。gydF4y2Ba

为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ≤gydF4y2Ba 2gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba tgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba .gydF4y2Ba

coneproggydF4y2Baソルバーは,次の形式の変数ベクトルgydF4y2Ba vgydF4y2Ba の錐制約を使用します。gydF4y2Ba

为gydF4y2Ba 一个gydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba ⋅gydF4y2Ba vgydF4y2Ba -gydF4y2Ba bgydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba 为gydF4y2Ba ≤gydF4y2Ba dgydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba TgydF4y2Ba vgydF4y2Ba -gydF4y2Ba γgydF4y2Ba .gydF4y2Ba

次のコードでは,gydF4y2BaAscgydF4y2Ba行列がgydF4y2Ba二元同步通信gydF4y2Ba=gydF4y2Ba(0, 0)gydF4y2Baの項gydF4y2Ba 为gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba -gydF4y2Ba xgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba 为gydF4y2Ba を表しています。錐変数gydF4y2BadscgydF4y2Ba=gydF4y2Ba 2gydF4y2Ba /gydF4y2Ba kgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba と対応するgydF4y2BaγgydF4y2Ba=gydF4y2Ba -gydF4y2Ba lgydF4y2Ba (gydF4y2Ba 我gydF4y2Ba )gydF4y2Ba .gydF4y2Ba

d = 0(1、长度(f));Asc = d;Asc([1 3]) = [1 -1];A2 = circshift (Asc, 1);Asc = (Asc; A2);毫升=长度(m);数据库= 2 * ml;二元同步通信= (0,0);gydF4y2Ba为gydF4y2BaI = 2:ml gamma = -l(I);dsc = d;差量(dbase + i) =根号2/k(i);conecons (i) = secondordercone (Asc, bsc、dsc、伽马);Asc = circshift (Asc 2 2);gydF4y2Ba结束gydF4y2Ba

前述のコードで示したように,先端質量の位置に固定点を使用することによって,先端質量と固定点の間のばねに相当する錐制約を作成します。gydF4y2Ba

x0 = (0; 5);xn = (5; 4);Asc = 0(大小(Asc));Asc (1 (dbase-1)) = 1;Asc(数据库)= 1;二元同步通信= xn;γ= - l (ml);dsc = d;Dsc (dbase + ml) =√(2/k(ml));conecons(ml + 1) = second dordercone(Asc,bsc,dsc,gamma); Asc = zeros(size(Asc)); Asc(1,1) = 1; Asc(2,2) = 1; bsc = x0; gamma = -l(1); dsc = d; dsc(dbase + 1) = sqrt(2/k(1)); conecons(1) = secondordercone(Asc,bsc,dsc,gamma);

次のgydF4y2Ba ygydF4y2Ba 変数に相当する錐制約(3)を作成します。gydF4y2Ba

为gydF4y2Ba [gydF4y2Ba 2gydF4y2Ba tgydF4y2Ba 1gydF4y2Ba -gydF4y2Ba ygydF4y2Ba ]gydF4y2Ba 为gydF4y2Ba ≤gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba ygydF4y2Ba

これは,行列gydF4y2BaAscgydF4y2Baを作成することによって行います。この行列は,gydF4y2BavgydF4y2Baベクトルを乗算すると,ベクトルgydF4y2Ba [gydF4y2Ba 2gydF4y2Ba tgydF4y2Ba -gydF4y2Ba ygydF4y2Ba ]gydF4y2Ba が得られます。gydF4y2Ba二元同步通信gydF4y2Baベクトルは項gydF4y2Ba 1gydF4y2Ba -gydF4y2Ba ygydF4y2Ba 内の定数1に対応します。gydF4y2BadscgydF4y2Baベクトルは,gydF4y2BavgydF4y2Baを乗算すると,gydF4y2Ba ygydF4y2Ba を返します。また,gydF4y2BaγgydF4y2Ba=gydF4y2Ba -gydF4y2Ba 1gydF4y2Ba です。gydF4y2Ba

Asc = 2 *眼(长度(f));Asc(1:数据库:)= [];Asc(结束,结束)= 1;二元同步通信= 0(大小(Asc, 1), 1);二元同步通信(结束)= 1;dsc = d;dsc(结束)= 1;γ= 1;conecons (ml + 2) = secondordercone (Asc, bsc、dsc、伽马);gydF4y2Ba

最後に,gydF4y2Ba tgydF4y2Ba 変数とgydF4y2Ba ygydF4y2Ba 変数に対応する下限を作成します。gydF4y2Ba

磅=无穷(大小(f));磅(数据库+ 1:结束)= 0;gydF4y2Ba

問題の解決と解のプロットgydF4y2Ba

問題の定式化は完了です。gydF4y2BaconeproggydF4y2Baを呼び出して問題を解きます。gydF4y2Ba

[v, fval、exitflag、输出]= coneprog (f, conecons ,[],[],[],[], 磅);gydF4y2Ba
找到最优解。gydF4y2Ba

解の点とアンカーをプロットします。gydF4y2Ba

页= v (1:2 * ml);页=重塑(pp、2、[]);页= pp ';情节(pp(: 1)、pp (:, 2),gydF4y2Ba“罗”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Baxx = (x0, xn) ';情节(xx (: 1), xx (:, 2),gydF4y2Ba“ks”gydF4y2Ba) xlim ((x0 (1) -0.5, xn (1) + 0.5]) ylim ([min (pp(:, 2)) -0.5,马克斯(x0 (2), xn (2)) + 0.5]) xxx = [x0; pp; xn);情节(xxx (: 1) xxx (:, 2),gydF4y2Ba“b——”gydF4y2Ba)传说(gydF4y2Ba“计算点”gydF4y2Ba,gydF4y2Ba“锚点”gydF4y2Ba,gydF4y2Ba“泉”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表计算点,锚点,弹簧。gydF4y2Ba

パラメーターのgydF4y2Ba米gydF4y2Ba、gydF4y2BalgydF4y2Ba,およびgydF4y2BakgydF4y2Baの値を変更して,それらがどのように解に影響するかを確認します。質量の数を変更することもできます。コードは,入力されたデータから質量の数を抽出します。gydF4y2Ba

参考文献gydF4y2Ba

[1] Lobo, Miguel Sousa, Lieven Vandenberghe, Stephen Boyd, Hervé Lebret。“二阶锥规划的应用”。gydF4y2Ba线性代数及其应用gydF4y2Ba284年,没有。1 - 3(1998年11月):193 - 228。gydF4y2Bahttps://doi.org/10.1016/s0024 - 3795 (98) 10032 - 0gydF4y2Ba.gydF4y2Ba

参考gydF4y2Ba

|gydF4y2Ba

関連するトピックgydF4y2Ba