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