矩阵的特征值问题——幂法与反幂法
2010-11-16 14:22
986 查看
最近一段时间写的程序需要解矩阵的特征值与特征向量,本来以为不是特别复杂的问题,由于问题规模比较大(矩阵大约需要15000*15000那么大,甚至更大)而且要计算的尽量快而变得异常复杂。当然用matlab是相当容易的,但要求使用C或者C++的程序......
我尝试了几种不同的方法,已经把自己搞的快糊涂了,在这里分几次总结一下:
最初的想法的使用幂法和反幂法来解,这也是因为对这样的方法不是很熟悉,其实用幂法与反幂法只能解距离某个特定点最近和最远的特征值(特殊情况就是特定点是0的时候,只能求最大和最小特征值)。在网上找了一下之后,觉得这个算法并不如何复杂,就自己写了一下,至于这个算法google一下幂法和反幂法,就可以找到很多,基本按照这样的思路就可以顺利的写下来。我把自己写的代码放在http://download.csdn.net/source/2836321其实里面没有特别的东西,而且反幂法的算法并不难,但是不同的处理方法时间效率是不同的,因为反幂法的算法过程中要频繁的解线性方程组,如果这个比较慢,那反幂法基本就没有什么价值了(这也是我后来放弃使用自己写的反幂法的原因之一)。我写的这个算法用做练习还可以,解规模小一些的矩阵也看不出什么,但要解大规模的矩阵是不靠谱的,因此写在这里也只是记录一下自己的这个工作。
后来的时候我发现自己解的问题不是求一个普通大规模矩阵的特征值,而是解一个大规模稀疏矩阵的部分特征值。想到这个之后我简单查了一下资料,就觉得自己写一个这样的高效算法不太靠谱,首先这个算法就很复杂,而我也不是专门写这个的,只是用一下而已,因为靠谱的路就是去找一个好一点儿的C或者C++的库,使用它的高效的解特征值与特征向量的功能。
顺便提一下MATLAB里的解特征值与特征向量的功能,解全部的特征值的函数是[v d]=eig(A),而MATLAB里也有可以解一部分特征值的函数,即eigs函数,而且也可以用来解广义特征值问题。而且MATLAB还是相当高效的,如果是稀疏矩阵的话会更快,能使用matlab的话确实能省不少的心。
我尝试了几种不同的方法,已经把自己搞的快糊涂了,在这里分几次总结一下:
最初的想法的使用幂法和反幂法来解,这也是因为对这样的方法不是很熟悉,其实用幂法与反幂法只能解距离某个特定点最近和最远的特征值(特殊情况就是特定点是0的时候,只能求最大和最小特征值)。在网上找了一下之后,觉得这个算法并不如何复杂,就自己写了一下,至于这个算法google一下幂法和反幂法,就可以找到很多,基本按照这样的思路就可以顺利的写下来。我把自己写的代码放在http://download.csdn.net/source/2836321其实里面没有特别的东西,而且反幂法的算法并不难,但是不同的处理方法时间效率是不同的,因为反幂法的算法过程中要频繁的解线性方程组,如果这个比较慢,那反幂法基本就没有什么价值了(这也是我后来放弃使用自己写的反幂法的原因之一)。我写的这个算法用做练习还可以,解规模小一些的矩阵也看不出什么,但要解大规模的矩阵是不靠谱的,因此写在这里也只是记录一下自己的这个工作。
后来的时候我发现自己解的问题不是求一个普通大规模矩阵的特征值,而是解一个大规模稀疏矩阵的部分特征值。想到这个之后我简单查了一下资料,就觉得自己写一个这样的高效算法不太靠谱,首先这个算法就很复杂,而我也不是专门写这个的,只是用一下而已,因为靠谱的路就是去找一个好一点儿的C或者C++的库,使用它的高效的解特征值与特征向量的功能。
顺便提一下MATLAB里的解特征值与特征向量的功能,解全部的特征值的函数是[v d]=eig(A),而MATLAB里也有可以解一部分特征值的函数,即eigs函数,而且也可以用来解广义特征值问题。而且MATLAB还是相当高效的,如果是稀疏矩阵的话会更快,能使用matlab的话确实能省不少的心。
相关文章推荐
- 数值分析 幂法求矩阵A按模最大的特征值和相应的特征向量
- 大规模稀疏矩阵的广义特征值问题——CLAPACK, IETL库尝试
- 幂法求矩阵特征向量和特征值的C语言程序
- 幂法求矩阵特征向量和特征值的C语言程序
- 幂法求矩阵最大特征值的近似解(C++实现)
- LAPACK(5)——矩阵广义特征值问题和QZ分解
- 幂法求矩阵的最大特征值和对应特征向量
- 0013算法笔记——【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
- 基于DP的矩阵连乘问题
- 【矩阵子阵求和问题】 leetcode 308. Range Sum Query 2D - Mutable
- 矩阵及其变换、特征值与特征向量的物理意义
- 矩阵最小路径和问题(升级版)
- 0010算法笔记——【动态规划】矩阵连乘问题
- c语言---矩阵输出问题(之型矩阵输出)
- 动态规划求解矩阵连乘问题Java实现
- 矩阵及其变换、特征值与特征向量的物理意义
- 求矩阵的最大路径的问题
- 矩阵和特征值的本质
- 有关升级矩阵问题
- 51nod 1411 矩阵取数问题 V3