同调化虚数的分数次幂

2024-05-15 18:35:32 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么-(-1)**(1/3) + (-1)**(2/3)不减少到-1?在

wolfram alpha knows它是-1,但是sympy gamma只做浮点近似

re(_) + I*im(_)生成一个NegativeOne对象,但是我尝试的其他简化函数都没有对它做任何操作。在


Tags: 对象函数alphare浮点wolframsympygamma
1条回答
网友
1楼 · 发布于 2024-05-15 18:35:32

我假设你的意思是-(-1)**Rational(1, 3) + (-1)**Rational(2, 3),因为字面上的-(-1)**(1/3) + (-1)**(2/3)都是Python(没有SymPy),并用数值计算。在

大多数SymPy对象不会自动进行任何非平凡的简化。原因是有时您可能希望表示-(-1)**(1/3) + (-1)**(2/3),而不进行简化。另外,一般来说,简化是一个昂贵的操作,在操作创建时这样做会非常低效,因为通常您创建的中间表达式不需要在中间阶段进行简化。在

re(expr) + I*im(expr)很好。一种更自动化的方法是使用expand_complex()

In [19]: expand_complex(-(-1)**Rational(1, 3) + (-1)**Rational(2, 3))
Out[19]: -1

理想情况下,simplify()将调用expand_complex(),这是一个尚未解决的问题(https://github.com/sympy/sympy/issues/7569)。在

还有一点需要注意的是,sypy Gamma直接在sypy之上提供了很多自动化。例如,它将-(-1)**(1/3) + (-1)**(2/3)转换为SymPy类型,并对表达式执行各种功能,如数值计算、简化、微分等

相关问题 更多 >