如何解决Invalid quadratic form: product is complex

在cvx中,假设我们有一个复杂的正定矩阵A,但是明明就该是实数的二次型x^H*A*x,CVX非要说他是complex的,该怎么办?

一种原因是因为Matlab的精度问题,导致明明是正定的hermitian矩阵A被变成了非hermitian矩阵。一种简单的处理办法是对A进行修改:

A=1/2*(A+A')

强迫A变成hermitian矩阵,这时候再输入二次型xAx就不会报错了,并且这种修改带来的误差较小

猜你喜欢

转载自blog.csdn.net/jianti9962/article/details/120169570