一般来说(实数范围内),正定矩阵必是对称矩阵,但对称矩阵不一定就是正定矩阵(主子式也必须全为正)。
一个 n×nn\times nn×n 的实对阵矩阵 SnS^nSn 为半正定矩阵,当且仅当其对所有的非零向量 zzz,都满足:
zTSnz≥0z^TS^nz\geq 0zTSnz≥0
实对称矩阵 SnS^nSn 的维数为 n(n+1)/2n(n+1)/2n(n+1)/2, 因为它有 n(n+1)/2n(n+1)/2n(n+1)/2 个变量(就是矩阵上三角中的元素)(tr(zTSnz)=zTSnztr(z^TS^nz)=z^TS^nztr(zTSnz)=zTSnz)
用 S+nS^n_+S+n 表示半正定矩阵,S++nS^n_{++}S++n 表示正定矩阵。凸优化书中的表示:
S+n={X∈Sn∣X⪰0}S++n={X∈Sn∣X≻0}S^n_+=\{X\in S^n\mid X\succeq 0\}\\
S^n_{++}=\{X\in S^n\mid X\succ 0\}S+n={X∈Sn∣X⪰0}S++n={X∈Sn∣X≻0}
对于任意实数矩阵 XXX,XTXX^TXXTX 为半正定矩阵;半正定矩阵对角线上的元素都大于等于零。
1. 半正定矩阵都可以三角分解( Cholesky 分解)
S+n=LLTS^n_+=LL^TS+n=LLT
其中 LLL 是一个下三角矩阵,并且对角线上全是正实数
2. 任意矩阵与其转置的乘积 AATAA^TAAT 总是半正定矩阵
xTAATx=(ATx)TATx=ATx⋅ATx≥0x^TAA^Tx=(A^Tx)^TA^Tx=A^Tx\cdot A^Tx\geq 0xTAATx=(ATx)TATx=ATx⋅ATx≥0
一个一维向量自己的内积总是大于等于零的
3. 特征根全部非负
这个证明要用到对角矩阵可对角化的性质,对于任意一个对角矩阵 AAA,一定存在一个正交矩阵 QQQ,以及对角线矩阵 ∧\land∧,使得
A=QT∧QA=Q^T\land QA=QT∧Q
xTAx=xTQT∧Qx=(xQ)T∧(xQ) \begin{aligned} x^T Ax&=x^TQ^T\land Qx\\ &=(xQ)^T\land (xQ) \end{aligned} xTAx=xTQT∧Qx=(xQ)T∧(xQ)
令 y=xQy=xQy=xQ,显然 yyy 是一个列向量,则(令 ∧\land∧ 中的对角线为特征根):
xTAx=yT∧y=∑λiyi2 \begin{aligned} x^T Ax&=y^T\land y\\ &=\sum\lambda_iy_i^2 \end{aligned} xTAx=yT∧y=∑λiyi2
就能证明了。
4. 主子式非零
5. 半正定矩阵是一个凸锥
半正定矩阵实际是给出了几个约束条件的函数
例如
X=[xyyz]∈S+nX=\left[\begin{array}{cc}
x & y\\
y& z
\end{array}\right]\in S^n_+X=[xyyz]∈S+n
等价于下面三个约束条件:
x≥0,z≥0,xz−y2≥0x\geq 0, z\geq 0, xz-y^2\geq 0x≥0,z≥0,xz−y2≥0
因为对任意两点 AAA, BBB ∈S+n\in S^n_+∈S+n 以及任意 θ1,θ2>0\theta_1, \theta_2>0θ1,θ2>0,都有
zT(θ1A+θ2B)z=θ1zTAz+θ2zTBz≥0z^T(\theta_1 A+\theta_2 B)z=\theta_1z^TAz+\theta_2z^TBz\geq 0zT(θ1A+θ2B)z=θ1zTAz+θ2zTBz≥0
所以 θ1A+θ2B∈S+n\theta_1 A+\theta_2 B\in S^n_+θ1A+θ2B∈S+n
可以理解为对任意两个点 A,BA, BA,B, θ1A+θ2B\theta_1 A+\theta_2 Bθ1A+θ2B 仍然满足那些约束条件(可以举两个点 (x1,y1,z1)(x_1, y_1, z_1)(x1,y1,z1), (x2,y2,z2)(x_2, y_2, z_2)(x2,y2,z2) 推出来)。
上面三个约束条件生成的图像如下:
function DefiniteCone
ezmesh(@(x,z)sqrt(x.*z),[0,1],[0,1])
hold on
ezmesh(@(x,z)-sqrt(x.*z),[0,1],[0,1])
xlabel('x'); ylabel('z'); zlabel('y')
title('y^2=xz');
view([53,26]);
end
从图中可见该正定矩阵是一个凸锥。(画图时用除法时生成的图像很怪,因此只能用平方根了)