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

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

为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值.

根据定义的话,很可能需要求解高阶方程...

这明显是个坑...高阶方程你肿么破...

折腾了好久

1.我要求特征值和特征向量.

2.找到一种算法QR分解矩阵求解特征值

3.QR矩阵分解需要Gram-schimidt正交化分解

有一种很明显的感觉,往往在现在很难有 很系统 很深入 的学习某一个学科的某一门知识.

往往学的时候"靠,学这东西有什么用""学了这么久,也不知道怎么用,不想学"

到后来要解决问题的时候,要解决问题很可能这个问题里包含其他子问题,自问题里又有自问题,一层层的递归下去,直到解决所有子问题,才能递归回去,解决我们最初想搞定的问题.

又会懊恼,没有很系统的学习过那门知识.

骚年,Hold 住,你能递归的去死磕一个问题多深,如果你能安全的返回到原来你最初想要解决的问题,没有"爆栈",那么这个深度就代表你的学习能力.深度越深,学习能力是越强的.人不可能一直拥有一个足够舒适的环境去系统的把所有东东都搞定,不可能把所有的基础知识都搞定了再上项目,去解决实际问题.在实际问题中发现问题,解决问题,才是真真的学习能力!!!不是TM卷子上多少分!给朕Hold住!



啊,呼喊万能的wiki帝

http://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors

先回顾一下对于一般的矩阵求特征值是怎么破的

你会发现,上帝啊,这家伙要求解方程...一般的二阶方程可能还能搞得定,但是矩阵的规模一大,高阶方程就坑爹了,你去求解高阶方程组?两个字,呵呵.

当前我找到的可行解是矩阵的QR算法.

其实也没有什么难的,就是一次次的迭代,对矩阵A做QR分解,然后由于Q是个正交阵他的逆和转置是一样的,所以你会看到上面图中的公式推到.

迭代次数足够多的时候,可以得到足够接近矩阵特征值的数值解.

再次强调,计算机只能求解数值解,不能求解析解.

    def eig(self, A) :
        if A is None :
            return

        for i in range(0, 20) :
            (Q, R) = self.qr_decomposition(A)
            A = self.multiply(R, Q)
        return A

对角线上的就是矩阵的特征值

找到特征值之后根据

Ax=βx

然后对A?β矩阵求逆即可

输出的第一个矩阵的对角线上的都是特征值

函数实现:

    def eig(self, A) :
        if A is None :
            return

        tmp_mat = copy.deepcopy(A)
        for i in range(0, 20) :
            (Q, R) = self.qr_decomposition(tmp_mat)
            tmp_mat = self.multiply(R, Q)

        row = len(tmp_mat)
        col = len(tmp_mat[0])
        for i in range(0, row) :
            for j in range(0, col) :
                if i != j :
                    tmp_mat[i][j] = 0

        eig_vec = self.inverse(self.sub(A, tmp_mat))
        return (tmp_mat, eig_vec)

以上函数实现中涉及的"未知"函数实现都能在线面的Link里面找到

http://blog.csdn.net/cinmyheart/article/details/43976423

推土机压过
旧日的家只剩下门前电线杆和灰蒙的天

房檐下
伸手去捧雨天的房檐水

屋后桔园里
从秋千上摔下边疼边笑

日落时
有爷爷的三轮车从镇上回来

门前
有人坐着小木凳
眨巴着眼
痴痴地等

太阳不等你
我等你

时间开着推土机
无情的碾过童年

摄于二零一五年二月六日

时间: 2024-10-14 18:12:50

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

雅可比算法求矩阵的特征值和特征向量

目的 求一个实对称矩阵的所有特征值和特征向量. 前置知识 对于一个实对称矩阵\(A\),必存在对角阵\(D\)和正交阵\(U\)满足\[D=U^TAU\]\(D\)的对角线元素为\(A\)的特征值,\(U\)的列向量为\(A\)的特征向量. 定义\(n\)阶旋转矩阵\[G(p,q,\theta)= \begin{bmatrix} 1 & & & & & \cdots& & & & & 0\ &\ddots &

矩阵的特征值和特征向量的雅克比算法C/C++实现

矩阵的特征值和特征向量是线性代数以及矩阵论中很重要的一个概念.在遥感领域也是经经常使用到.比方多光谱以及高光谱图像的主成分分析要求解波段间协方差矩阵或者相关系数矩阵的特征值和特征向量. 依据普通线性代数中的概念,特征值和特征向量能够用传统的方法求得,可是实际项目中一般都是用数值分析的方法来计算,这里介绍一下雅可比迭代法求解特征值和特征向量. 雅克比方法用于求实对称阵的所有特征值.特征向量. 对于实对称阵 A,必有正交阵 U.使 U TA U = D. 当中 D 是对角阵,其主对角线元 li 是

线性代数精华——矩阵的特征值与特征向量

今天和大家聊一个非常重要,在机器学习领域也广泛使用的一个概念--矩阵的特征值与特征向量. 我们先来看它的定义,定义本身很简单,假设我们有一个n阶的矩阵A以及一个实数\(\lambda\),使得我们可以找到一个非零向量x,满足: \[Ax=\lambda x\] 如果能够找到的话,我们就称\(\lambda\)是矩阵A的特征值,非零向量x是矩阵A的特征向量. 几何意义 光从上面的式子其实我们很难看出来什么,但是我们可以结合矩阵变换的几何意义,就会明朗很多. 我们都知道,对于一个n维的向量x来说,如

浅浅地聊一下矩阵与线性映射及矩阵的特征值与特征向量

都说矩阵其实就是线性映射,你明白不?反正一开始我是不明白的: 线性映射用矩阵表示:(很好明白的) 有两个线性空间,分别为V1与V2, V1的一组基表示为,V2的一组基表示为:(注意哦,维度可以不一样啊,反正就是线性空间啊), 1, 现在呢,有一个从V1到V2的映射F, 它可以把V1中的一组基都映射到线性空间V2中去,所以有: 用矩阵可以表示为: 2,现在我们把在V1中有一个向量A,经过映射F变为了向量B,用公式表示为:                                 所以呢,坐标

线性代数 - 05 矩阵的特征值与特征向量

线性代数 - 05 矩阵的特征值与特征向量 一.特征值与特征向量 二.矩阵的相似与矩阵的对角化 三.实对称矩阵的对角化 1.向量的内积与正交矩阵 2.实对称矩阵的特征值与特征向量 线性代数 - 05 矩阵的特征值与特征向量,码迷,mamicode.com

线性代数之矩阵的特征值与特征向量

数学上,线性变换的特征向量(本征向量)是一个非退化的向量,其方向在该变换下不变.该向量在此变换下缩放的比例称为其特征值(本征值). 一个线性变换通常可以由其特征值和特征向量完全描述.特征空间是相同特征值的特征向量的集合.“特征”一词来自德语的eigen.1904年希尔伯特首先 在这个意义下使用了这个词,更早亥尔姆霍尔兹也在相关意义下使用过该词.eigen一词可翻译为”自身的”.“特定于……的”.“有特征的”.或者“个体 的”.这显示了特征值对于定义特定的线性变换有多重要. 线性变换的特征向量是指

lanczos算法及C++实现(二)实对称阵奇异值分解的QR算法

本文属作者原创,转载请注明出处: http://www.cnblogs.com/qxred/p/qralgorithm.html 首先推荐两个参考文献 https://www.math.kth.se/na/SF2524/matber15/qrmethod.pdf http://people.inf.ethz.ch/arbenz/ewp/Lnotes/chapter4.pdf 1. 基本的QR算法 我们先讨论一般对阵矩阵的QR算法,再讨论对称三对角阵的QR算法 给定一个实对称阵X,假设其特征值分解

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

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

特征值和特征向量的几何意义、计算及其性质(一个变换(或者说矩阵)的特征向量就是这样一种向量,它经过这种特定的变换后保持方向不变,只是进行长度上的伸缩而已)

  对于任意一个矩阵,不同特征值对应的特征向量线性无关. 对于实对称矩阵或埃尔米特矩阵来说,不同特征值对应的特征向量必定正交(相互垂直).   一.特征值和特征向量的几何意义 特征值和特征向量确实有很明确的几何意义,矩阵(既然讨论特征向量的问题,当然是方阵,这里不讨论广义特征向量的概念,就是一般的特征向量)乘以一个向量的结果仍是同维数的一个向量.因此,矩阵乘法对应了一个变换,把一个向量变成同维数的另一个向量. 那么变换的效果是什么呢?这当然与方阵的构造有密切的关系,比如可以取适当的二维方阵,使得