0

この目的関数を考える:二次プログラムの処方:Matlabの

最小化:いくつかの等式と不等式

f = (Ax + By)' * G * (Ax + By) 

対象。

ここで、xおよびyはそれぞれ、pおよびq要素の実数値ベクトル(決定変数)です。サイズm * pA,m * qB、Gはサイズm * mの対称マトリックスである。

私の質問は、v' * G * vという形でfを書いて、quadprogで簡単に使用できるようにすることです。つまり、A、B、Gをどのように組み合わせるのですか?

+2

は 'F'の形態で既に' V」* G *のv'、 'V =アックス+ By' ... – Wolfie

+0

はい、私はv = Ax + Byを1つのベクトルとして表現し、2つのベクトルxとyを表現する必要はありません。 –

+1

したがって、 'v = A * x + B * y'とタイプしますか? – Wolfie

答えて

0

これは不完全に指定されたようです!

何らかの理由で、2つの可変コンポーネントの観点からモデルを作成すると思われます。今、あなたは彼らがお互いにやりとりする方法を指定しませんでした。

ほとんどのオプティマイザは1つの可変ベクトルで動作するため、連結する必要があります。

あなたがGを示さなかったので、私はのはHそれを呼びましょう、あなたはxyのための1のための1 Gを得たと仮定しています。

(備考:!Matlabのユーザーではない。当然の例-構文を取ることはありません)quadratic-に関しては、xとyの独立を仮定し

  • z = [x y]
  • P = blkdiag(G,H)
    • 期間
    • 用語等全くx0*y1ない
  • 解く:z` P z

例えば:

x = [x0 x1 x2] 
y = [y0 y1] 
G = [6 2 1; 2 5 2; 1 2 4] 
H = [8 2; 2 10] 

# G 
6 2 1 
2 5 2 
1 2 4 

# H 
8 2 
2 8 

z = [x0 x1 x2 y0 y1] 
P = [6 2 1 0 0; 2 5 2 0 0; 1 2 4 0 0; 0 0 0 8 2; 0 0 0 2 8] 

# P 
6 2 1 0 0 
2 5 2 0 0 
1 2 4 0 0 
0 0 0 8 2 
0 0 0 2 8