回 帖 发 新 帖 刷新版面

主题:[讨论]关于矩阵特征值

  在用fortran和matlab解矩阵特征值时候会发现,在矩阵较小时,得到的特征值和特征向量相同,但是如果矩阵很大,比如说64*64的,就会发现两种软件得到的特征值相同,但是特征向量不同了。
  利用代入法,Hr=Ar,H为待求矩阵,r为特征向量,A为特征值,带入matlab得到的结果发现两者几乎相同;但是带入fortran中会发现两者得到的结果有差距,仅仅前三位数相同,到第四位数就不同了。两个软件不是用同一个算法吗?怎么得到的结果不同呢?

回复列表 (共2个回复)

沙发

我仔细检查过,两个程序得到的矩阵完全相同。fortran得到的H(i,j)与matlab得到的H(i,j)一样啊。如果把两个矩阵输出,会发现相同位置上的值的大小一样。

板凳

算法不一定相同,就算都用同样的算法(如:雅可比迭代法),细节方面也不一定完全相同。
就算算法细节相同,内部计算(转成机器码后)时的精度也不一定相同。

我来回复

您尚未登录,请登录后再回复。点此登录或注册