import numpy as np
import numpy.linalg as alg
import matplotlib.pyplot as plt

A = np.array([[0,1],[1,1]])
print(alg.eigvals(A))

for n in range(1,5):
    L = A[n-1:n,:] + A[n:n+1,:]
    A = np.concatenate((A,L),axis=0)
    C = A[:,n-1:n] + A[:,n:n+1]
    A = np.concatenate((A,C),axis=1)
    print(A)
    print(alg.eigvals(A))

A = np.array([[0,1],[1,1]])
X1 = [alg.eigvals(A)[1]]
for n in range(1,9):
    L = A[n-1:n,:] + A[n:n+1,:]
    A = np.concatenate((A,L),axis=0)
    C = A[:,n-1:n] + A[:,n:n+1]
    A = np.concatenate((A,C),axis=1)
    X1.append(alg.eigvals(A)[0])
plt.figure('valeur propre positive')
plt.plot(X1)
plt.show()

A = np.array([[0,1],[1,1]])
X2 = [alg.eigvals(A)[0]]
for n in range(1,19):
    L = A[n-1:n,:] + A[n:n+1,:]
    A = np.concatenate((A,L),axis=0)
    C = A[:,n-1:n] + A[:,n:n+1]
    A = np.concatenate((A,C),axis=1)
    X2.append(alg.eigvals(A)[1])
plt.figure('valeur propre négative')
plt.plot(X2)
plt.show()
