首页 > 解决方案 > 包含复指数的多项式的 factor_list 中的错误

问题描述

我想列出一个表达式,并在特殊情况下发现一个奇怪的行为,我不明白。一个例子是:

多项式包含 exp(-4 pi I/7)的前置因子,这个因子有时会产生问题。删除负号使其工作。当用于不同的表达式时,它也适用于负号。下面是一个包含三个表达式的示例

import sympy as sym
q=sym.Symbol("q")

# this example works
y1=3*(sym.exp(4*sym.I*sym.pi/7)*q - 1)*sym.exp(2)
print( sym.factor_list(y1,q) )

# this one not
y2=3*(sym.exp(-4*sym.I*sym.pi/7)*q - 1)*sym.exp(2)
print( sym.factor_list(y2,q) )

# this one works too
y3=3*(sym.exp(-4*sym.I*sym.pi/7)*q - 1)**2*sym.exp(2)
print( sym.factor_list(y3,q) )

对于第二个示例,我收到错误

sympy.polys.polyerrors.PolynomialError: a polynomial expected, got (3*q*exp(-4*I*pi/7) - 3)*exp(2)

对于我得到的第三个表达式

(3*exp(2), [(exp(6*I*pi/7), 1), (q - exp(4*I*pi/7), 2)])

但第一个条目 (exp(6 I pi/7), 1) 不包含变量 q

任何想法第二个示例有什么问题以及为什么第三个示例中的 exp(6 I pi/7) 出现不具有常数因子 3*exp(2) 谢谢

标签: sympycomplex-numbersfactorization

解决方案


推荐阅读