0

이 주어 목적 함수 :이차 프로그램 제형 : matlab에

최소화 : 일부 등식 및 부등식에

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

피사체.

여기서 xy은 각각 pq 요소의 실수 벡터 (결정 변수)입니다. A 크기 m * p, B 크기 m * q, G는 크기가 m * m 인 대칭 행렬입니다.

제 질문은 v' * G * v 형태로 f을 쓰는 방법입니다. 따라서 쿼드prog에서 쉽게 사용할 수 있습니다. 즉, A, B 및 G를 혼합하는 방법은 무엇입니까?

+2

는'f' 폼 이미 'V'* G *의 v''V = 도끼 + By' ... – Wolfie

+0

예,하지만 v = Ax + By를 단일 벡터로 나타내야합니다. 두 벡터 x와 y가 아닙니다. –

+1

그래서'v = A * x + B * y'를 입력 하시겠습니까? – Wolfie

답변

0

불완전하게 지정되었습니다!

어떤 이유로 든 두 가지 가변 구성 요소로 모델링하고 싶습니다. 이제 그들은 어떻게 상호 작용 하는지를 지정하지 않았습니다.

대부분의 최적화 도구가 하나의 가변 벡터에서 작동하므로 사용자의 변수 벡터를 연결해야합니다. 당신이 G을 보여주지 않았다으로

, 난의이 H을 부르 자, 당신이 y에 대한 x 하나 하나 G을 가지고 있으리라 믿고있어.

(비고! 매트랩 사용자가 아닌, 당연한 예 구문을 고려하지 않음) 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