如何改造二次规划objective函数以适应matlab quadprog?
How to reform the quadratic program objective function to fit matlab quadprog?
我有一个关于 objective 函数的二次问题
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
是优化变量,S
和W
是正定义权重矩阵。
A*f-b
是矩阵函数
A*f=b
我的问题是如何改造二次objective函数以适应matlab求解器quadprog
,具有一般形式
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
对吗?
这是处理此问题的一种方法。
让我稍微重写一下你的问题
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 ]
我有一个关于 objective 函数的二次问题
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
是优化变量,S
和W
是正定义权重矩阵。
A*f-b
是矩阵函数
A*f=b
我的问题是如何改造二次objective函数以适应matlab求解器quadprog
,具有一般形式
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
对吗?
这是处理此问题的一种方法。
让我稍微重写一下你的问题
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 ]