【问题标题】:Factor to complex roots using sympy使用 sympy 分解复杂根
【发布时间】:2014-02-28 07:42:06
【问题描述】:

我不知道如何将多项式表达式分解为复数根。

>>> from sympy import *
>>> s = symbol('s')
>>> factor(s**2+1)
 2
s  + 1

【问题讨论】:

  • factor(s2-1) 或 factor(s2-3) 有效吗? sympy 是否支持高斯数?

标签: python sympy complex-numbers


【解决方案1】:

您需要添加I 作为代数扩展:

In [2]: factor(x**2 + 1, extension=[I])
Out[2]: (x - ⅈ)⋅(x + ⅈ)

【讨论】:

  • 您也可以设置gaussian=True 来考虑高斯有理数。
  • 谢谢,其中一个不起作用的例子是:factor(s**3 + s**2 + 1, gaussian=True),这很奇怪,因为 root(s3 + s2 + 1) 找到了所有的根。
  • 多项式的根不是高斯有理数。
  • 如果你总是想对 C 进行全因式分解,你可以使用 LC(polynomial, s)*Mul(*[(s - a)**r[a] for a in r]) 之类的东西,其中 r = roots(polynomial, s)
  • 感谢您指出我的错误,并提出解决方法来写出非理性分解!我想值得一提的是,extension=I kwarg 似乎与gaussian=True kwarg 的行为相同,即高斯理性因素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多