Vous êtes sur la page 1sur 3

Universit dOrlans

L3 groupe 2

Outils numriques
2me semestre 2006/2007

Feuille de TP 3

Problme des moindres carrs.


Lorigine de ce problme est la recherche de solutions pour un systme linaire Ax = b o la matrice A est
non inversible ou non carre. Le problme des moindres carrs consiste alors chercher la ou les solutions du
problme de minimisation
minp kAx bk22 ,
xR

o A Mn,p (R) et b R .
Il existe toujours au moins une solution de lquation normale A Ax = A b. Cette solution est unique si et
seulement si ker A = {0}, et on a alors x = A b = (A A)1 A b (pseudo-inverse).
Mthodes de rsolution numrique.
1. Mthode de Cholesky : lorsque ker A = {0}, on peut rsoudre lquation normale A Ax = A b par la
mthode de Cholesky, la matrice A A tant alors symtrique dfinie positive.
2. Mthode QR : la dcomposition QR de la matrice A conduit crire A = QR o Q Mn (R) est une
matrice orthogonale et R Mn,p (R) est une matrice triangulaire suprieure. Le problme des moindres
carrs est alors quivalent
minp kRx Q bk22 .
xR

Si n > p (cas le plus rpandu en pratique ; les autres cas se traitent similairement) et si ker A = {0},
lunique solution est alors
x = (R1i,jp )1 (Q b)1ip .
3. Mthode SVD et pseudo-inverse : la dcomposition SVD de la matrice A conduit crire A = V U ,
o U Mp (R) et V Mn (R) sont des matrices orthogonales et Mn,p (R) est une matrice dont
tous les coefficients sont nuls sauf les r premiers coefficients diagonaux qui sont les r valeurs singulires
1 r > 0 de A. Le problme des moindres carrs est alors quivalent
min kV U x bk22 = minp kU x V bk22 ,

xRp

xR

dont toutes les solutions sont x = U y avec y Rp un vecteur quelconque dont les r premires composantes
scrivent yi = (V b)i /i .
Notons que le pseudo-inverse de A est alors A = U V o Mp,n (R) est une matrice dont tous les
coefficients sont nuls sauf les r premiers coefficients diagonaux qui sont 1/1 , . . . , 1/r .
Remarque. Notons que le vecteur x = A b est toujours une solution du problme des moindres carrs, et
est la solution de norme Euclidienne minimale lorsque ce problme admet plusieurs solutions.

Application : le problme de lapproximation aux moindres carrs. Cest un problme danalyse de


donnes. Etant donns n valeurs (ti )1in dun paramtre, et n valeurs (bi )1in dune grandeur mesure, on
cherche dterminer un polynme P de degr p 1 qui minimise
E=

n
X

|bi P (ti )| .

i=1

Lorsque n p 1, on peut choisir un polynme dinterpolation de Lagrange, et alors E = 0. Le cas le plus


courant est bien sr n > p 1.
p1
X
En crivant P (t) =
aj j (t) dans une base (j ) de lespace des polynmes, on se ramne minj=0

imiser une fonction E(a0 , . . . , ap1 ). Soient les vecteurs x = (ai )0ip1 , b = (bi )0ip1 , et la matrice
A = (j (ti ))1in,0jp1 . Avec ces notations, E = kAx bk22 , et donc, on sest ramen au problme des
moindres carrs pour le couple (A, b).

Exercice 1 :
Soit A une matrice de taille 300 100 quelconque, de rang 100, et b = rand(300, 1). On pourra crer une telle
matrice A de la faon suivante :
A = rand(300, 300) [rand(100, 100) + 100 eye(); zeros(200, 100)] rand(100, 100);
1. Comparer (en termes de temps de calcul) les quatre mthodes suivantes pour rsoudre le problme des
moindres carrs
min
kAx bk2 .
100
xR

(a) Mthode de Cholesky (utiliser les fonctions Scilab chsolve, chf act, sparse).
(b) Mthode QR (utiliser la fonction Scilab qr).
(c) Dcomposition SVD (utiliser la fonction Scilab svd, comparer avec lusage de pinv).
(d) La fonction Scilab lsq (ou bien, A \ b : consulter laide).
Commenter les rsultats obtenus.
2. On considre maintenant les matrices A et b dfinies par
e = 1e 5; P = [1 1 0 ; 0 1 1 ; 1 0 1];
A = P diag([e, 1, 1/e]) inv(P ); b = ones(3, 1);
Comparer les solutions des moindres carrs obtenues par les mthodes prcdentes. Expliquer, en calculant
cond(A) et cond(A A0 ).

Exercice 2 :
On pose f (x) = sin(x) sin(2x). Soit T = (x1 , . . . , xn ) un tableau de n valeurs alatoires comprises entre 0 et
4. On prendra n = 100.
1. Trier ce tableau dans lordre croissant en utilisant la fonction Scilab sort.
2. Dterminer lapproximation de f au sens des moindres carrs par un polynme P de degr 2, sur les
valeurs de T .
v
u n
uX
2
Calculer lerreur discrte t
|f (xi ) P (xi )| .
i=1

Reprsenter sur un graphique le polynme P et la fonction f .


3. Faire de mme pour un polynme de degr 4.

Exercice 3 : Encore le phnomne de Runge


On pose f (x) = 1/(1 + 25x2 ). Soit T un tableau de n valeurs comprises entre 1 et 1.
Ecrire un programme calculant lapproximation de f au sens des moindres carrs par un polynme P de
degr p, et reprsentant sur un graphique P et f .
On prendra n = 20, et on testera diffrentes valeurs de p. Retrouve-t-on le phnomne de Runge ?
On utilisera les fonctions Scilab lsq, poly(x, x, coef f ), et horner.

Vous aimerez peut-être aussi