首页/文章/ 详情

幂迭代法求矩阵特征值的Fortran程序

7月前浏览5084

昨天所发布的迭代法称为正迭代法,用于求矩阵的主特征值,也就是指矩阵的所有特征值中最大的一个。其算法如下:


满足精度要求后停止迭代,xj是特征向量,λj是特征值。

Fortran代码如下:


一个四阶矩阵A来验证:


程序输出结果为:


MATLAB自带的eig函数的计算结果为:

二者结果一致。需要注意的是,特征值所对应的特征向量不是唯一的。


后记

正迭代法,用于求矩阵的主特征值,也就是指矩阵的所有特征值中最大的一个。有正迭代法就有逆迭代法,逆迭代法可以求矩阵的最小特征值以及对应的特征向量。幂迭代法是子空间迭代,Lancos迭代等方法求结构自振频率的基础。

稍后会推出逆迭代法,敬请关注。


点击[阅读原文],查看迭代法相关原理。



来源:数值分析与有限元编程
MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-01
最近编辑:7月前
太白金星
本科 慢慢来
获赞 5粉丝 11文章 325课程 0
点赞
收藏
作者推荐

矩阵特征值计算

对于计算特征值,没有直接的方法。2阶或3阶矩阵可以采用特征多项式来求。但如果试图求下列矩阵的特征值,我们试图用特征多项式P(x)=(x-1)(x-2)...(x-20)求特征值是不明智的。考察一个二阶矩阵A矩阵有主特征值4与特征向量[1,1],以及另一个特征值-1与特征向量[-3,2],这里主特征值是指矩阵的所有特征值中最大的一个。把矩阵A乘以任意向量x0(比如[-5,5]),得到以下结果:用矩阵A反复乘以初始任意向量,其结果是把这个向量平移到非常接近A的主特征向量。这不是巧合,完全可以再换一个向量试试。当这些步骤提供了求特征向量的方法后,如何求近似特征值?换句话说,假设矩阵A和近似特征向量已经知道,如何求相应近似特征值?考虑特征方程xξ = Ax这里x是近似特征向量,ξ是特征值,且ξ未知。借助于最小二乘,得到:以上求特征值的方法叫幂迭代法。 来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈