このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。gydF4y2Ba
この例では2つの固定点からぶら下がっているばね質量系の平衡位置を見つける方法を示します。ばねには区分線形張力がかかります。系は2つの次元のgydF4y2Ba 個の質量で構成されます。質量gydF4y2Ba はばねgydF4y2Ba とばねgydF4y2Ba に接続されます。ばねgydF4y2Ba とばねgydF4y2Ba は別々の固定点に接続されます。この場合,ばねgydF4y2Ba の0力長さは正の長さgydF4y2Ba で,ばねは長さgydF4y2Ba に伸びたときに力gydF4y2Ba を発生させます。問題は,質量の最小位置エネルギー構成を見つけることです。ここで,位置エネルギーは、重力と非線形ばねの伸びから生じます。平衡は、最小エネルギー構成で実現します。
この図は2つの固定点からつるされている5つのばねと4つの質量を示しています。gydF4y2Ba
高さgydF4y2Ba における質量gydF4y2Ba の位置エネルギーはgydF4y2Ba です。ここで,gydF4y2Ba は地球上の重力定数です。また,長さgydF4y2Ba に伸びた,ばね定数gydF4y2Ba の理想的な線形ばねの位置エネルギーはgydF4y2Ba です。現在のモデルは,ばねが理想的ではありませんが,非ゼロの静止長gydF4y2Ba をもちます。gydF4y2Ba
この例の数学的基礎は,Lobo,范登堡,博伊德およびLebretgydF4y2Ba[1]gydF4y2Baにあります。この例の問題ベースのバージョンについては,gydF4y2Ba錐計画法を使用した区分線形ばね質量系のエネルギーの最小化,問題ベースgydF4y2Baを参照してください。gydF4y2Ba
質量gydF4y2Ba の位置は,水平座標がgydF4y2Ba で,垂直座標がgydF4y2Ba のgydF4y2Ba です。質量gydF4y2Ba は,gydF4y2Ba の重力による位置エネルギーをもちます。ばねgydF4y2Ba の位置エネルギーはgydF4y2Ba です。ここで,gydF4y2Ba は,質量gydF4y2Ba と質量gydF4y2Ba 間のばねの長さです。固定点1を質量0の位置として,固定2点を質量gydF4y2Ba の位置としてとります。前述のエネルギー計算は,ばねgydF4y2Ba の位置エネルギーが以下であることを示しています。gydF4y2Ba
.gydF4y2Ba
この位置エネルギー問題を2次錐問題として再定式化するには,LobogydF4y2Ba[1]gydF4y2Baで説明されているように,いくつかの新しい変数の導入が必要です。項gydF4y2Ba の平方根に等しい変数gydF4y2Ba を作成します。gydF4y2Ba
を単位列ベクトルgydF4y2Ba とします。すると,gydF4y2Ba になります。問題は次のようになります。gydF4y2Ba
(1)gydF4y2Ba
ここで,gydF4y2Ba を,gydF4y2Ba の以前の方程式で与えるのではなく,自由ベクトル変数と見なします。gydF4y2Ba とgydF4y2Ba の関係を次の錐制約の新しいセットに組み込みます。gydF4y2Ba
(2)gydF4y2Ba
目的関数は,まだ,gydF4y2BaconeproggydF4y2Ba
に規定されているように,変数内で線形ではありません。新しいスカラー変数gydF4y2Ba
を導入します。不等式gydF4y2Ba
は次の不等式と同等であることに注意してください。gydF4y2Ba
(3)。gydF4y2Ba
ここで,問題は,次を最小化することです。gydF4y2Ba
(4)gydF4y2Ba
これは,(2)に記載されているgydF4y2Ba とgydF4y2Ba に対する錐制約と追加の錐制約(3)の影響を受けます。錐制約(3)はgydF4y2Ba であることを確保します。したがって,問題(4)は問題(1)と同等です。gydF4y2Ba
問題(4)の目的関数と錐制約はgydF4y2BaconeproggydF4y2Ba
を使用した解法に適しています。gydF4y2Ba
6つのばね制約gydF4y2Ba 6つの長さ制約gydF4y2Ba 5,およびつの質量gydF4y2Ba を定義します。gydF4y2Ba
k = 40 * (1:6);L = [1 1/2 1 2 1/2];M = [2 1 3 2 1];gydF4y2Ba
地球gydF4y2Ba に対する近似重力定数を定義します。gydF4y2Ba
g = 9.807;gydF4y2Ba
最適化用の変数は,gydF4y2Ba
ベクトルの10個の成分,gydF4y2Ba
ベクトルの6つの成分,およびgydF4y2Ba
変数です。gydF4y2BavgydF4y2Ba
をこのすべての変数を含むベクトルとします。gydF4y2Ba
(v (1), (2))gydF4y2Ba
は2次元変数gydF4y2Ba
に対応します。gydF4y2Ba
(v (3), (4))gydF4y2Ba
は2次元変数gydF4y2Ba
に対応します。gydF4y2Ba
(v (5), (6)]gydF4y2Ba
は2次元変数gydF4y2Ba
に対応します。gydF4y2Ba
(v(7)、(8)]gydF4y2Ba
は2次元変数gydF4y2Ba
に対応します。gydF4y2Ba
(v(9)、(10))gydF4y2Ba
は2次元変数gydF4y2Ba
に対応します。gydF4y2Ba
[v (11): v (16))gydF4y2Ba
は6次元ベクトルgydF4y2Ba
に対応します。gydF4y2Ba
v (17)gydF4y2Ba
はスカラー変数gydF4y2Ba
に対応します。gydF4y2Ba
これらの変数を使用して,対応する目的関数ベクトルgydF4y2BafgydF4y2Ba
を作成します。gydF4y2Ba
f = 0(大小(m));f = [f, g * m];f = f (:);f = [f; 0(长度(k) + 1, - 1));f(结束)= 1;gydF4y2Ba
次の質量(2)間のばねに相当する錐制約を作成します。gydF4y2Ba
.gydF4y2Ba
coneproggydF4y2Ba
ソルバーは,次の形式の変数ベクトルgydF4y2Ba
の錐制約を使用します。gydF4y2Ba
.gydF4y2Ba
次のコードでは,gydF4y2BaAscgydF4y2Ba
行列がgydF4y2Ba二元同步通信gydF4y2Ba
=gydF4y2Ba(0, 0)gydF4y2Ba
の項gydF4y2Ba
を表しています。錐変数gydF4y2BadscgydF4y2Ba
=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 変数に相当する錐制約(3)を作成します。gydF4y2Ba
これは,行列gydF4y2BaAscgydF4y2Ba
を作成することによって行います。この行列は,gydF4y2BavgydF4y2Ba
ベクトルを乗算すると,ベクトルgydF4y2Ba
が得られます。gydF4y2Ba二元同步通信gydF4y2Ba
ベクトルは項gydF4y2Ba
内の定数1に対応します。gydF4y2BadscgydF4y2Ba
ベクトルは,gydF4y2BavgydF4y2Ba
を乗算すると,gydF4y2Ba
を返します。また,gydF4y2BaγgydF4y2Ba
=gydF4y2Ba
です。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 変数とgydF4y2Ba 変数に対応する下限を作成します。gydF4y2Ba
磅=无穷(大小(f));磅(数据库+ 1:结束)= 0;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
パラメーターのgydF4y2Ba米gydF4y2Ba
、gydF4y2BalgydF4y2Ba
,およびgydF4y2BakgydF4y2Ba
の値を変更して,それらがどのように解に影響するかを確認します。質量の数を変更することもできます。コードは,入力されたデータから質量の数を抽出します。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
coneproggydF4y2Ba
|gydF4y2BasecondorderconegydF4y2Ba