【问题标题】:Getting largest eigenvalue of stochastic matrix in R and MATLAB在R和MATLAB中获取随机矩阵的最大特征值
【发布时间】:2013-10-21 08:46:15
【问题描述】:

我试图在 R & MATLAB 中获得全连接右随机矩阵的最大特征值。 从这个链接: http://en.wikipedia.org/wiki/Stochastic_matrix 我知道最大的特征值为1。例如,在R中运行以下代码后,我们可以看到特征值为“1, 0”:

> 特征(矩阵(rep(0.5,4),ncol=2))

$值

[1] 1 0

$向量

  [,1]      [,2]

[1,] 0.707107 -0.707107

[2,] 0.707107 0.707107

但是最近,我发现了一个非常感兴趣的结果,如果我尝试得到以下随机矩阵的最大特征值:

> m = 矩阵(c(0.5, 0.995, 0.5, 0.005),ncol = 2 ,nrow=2);

> 特征(m)$值

[1] 1.000 -0.495

> 特征(m)$值[1] == 1

[1] 错误

请注意,它显示“FALSE”。这很奇怪!它应该等于1,对吧? 应该有一些计算错误。我还在 MATLAB 中尝试了这个矩阵,但仍然得到了相同的结果。到目前为止,我只能将它四舍五入到 1。知道如何解决它吗?

谢谢,

【问题讨论】:

    标签: r matlab matrix eigenvalue stochastic


    【解决方案1】:

    在这种特殊情况下,我在我的机器上得到TRUE,但一般来说,比较浮点值是否相等是一个坏主意,并且由于四舍五入而变得不可靠。例如,我得到:

    > (0.1+0.1+0.1)/3==0.1
    [1] FALSE
    

    浮点运算几乎总是涉及一些舍入,因此您不能指望两次计算的结果应该产生代数相等的数量来产生相同的浮点值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 2015-11-28
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2016-05-15
      相关资源
      最近更新 更多