我想在Sympy中找到矩阵的特征向量并编写以下程序,但它不起作用.另一方面,Sympy中的A.eigenvects()函数计算矩阵A的特征值和特征向量,我在这里使用了类似的东西但是当我想打印结果时,会显示一个空列表.你能指导我吗?
from sympy import *
H=Matrix([ [215.0 ,-104.1 ,5.1 ,-4.3 ,4.7 ,-15.1 ,-7.8],
[-104.1 , 220.0 ,32.6 , 7.1 ,5.4 , 8.3 ,0.8],
[ 5.1 , 32.6 , 0. , -46.8 , 1.0 , -8.1 , 5.1 ],
[ -4.3 , 7.1 ,-46.8 ,125.0 ,-70.7 ,-14.7 ,-61.5],
[ 4.7 , 5.4 , 1.0 ,-70.7 ,450.0 ,89.7 ,-2.5],
[-15.1 , 8.3 ,-8.1 ,-14.7 ,89.7 ,330.0 ,32.7],
[-7.8 ,0.8 ,5.1 ,-61.5 ,-2.5 ,32.7 ,280.0]])
zz=H.eigenvects()
pprint(zz)
Run Code Online (Sandbox Code Playgroud)
问题源于Floats和Rationals的使用.eigenvects重写Floats到Rationals.eigenvals当根不能考虑多项式时,例程失败.当您eigenvals直接呼叫时,Floats也会重铸,但您可以选择不重铸它们; 当你这样做时,roots能够返回值并返回特征值.
>>> H.eigenvals()
{}
>>> H.eigenvals(rational=False)
{513.317044781366: 1, 101.965215714556: 1, 332.004505895816: 1, 268.369453977695: 1, 120.955771704237: 1, -23.7383543150805: 1, 307.126362241411: 1}
Run Code Online (Sandbox Code Playgroud)
似乎roots应该为这个7阶多项式返回RootOf实例而不是返回没有根.将此报告为SymPy的问题会很好:
root(p) - > {}而不是RootOf实例
p = 5000000*x**7 - 8100000000*x**6 + 5146847850000*x**5 - 1623625381660000*x**4 + 261251048199624000*x**3 - 18813344309673222800*x**2 + 248990094307079384205*x + 20562650438939697400552
>>> H
Matrix([
[ 215.0, -104.1, 5.1, -4.3, 4.7, -15.1, -7.8],
[-104.1, 220.0, 32.6, 7.1, 5.4, 8.3, 0.8],
[ 5.1, 32.6, 0, -46.8, 1.0, -8.1, 5.1],
[ -4.3, 7.1, -46.8, 125.0, -70.7, -14.7, -61.5],
[ 4.7, 5.4, 1.0, -70.7, 450.0, 89.7, -2.5],
[ -15.1, 8.3, -8.1, -14.7, 89.7, 330.0, 32.7],
[ -7.8, 0.8, 5.1, -61.5, -2.5, 32.7, 280.0]])
>>> x = H.charpoly(symbols('lamda'))
>>> factor(x)
1.0*(1.0*lamda**7 - 1620.0*lamda**6 + 1029369.57*lamda**5 -
324725076.332*lamda**4 + 52250209639.9248*lamda**3 -
3762668861934.64*lamda**2 + 49798018861415.7*lamda +
4.112530087788e+15)
Run Code Online (Sandbox Code Playgroud)
最后一个方程有 7 个实根 =>
(lamda +23.738) *(lamda -101.965) *(lamda -120.956) *(lamda -268.369) *(lamda -307.126) *(lamda -332.005) *(lamda -513.317) = 0
[-23.738, 101.965, 120.956, 268.369, 307.126, 332.005, 513.317]
这真的很奇怪,为什么 sympy 一直说这个矩阵没有特征向量。
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |