У меня вопрос квадратичной задачи с целевой функцией
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
мой вопрос - как преобразовать квадратичную целевую функцию, чтобы она соответствовала решателю 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
это правильно?