import numpy as np
import numpy.linalg as alg

A = np.array([[3,-2,2],[0,1,2],[0,4,-1]])
B = np.array([[0,1,2],[3,1,-1],[0,1,2]])
C= np.array([[0,4,-1],[0,1,2],[3,-2,2]])

def M(a,b,c) :
    return (a*A+b*B+c*C)/3
    
print(M(1,1,1))

def Norme(N) :
    n = 0
    for i in range(3) :
        for j in range(3) :
            if n < abs(N[i,j]) :
                n = abs(N[i,j])
    return n
    
def Test(N) :
    a,b,c = N[:,0]
    return Norme(N-M(a,b,c)) < 1e-5  # attention aux arrondis
    
print(alg.eig(A))
print(alg.eig(B))
print(alg.eig(C))
print(alg.eig(M(1,1,1)))
print(alg.eig(M(1,2,3)))

D = M(1,1,-1)
for k in range(10) :
    print(Test(alg.matrix_power(D,k)))