iceyoghurt 发表于 2011-6-9 13:57

请教一个矩阵的特征值问题

我用Matlab算了一个实数矩阵的左特征值和右特征值,结果不一样,一个是实数一个是复数。。。
哪位高人指点一下,为什么会出现这种情况捏{:4_283:}

Hanszy 发表于 2011-6-9 14:53

Es gibt mehr als einen Eigenwert für diese Matrix. Eigenwert könnte reelle Zahl oder auch komplexe Zahl sein.

iceyoghurt 发表于 2011-6-9 15:04

回复 2# Hanszy

谢谢你的回复。
我的问题是,不管是实数还是复数,一个还是两个,一个矩阵的左特征值和右特征值理论上来讲应该是一样的,可是我算出来的就是不一样。。。

orionsnow 发表于 2011-6-9 17:21

本帖最后由 orionsnow 于 2011-6-9 17:34 编辑

矩阵大么? 不大的话写下来大家算算对对答案


百度一下,你就知道了,google 一下,你就知道的太多了

特征向量_互动百科
- [ Diese Seite übersetzen ]
若环是可交换的,左特征值和右特征值相等,并简称为特征值。否则,例如当环是四元数集合的时候,它们可能是不同的。 若向量空间是无穷维的,特征值的概念可以推广到谱 ...
www.hudong.com › 科学 › 应用科学 - Im Cache - Ähnliche Seiten

灰太狼2010 发表于 2011-6-9 17:42

拿Lapack算算

iceyoghurt 发表于 2011-6-9 19:47

回复 4# orionsnow

多谢回复!
矩阵挺大的,100乘100,四元数是复数吧,我的矩阵都是实数。。。

iceyoghurt 发表于 2011-6-9 19:49

回复 5# 灰太狼2010
嗯,我也怀疑是Matlab的问题,正在找其他方法算呢。
谢谢!

cosimo 发表于 2011-6-9 19:58

被标题吸引进来的,想起我的大学时光。{:5_360:}

aileute 发表于 2011-6-9 20:06

假设A是你的矩阵,matlab eig(A)求出来的是右特征值,你的左特征值是怎么求出来的?是通过eig(A')吗?

iceyoghurt 发表于 2011-6-9 20:08

回复 9# aileute

嗯,是的
还有别的方法可以求吗?

iceyoghurt 发表于 2011-6-9 20:09

回复 8# cosimo

大学时光学的都还给老师了{:4_292:}

aileute 发表于 2011-6-9 20:14

本帖最后由 aileute 于 2011-6-9 20:18 编辑

回复 10# iceyoghurt


    这是根据定义求得的。我也不知道有没有别的方法可以求。我自己从来没用到过左特征值这个概念。我的经验是如果是由于计算误差的话,那么你的两个复数的虚部应该很小。如果是因为矩阵是个病态矩阵的话,那上面的说法就不成立了。还有因为你是实数矩阵,所以你的特征值就算是虚数也应该成对出现,你看看你的结果是不是满足这个条件。

你可以用svd分析一下A和A'看看结果是不是一样,svd有抗病态能力。没有太多的经验。MATLAB在矩阵计算速度精度方面是强项绝对不会输给Lapack。

cosimo 发表于 2011-6-9 20:17

回复cosimo

大学时光学的都还给老师了
iceyoghurt 发表于 2011-6-9 20:09 http://www.dolc.de/forum/images/common/back.gif

大学学得东西还给老师了,时光在我心里永驻{:5_360:}

iceyoghurt 发表于 2011-6-9 20:34

回复 12# aileute

多谢~!
复数特征值确实是共轭出现的,虚部大小从0.005到0.1的都有,不知道算不算小。
还有我试了一下svd,结果是一样的。
我之所以算左特征值,是因为我觉得算出来的右特征值和理论不相符,我怀疑可信度。。。

orionsnow 发表于 2011-6-9 21:25

太大了上传不了阿? 你能构造一个简单点的例子么?

或者你验算一下看看, 不可能都吻合吧?

aileute 发表于 2011-6-9 22:05

回复 14# iceyoghurt


    你的特征值的模多大啊,和实部比较一下,如果虚部远远小于实部,说明这个复数的幅角几乎为零。这样他有可能是实数的可能性大增 (比如说对应的特征值会不会相对于原本的某个二重极点。)。而且如果是计算误差的话,左特征值和右特征值总归有相似之处的吧。

你用svd分析下来这连个矩阵的singular values一样吗?

iceyoghurt 发表于 2011-6-9 22:10

我这里加了那个矩阵,大家有空帮我算一算,多谢了{:4_295:}

zhongyileehom 发表于 2011-6-9 22:53

我以前也遇到过这种情况,也觉得是不是Matlab的问题,后来问了教授,教授说他不认为是matlab的问题,但是教授也没给我个最终答案。所以我们俩谈了一次之后,他告诉我继续下一个。于是我就这么放弃的。说起来惭愧。

johndoe 发表于 2011-6-10 07:31

eigenvalue。。。。俺滴娘啊

都十几年没看了

灰太狼2010 发表于 2011-6-10 08:44

回复 6# iceyoghurt


    这是个很小的矩阵。嘿嘿嘿

Maier 发表于 2011-6-14 10:21

1. matlab 求的ew 有时候排列顺序不是很一样,查一下。
2. 如果模差得不是很大,完全可以忽略不计。
3. 试试命令polyeig

Maier 发表于 2011-6-14 10:29

非常重要的是,你要说清楚你的矩阵是干什么用的,这样我们才能知道解的大概形式。
从你叙述上看,应该是个很小误差。
把左右特征向量相应乘一乘,应该是对的

iceyoghurt 发表于 2011-6-14 12:27

回复 21# Maier
谢谢回复{:5_335:}
1,左右特征值不一样,一个是实数,一个是复数,我在这里附图了。
2,我比较关心实数还是复数的问题
3,试了polyeig,结果差不多

orionsnow 发表于 2011-6-15 00:39

我从图上看觉得你这个是软件的误差,你有没有尝试用decomposition 把矩阵分离出来看看?

明天要是有时间我用mathematica 算算看。

iceyoghurt 发表于 2011-6-15 08:26

回复 24# orionsnow

那就多谢了{:4_298:}

orionsnow 发表于 2011-6-28 15:47

回复orionsnow

那就多谢了
iceyoghurt 发表于 2011-6-15 08:26 http://www.dolc.de/forum/images/common/back.gif

我算过了, 就是简单的求特征值命令。

和你的结果差不多,实部从0-1。5, 虚部+- 0。2。

你这个矩阵的 det = -1.14203*10^-20 好小,回头我再用更多的参数,或者矩阵分解看看。

iceyoghurt 发表于 2011-6-28 15:51

回复 26# orionsnow

太感谢了,内牛满面{:4_300:}
最近读了一篇paper,好像是说此类矩阵对round off error很敏感。。。

orionsnow 发表于 2011-6-28 15:53

回复orionsnow

太感谢了,内牛满面
最近读了一篇paper,好像是说此类矩阵对round off erro ...
iceyoghurt 发表于 2011-6-28 15:51 http://www.dolc.de/forum/images/common/back.gif

gei wo kan kan

iceyoghurt 发表于 2011-6-28 15:56

回复 28# orionsnow

http://www.jstor.org/stable/2157635?seq=1

orionsnow 发表于 2011-6-28 20:08

回复orionsnow
iceyoghurt 发表于 2011-6-28 15:56 http://www.dolc.de/forum/images/common/back.gif

大概看了下摘要,就是你说的那个意思。

你看看方程里头有没有可以调节计算精度的地方,把精度调高些看看。
页: [1]
查看完整版本: 请教一个矩阵的特征值问题