【发布时间】: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
我不知道如何将多项式表达式分解为复数根。
>>> from sympy import *
>>> s = symbol('s')
>>> factor(s**2+1)
2
s + 1
【问题讨论】:
标签: python sympy complex-numbers
您需要添加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) 找到了所有的根。
LC(polynomial, s)*Mul(*[(s - a)**r[a] for a in r]) 之类的东西,其中 r = roots(polynomial, s)。
extension=I kwarg 似乎与gaussian=True kwarg 的行为相同,即高斯理性因素。