L3 M-MA, L3 DL ME, L2 DL MI Année universitaire 2024-2025
Solution du contrôle continu no 2 d’Analyse numérique, durée 2h30
Exercice 1. Soient [a, b] un intervalle non réduit à un point, f une fonction définie sur [a, b]
à valeurs réelles, et x1 , . . . , xn des points distincts de l’intervalle [a, b], avec n ≥ 1. On note
w, w1 , . . . , wn les fonctions polynomiales définies par
n
Y n
Y
w(x) = (x − xj ) et wi (x) = (x − xj ) pour tout i ∈ {1, . . . , n}.
j=1 j=1
j̸=i
On note Pn le polynôme d’interpolation de Lagrange de f aux points x1 , . . . , xn .
1. On a n Y
n
X
w′ (x) = (x − xj ).
i=1 j=1
j̸=i
Soit i ∈ {1, . . . , n}. Le polynôme w′ est une somme de polynômes qui s’annulent tous en xi ,
sauf le i−ème. Par conséquent
n
Y
′
w (xi ) = (xi − xj ) = wi (xi )
j=1
j̸=i
comme annoncé.
2. Le polynôme Pn vaut
n n n
X Y x − xj X wi (x)
Pn (x) = f (xi ) = f (xi ) .
i=1
x − xj
j=1 i i=1
wi (xi )
j̸=i
Soit x ∈ [a, b]\{x1 , . . . , xn }. On a w(x) = (x−xi )wi (x), et on a vu ci-dessus que w′ (xi ) = wi (xi ).
De ceci on tire n
X w(x)
Pn (x) = f (xi )
i=1
w′ (x i )(x − xi )
ce qu’il fallait montrer.
3. On sait que, quel que soit n ≥ 1, le polynôme de Lagrange de la fonction constante égale à 1
aux points x1 , . . . , xn est constant égal à 1. En appliquant le résultat ci-dessus pour f constante
égale à 1, on obtient
n
X w(x)
∀x ∈ [a, b] \ {x1 , . . . , xn }, 1 =
i=1
w′ (xi )(x − xi )
1
ce qui est exactement la formule souhaitée.
4. Des deux questions précédentes on déduit que
n
X w(x)
∀x ∈ [a, b] \ {x1 , . . . , xn }, Pn (x) = f (xi )
i=1
w′ (x i )(x − xi )
n
, n
X w(x) X w(x)
= f (xi ) ′
i=1
w (xi )(x − xi ) i=1
w′ (x i )(x − xi )
n
X 1
f (xi )
i=1
w′ (x i )(x − xi )
= n
X 1
i=1
w′ (x i )(x − xi )
ce qui constitue le résultat souhaité. Lorsque x ∈ {x1 , . . . , xn }, il y a toujours égalité en
prolongeant l’expression sous forme barycentrique par sa limite en chacun des xi , puisque la
limite en question en x = xi est égale à f (xi ), qui est la valeur de Pn (xi ) par construction.
5. La valeur de Pn (x) est donc le barycentre des f (xi ) affectés des poids 1/(w′ (xi )(x − xi )),
d’où la terminologie « barycentrique » pour cette formule.
6. Un algorithme qui convient est
Algorithm 1 Lagrange barycentrique
Require: f : [a, b] → R, a ≤ x1 < x2 < · · · < xn ≤ b ∈ R, x ∈ [a, b] \ {x1 , . . . , xn }
N ← 0, D ← 0
for 1 ≤ i ≤ n do
p ← x − xi
for 1 ≤ j ≤ n do
if j ̸= i then
p ← p(xi − xj )
end if
end for
N ← N + f (xi )/p
D ← D + 1/p
end for
return N/D
7. Cet algorithme coûte environ 2n2 opérations. Il est donc plus économique que l’implémentation
naı̈ve de l’interpolation de Lagrange, mais plus coûteux que l’algorithme des différences divisées.
Exercice 2. Soient a < b deux réels, n un entier naturel strictement positif, x1 , . . . , xn des
éléments distincts de [a, b] et λ1 , . . . , λn des réels. Pour toute fonction f continue sur [a, b] à
valeurs réelles, on pose
n
X Z b
I(f ) = λi f (xi ) et E(f ) = f (x) dx − I(f ).
i=1 a
2
et on note, pour tous r entier strictement positif et t, x ∈ [a, b],
(x − t)r si x > t,
ψr,t (x) = (max(0, x − t))r =
0 si x ≤ t.
Rb
1. La quantité |E(f )| représente l’erreur commise dans l’approximation de a
f (x) dx par I(f ).
2. Soient f, g : [a, b] → R continues et µ ∈ R. Alors
Z b
E(f + µg) = (f + µg)(x) dx − I(f + µg)
a
Z b n
X
= (f + µg)(x) dx − λi (f + µg)(xi )
a i=1
n n
!
Z b X Z b X
= f (x) dx − λi f (xi ) + µ g(x) dx − λi g(xi )
a i=1 a i=1
par linéarité de l’intégrale, ce qui signifie exactement que E(f + µg) = E(f ) + µE(g).
3. Quel que soit r entier strictement positif, on a ψr,t (x) = (max(0, x − t))r . La fonction
(t, x) 7→ max(0, x − t) est le maximum de deux fonctions continues sur [a, b] × [a, b], ce qui
implique qu’elle est continue sur [a, b] × [a, b]. Il en résulte que (t, x) 7→ ψr,t (x), qui est sa
puissance r−ième, est aussi continue sur [a, b] × [a, b].
4. Le fait que t 7→ I(ψr,t ) soit continue découle directement de la continuité de (t, x) 7→ ψr,t (x).
Rb
La continuité de t 7→ a ψr,t (x) dx est une conséquence immédiate de la continuité de (t, x) 7→
ψr,t (x) et du théorème de convergence dominée (ou, de manière équivalente, du théorème de
R
continuité d’une intégrale à paramètre sous le signe ). La continuité de Kr s’ensuit.
5. La formule de Taylor avec reste intégral donne, pour tout x ∈ [a, b],
r x
f (k) (a) (x − t)r (r+1)
X Z
k
f (x) = (x − a) + f (t) dt
k=0
k! a r!
ce qui est exactement l’égalité f (x) = P (x) + R(x). On a vu à la question 2 que E(f ) =
E(P + R) = E(P ) + E(R), et puisque la méthode I est d’ordre au moins r et que P est un
polynôme de degré au plus r, on a E(P ) = 0. Par conséquent E(f ) = E(R).
6. On a pour tout x ∈ [a, b],
Z b Z x Z b
ψr,t (x) (r+1) ψr,t (x) (r+1) ψr,t (x) (r+1)
f (t) dt = f (t) dt + f (t) dt.
a r! a r! x r!
La deuxième intégrale du membre de droite est nulle, puisque ψr,t (x) = 0 lorsque t ≥ x. On a
3
ainsi
b x x
(x − t)r (r+1)
Z Z Z
ψr,t (x) (r+1) ψr,t (x) (r+1)
f (t) dt = f (t) dt = f (t) dt = R(x)
a r! a r! a r!
comme annoncé.
7. On a
Z b
E(f ) = E(R) = R(x) dx − I(R)
a
Z b Z b n Z b
ψr,t (x) (r+1) X ψr,t (xi ) (r+1)
= f (t) dt dx − λi f (t) dt.
a a r! i=1 a r!
Le théorème de Fubini (appliqué à la fonction continue (t, x) 7→ ψr,t (x)f (r+1) (t)/r! sur [a, b] ×
[a, b], donc bornée) donne
Z b Z b n
Z bX
f (r+1) (t) f (r+1) (t)
E(f ) = E(R) = ψr,t (x) dx dt − λi ψr,t (xi ) dt
a a r! a i=1
r!
n
!
b b
f (r+1) (t)
Z Z X
= ψr,t (x) dx − λi ψr,t (xi ) dt
a a i=1
r!
Z b (r+1) Z b
f (t) 1
= E(ψr,t (x)) dt = Kr (t)f (r+1) (t) dt
a r! r! a
ce qu’il fallait montrer.
8. Le fait que
b
maxa≤t≤b |f (r+1) (t)|
Z
|E(f )| = |E(R)| ≤ |Kr (t)| dt
r! a
découle immédiatement de la question précédente et de l’inégalité triangulaire, en utilisant le fait
que la fonction f (r+1) est continue sur [a, b]. Ce résultat constitue une inégalité « universelle » sur
toute méthode d’ordre r, au sens où il suffit, pour obtenir une borne sur l’erreur, de majorer
l’erreur commise sur la seule fonction intervenant dans le noyau de Peano Kr .
Exercice 3. On donne le code Python suivant, dans lequel a et b sont deux réels, f est une
fonction et N est un entier naturel strictement positif.
def h (a ,b ,f ,N , me ) :
ans =0
s =( b - a ) / N
if me == " A " :
for i in range ( N ) :
ans += s * f ( a +( i +1) * s )
elif me == " B " :
for i in range ( N ) :
ans +=(1/3) * s *( f ( a + i * s ) + f ( a +(2* i +1) * s /2) + f ( a +( i +1) * s ) )
4
return ans
Rb
1. L’utilisation de cette fonction retourne la valeur de l’approximation de a
f (x) dx par la
méthode des rectangles à droite avec un pas (b − a)/N si me=="A", et elle retourne
N −1
b−a X 1 b−a b−a b−a
f a+i + f a + (2i + 1) + f a + (i + 1)
N i=0 3 N 2N N
si me=="B".
2. On écrira par exemple
def h (a ,b ,f ,N , me ) :
ans =0
s =( b - a ) / N
if me == " A " :
for i in range ( N ) :
ans += s * f ( a + i * s )
elif me == " B " :
for i in range ( N ) :
ans += s * f ( a +(2* i +1) * s /2)
elif me == " C " :
for i in range ( N ) :
ans +=(1/6) * s *( f ( a + i * s ) +4* f ( a +(2* i +1) * s /2) + f ( a +( i +1) * s ) )
return ans
3. Python retourne successivement f (0) + f (1) = 1, f (1/2) + f (3/2) = 1 et
1
(f (0) + 4f (1/2) + f (1) + f (1) + 4f (3/2) + f (2)) = 1.
6
4. Python retourne successivement
2 2
(f (0) + f (2/3) + f (4/3)) = 8/9, (f (1/3) + f (1) + f (5/3)) = 10/9
3 3
et
2 1 28
× (f (0) + 4f (1/3) + f (2/3) + f (2/3) + 4f (1) + f (4/3) + f (4/3) + 4f (5/3) + f (2)) = .
3 6 27
5. L’intégrale recherchée est précisément 1, ce qui implique que les trois méthodes sont exactes
pour N = 2, mais inexactes pour N = 3, et dans ce cas-ci la méthode du point médian a la
même précision que la méthode des rectangles. Ceci est dû au fait que f n’est pas dérivable en
1, et que pour N = 2, ce point de non-dérivabilité est un point de la subdivision utilisé pour
calculer les trois approximations, alors qu’il ne l’est pas pour N = 3.