为什么说半正定矩阵是凸锥

一般来说(实数范围内),正定矩阵必是对称矩阵。
一个 n × n 的实对阵矩阵 S n 为半正定矩阵,当且仅当其对所有的非零向量 z ,都满足:

z T S n z 0

实对称矩阵 S n 的维数为 n ( n + 1 ) / 2 , 因为它有 n ( n + 1 ) / 2 个变量(就是矩阵上三角中的元素)

S + n 表示半正定矩阵, S + + n 表示正定矩阵。凸优化书中的表示:

S + n = { X S n X 0 } S + + n = { X S n X 0 }

半正定矩阵实际是给出了几个约束条件的函数,例如

X = [ x y y z ] S + n

等价于下面三个约束条件
x 0 , z 0 , x z y 2 0

半正定矩阵是一个凸锥,因为对任意两点 A , B S + n 以及任意 θ 1 , θ 2 > 0 ,都有

z T ( θ 1 A + θ 2 B ) z = θ 1 z T A z + θ 2 z T B z 0

所以 θ 1 A + θ 2 B S + n

可以理解为对任意两个点 A , B θ 1 A + θ 2 B 仍然满足那些约束条件(可以举两个点 ( x 1 , y 1 , z 1 ) , ( x 2 , y 2 , z 2 ) 推出来)。

上面三个约束条件生成的图像如下:

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

这里写图片描述
从图中可见该正定矩阵是一个凸锥。(画图时用除法时生成的图像很怪,因此只能用平方根了)

猜你喜欢

转载自blog.csdn.net/robert_chen1988/article/details/80479134