Python Sympy package solve()没有';t给出根(x,3)的所有解

Python Sympy package solve()没有';t给出根(x,3)的所有解,python,sympy,Python,Sympy,我使用Symphy软件包和solve()来获得方程的根,其中 solve(x-root(4*x,3),x) 只给出0和2的结果。 但(全部)解可以通过手动简化为 solve(x**3-4*x,x) 等于0,2,-2 我的问题是,为什么使用根(x,3)不能给出所有的解? 它到底是如何工作的/(确定它有所有的解)?从数学上讲,n次方根是一个多值函数。报告说: root(x,n,k)返回x的第k个n个根,默认为主根(k=0) 您可以通过传入参数k获得其他根,如下所示: [solve(x-roo

我使用Symphy软件包和solve()来获得方程的根,其中

 solve(x-root(4*x,3),x)
只给出0和2的结果。 但(全部)解可以通过手动简化为

 solve(x**3-4*x,x)
等于0,2,-2

我的问题是,为什么使用根(x,3)不能给出所有的解?
它到底是如何工作的/(确定它有所有的解)?

从数学上讲,n次方根是一个多值函数。报告说:

root(x,n,k)
返回x的第k个n个根,默认为主根(k=0)

您可以通过传入参数k获得其他根,如下所示:

[solve(x-root(4*x, 3, k), x) for k in range(3)]
返回
[[0,2],-2,0],[0]]

或者,制作一组所有解决方案

from itertools import chain
set(chain.from_iterable([solve(x-root(4*x, 3, k),x) for k in range(3)]))
结果是
{-2,0,2}