【问题标题】:Extracting a List from a List of Lists (Maxima)从列表列表中提取列表(Maxima)
【发布时间】:2018-10-25 21:40:26
【问题描述】:

我正在使用最大值,我相信我有一个简单的问题:如何将矩阵的特征值放入列表中,以便计算最大的特征值?

根据我的阅读,如果 M 是一个矩阵,那么 eigenvalues(M) 是一个包含两个列表的列表,第一个是包含 M 的特征值,第二个是代表它们各自多重性的数字列表。所以我想我需要做的是通过从特征值(M)中提取第一个列表来定义一个新列表......但是不知道该怎么做。

另一个相关问题:其中一些特征值会很复杂,所以当我取列表中的最大值时,最大值会忽略列表中的复数而只查看实值特征值,否则会给我一个错误?

【问题讨论】:

    标签: list matrix extract maxima eigenvalue


    【解决方案1】:

    首先我们输入矩阵:

    M : matrix([1,2],[2,3])$
    

    然后我们计算它的特征值:

    eigs : eigenvalues(M);
    

    (%o56) [[2 - sqrt(5), sqrt(5) + 2], [1, 1]]

    最后,我们提取最大特征值:

    lmax(first(eigs));
    

    (%o59) sqrt(5) + 2

    关于复数列表的最大值,请记住最大值的概念只属于实数领域。一组复数没有最大值。

    【讨论】:

      【解决方案2】:

      这就是我的处理方式。我将eigenvalues 的结果分配给两个变量,所以一个是第一个列表,另一个是第二个。请注意,我为此使用并行分配,例如[a, b] : [foo, bar];foo 分配给 a 并将 bar 分配给 b。然后我将两个列表中的元素粘贴在一起,以保持每个特征值的多重性。最后,我将按大小对特征值进行排序。我将按幅度递减排序,因此第一个元素是最大的特征值及其多重性。

      (%i2) A : matrix ([1/7, 15/14, 15/7], [-13/7, 85/14, 71/7], [9/7, -27/7, -47/7]);
                            [  1     15    15  ]
                            [  -     --    --  ]
                            [  7     14    7   ]
                            [                  ]
                            [   13   85    71  ]
      (%o2)                 [ - --   --    --  ]
                            [   7    14    7   ]
                            [                  ]
                            [  9      27    47 ]
                            [  -    - --  - -- ]
                            [  7      7     7  ]
      (%i3) [vals, mults] : eigenvalues (A);
                            1
      (%o3)               [[-, - 2, 1], [1, 1, 1]]
                            2
      (%i4) vals_mults : map (lambda ([a, b], [a, b]), vals, mults);
                           1
      (%o4)              [[-, 1], [- 2, 1], [1, 1]]
                           2
      (%i5) sort (vals_mults, lambda ([a, b], abs(a[1]) > abs(b[1])));
                                             1
      (%o5)              [[- 2, 1], [1, 1], [-, 1]]
                                             2
      (%i6) first (%);
      (%o6)                       [- 2, 1]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多