矩阵的负1/2次幂是什么
图中是对角矩阵的(-1/2)次幂,对角矩阵的对角线元素都大于零。
对角矩阵的(-1/2)次幂还是对角矩阵,其对角线元素为原矩阵对角线元素的(-1/2)次幂。
比如,A = diag(4, 9)【2阶对角矩阵,对角线元素分别为4和9】
则,A^(-1/2) = diag(1/2, 1/3). 【A的(-1/2)次幂还是一个对角矩阵,其对角线元素分别为1/2和1/3】。
矩阵多项式(matrical polynomial)是一种特殊矩阵。设A0,A1,…,As是数域P上的m×n矩阵,λ是一个文字,则A0λs+A1λs-1+…+As-1λ+As称为矩阵多项式。矩阵多项式涉及有矩阵多项式的运算、矩阵多项式的右(左)除。
2024-04-02 广告
这样,对角矩阵的(-1/2)次幂还是对角矩阵,其对角线元素为原矩阵对角线元素的(-1/2)次幂。
比如,A = diag(4, 9)【2阶对角矩阵,对角线元素分别为4和9】
则,A^(-1/2) = diag(1/2, 1/3). 【A的(-1/2)次幂还是一个对角矩阵,其对角线元素分别为1/2和1/3】
假设A为正定矩阵,则存在正交矩阵Q和对角矩阵D,使得(Q^T)AQ=D,也即A=QD(Q^T)。因为A为正定矩阵,其特征值全部为正数,因此D的主对角元素都是正数,因此可以定义D的1/2,即将D的主对角元全部开方,所得对角矩阵记为F,F即为D的1/2,注意F为对角矩阵,因此也是对称矩阵,且D=F*F。此时,在A=QD(Q^T)=QFF(Q^T)=QF(Q^T)QF(Q^T)=[QF(Q^T)] [QF(Q^T)],若记G=[QF(Q^T)],则A=G*G,因此G即为A的1/2方。G的逆也即为A的-1/2方,所以A的-1/2方为[QF(Q^T)]^(-1)=Q*F^(-1)*(Q^T),其中F^(-1)即为将D的主对角元开方后取导数所得的对角矩阵。
python实现
import numpy as np
from numpy.linalg import eig, inv
def spd(A):#输入对称正定矩阵A
eig_val, eig_vec = eig(A) #特征分解
eig_diag = np.diag(1/(eig_val**0.5)) #特征值开方取倒数对角化
B = np.dot(np.dot(eig_vec, eig_diag), inv(eig_vec)) #inv为求逆
return B #返回A的-1/2次幂