C++ 用cgal二次规划求解超定系统
我想解一个超定系统的形式是C++ 用cgal二次规划求解超定系统,c++,cgal,quadratic-programming,C++,Cgal,Quadratic Programming,我想解一个超定系统的形式是Ax=b,其中A是(mxn)矩阵(带m>n),b是(m)向量,而x是未知向量。我还想用lb和ub绑定解决方案 提供以下程序: (QP)根据Ax最小化transpose(x).D.x+transpose(c).x+c0⋛b、 l≤x≤u 我想知道如何计算矩阵D和向量c。因为矩阵D必须是对称的,所以我把它定义为D=transpose(A).A和c作为c=-transpose(A).b。我的问题是:这种说法正确吗?如果没有,我应该如何定义D和c?解决一个超定系统Ax=b通常意
Ax=b
,其中A
是(mxn)
矩阵(带m>n
),b
是(m)
向量,而x
是未知向量。我还想用lb
和ub
绑定解决方案
提供以下程序:
(QP)根据Ax最小化transpose(x).D.x+transpose(c).x+c0
⋛b、 l≤x≤u
我想知道如何计算矩阵D和向量c。因为矩阵D必须是对称的,所以我把它定义为
D=transpose(A).A
和c
作为c=-transpose(A).b
。我的问题是:这种说法正确吗?如果没有,我应该如何定义D和c?解决一个超定系统Ax=b
通常意味着计算一个解决方案x
,它将误差的欧氏范数e(x)=|Ax-b |
。如果有形式为l的附加线性约束,“求解”一个超定系统Ax=b
通常意味着计算一个解x
,该解将误差e(x)=| | Ax-b |
的欧几里德范数最小化。如果你有额外的线性约束形式l,非常感谢Giorgos。非常感谢Giorgos。
min { 0.5*e(x)^2 } <=> min { 0.5*(Ax-b)'*(Ax-b) }
<=> min { 0.5*x'*A'*A*x -b'Ax + 0.5*b'b) }
<=> min { 0.5*x'*A'*A*x -b'Ax }
l <= x <= u
D = 1/2*A'*A
c' = -b'*A => c = -A'*b