Matrices tridiagonales [Python]

Les questions [P] utilisent Python. Soit {\alpha=(\alpha_n)_{n\ge1}} une suite réelle. La matrice {A_n(\alpha)} a pour diagonale {(\alpha_1,\ldots,\alpha_n)}, pour sous-diagonale et surdiagonale des {-1}, et tous ses autres coefficients sont nuls.

1. (a) [P] Écrire A(L) renvoyant la matrice de diagonale donnée par la liste L. Vérifier pour L=[2,3,4,5,6].

1. (b) [P] Calculer le déterminant et l’inverse de cette matrice {A_5}.

1. (c) [P] Écrire B(n) lorsque tous les {\alpha_k} valent {2}. Calculer les déterminants pour {1\le n\le10}.

On note désormais {A_n=A_n(\alpha)} et {\Delta_n=\det A_n}.

2. (a) Déterminer une récurrence donnant {\Delta_n} en fonction de {\Delta_{n-1},\Delta_{n-2}}.

2. (b) Si tous les {\alpha_k\ge2}, montrer que {\Delta_n\ge n+1}.

2. (c) Calculer {\Delta_n} si tous les {\alpha_k=2}.

2. (d) Calculer {\Delta_n} si tous les {\alpha_k=\mu\gt2}. Indication : poser {\mu=2\cosh\theta}, avec {\theta\gt0}.

On fixe {n\ge2}, on suppose {\alpha_k\ge2}, et on considère le système {(S_n):A_nx=\beta}, où {\beta=(\beta_1,\ldots,\beta_n)^t}.

3. (a) Montrer que les relations {\delta_1=1/\alpha_1} et {\delta_k=1/(\alpha_k-\delta_{k-1})} définissent {n} réels dans {]0,1]}.

3. (b) Posons {\omega_1=\beta_1\delta_1} et {\omega_k=(\beta_k+\omega_{k-1})\delta_k}. Montrer que la solution unique est donnée par {x_n=\omega_n}, puis {x_k=\omega_k+\delta_kx_{k+1}} pour {k=n-1,\ldots,1}.

3. (c) [P] Utiliser cet algorithme pour retrouver la première colonne de {A_5^{-1}} dans l’exemple initial.

Indications Python

np.diag(L) crée une matrice diagonale. np.linalg.det et np.linalg.inv calculent déterminant et inverse ; round arrondit. La liste [2]*n contient n fois le nombre 2.