声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4693|回复: 15

[应用数学] 求特征值和特征向量的精确算法

[复制链接]
发表于 2007-6-18 19:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我现在求特征值和特征向量比较精确的算法,本来我是用matlab中的eig命令来计算的
,后来感觉这样精度不好,所以请各位指导一下.

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-6-18 19:44 | 显示全部楼层
精度不够?你想要多高精度?
还有你说的精度指什么?
发表于 2007-6-18 20:23 | 显示全部楼层

回复 #1 gh688 的帖子

应该比较精确了,
format long

或者你直接根据定义一步步算
 楼主| 发表于 2007-6-18 21:02 | 显示全部楼层
1.不好意思,我说的不是太清楚.因为我是用状态空间法计算特征值和特征向量.
所以求的是eig(inv(A)*B)的特征值和特征向量.A和B是稀疏矩阵,其实我的想法是:
这里要求一次A的逆,然后又要求inv(A)*B的特征值和特征向量.这样在计算过程中是很多
次的迭代过程.这样误差是不是太大了.其实这好象是一个广义特征值的问题,那有没有解决
广义特征值的好方法(实用).
2.其实我还有一个问题一直不明白,就是 matlab 中计算矩阵特征值和特征向量是用的啥样的
迭代过程.
3.我只是具备矩阵论的初级水平,不是数学专业,提的问题如果很傻请见谅
发表于 2007-6-18 21:12 | 显示全部楼层

回复 #4 gh688 的帖子

你这个是什么问题求特征值?eig(inv(A)*B),这个命令这个用法不多啊
能不能提供你的问题啊
其实要说 matlab 中计算矩阵特征值和特征向量用的什么过程,我觉得应该是归一划的过程吧,迭代?我不知道
 楼主| 发表于 2007-6-18 21:21 | 显示全部楼层
我的问题其实是求包含非比例阻尼的振动微分方程MX''+CX'+KX=0的求解,因为有个阻尼项,所以最后写成状态
方程的形式:AX'+BX=0
这个问题由于A和B矩阵中的元素的 大小有差别,其实A有点接近奇异矩阵,求A'就有精度问题了
结果计算出来的特征值和特征向量我感觉有点不准确
发表于 2007-6-19 02:23 | 显示全部楼层
eig的精度还是很高的,个人认为你这里误差应该主要是由inv造成的

试试用反迭代法来求
发表于 2007-6-19 08:57 | 显示全部楼层

回复 #6 gh688 的帖子

有阻尼的系统固有频率的求解论坛里面有相应的程序,以前有类似的问题帖子,你找找看
可能你的算法有问题
 楼主| 发表于 2007-6-19 19:57 | 显示全部楼层
这里我感谢各位的帮助
发表于 2007-6-19 19:59 | 显示全部楼层

回复 #9 gh688 的帖子

问题已经解决,那你说说你的解决办法,可以给我们一点参考哈
 楼主| 发表于 2007-6-19 20:06 | 显示全部楼层
问题还没有解决,我还在做,搞定了我会和大家交流
发表于 2007-6-19 21:44 | 显示全部楼层

回复 #11 gh688 的帖子

那你继续加油了!
发表于 2007-6-20 06:54 | 显示全部楼层
发表于 2007-6-20 10:45 | 显示全部楼层
我认为其中应该会用到奇异值分解.如果是接近奇异的话.
发表于 2007-6-20 14:47 | 显示全部楼层
这个我可以说一说
matlab的eig命令精度还是相当高的
在计算一般的矩阵,比如对称正定阵,其采用QR分解方法
在计算比较病态的或者比较恶心的矩阵比如非对称非正定其采用QZ分解方法,中间分解酉空间是采用迭代方法。
对于性质比较好的矩阵计算是很准的,但是对于比较病态的由于数值原因,无论什么算法,高阶特征值都是不很准的,相对来说此时采用子空间迭代和laczos方法可能更好一些。
我个人编过各种算法计算特征值的程序(迭代和分解的都有),准确度上都没有matlab的eig高,所以总结下来matlab的eig可以比较放心的使用

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-10 19:39 , Processed in 0.098536 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表