cyfile / Matlab-base-toolbox

本人使用Matlab基础工具箱所编写的各种代码
1 stars 0 forks source link

对称阵与正定矩阵 #18

Open 213cy opened 7 years ago

213cy commented 7 years ago

所有讨论仅针对对称阵(A是对称阵)

对称阵的相似阵(对角化)和合同阵

但若A 为对称阵则A可以对角化, 即A=V*D*inv(V) 其中V可以为正交阵,D是A特征值构成的对角阵, 也即A一定有n个线性无关的特征向量 特征值是否相同,是否不为0.均无关紧要.A=E*[E,0;0,0]*E

当已知A可以对角化的前提下(这虽然是对称阵必有属性但不易说明),下面来说明V可以是正交阵: 已有: A=V*D*inv(V)
A'=inv(V)'*D*V'=inv(V')*D*V'
V*D*inv(V) = inv(V')*D*V'
V'*V*D=D*V'*V
因为V'*V 和 对角阵D可以交换.所以V'*V也是对角阵{不然的话D分别左乘(行加权)右乘(列加权)矩阵V'*V时非对角线上的元素将被乘以不同的特征值,它们就不可能相同,可是可以有相同特征值??}
因为特征向量的长度可以随意变化,所以可以将V中每个向量长度都化为1,
即有对称阵P
使得A=P*D*inv(P) =P*D*P'

正定阵

对于任意矩阵B若 x'*B*x>0 则B为正定阵 矩阵正定的几何意义:Ax未将x 旋转超过90° 两个用定义判定正定的例子: A是任意矩阵(可以是长方形)则,A'*A半正定 (A里的向量可能都和x垂直,即A的秩低于x的维数) A正定,B正定则 A+B 正定

任意矩阵的相似变换不改变矩阵的(正)定性(因为特征值不变)? 任意矩阵的可逆合同变换不改变矩阵的(正)定性(因为主元不变)?

对称阵正定性的判定

因为对一任意的矩阵B均可以将其化为对称阵而不改变x'Bx的表达式 即改变B形式的同时不改变其正定性 所以在研究正定性的时候,通常研究B对应的对称阵A的正定性 对于所有对称阵A,我们有特殊的技巧判断其正定性

  1. A的所有特征值全都大于0 A的各阶主子式全都大于0
    A的主元全都大于0
    A为正定矩阵 再次强调只有在A是对称阵时这4个条件可以互推
  2. A的所有特征值小于0 A的奇数阶主子式小于0偶数阶主子式大于0 A的主元全都小于0 A为负定矩阵 再次强调只有在A是对称阵时这4个条件可以互推
213cy commented 7 years ago

正定性和特征值的关系

对称阵A的特征值全大于0,则A正定. 对称阵A的特征值是通过正交变化化二次型为标准型得到的平方项系数 特征值都大于0的A,对x进行映射结果(Ax)未将x 旋转超过90°

  1. 几何说明 下面通过Ax未将x 旋转超过90°,进行说明 因为A是对称阵,所以A总与实对角阵D相似,即存在特征值分解A = P*D*inv(P) 所以Ax对x的改变可以先将x通过P映射一次,通过D的加权后,在通过inv(P) 映射到原空间中. 即通过A的特征向量的线性组合表示x,在通过D的加权后用特征向量的线性组合表示Ax A的特征值可以分为两组,
    一组向量和x的夹角小于90°,它们在x方向上的投影大于0,为正值,再经正值的特征值加权后形成的和向量,与x的夹角一定也小于90°.
    另一组向量和x的夹角大于90°,它们在x方向上的投影小于0,为负值,再经正值的特征值加权后形成的和向量,与x的夹角一定也小于90°.
    两组向量加权后的和向量,与x的夹角一定也小于90°.
    即Ax 的和x的夹角小于90°. 即 A正定 (x'Ax>0)

  2. 代数说明 下面通过正交变化化二次型为标准型进行说明 因为A是对称阵,所以A总与实对角阵D相似,即存在特征值分解A = V*D*inv(V) 同时可以找到正交阵P使得 A = P*D*P',即 A与对角线元素都大于0的对角阵合同. 可逆的合同变换不会改变矩阵的(正)定性.即 x通过正交变化P',将x'Ax化为了新向量 P'x 的以特征值为系数的二次型的标准型 (P'x)'*D*(P'x) 可以看出对称阵A的特征值是通过正交变化化二次型为标准型得到的平方项系数 因为D中元素都大于0所以A正定

对称阵A的所有特征值大于0 ⇔ A为正定矩阵 对称阵A的所有特征值小于0 ⇔ A为负定矩阵

213cy commented 7 years ago

正定性和主子式的关系(借助正定阵的主元特性进行说明)

只保留A的前m行和前m列,得到的新矩阵叫A的m阶主子矩阵,其行列式叫主子式.

以前我有一个错误的思路说明这个问题: 利用矩阵A的特征值分解,通过分块矩阵的方式表示矩阵的主子阵, 再利用A的特征值,表示主子式的值

因为有 A=P*D*inv(P) 去掉A的第k行和第k列,相当于去掉P的第k行的同时去掉D的第k行,第k列.
进一步对A同时去掉行号列号相同的多行多列,相当于对V,P做相应的销行销列变化, 设新的A,D,P,分别表示为B,C,W 则有 B=W*C*W'. 进而有 |B|=|W|*|C|*|W'|=|W|^2*|C| 上式说明A的剩余矩阵B的行列式的符号完全和D中剩余特征值的积(|C|)的符号相同.

错误原因:实际上无法通过分块矩阵表示主子阵


正确说明思路 利用矩阵A的主元分解,同样利用分块的方式表示矩阵的主子阵. 因为 x'Ax = x'C*BAB'*C'x =x'CFC'x,中的B,C都是三角阵, 在取B,C的主子阵后,进行运算可以正确得到A的主子阵. 即,通过可以通过对主元分解的各个矩阵进行分块从而正确表示A的主子阵 再利用主元值表示主子式的值.即可说明主子式和矩阵正定的关系. 但是直接这样说明比较麻烦.

可以直接应用主元公式(矩阵A的第n个主元为相邻的主子式之商 |An|/|An-1|) 因为正定阵主元都大于0, 所以 A0, |An|/|An-1| (||是行列式,不是绝对值)都大于0 即各阶主子式 A0 到 |An| 都大于0 反之 如果各阶主子式 A0 到 |An| 都大于0 也可以得到 A0, |An|/|An-1| (||是行列式,不是绝对值)都大于0 即 A的各个主元也都大于0 ,A是正定的

A的各阶主子式大于0 ⇔ A为正定矩阵 A的奇数阶主子式小于0,偶数阶主子式大于0 A的所有特征值小于0⇔ A为负定矩阵


其他思路

213cy commented 7 years ago

正定性和矩阵主元的关系

(矩阵A的主元是指通过对角线全为1的下三角变换阵左乘A 将A化为上三角矩阵后,得到的新矩阵的对角线元素.)

一定存在一种消元变换B(对角线全为1的下三角变换阵) 使得用B左乘将A时,可以将A变换为上三角矩阵BA. 则此时BA的对角线为矩阵A的主元. 将BA右乘B',因为B'为上三角阵,所以BAB'的第n列仅是BA前n列的线性组合, 而BA为上三角阵,所以右乘B'的操作不改变BA的对角线元素, 即BA和BAB' 有着相同的对角线元素 又因为 (BAB')'=B'AB,所以BAB'为对称阵,即BAB' 为对角线为A的主元的对角阵. 因为B是对角线全为1的下三角矩阵,所以B可逆,设其逆为inv(B)=C 从而有 x'Ax = x'C*BAB'*C'x =x'CFC'x 即 A与对角线元素都大于0的对角阵F合同. 可逆的合同变换不会改变矩阵的(正)定性.即 即 x通过变化C' ,将x'Ax化为了新向量 C'x 的以主元为系数的二次型的标准型 (C'x)'*F*(C'x) 可以看出对称阵A的主元是通过配方法化二次型为标准型得到的平方项系数 因为F中元素都大于0所以A正定

对称阵A的所有主元大于0 ⇔ A为正定矩阵 对称阵A的所有主元小于0 ⇔ A为负定矩阵

213cy commented 7 years ago

二次型f(x)=x'*A*x的几何意义

A是正定阵,有x'*A*x>0 则,二次型在x=0向量时,取得最小值0. 二次型的图像在length(x)+1维的空间中形成一个顶点在原点的碗型曲面

  1. 用垂直于f的平面切割该曲面,(令f等于常数) 得到椭圆(椭球面,超椭球面) 特征向量指示轴向,特征值指示轴长比例(某个方向等于曲线的梯度方向 kx=梯度(x'*A*x)=2A*x
  2. 用平行于f的平面切割该曲面,(限定 rand(n)*x=k) 得到的曲线是一个开口向上(f正方向)的抛物线 如果该曲面过原点,这条抛物线在原点取得最小值

如果A半正定 令x'*A*x=0 可解得一些过原点的直线(使该二次型等0) A=[a,b;b,c]=[2,6;6,18]. 此时有a>0,b^2-ac=0 则f=2x^2+12xy+18y^2=ax^2+2bxy+cy^2 对于任意y=常数,f(x)的判别式总为 (4b^2-4ac)|y|=0 故无论y取何值,f(x)总在x=0取得最小值0

对于更一般的A, 二次型的图像在length(x)+1维的空间中形成一个鞍型曲面 平行于f的平面切割得到抛物线,但是有的开口向上,有的向下 (负值特征值对应的特征向量方向?)