2

mpmath.polyroots整数係数 を持つ単純な多項式の根を見つけるために使用しようとしています。x*(x-4)**3これは、展開すると の係数ベクトルを持ち[1, -12, 48, 64, 0]ます。次のコードは失敗します。

import mpmath
p = [  1, -12,  48, -64,   0]
print mpmath.polyroots(p,maxsteps=2000)

エラーで:

Traceback (most recent call last):
  File "poly.py", line 3, in <module>
    print mpmath.polyroots(p,maxsteps=2000)
  File "/usr/local/lib/python2.7/dist-packages/mpmath/calculus/polynomials.py", line 188, in polyroots
    % maxsteps)
mpmath.libmp.libhyper.NoConvergence: Didn't converge in maxsteps=2000 steps.

ステップ数を増やしても効果がありません。予想される答えは明らかに[0,4,4,4]です。

多重度がある場合、mpmath は多項式の根を見つけることができませんか? どうすればこれを解決できますか?

4

1 に答える 1