# 1)
import numpy as np

def A(n,a):
    M = np.zeros((n,n))
    for k in range(n-1):
        M[k,k+1] = 1/a
        M[k+1,k] = a
    return M

# 2)
from numpy.linalg import eigvals

for n in range (3,9):
    for a in [-2,-1,1,2,3]:
        vp=eigvals(A(n,a))
        print("pour n =",n," et a =",a,":")
        print([int(1000*x)/1000 for x in vp])

# 3)
from numpy.polynomial import Polynomial

P=[Polynomial([1]),Polynomial([0,1])]
for n in range(7):
    P.append(Polynomial([0,1])*P[n+1]-P[n])

for q in P : print(q)

for n in range(3,9) :
    print([int(1000*x)/1000 for x in P[n].roots()])
    vp=sorted(eigvals(A(n,1)))
    print([int(1000*x)/1000 for x in vp])

