有没有一种方法可以使用Sympy扩展多项式?

时间:2020-07-14 21:54:55

标签: python python-3.x module sympy

看一下Sympy文档,似乎有一个“扩展”函数可以用来扩展多项式表达式。但是,实际上,这对我不起作用。我开始使用虚数:

import sympy
sympy.expand((x - 1)(x + i)(x - i))

但是,希望“ x ^ 3-x ^ 2 + x-1”返回以下错误:模块'sympy'没有属性'expand'

然后我更改了要扩展的表达式,因为这使我假设Sympy无法处理复数,如下所示:

import sympy
sympy.expand((x - 1)(x - 1)(x + 1))

但是这返回了相同的错误。

2 个答案:

答案 0 :(得分:0)

假想的i用大写字母I表示。要进行乘法运算,需要显式使用*。同样,在Python中,^严格保留用于布尔(或按位)排斥或。功率表示为**

from sympy import symbols, I, expand

x = symbols('x') 
print(expand((x - 1)*(x + I)*(x - I)))

输出:x**3 - x**2 + x - 1

请注意,调用expand()的另一种方法是expression.expand()(或示例中的((x - 1)*(x + I)*(x - I)).expand())。通常,这是连接多个操作的便捷方法。

答案 1 :(得分:0)

我没问题可以奔跑

import sympy

x = sympy.Symbol('x')
i = sympy.Symbol('i')

sympy.expand( (x - 1)*(x + i)*(x - i) )

这给了我

-i**2*x + i**2 + x**3 - x**2

唯一的想法:您创建的文件名为sympy.py,现在import sympy加载了文件而不是模块sympy,并且在文件中找不到expand。您必须将文件sympy.py重命名为其他名称(不是其他模块的名称)。

但是您没有添加有问题的完整错误消息,因此我无法确认。