Adloun

Python (école d'ingénieur) · Chapitre 11 · Exercice

Fractale de Newton

Résolution d'équations non linéaires

Énoncé

Pour le polynôme complexe , tracer les bassins d'attraction de la méthode de Newton complexe dans le plan complexe .

Corrigé

import numpy as np
import matplotlib.pyplot as plt

def newton_complexe(f, df, z0, maxiter=50, tol=1e-6):
    z = z0
    for i in range(maxiter):
        fz = f(z)
        if abs(fz) < tol:
            return z, i
        dz = df(z)
        if abs(dz) < 1e-10:
            return z, maxiter
        z = z - fz / dz
    return z, maxiter

P = lambda z: z**3 - 1
dP = lambda z: 3*z**2

# Grille de calcul
res = 500
x = np.linspace(-1.5, 1.5, res)
y = np.linspace(-1.5, 1.5, res)
image = np.zeros((res, res))
iterations = np.zeros((res, res))

racines = [1, -0.5 + 0.86602540378j, -0.5 - 0.86602540378j]

for i in range(res):
    for j in range(res):
        z = complex(x[i], y[j])
        root, it = newton_complexe(P, dP, z, maxiter=30)
        distances = [abs(root - r) for r in racines]
        image[j, i] = np.argmin(distances)
        iterations[j, i] = it / 30.0

Illustration Bassins d'attraction complexes (gauche) et vitesse de convergence (droite) pour l'équation par la méthode de Newton. Les zones colorées à gauche désignent le bassin d'attraction de chaque racine complexe de l'unité. Les structures complexes et auto-similaires aux frontières révèlent la nature chaotique et fractale de la méthode de Newton complexe.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →