6.12 谱分解

计算方法

  单纯矩阵normal matrix指的是符号 A T A = A A T A^TA=AA^T ATA=AAT的矩阵,他们的特征值互异。此外,单纯矩阵还有个特点,他们的特征空间彼此正交。
  对于单纯矩阵,存在以下的谱定理Spectral theorem

单纯矩阵可以分解为以下矩阵相加的形式:
A = ∑ i = 1 n λ i v i v i H A=\sum_{i=1}^n\lambda_iv_iv_i^H A=i=1nλiviviH
公式中, v i v_i vi是特征值 λ i \lambda_i λi对应的单位特征向量。

  把矩阵分解为这种形式就是谱分解Spectral Decompostion。所以谱分解挺容易的,求出特征值和特征向量就行了。
  以下是一个矩阵谱分解的例子:
( 3 0 0 0 0 2 0 0 0 0 − 2 0 0 0 0 − 1 ) = 3 ( 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) + 2 ( 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 ) − 2 ( 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 ) − ( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 ) \begin{pmatrix}3 & 0 & 0 & 0\\ 0 & 2 & 0 & 0\\ 0 & 0 & -2 & 0\\ 0 & 0 & 0 & -1\\ \end{pmatrix}\\ = 3 \begin{pmatrix}1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ \end{pmatrix}+2 \begin{pmatrix}0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ \end{pmatrix} -2 \begin{pmatrix}0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0\\ \end{pmatrix} -\begin{pmatrix}0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1\\ \end{pmatrix} 3000020000200001 =3 1000000000000000 +2 0000010000000000 2 0000000000100000 0000000000000001

代码实现

  特征值可以用海森堡法求解,特征向量可以用齐次方程组求解的方法求得,最后注意单位化就行了。以下是python代码:

    # 谱分解
    def spectral_decomposition(self):
        # 求特征值
        from com.youngthing.mathalgorithm.linearalgebra.hessenberg import Matrix as M
        eigen_values = M(self.__vectors).eigen_values()
        spectral_matrices = []
        for i, e in enumerate(eigen_values):
            # 单纯矩阵的几何重数为1
            eigen_vector = self.eigen_vector(e)[0]

            vector_len = Matrix.vector_len(eigen_vector)
            eigen_vector = matrix_utils.mul_num(eigen_vector, 1 / vector_len)
            x = Matrix([eigen_vector])
            spectral_matrices.append(x * x.transpose_matrix())
        return eigen_values, spectral_matrices
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒过来摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值