我想在 MATLAB 中解决以下复合优化问题:
min (Ax-a), min (Bx-b), min (Cx-c)
服从
Dx=d
和 x>=0
,其中 a,b,c,d
是向量,A,B,C,D
是矩阵,所有这些都已给出。
首先我不知道上面的问题如何设置,我应该写吗
min(Ax-a)^2+(Bx-b)^2+(Cx-c)^2, s.t. Dx=d and x>=0
这是此类问题的最佳表述吗?第二个问题是,我应该使用quadprog还是MATLAB中还有其他更合适的例程?
确实:
$$ 种族{1}{2} {\left|旧符号{A} 旧符号{x} - 旧符号{a} 右|} + RAC{1}{2} {\左|旧符号{B} 旧符号{x} - 旧符号{b} 右|} = rac{1}{2} {\左| egin{bmatrix} oldsymbol{A} \ oldsymbol{B} nd{bmatrix} oldsymbol{x} - egin{bmatrix} oldsymbol{a} \ oldsymbol{b} nd{bmatrix} 右|} = rac{1}{2} {\左|旧符号{P} 旧符号{x} - 旧符号{q} 右|} $$
如果将此应用于所有组件,您将留下具有线性等式和非负约束的线性最小二乘法。大多数二次规划求解器能够解决哪些问题(请参阅 MATLAB 的
quadprog()
)。