Я хочу решить переопределенную систему вида Ax=b
где A
это (m x n)
матрица (с m>n
), b
это (m)
вектор и x
вектор неизвестных. Я хочу также связать решение с lb
а также ub
,
Предоставление следующей программы:
(QP) свести к минимуму transpose(x).D.x+transpose(c).x+c0
при условии Ax⋛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 <= x <= u
тогда действительно вы получите квадратичную программу:
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
быть половина A'*A
(A'
средства A transposed
):
D = 1/2*A'*A
и вектор c
удовлетворить
c' = -b'*A => c = -A'*b
Так что ваш подход не верен, но он был близок!
Других решений пока нет …