【问题标题】:Eigenvalues calculation in MaximaMaxima中的特征值计算
【发布时间】:2021-10-28 10:13:21
【问题描述】:

假设我有以下形式的矩阵 A

然后我有以下形式的矩阵C

最后是以下形式的矩阵L

我的目标是找到矩阵 L 的元素的公式,以便矩阵 A-LC 的特征值是"K" 倍于矩阵 A 的特征值。 “K”是一个 参数。

我从矩阵的定义开始:

A: matrix(
 [-a,0,b,c], 
 [0,a,-c,b], 
 [d,0,-e,-1], 
 [0,d,1,-e]
);

C: matrix(
 [1,0,0,0], 
 [0,1,0,0]
);

L: matrix(
 [l1,-l2], 
 [l2,l1], 
 [l3,-l4], 
 [l4,l3]
);

然后我找到了矩阵A的特征多项式的公式(它的根是矩阵A的特征值)

char_pol_system : ratsimp(expand(charpoly(A, x)));
x^4+2*e*x^3+(e^2-2*b*d-a^2+1)*x^2+((-2*b*d-2*a^2)*e-2*c*d)*x-a^2*e^2+(c^2+b^2)*d^2-a^2

我还找到了矩阵特征多项式的公式(A-LC)(它的根是矩阵A-LC)。矩阵 (A-LC) 的特征值必须比矩阵 A 的特征值大“K”倍的要求是反映 通过以下替换 y = Kx

char_pol_observer : subst((K*x), y, ratsimp(expand(charpoly(A-L.C,y))));
K^4*x^4+K^3*(2*l1+2*e)*x^3+K^2*(2*c*l4+2*b*l3+l2^2+l1^2+4*e*l1+e^2-2*b*d-a^2+1)*x^2+K*((2*b*l2+2*c*l1+2*c*e-2*b)*l4+(-2*c*l2+2*b*l1+2*b*e+2*c)*l3+2*e*l2^2+2*c*d*l2+2*e*l1^2+(2*e^2-2*b*d+2)*l1+(-2*b*d-2*a^2)*e-2*c*d)*x+(c^2+b^2)*l4^2+((2*b*e+2*c)*l2+(2*c*e-2*b)*l1)*l4+(c^2+b^2)*l3^2+((2*b-2*c*e)*l2+(2*b*e+2*c)*l1+(-2*c^2-2*b^2)*d)*l3+(e^2+1)*l2^2+(2*c*d*e-2*b*d)*l2+(e^2+1)*l1^2+(-2*b*d*e-2*c*d)*l1-a^2*e^2+(c^2+b^2)*d^2-a^2

所以我在 x 中有两个多项式。我的想法是如何找到未知数的公式 l1 - l4 是写下基于 x 相同幂的系数比较的方程。

我的问题是:

  1. 如何消除第二个多项式中 x 的最高幂的K^4 系数?
  2. 如何根据两个多项式中 x 的相同幂的系数比较来编写方程?

【问题讨论】:

    标签: matrix symbolic-math maxima eigenvalue


    【解决方案1】:

    要消除K^4,除以K^4

    normalized: expand(char_pol_observer / K^4);
    

    要使系数相等,首先求两个多项式的差:

    difference: char_pol_system - normalized;
    

    然后将x的每个幂的系数等同于0。您可以使用ratcoef 获得x^n 的系数。

    system_of_eqns: makelist(ratcoef(difference, x, n) = 0, n, 3, 0, -1);
    

    您可以从第一个方程(x^3 的系数)中找到 l1,但在 l2, l3, l4 中其他方程不是线性的。 algsys 找不到解决方案。对每个变量逐一求解并代入可能会为其他变量提供一个封闭的公式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      相关资源
      最近更新 更多