python复数计算符号_python-2.7 – 用sympy计算符号特征值

你对M的定义使得SymPy的生活太难了,因为它引入了浮点数.当您需要符号解决方案时,应避免浮动.这意味着:

>而不是1./3. (Python的浮点数)使用sp.Rational(1,3)(SymPy的有理数)或sp.S(1)/ 3,它具有相同的效果但更容易键入.

>而不是1j(Python的虚构单位)使用sp.I(SymPy的虚构单位)

>而不是x = 1.,写x = 1(Python 2.7习惯和SymPy一起很糟糕).

通过这些更改,或者求解或求解找到特征值,尽管求解得更快.此外,您可以创建一个Poly对象并将根应用于它,这可能是最有效的:

M = sp.Matrix([

[

1,

sp.Rational(2, 3),

sp.Rational(2, 3),

],

[

sp.exp(sp.I*kx) * sp.Rational(1, 6) + x,

sp.exp(sp.I*kx) * sp.Rational(1, 6),

sp.exp(sp.I*kx) * sp.Rational(-1, 3),

],

[

sp.exp(-sp.I*kx) * sp.Rational(1, 6),

sp.exp(-sp.I*kx) * sp.Rational(-1, 3),

sp.exp(-sp.I*kx) * sp.Rational(2, 3),

]

])

lam = sp.symbols('lambda')

cp = sp.det(M - lam * sp.eye(3))

eigs = sp.roots(sp.Poly(cp, lam))

(通过sy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值