我使用sympy包和solve()来获得方程的根,其中
solve(x-root(4*x,3),x)
仅将结果表示为0和2。 但是(所有)解决方案可以通过手动简化为
来获得 solve(x**3-4*x,x)
为0,2,-2。
我的问题是,为什么使用root(x,3)不提供所有解决方案? 究竟是如何工作/(确定它有所有解决方案)?
答案 0 :(得分:0)
数学上,第n个根是一个多值函数。 documentation of root function说:
root(x, n, k)
返回x的第k个根,默认为主根(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}
。