0% ont trouvé ce document utile (0 vote)
2 vues7 pages

Rapport de TP Phénomène de Runge: Table Des Matières

Ce rapport de TP explore le phénomène de Runge et ses implications sur l'interpolation polynomiale, en utilisant Python pour comparer les méthodes d'interpolation avec des nœuds équidistants et des nœuds de Tchebychev. Les résultats montrent que l'utilisation des nœuds de Tchebychev réduit les oscillations et améliore la stabilité de l'approximation. L'étude conclut que les nœuds de Tchebychev offrent une meilleure précision par rapport aux points équidistants.

Transféré par

Rayen Melliti
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues7 pages

Rapport de TP Phénomène de Runge: Table Des Matières

Ce rapport de TP explore le phénomène de Runge et ses implications sur l'interpolation polynomiale, en utilisant Python pour comparer les méthodes d'interpolation avec des nœuds équidistants et des nœuds de Tchebychev. Les résultats montrent que l'utilisation des nœuds de Tchebychev réduit les oscillations et améliore la stabilité de l'approximation. L'étude conclut que les nœuds de Tchebychev offrent une meilleure précision par rapport aux points équidistants.

Transféré par

Rayen Melliti
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Rapport de TP

Phénomène de Runge
Rayen Melliti
22 avril 2026

Table des matières


1 Introduction 2

2 Objectif 2

3 Travail Pratique 2
3.1 Fonction de Runge . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Interpolation polynomiale . . . . . . . . . . . . . . . . . . . . 3
3.2.1 Décomposition dans la base canonique . . . . . . . . . 3
3.2.2 Décomposition dans la base de Lagrange . . . . . . . . 4
3.2.3 Décomposition dans la base de Newton . . . . . . . . . 4
3.2.4 Une simple vérification . . . . . . . . . . . . . . . . . . 5
3.3 Comparaison entre subdivision uniforme et nœuds de Tcheby-
chev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 Étude de l’erreur d’interpolation . . . . . . . . . . . . . . . . . 7

4 Conclusion 7

1
1 Introduction
Le phénomène de Runge est un résultat classique en analyse numérique
qui met en évidence les limites de l’interpolation polynomiale. Lorsque l’on
cherche à approcher une fonction par un polynôme interpolateur de degré
élevé en utilisant des points équidistants, l’approximation peut devenir in-
stable et présenter de fortes oscillations, en particulier aux extrémités de
l’intervalle.

2 Objectif
L’objectif de ce TP est d’illustrer ce phénomène à l’aide d’implémenta-
tions sous Python, en comparant les résultats obtenus avec différents choix
de nœuds d’interpolation, notamment les nœuds équidistants et les nœuds
de Tchebychev. On mettra en évidence l’impact du choix des points d’inter-
polation sur la qualité de l’approximation.

3 Travail Pratique
3.1 Fonction de Runge
Dans ce TP, on considère la fonction de Runge définie sur [−3, 3] par :
1
f (x) = .
1 + x2
La fonction ainsi que son tracé sont obtenus à l’aide du code Python suivant :

def runge(x):
return 1/(1+x**2)
x = [Link](-3,3,1000)
[Link](x, runge(x), label='Fonction de Runge')
[Link]()
[Link]()

2
Figure 1 – Courbe de la fonction de Runge

3.2 Interpolation polynomiale


On s’intéresse à l’interpolation polynomiale d’une fonction donnée. On
construit le polynôme interpolateur de Lagrange en utilisant trois représen-
tations différentes : la base canonique, la base de Lagrange et la base de
Newton.

3.2.1 Décomposition dans la base canonique


On commence par exprimer le polynôme interpolateur dans la base ca-
nonique. Cela revient à résoudre un système linéaire associé à la matrice de
Vandermonde.

def lagrangebc(x,f,t) :
n = len(x)
y = [f(i) for i in x]
A = [Link]([ [t**i for i in range(n)] for t in x ])
r = [Link](A, y)
s = 0
for i in range(n) :
s = s + r[i]*t**i
return s

3
3.2.2 Décomposition dans la base de Lagrange
On utilise ensuite la formule classique du polynôme de Lagrange basé sur
les polynômes D’interpolation de Lagrange.

def lagrangebl(x,f,t) :
n = len(x)
s = 0
for i in range(n) :
p = 1
for k in range(n) :
if k != i :
p = p * (t - x[k])/(x[i]-x[k])
s = s + f(x[i]) * p
return s

3.2.3 Décomposition dans la base de Newton


Enfin, on considère la forme de Newton du polynôme interpolateur, basée
sur les différences divisées.

def lagrangebn(x,f,t ) :
n = len(x)
y = [f(i) for i in x]
A = []
for i in range(n) :
v = [1]
for j in range(1,n) :
p = 1
for k in range(j) :
p = p*(x[i] - x[k])
[Link](p)
[Link](v)
y = [Link](A,y)
s = y[0]
for i in range(1,n) :
p =1
for j in range(i) :
p = p*( t- x[j])
s = s + y[i]*p
return s

4
3.2.4 Une simple vérification
On vérifie numériquement que les trois formulations du polynôme inter-
polateur de Lagrange (base canonique, base de Lagrange et base de Newton)
coïncident bien. Pour cela, on compare les courbes obtenues à partir d’un
même ensemble de points d’interpolation. La figure ci-dessous illustre la dif-
férence entre les deux choix de points d’interpolation.

y = [Link](-3,3,15)
w = [lagrangebc(y,runge,t) for t in x]
z = [lagrangebl(y,runge,t) for t in x]
v = [lagrangebn(y,runge,t) for t in x]

[Link](x,w, label = 'Premier polynome interpolateur')


[Link](x,z, label = 'Deuxieme polynome interpolateur')
[Link](x,v, label = 'Troisieme polynome interpolateur')

[Link]()
[Link]("[Link]")
[Link]()

Figure 2 – Comparaison des trois méthodes d’interpolation de Lagrange

On constate que les trois courbes se superposent parfaitement, ce qui


confirme que les trois méthodes fournissent le même polynôme interpolateur,
exprimé sous des formes différentes.

5
3.3 Comparaison entre subdivision uniforme et nœuds
de Tchebychev
Dans cette partie, on compare l’interpolation polynomiale obtenue à par-
tir de points équidistants (subdivision uniforme) et celle obtenue à partir des
nœuds de Tchebychev.

def tcheby(a,b,n) :
return [Link]([a + (b-a)*(1+[Link](n*(2*i+1)/(2*n+2)))/2 for i
in range(n)])

y = [Link](-3,3,15)

w = [lagrangebc(y,runge,t) for t in x]
v = [lagrangebc(tcheby(-3,3,15),runge,t) for t in x]

[Link](x,runge(x) , label = 'Fonction de Runge')


[Link](x,w , label = 'Interpolation avec subdivision uniforme' )
[Link](x,v , label = 'Interpolation avec nuds de Tchebychev' )
[Link]()
[Link]('[Link]')
[Link]()

Figure 3 – Comparaison entre subdivision uniforme et nœuds de Tcheby-


chev

6
On observe que l’interpolation basée sur les nœuds de Tchebychev réduit
fortement les oscillations aux extrémités de l’intervalle et améliore la stabilité
du polynôme interpolateur.

3.4 Étude de l’erreur d’interpolation


Afin d’évaluer la qualité de l’interpolation polynomiale, on considère l’er-
reur entre la fonction exacte et les polynômes interpolateurs obtenus par
subdivision uniforme et par nœuds de Tchebychev. Les résultats graphiques
précédents suggèrent que l’erreur est nettement plus faible dans le cas des
nœuds de Tchebychev que dans le cas de la subdivision uniforme.

def errorlagrange(f,n,a,b) :
u = [Link](a,b,n)
v = [Link]([abs(f(t) - lagrangebc(u,f,t)) for t in x])
w = [Link]([abs(f(t) - lagrangebc(tcheby(a,b,n), f, t)) for t
in x])
return [float([Link](v)),float([Link](w))]

print(errorlagrange(runge,15,-3,3))

Les résultats obtenus sont :

Euniforme = 0.9368 et ETchebychev = 0.0263.

4 Conclusion
L’étude du phénomène de Runge a mis en évidence les limites de l’inter-
polation avec des points équidistants, notamment l’apparition d’oscillations
aux extrémités de l’intervalle. L’utilisation des nœuds de Tchebychev a per-
mis de réduire fortement l’erreur d’approximation, confirmant leur intérêt
pour améliorer la stabilité de l’interpolation polynomiale.

Vous aimerez peut-être aussi