0

我有一个关于目标函数的二次问题

f=arg min(A*f-b)^T*S*(A*f-b)+alpha*f^T*W*f
s.t.  d_low < C*f < d_up

其中f是优化变量,SW正定义权重矩阵。 A*f-b是一个矩阵函数

A*f=b

我的问题是如何quadprog用一般形式改造二次目标函数以适应 matlab 求解器

min 0.5*x^T*H*x+f^T*x

你能给我一个提示或例子吗,谢谢。

/===========================================/

我问了一个同学,他告诉我这个项目(A*f-b)^T*S*(A*f-b)可以扩展为

(A*f-b)^T*S*(A*f-b)=(f^T*A^T-b^T)(S*A*f-S*b)=f^T*A^T*S*A*f-f^T*A^T*S*b-b^T*S*A*f+b^T*S*b=f^T*A^T*S*A*f-2*b^T*S*A*f+b^T*S*b

这样对吗?

4

1 回答 1

0

这是处理此问题的一种方法。

让我稍微重写你的问题

f = min (Af-b)'S(Af-b) + α f'Wf
s.t.  d_low <= Cf <= d_up

这可以进一步重写为:

f = min y'Sy + α f'Wf
s.t.  d_low <= Cf <= d_up
      y = Af-b

我添加了一个变量y和一个线性等式约束。

所以

H = [ 2S    0  ]
    [ 0    2αW ]
于 2018-11-17T14:00:45.623 回答