Méthode de Jacobi
Résolution itérative de $Ax = b$
Enonce
Implémenter jacobi(A, b, eps, max_iter). Critère d'arrêt : la norme infinie de $x^{(k+1)} - x^{(k)}$ est inférieure à $\varepsilon$.
Tester sur le système (à diagonale strictement dominante) :
10x + y + z = 12, 2x + 10y + z = 13, 2x + 2y + 10z = 14.
Solution attendue : $x = y = z = 1$.
Signature attendue
def jacobi(A: list, b: list, eps: float, max_iter: int) -> list:
Exemple
[round(v, 6) for v in jacobi([[10, 1, 1], [2, 10, 1], [2, 2, 10]], [12, 13, 14], 1e-10, 1000)]→[1.0, 1.0, 1.0]
📖 Rappel de cours
Contrairement aux méthodes directes (Gauss, LU) qui résolvent $Ax = b$ en un nombre fini d'opérations, la méthode de Jacobi est itérative : on construit une suite $(x^{(k)})$ qui converge vers la solution.
Idée :
De la $i$-ème équation $\sum_j a_{ij} x_j = b_i$, on isole $x_i$ :
$x_i^{(k+1)} = \frac{1}{a_{ii}}\!\left(b_i - \sum_{j\neq i} a_{ij}\,x_j^{(k)}\right)$
À chaque itération, tous les $x_i^{(k+1)}$ sont calculés à partir du vecteur précédent $x^{(k)}$ : il faut donc deux tableaux distincts.
Convergence :
Garantie si $A$ est à diagonale strictement dominante :
$|a_{ii}| > \sum_{j\neq i} |a_{ij}| \quad \text{pour tout } i$
Avantage : très simple à programmer, parallélisable. Inconvénient : convergence parfois lente.
← Exercices d'analyse numérique en Python — dichotomie, Newton, intégration
Exercices du meme theme
- Méthode de Heun (RK2)
- Méthode de Runge-Kutta d'Ordre 4 (RK4)
- Méthode des Moindres Carrés
- Méthode de Romberg
- Interpolation Bilinéaire
- Géométrie 3D — Vecteurs
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.