import numpy as np
# y=3x^3+2x^2+9x+10
def root_of(a):
mat = np.zeros((a.shape[0]-1, a.shape[0]-1), dtype=np.double)
a=a/a[0]
for i in range (a.shape[0]-1):
mat[0][i] = a[i+1]
for i in range(a.shape[0]-2):
mat[i+1][i] = -1.0
w,v = np.linalg.eig(mat)
return -w
a=np.array([3,2,9,10])
print("root:", root_of(a))