我对python很陌生,所以如果有一个简单的修复,请原谅我。我试图用symmy来解复系数多项式。我发现如果k“太复杂”,我得到一个空白输出。。。我还不太清楚这意味着什么。作为第一个例子,考虑具有复系数的四阶多项式
In [424]: solve(k**4+ 2*I,k)
Out[424]:
[-2**(1/4)*sqrt(-sqrt(2)/4 + 1/2) - 2**(1/4)*I*sqrt(sqrt(2)/4 + 1/2),
2**(1/4)*sqrt(-sqrt(2)/4 + 1/2) + 2**(1/4)*I*sqrt(sqrt(2)/4 + 1/2),
-2**(1/4)*sqrt(sqrt(2)/4 + 1/2) + 2**(1/4)*I*sqrt(-sqrt(2)/4 + 1/2),
2**(1/4)*sqrt(sqrt(2)/4 + 1/2) - 2**(1/4)*I*sqrt(-sqrt(2)/4 + 1/2)]
获取输出没有问题。不过,我对解决类似的问题很感兴趣
^{pr2}$这要复杂得多,并返回一个空列表。不过,我可以用maple来解决这个问题。另外,请注意,在去除复系数时,没有问题
In [434]: solve(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1,k)
Out[434]:
[CRootOf(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1, 0),
CRootOf(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1, 1),
CRootOf(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1, 2),
CRootOf(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1, 3),
CRootOf(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1, 4),
CRootOf(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1, 5)]
结果数组的元素可以用数值计算。在
那么,这是一个关于复系数的问题吗?我怎样才能解出像第427行那样的方程?在
我尝试过用nsolve()来求解,并逐个将根分解出来,尽管我也没有使用这个方法的运气。在
根据Stelios的comment,可以使用sympy.polys.polytools.nroots:
相关问题 更多 >
编程相关推荐