MN Chap1
MN Chap1
MN Chap1
2023/2024
4 Expression de l’erreur
8 Phénomène de Runge
Description du problème
L’approximation d’une fonction donnée par une autre, plus simple, est
un outil très efficace et répandu dans les mathématiques appliquées.
On cherche à calculer les valeurs d’une fonction f (x) pour toute valeur
de x mais on ne connaît pas explicitement f .
Par exemple,
f n’est connue qu’en un certain nombre de points x
expérimentaux.
f est calculée par un code numérique très coûteux.
On remplace alors f par une fonction simple dont l’évaluation est aisée
(ex: utilisation de polynômes, fonctions rationnelles, fonctions
trigonométriques, . . . )
Applications
visualisation de résultats de calculs : pour des valeurs données
d’une fonction f aux points xi , nous voulons tracer cette fonction
sur l’intervalle [a, b]: f (x) ≃ pn (x), ∀x ∈ [a, b]
dérivation numérique: afin de calculer la dérivée d’une fonction f :
f ′ (x) ≃ pn′ (x)
intégration numérique : afin de calculer l’intégrale d’un fonction f :
Rb Rb
a f (x)dx ≃ a pn (x)dx
résolution numérique des équations différentielles : dans les
méthodes spectrales, la solution d’une équation est approchée
par un polynôme; dans la méthode d’éléments finis, la solution est
approchée par une fonction polynômiale par morceaux.
...
p3 (x) = a0 + a1 x + a2 x 2 + a3 x 3 (1)
passant par les points (−2, 10), (−1, 4), (1, 6) et (2, 3).
10
3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
import numpy as np
V = np.array([[1,-2,4,-8],[1,-1,1,-1],[1,1,1,1],[1,2,4,8]])
y = np.array([10,4,6,3])
a = np.linalg.solve(V, y)
10
3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Définition
On cherche un polynôme Pn de degré au plus n (Pn ∈ Rn [X ]) tel que
Pn (xi ) = yi , pour i = 0, ..., n.
a0 + a1 x0 + . . . + an x0n =y0
a0 + a1 x1 + . . . + an x1n =y1
. . . . . . . . . . . . . . . . . . . . . . .=. . .
a0 + a1 xn + ... + an xnn =yn
Déterminant de Vandermonde
Le déterminant de Vandermonde vérifie:
1 x0 x02 . . . x0n
1 x1 x12 . . . x1n Y
.. .. .. . = (xj − xi )
. . . . . . .. 0≤i<j≤n
1 xn xn2 . . . xnn
Théorème
Une condition nécessaire et suffisante pour qu’il existe un et un seul
polynôme Pn ∈ Rn [X ] tel que Pn (xi ) = yi , pour i = 0, . . . , n est que
toutes les abscisses soient distinctes
avec
a0 −1 y0
1 x0 x02 x0n
a1 ... y1
1 x1 x 2 ... x1n
a2 1 y2
= .. .. .
. .
.. . .
. . . . . .. ..
.
1 xn xn2 . . . xnn
an yn
et donc:
−1 1
1 1 1 ... 1 t
x0 x1 x2 . . . xn
t 2
Pn (t) = (y0 , y1 , y2 , . . . , yn ) .
.. .. ..
..
. . ... . ..
.
x0 x1 x2n
n n . . . xnn
tn
avec
L (t) 1
... 1 0
1 1 1
x0 x1 x2 . . . xn 1 t
L (t)
L2 (t) t 2
=
.. .. .. .
. . . . . . .. .. ..
. .
x0n x1n x2n . . . xnn
Ln (t) tn
Propriétés
L0 (t) + L1 (t) + . . . + Ln (t) =1
x0 L0 (t) + x1 L1 (t) + . . . + xn Ln (t)=t
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .=. . .
n
x0 L1 (t) + x1n L1 (t) + ... + xnn Ln (t)=t n
Théorème
{L0 , L1 , . . . , Ln } est une base de Rn [X ]
Définition
Soit π le polynôme de degré n + 1 tel que:
π(t) = (t − x0 )(t − x1 ) . . . (t − xn )
π(t)
Li (t) =
(t − xi )πi (xi )
(n) 1
On remarque que λi = πi (xi ) , ce qui donne:
Formule barycentrique
(n)
n
Pn λ
i=0 yi t−xi
i
X π(t)
Pn (t) = yi =
(t − xi )πi (xi ) Pn λ(n) i
i=0 i=0 t−xi
Algorithme
Entrées:
(xi , yi )0≤i≤n représentant les points d’interpolation
le point t en lequel on veut évaluer le polynôme d’interpolation
Sortie: Pn (t)
P=0
pour i=0,. . . ,n faire
L=1
pour j=0,. . . ,i-1 faire
L = L ∗ (t − xj )/(xi − xj )
fin du pour
pour j=i+1,. . . ,n faire
L = L ∗ (t − xj )/(xi − xj )
fin du pour
P = P + yi ∗ L
fin du pour
Abdelkader FASSI FIHRI (ENSAM-Meknès) CMN 20 / 40
Polynôme d’interpolation dans la base de Newton
Théorème
Qi−1
Posons N0 (t) = 1 et Ni (t) = Ni−1 (t)(t − xi−1 ) = j=0 (t − xj ), alors
{N0 , N1 , . . . , Nn } est une base de Rn [X ].
Définition
On appelle différence divisée:
d’ordre zero la quantité : [xi ] = yi
yj −yi
d’ordre un la quantité : [xi , xj ] = xj −xi
d’ordre k − 1 :
[xi2 , . . . , xik ] − [xi1 , . . . , xik −1 ]
[xi1 , . . . , xik ] =
xik − xi1
Propriétés
k
X yi
[x0 , . . . , xk ] = Qk
i=0 j=0 (xi − xj )
j̸=i
Différences divisées
x0 y0
x1 y1 [x0 , x1 ]
x2 y2 [x1 , x2 ] [x0 , x1 , x2 ]
.. .. .. ..
. . . .
xn yn [xn−1 , xn ] [xn−2 , xn−1 , xn ] . . . ... ... [x0 , x1 , . . . , xn ]
Pi (xj ) = yj ; pour j = 0, . . . , i
Algorithme de Newton
Entrées:
(xi , yi )0≤i≤n représentant les points d’interpolation
le point t en lequel on veut évaluer le polynôme d’interpolation
Sortie: Pn (t)
P = f [x0 ] = f (x0 )
T=1
pour j=1,. . . ,n faire
T = T ∗ (t − xj−1 )
calcul des différence divisées d’ordre j
pour i=j,. . . ,n faire
D(i, j) dénote f [xi−j , . . . , xi ]
D(i, j) = D(i,j−1)−D(i−1,j−1)
x −x i i−j+1
fin du pour
P = P + T ∗ D(j, j)
fin du pour
Théorème
Soit f une fonction de classe C n+1 [a, b] avec a = mink xk et
b = maxk xk et Pn le polynôme interpolant f en n + 1 points x0 , . . . , xn
appartenant à [a, b] et yi = f (xi ). Alors
∃ξt ∈ [min(t, mink xk ), max(t, maxk xk )] tel que :
n
f (n+1) (ξt ) Y
En (t) = f (t) − Pn (t) = (t − xi )
(n + 1)!
i=0
π(x)
Preuve: On pose F (x) = f (x) − Pn (x) − π(t) (f (t) − Pn (t))
Théorème de Cauchy
n
Y
En (t) = f (t) − Pn (t) = [x0 , . . . , xn , t] (t − xi )
i=0
H (k ) (xi ) = yi (k ) i = 0, . . . , n k = 0, . . . , mi
Ce polynôme s’écrit
mi
n X
X
HN−1 (x) = yi (k ) Lik (x)
i=0 Xn
dp
1, si i = j et k = p
Lik (xj ) =
dx p 0, sinon
f (N) (ξ)
f (x) − HN−1 (x) = πN (x)
N!
avec ξ ∈ [a, b] et le polynôme nodal πN ∈ PN tel que
πN (x) := (x − x0 )m0 +1 × . . . × (x − xn )mn +1
Exemple 1
Trouver p ∈ P3 tel que
′ ′ ′′ ′′ ′′′ ′′′
p(x0 ) = f0 , p (x0 ) = f0 , p (x0 ) = f0 , p (x0 ) = f0
′ ′′ ′′′
p(x) = f0 + f0 (x − x0 ) + f0 /2(x − x0 )2 + f0 /6(x − x0 )3
Erreur:
1
(x − x0 )4 f 4 (ξ)
24
x0 f0
x1 f1 [x0 , x1 ]
x1 f1 f1′ [x0 , x1 , x1 ]
x2 f2 [x1 , x2 ]f [x1 , x1 , x2 ] [x0 , x1 , x1 , x2 ]
1 b − a n+1
max |f (t) − Pn (t)| ≤ ( ) max |f (n+1) (t)|
x∈[a,b] 4(n + 1) n t∈[a,b]
Phénomène de Runge
1
fonction f
points équidistants
0.8
points de Tchebyshev
0.6
0.4
0.2
-0.2
-5 -4 -3 -2 -1 0 1 2 3 4 5
Fonctions Python
En Python on peut calculer les polynômes d’interpolation en utilisant
les fonctions polyfit et polyval de la bibliothèque Numpy
1 p = numpy.polyfit(x,y,n) calcule les coefficients du polynôme de
degré n qui interpole les valeurs y aux points x.
2 px = numpy.polyval(p,t) calcule les valeurs px d’un polynôme de
degré n, dont les n + 1 coefficients sont memorisés dans le
vecteur p, au point t, c’est-à-dire :
px = p1 t n + ... + pn t + pn+1
J(a) est une forme quadratique en ai , et son minimum est atteint pour
∂J
(a) = 0 pour j = 0, . . . , m
∂aj
Ax = b