zoukankan      html  css  js  c++  java
  • 求解矩阵特征值

    特征值的条件数

    Weilandt-Hoffman定理:设A与B是两个n阶正规矩阵,它们的特征值分别是li和mj,则存在一个排列p(n),使得

     $sqrt {sum_i left | pi(i)-lambda_i ight |^2}leqslant left | B-A ight |_F$

    Weilandt-Hoffman定理表明Hermite矩阵和正规矩阵的特征值是良态的,因此在此主要讨论非正规矩阵对扰动的敏感程度的数据标准。

    假定n阶方阵A的Jordan分解为Q-1AQ=J,p是J中最大块阶数,利用广义Bauer-Fike定理可证:

     $forall Ein C^{N imes N}left | QEQ^{-1} ight |_2leqslant 2^{1-p}Rightarrow $

     $forall muin(A+E)exists lambdain lambda(A) left | mu-lambda ight |leqslant 2^{1-frac{1}{p}}(left | Q ight |_2left | Q^{-1} ight |_2)^{frac{1}{p}}(left | E ight |_2)^{frac{1}{p}}$

    因此称v(A)为A的谱条件数,其中

    $ u(A)leqslant inf_{Q in D_A} left | Q ight |_2left | Q^{-1} ight |_2, D_A=left { Q in C^{n imes n} ight | Q^{-1}AQ=J }$

    v(A)是对全部特征值整体而言的,实际还需要针对每个特征值的条件数。

    设$lambda$是矩阵A的单特征值,x和y是A属于$lambda$的右,左特征向量,称$s(lambda)=|y^Tx|$是$lambda$ 的条件数。存在解析函数$lambda(varepsilon)$是$A+varepsilon E$的单特征值,有

     $left | lambda(varepsilon )-lambda ight |=left | lambda'(0)+O(varepsilon)^2  ight |  leqslant frac{left |varepsilon ight |}{s(lambda)}+O(varepsilon)^2$

    不变子空间的条件数

    对于特征向量的敏感性问题,利用函数论的某些结果,可以得到

    $(A+varepsilon E)x_i(varepsilon )=lambda_i(varepsilon )x_i(varepsilon )$

    $x_i(varepsilon )=x_i+varepsilon sum_{j eq i}frac{y_j^TEx_i}{(lambda_i-lambda_j)s(lambda_j)}x_j+O(varepsilon )^2$

    可以看出,当特征值分离不明显时,特征向量对扰动会十分敏感。但是如果把敏感的特征向量放在一起形成A的不变子空间,则可以是不敏感的。因此可以定义不变子空间的条件数,一般采用分离度的倒数。

    $sep(B,C)=inf_{left | P ight |_2=1}left | PB-CP ight |_2\,where\, Bin C^{l imes l},Cin C^{m imes m},Pin C^{m imes l}$

    QR算法

    QR算法是数值计算的重大进展之一,其基本迭代格式如下,

    $Q_mR_mLeftarrow A_{m-1},A_m Leftarrow R_mQ_m$

    为了理解这个算法,需要从特征值的乘幂法推广到正交迭代法。

    $y_kLeftarrow Au_{k-1},u_kLeftarrow frac{y_k}{left | y_k ight |}$

    乘幂法的几何意义是子空间的迭代过程,一般形式为:

    $Z_kLeftarrow AQ_{k-1},Q_kR_kLeftarrow Z_k$

    从此可以导出QR迭代算法。由于复共轭特征值的存在,设计一个实数域算法需要特别地改进这个格式,使得矩阵A逼近其实Schur标准形。

    为了节省运算量,需要把矩阵A转换成上Hessenberg形式,然后采用Givens变换来QR分解。同时为了提高收敛速度,对特征值进行位移。

     $H_1Leftarrow Q_0^TAQ_0,Q_kR_kLeftarrow H_k-mu I,H_{k+1}Leftarrow R_kQ_k+mu I$

    位移$mu$的选取应该靠近特征值,例如Wilkinson位移,即利用矩阵右下角的二阶子矩阵来计算特征值。

    $mu=alpha_n+delta-sign\,deltasqrt{delta^2+eta^2},delta=frac{alpha_{n-1}-alpha_n}{2}$,子矩阵为$egin{bmatrix} alpha_{n-1} & eta_{n-1} \ eta_{n-1} & alpha_n end{bmatrix}$

    为了避免对于复特征值引入复运算,需要进行双重步位移,确保得到实数矩阵H。实际算法中为了节省运算,只根据M的第一列来确定作用在矩阵H上的正交变换。

    $MLeftarrow H^2-sH+tI,QRLeftarrow M,H_2Leftarrow Q^THQ\, where\, s=mu_1+mu_2,t=mu_1mu_2$

    对称矩阵只有实特征值,因此只需要一步位移,而且其上Hessenberg矩阵为三对角形式,利用这一点可以进一步减少运算量。然而需要注意在迭代过程中保证矩阵的对称性,确保特征值保持为实数。

    $H=I-eta u u^T,HAH=A- uomega^T-omega u^T,omega=u-frac{1}{2}eta( u u)mu, u=eta A u$

    奇异值分解可从实对称矩阵ATA的Schur分解算法导出。然而计算实对称矩阵ATA容易引入比较大的误差,因此隐含矩阵ATA的Schur分解算法成为奇异值分解的稳定、有效的标准算法。对应于实对称矩阵的QR算法,三对角阵ATA隐含表示为二对角阵的乘积,带Wilkinson位移的对称QR算法也隐含表示为在二对角阵上的Givens变换。

    二对角化:$U_1^TAV_1=egin{bmatrix} B \ 0  end{bmatrix}$

    计算特征向量是求解特征值的附加问题,虽然可以在QR迭代中同时计算特征向量,但是利用反幂法更稳定、更有效,其基本迭代格式如下。

     $(A-mu I) u_k=z_{k-1}, z_k=frac{ u_k}{left | u_k ight |_2}$

  • 相关阅读:
    UML
    Jenkins(Jenkins的安装配置)
    SpringCloud:Config配置中心
    IDEA将项目上传到GitHub
    JS—高阶函数
    项目中git操作
    互联网概述
    ESLint的extends
    vue3 + TS + eslint 实现代码格式化以及代码规范提示
    vue3基础使用
  • 原文地址:https://www.cnblogs.com/liuyunfeng/p/7994552.html
Copyright © 2011-2022 走看看