求解矩阵特征值

特征值的条件数

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

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

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

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

$\forall E\in C^{N\times N}\left \| QEQ^{-1} \right \|_2\leqslant 2^{1-p}\Rightarrow $

$\forall \mu\in(A+E)\exists \lambda\in \lambda(A) \left | \mu-\lambda \right |\leqslant 2^{1-\frac{1}{p}}(\left \| Q \right \|_2\left \| Q^{-1} \right \|_2)^{\frac{1}{p}}(\left \| E \right \|_2)^{\frac{1}{p}}$

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

$\nu(A)\leqslant \inf_{Q \in D_A} \left \| Q \right \|_2\left \| Q^{-1} \right \|_2, D_A=\left \{ Q \in C^{n \times n}\right | 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\right |=\left \| \lambda‘(0)+O(\varepsilon)^2  \right \|  \leqslant \frac{\left |\varepsilon\right |}{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\neq 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 \right \|_2=1}\left \| PB-CP \right \|_2\,where\, B\in C^{l \times l},C\in C^{m \times m},P\in C^{m \times l}$

QR算法

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

$Q_mR_m\Leftarrow A_{m-1},A_m \Leftarrow R_mQ_m$

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

$y_k\Leftarrow Au_{k-1},u_k\Leftarrow \frac{y_k}{\left \| y_k \right \|}$

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

$Z_k\Leftarrow AQ_{k-1},Q_kR_k\Leftarrow Z_k$

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

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

$H_1\Leftarrow Q_0^TAQ_0,Q_kR_k\Leftarrow H_k-\mu I,H_{k+1}\Leftarrow R_kQ_k+\mu I$

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

$\mu=\alpha_n+\delta-sign\,\delta\sqrt{\delta^2+\beta^2},\delta=\frac{\alpha_{n-1}-\alpha_n}{2}$,子矩阵为$\begin{bmatrix} \alpha_{n-1} & \beta_{n-1} \\ \beta_{n-1} & \alpha_n \end{bmatrix}$

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

$M\Leftarrow H^2-sH+tI,QR\Leftarrow M,H_2\Leftarrow Q^THQ\, where\, s=\mu_1+\mu_2,t=\mu_1\mu_2$

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

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

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

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

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

$(A-\mu I)\nu_k=z_{k-1}, z_k=\frac{\nu_k}{\left \| \nu_k \right \|_2}$

时间: 2024-10-13 17:54:44

求解矩阵特征值的相关文章

求解矩阵特征值及特征向量

矩阵特征值 定义1:设A是n阶矩阵,如果数和n维非零列向量使关系式成立,则称这样的数成为方阵A的特征值,非零向量成为A对应于特征值的特征向量. 说明:1.特征向量,特征值问题是对方阵而言的. 2.n阶方阵A的特征值,就是使齐次线性方程组有非零解的值,即满足方程的都是矩阵A的特征值. 3. 定义2:A为n阶矩阵,称为A的特征矩阵,其行列式为的n次多项式,称为A的特征多项式,称为A的特征方程. 说明:1.由定义得,是A的特征值,等价于是其特征方程的根,因此又称为A的特征根.若是的重根,则称为A的重特

利用QR算法求解矩阵的特征值和特征向量

利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了好久 1.我要求特征值和特征向量. 2.找到一种算法QR分解矩阵求解特征值 3.QR矩阵分解需要Gram-schimidt正交化分解 有一种很明显的感觉,往往在现在很难有 很系统 很深入 的学习某一个学科的某一门知识. 往往学的时候"靠,学这东西有什么用""学了这么久,也不知道怎么用,不想学" 到后

矩阵特征值分解与奇异值分解含义解析及应用

此文有一半转载自他出,主要在这进行个整理,具体内容文中都有相关的转载链接. 特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉我只是"前一个矩阵的行乘以后一个矩阵的列",还会一点的可能还会说"前一个矩阵的列数等于后一个矩阵的行数才能相乘",然而,这里却会和你说--那都是表象. 矩阵乘法真正的含义是变换,我们学<线性代数>一开始就学行变换列变换,那才是线代的核心--别会了点猫腻就忘了本--对,矩阵乘法 就是线性变换,若以其中一个向量A为中心,则B的作用

矩阵特征值与行列式、迹的关系

矩阵的特征值之和等于矩阵的行列式 矩阵的特征值之积等于矩阵的迹 简单的理解证明如下: 1.二次方程的韦达定理: 请思考:x^2+bx+c=0 这个方程的所有根的和等于多少.所有根的积等于多少 2.把二次方程推广到 N 次: 对一个一元n次方程,它的根记作 那么接下来可以类似地来思考:(x-x1)(x-x2)(x-x3)...(x-n_N)=0 这个方程的所有根的和对应于等式左边展开后几次项的系数,所有根的积对应等式展开后几次项的系数. 说明: 已知一个一元五次方程: 根据高斯的代数原理:上式在复

机器学习基础篇——矩阵特征值分解含义解析及应用

特征值与特征向量的几何意义: 矩阵的乘法是什么,别只告诉我只是"前一个矩阵的行乘以后一个矩阵的列",还会一点的可能还会说"前一个矩阵的列数等于后一个矩阵的行数才能相乘",然而,这里却会和你说--那都是表象. 矩阵乘法真正的含义是变换,我们学<线性代数>一开始就学行变换列变换,矩阵乘法就是线性变换,若以其中一个向量A为中心,则B的作用主要是使A发生如下变化: 伸缩 clf;     %用来清除图形的命令 A = [0, 1, 1, 0, 0;... 1, 

动态规划求解矩阵连乘问题Java实现

首先我们来看看动态规划的四个步骤: 1. 找出最优解的性质,并且刻画其结构特性: 2. 递归的定义最优解: 3. 以自底向上的方式刻画最优值: 4. 根据计算最优值时候得到的信息,构造最优解 其中改进的动态规划算法:备忘录法,是以自顶向下的方式刻画最优值,对于动态规划方法和备忘录方法,两者的使用情况如下: 一般来讲,当一个问题的所有子问题都至少要解一次时,使用动态规划算法比使用备忘录方法好.此时,动态规划算法没有任何多余的计算.同时,对于许多问题,常常可以利用其规则的表格存取方式,减少动态规划算

为什么矩阵特征值之和等于矩阵的迹

本文是我在知乎的回答(https://www.zhihu.com/question/267405336/answer/435657618),为了把知识条理化,干脆将其整理成文章,发在博客上.初学乍练,如有错误欢迎指正. 在线性代数中,一个 \({\displaystyle n\times n}\) 的矩阵 \(\mathbf{A}\)的迹(或迹数),是指\(\mathbf{A}\)的主对角线(从左上方至右下方的对角线)上各个元素的总和,一般记作 \(\operatorname{tr}(\math

Matlab中求解矩阵的奇异值

1.Matlab中求解矩阵的奇异值用svd函数和svds函数 2.实例 >> A = [1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 >> svd(A) ans = 16.8481 1.0684 0.0000 >> svds(A) ans = 16.8481 1.0684 0.0000 再分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn

讲一下numpy的矩阵特征值分解

主要还是调包: from numpy.linalg import eig 特征值分解:  A = P*B*PT  当然也可以写成 A = PT*B*P  其中B为对角元为A的特征值的对角矩阵. 首先A得正定,然后才能在实数域上分解, >>> A = np.random.randint(-10,10,(4,4)) >>> A array([[ 6, 9, -10, -1], [ 5, 9, 5, -5], [ -8, 7, -4, 4], [ -1, -9, 0, 6]]