Hey, I'm looking to compute the roots of very large polynomials (as in polynomials of degree 500+) and am looking for the most efficient method to do so. This my code so far (I tried a different method with the commented out code) and it works great for about anything with N<=200ish and then starts to take a really long time:

# var('x')

x=PolynomialRing(ComplexField(),'x').gen()
N=500
s=0
for m in range (N+1):
n=N+1-m
s+=(-1)^n*(n+1)*x^n/factorial(n)
#s+=[(-1)^n*(n+1)/factorial(n)]

# sols=(s==0).roots(x,ring=CC,multiplicities=False)

sols=s.roots() solsPlot=[] for n in range(len(sols)): solsPlot+=[[sols[n][0].real(),sols[n][0].imag()]] #solsPlot+=[[sols[n].real(),sols[n].imag()]] scatter_plot(solsPlot)

Thanks.