Calcul scientique et Informatique 3 octobre 2013 TP 2: Intégration numérique, quadrature de Gauss
Méthode de Newton-Cotes
Exercice 1. Écrire trois fonctions int_rectangle, int_midpoint et int_simpson prenant en paramètre la fonction f, les bornes de l'intervalle d'intégration [a, b]et le nombre d'évaluations def. Par exemple, la méthode des rectangles à gauche correspond à la discrétisation suivante de l'intégrale Rb
af(x)dx:
Inr(f) =
n−1
X
i=0
hf(a+kh), h= (b−a)/n
En Scilab, on peut écrire une fonction qui calcule Inr(f) comme ceci : function I=i n t _ r e c t a n g l e ( f , a , b , n)
h = (b−a )/n ;
c = linspace ( a , b−h , n ) ; I = sum( f ( c ) ) ∗ h ;
endfunction
Comparer les vitesses de convergence de ces méthodes sur les fonctions g(t) = 1/(1 +x2) sur [−1,1]etf(t) =√
t sur[0,1]. On tracera l'erreur commise en fonction de n∈ {1, . . . ,100} dans une échelle logarithmique1
E(f, n) :=
Inr(f)− Z b
a
f(x)dx .
Méthode de Gauss
On rappelle qu'étant donnésn+ 1 points distinctsx0, . . . , xn de[−1,1], il existe une unique famille de poids w0, . . . , wn∈R telle que pour toutP ∈Rn[X], on ait
Z 1
−1
P(x)dx=
n
X
i=0
wiP(xi). (1)
Démonstration. Cette égalité est linéaire, et elle est donc vraie surRn[X]ssi elle est vraie sur la base des polynômes de Lagrange (`i)0≤i≤N, qui vérie`i(xj) = δi,j. Or, avec P =`i on obtient wi =R1
−1`i(x)dx, ce qui dénit uniquement les poids.
La méthode d'intégration de Gauss consiste à remarque que, si l'on choisit bien les points x0, . . . , xn, la formule (1) sera exacte surR2n+1[X]. Dans l'exercice suivant, on calcule les points et les poids de Gauss en utilisant la méthode de GolubWelsch.
Exercice 2. On rappelle que les polynômes de Legendre (Ln) forment une base de Rn[X] or- thogonale pour la norme Hilbertienne k.kL2([−1,1]), et sont dénis par relation
(n+ 1)Ln+1(x) = (2n+ 1)xLn(x)−nLn−1(x), L−1 = 0, L0 = 1.
1. On utilisera la fonction plot2d(ll, x, y) l'argument "ll" signie que l'échelle est logarithmique. On pourra utiliser legend et xtitle pour ajouter des légendes et un titre à la gure. Ne pas hésiter à utiliser help commande pour plus d'information sur une fonction scilab.
1
On dénitMn=Ln/kLnkL2([−1,1]), et en utilisant l'expression de la norme deLn, on peut vérier que Mn vérie la relation de récurrence suivante :
cn+1Mn+1(x) =xMn(x)−cnMn−1(x) cn= n2/(4n2−1)1/2
(2) 1. Montrer que l'on peut résumer les équations (3) entre 1etn sous forme matricielle :
xM(x) =T M(x) +cn+1Mn+1(x)en (3)
oùM(x) =
M0(x) M1(x)
...
Mn(x)
etT =
0 c1
c1 0 c2
... ... ...
cn−1 0 cn
cn 0
.
En déduire que Mn+1(x) = 0 ssi x est une des valeurs propres de la matrice tridiagonale T apparaissant dans cette équation.
Pour la suite, on noterax0 ≤. . .≤xn les valeurs propres de T, etv0, . . . , vn des vecteurs propres correspondants. Montrer quevi peut s'écrire sous la forme :
vi =αi·(M0(xi), . . . , Mn(xi)) (αi6= 0) (4) 2. On va maintenant déterminer les poids à utiliser dans la méthode de Gauss à partir des vecteurs propresvi. On rappelle que la méthode de Gauss est exacte pour tout polynôme P ∈R2n+1[X]. En particulier, pour tout P =MiMj avec 0≤i, j≤n, on doit avoir
δij = Z 1
−1
Mi(x)Mj(x)dx=
n+1
X
k=1
wkMi(xk)Mj(xk)
Montrer que cette identité peut s'écrire matriciellement sous la forme Id =PtW P où
W =
w1 0 . . . 0
0 w2 ...
... ...
0 . . . wn+1
P =
M0(x1) . . . Mn(x1)
... ...
M0(xn+1) . . . Mn(xn+1)
Puis en déduire que W−1 = P Pt, et que w1i = Pn
k=0[Mk(xi)]2. Finalement, montrer la formule suivante, oùvi est le vecteur propre déni en (4).
wi = 2 (vi)20 Pn
k=0(vi)2k (5)
3. En utilisant la formule (5), écrire une fonction gauss_legendre qui retourne les noeuds et les poids de la méthode de Gauss à n points. Comparer la vitesse de convergence de l'intégration numérique par méthode de Gauss et méthode de Simpson sur la fonctiongde l'exercice 1, et pour :
h(x) = exp(x) sur[−1,1] k(x) = 1+25x1 2 sur [−1,1].
2