Vous êtes sur la page 1sur 116

Outils de base en analyse numrique

Sbastien Charnoz & Adrian Daerr

Universit Paris 7 Denis Diderot CEA Saclay

En analyse numrique, un certain nombre de calculs sont faits de manire rptitive. Exemple : Rsoudre un systme linaire, Inverser une matrice, Calculer le dterminant, valeurs propres, vecteurs propres

Interpoler une fonction Extrapoler une fonction Dcomposer une fonction sur une base de fonctions (ex: TF)

fitter des points de mesure avec des fonctions connues Etc

Des algorithmes performants existent souvent, mais qui ont chacun des spcificits. En fonction de nos besoins, il faudra choisir lalgorithme adapt

La plupart de ces outils de base sont souvent dj programms dans des librairies de calculs mathmatiques (ex: NAG) . De manire gnrale, il nest jamais bon de lutiliser comme une bote noire : En fonction du problme, en choisissant lalgorithme le plus adapt, on peut gagner du temps de calcul , ou mieux : viter des instabilits numriques.

Exemple 1: Si vous avez besoins de calculer linverse dune matrice, et que sont dterminant est trs proche de 0 (mais non exactement 0), le calcul sera trs sensibles aux erreurs de troncatures de la machine. Dans ce cas il faut prfrer une inversion itrative, plutt quune inversion exacte Exemple 2 : Si vous souhaitez dcomposer une fonction sur une base de fonctions, ll vaut mieux bien connatre cette base, sinon vous ne saurez pas vraiment ce que vous faites Souvent, une telle dcomposition engendre des instabilits dans le schmas numrique en raison de la discrtisation etc

Dans ce chapitre, nous aborderons 3 points :

Systmes linaires Calcul matriciel, inversions etc

Interpolation et Extrapolation de fonctions Diffrentes mthodes, dcomposition sur une base, moindres carrs etc..

Gnrateurs de nombres pseudo-alatoires Quest ce quun bon gnrateur ? Comment les construire ? etc

LES SYSTEMES LINEAIRES


En analyse numrique, rsoudre un systme linaires, cest rsoudre

Ax = b
O A est une matrice ( priori) inversible , b est un vecteur, et X est le vecteur inconnu.

Les questions attenantes ce problme sont : Calculer A-1, Det(A), valeurs propres de A, vecteurs propres de A Une dizaine de mthodes existent, mais certains outils sont commun de nombreuses mthodes (Pivot de Gauss, Dcomposition en matrice triangulaire, Mthode de substitution )

Un tel systme est facilement soluble dans le cas o la matrice A est triangulaire Pourquoi ? Par ce quune simple substitution itrative permet de rsoudre facilement le systme Ex :

a11 0 0 0
On a alors :

a12 a22 0 0

a13 a23 a33 0

a14 x1 b1 a24 x2 b2 = b3 a34 x3 x b a44 4 4

Matrice NxN avec N=4

x4 = b4 / a44 1 (b3 x4 a34 ) x3 = a33 etc...

a11 0 0 0

a12 a22 0 0

a13 a23 a33 0

a14 x1 b1 a24 x2 b2 = b3 a34 x3 x b a44 4 4

Dune manire gnrale, on peut trouver toutes les valeurs de Xi par la mthode itrative suivante (substitution arrire)

x N = bn / ann 1 xi = aii
N bi aij x j j =i +1

On calcule Xn, puis Xn-1, Xn-2 X1

Une mthode similaire marche aussi pour un matrice triangulaire infrieure

a11 a21 a 31 a 41

0 a22 a32 a42

0 0 a33 a43

0 x1 b1 0 x2 b2 = 0 x3 b3 x b a44 4 4

x1 = b1 / a11 1 xi = aii
i 1 bi aij x j j =1

On calcule X1, puis X2, X3 XN

Substitution avant

Dans de nombreuses mthodes, lobjectif est de transformer A pour la rendre Triangulaire, infrieure ou suprieurs, et ensuite calculer les solutions en utilisant une substitution (avant ou arrire si A est infrieure ou suprieure).

2 grandes mthodes EXACTES:

ELIMINATION DE GAUSS JORDAN Simple comprendre, mais ncessite de modifier b en mme temps que A Ne donne pas directement A-1 et les vecteurs propres

FACTORISATION L U Un peu plus subtile, ne modifie pas b, donc on peut utiliser la mme dcomposition pour tout vecteur b, donne A-1 et les vecteurs propres

Gauss Jordan (pivot de Gauss)

Prenons lexemple suivant :

On conserve la ligne L1, qui sert de pivot pour liminer l'inconnue x des autres lignes; pour cela, on retire L1 L2, et 3 fois L1 L3. On obtient :

On conserve alors la ligne L2 qui sert de pivot pour liminer y de la troisime ligne; pour cela, on remplace la ligne L3 par L3-L2. On trouve :

On rsoud finalement le systme par substitution arrire (car on rsoud dabord Z , puis Y, puis X)

Comment cela se passe avec des matrices ??

pivot

1 2 2 x 2 1 3 2 y = 1 3 5 8 z 8 2 x 2 1 2 0 1 4 y = 3 0 1 2 z 2

pivot

1 2 2 x 2 0 1 4 y = 3 0 0 2 z 1
Le pivot parcours la diagonale

Pivot de Gauss 4 principes fondamentaux


On ne change pas la solution lorsque lon : 1. permute 2 lignes 2. permute 2 colonnes 3. divise par un mme terme non nul les lments dune ligne 4. ajoute ou retranche une ligne un certain nombre de fois une autre ligne

Stratgie : Transformer le systme linaire en un systme quivalent facile rsoudre


Triangulaire !

Pivot de Gauss : un autre exemple


2 x1 + 4 x2 x + 3x 1 2 3 x1 x2 x2 2 x3 + x4 + x3 + 2 x3 + 2 x4 + x4 = 6 = 0 = 8 = 6

pivot (1)

Attention aux valeurs nulles du pivot

Pivot de Gauss : un exemple


2 x1 + 4 x2 x + 3x 1 2 3 x1 x2 x2 2 x3 + x4 + x3 + 2 x3 + 2 x4 + x4 = 6 = 0 = 8 = 6

L2 = L2-L1 a21/pivot (1)

Pivot de Gauss : un exemple


2 x1 + 4 x2 x + 3x 1 2 3 x1 x2 x2 2 x3 + x4 + x3 + 2 x3 2 x3 + x3 + x3 + 2 x3 + x4 + 2 x4 + x4 + 2 x4 + x4 = 6 = 0 = 8 = 6 = 6 = 3 = 8 = 6

L2 = L2-L1 a21/pivot (1)


2 x1 + 4 x2 0 + x 2 3 x1 x2 x2

Pivot de Gauss : un exemple


2 x1 + 4 x2 x + 3x 1 2 3 x1 x2 x2 2 x3 + x4 + x3 + 2 x3 2 x3 + x3 + 4 x3 + 2 x3 + x4 + 2 x4 + x4 + 2 x4 + x4 = 6 = 0 = 8 = 6 = 6 = 3 = 17 = 6

L3 = L3-L1 a31/pivot (1)


2 x1 + 4 x2 0 + x2 0 7 x2 x2

Le premire variable t limine de toutes les quations sauf une

Lalgorithme du pivot de Gauss Triangularisation


pour k = 1 jusqu' n 1 (* stratgie de pivot *) pivot akk
Ax=b

On voit que si akk ~ 0, on introduit une instabilit dans le systme

si pivot 0 alors pour i = k + 1 jusqu' n aik bk bi bi pivot pour j = k + 1 jusqu' n a aij aij ik akj pivot fait fait fait sinon " problme"

Reprsentation Matricielle du Pivot de Gauss pour une matrice NxN

(k ) ( k +1) a (k ) (k ) ik a a a ij ij ( k ) kj akk pour i = k + 1,..., n (k ) a b ( k +1) b ( k ) ik b ( k ) i i (k ) k akk

pour j = k + 1,..., n

matriciellement : A( k +1) = M ( k ) A( k ) ;
chaque tape akk est le pivot.

b ( k +1) = M ( k )b ( k ) ;

Remarques
Choix du pivot : minimiser les erreurs darrondis
si un pivot est nul, on permute deux lignes si tous les pivots restant sont nuls la matrice est singulire (i.e. le systme dquations nadmet pas de solution unique) pour minimiser les erreurs darrondis : on choisi le plus grand pivot possible (en valeur absolue) et donc on permute les lignes (voir les colonnes associes) cest la stratgie du pivot maximal (partiel (lignes) ou total)

dterminant dune matrice = produit des pivots

Problme de la mthode du pivot de Gauss seule : Ncessite de modifier b , Donc pour rsoudre Ax=b et Ax=b il faut recommencer la procdure deux fois Il faudrait une mthode qui ne modifie pas b

=> Dcomposition LU

Dcomposition LU
Supposons que nous sommes capables dcrire la matrice A sous la forme dune produit de deux matrices triangulaires L (lower) et U (upper)

L
l11 l21 l22 l l 31 32 l 41 l42

x
0 u11 u12 u22 l44 0

U
u13 u23 u33

=
u14 a11 u24 a21 = u34 a 31 u44 a41

A
a12 a22 a32 a42 a13 a23 a33 a43 a14 a24 a34 a44

l33 l43

Triang. Infrieure (lower)

Triang. Suprieure (upper)

Alors rsoudre Ax=b peut aussi scrire Ax=(L U) x = L (U x) = b Que lon peut dcomposer en deux tapes, avec une variable intermdiaire : y Ax=b (LU)x=b L (Ux) = b L y=b avec y=Ux

1. Rsoudre L y =b 2. Rsoudre U x =y Intrt de la mthode : Si on connat L et U les tapes (1) et (2) se rsolvent simplement En appliquant pour (1) une substitution avant (L est triangulaire inf.) En appliquant pour (2) une susbstitution arrire (U est triangulaire sup.) De plus on peut calculer simplement linverse de A, on ne touche pas b

On peut montrer quen temps normal il existe une infinit de dcomposition LU Si A est inversible. Cependant il nexiste quune seule dcomposition telle que L ait pour lments diagonaux des 1 uniquement:

Pour Calculer L et U facilement on se sert de la mthode du pivot de Gauss, en utilisant une matrice intermdiaire un peu spciale, : la matrice augmente

Exemple : Soit Rsoudre :

a11 a21 a 31

a12 a22 a32

a13 x1 b1 a22 x2 = b2 o a33 x3 b3

1 2 1 x1 2 4 3 1 x2 = 3 2 2 3 x 5 3

On peut crire ce systme manire plus compacte avec la matrice augmente (qui nest plus carr)

a11 a21 a 31

a12 a22 a32

a13 x1 b1 a11 a22 x2 = b2 a21 a33 x3 b3 a31

a12 a22 a32

a13 b1 a22 b2 a33 b3


Matrices augmentes

1 2 1 x1 4 3 1 x2 = 2 2 3 x 3

1 2 1 2 2 3 4 3 1 3 2 2 3 5 5

On peut garder la trace des diffrentes tapes du pivot de gauss en considrant La matrice augmente

1ere tape : Pivot avec a11 : La 2eme ligne =L2- 4/1 x L1

2 2 1 2 1 2 1 1 1 2 1 2 4 3 1 3 => 4 4 3 8 1 + 4 3 8 = 0 5 5 5 2 2 2 3 5 2 3 5 3 5 2 2
Nouvelle matrice A Nouveau vecteur b

Ide gniale : Au lieu de garder le 0 dans la nouvelle matrice augmente On conserve dans cette case le coefficient par lequel on a multipli L1 On a chang le 0 En 4

1 2 1 2 4 5 5 5 2 2 3 5

1 2 1 2 Augmente : 4 5 5 5 2 2 3 5
Maintenant on echange L3=L3-2/1 L1 Nouvelle augmente

Au lieu du 0 ici, on a mis le 2 par lequel on avait multipli L1

1 2 1 2 4 5 5 5 2 2 5 1

On pivote maintenant sur la ligne 2, le pivot vaut -5 (a22) L2 ne change pas, et L3=L3 - (-2/-5) L3

Au lieu des 0 on a conserv les coefs. multiplicateurs

1 2 1 2 4 5 5 5 2 2/5 3 3

1 2 1 2 4 5 5 5 2 2/5 3 3

Augmente finale. On en dduite la forme triangulaire de A et la nouvelle forme de b

2 1 2 1 A = 0 5 5 et b = - 5 3 0 0 3
Et on trouve X par substitution classiquement

Alors, pourquoi tout cela, le rapport avec L et U?

Et bien on peut montrer que

=U

1 2 1 2 4 5 5 5 2 2/5 3 5
~L
Plus prcisement, on divise chaque colonne par llment diagonal pour mettre des 1 sur la diagonale de L

1 2 1 2 4 5 5 5 2 2 3 5 0 0 1 1 0 L = 4 2 2 / 25 1
Vous pourrez vrifier que LxU=A !!

1 2 1 et U = 0 5 5 0 0 3

ALGORITHME DE CROUT (rij=uij et lij=lij avec nos notations)

Matrice U

Matrice L

Une fois quon possde la dcomposition LU, on obtient aisment : Le dterminant : Det(A)=Det(L)*Det(U) =u11x u22x x Unn

La matrice inverse : M On rsoud successivement pour toute dimension A xj =ej o ej est le vecteur unitaire de la dimension j => En combinant tous les xj on trouve successivement toutes les colonnes de la matrice A-1

1 0 0 M 1 Ax1 = 0 Ax2 = 1 Ax3 = 0 A = x1 0 0 1 M

M x2 M

M x3 M

Avantage de la mthode L-U : On ne calcule que L et U quune seule fois

METHODES ITERATIVES (Relaxation)

Pour les trs grosses matrices on prfrera les mthodes itratives : Elle convergent vers la solution progressivement: Ide : Rsoudre une quation du type : F(x)=X Avec une suite du type : Xk+1=F(Xk) Si X0 nest pas trop loin de la solution, on Xk convergera vers la bonne valeur de X.

Comment transformer : AX=B en un quation du type X=F(X) ? O F est une opration linaire ??

Ide : Dcomposer A = M-N Alors AX=B (M-N)X = B MX=NX+B

X=M-1 N X + M-1 B= P X + C

F(x)

Donc si on arrive trouver une dcomposition de A avec une matrice M facilement inversible, alors on peut mettre en marche un algorithme itratif du type : Xk+1=P Xk + C

Dcomposition E, D, F : ide : prendre pour M une simple matrice diagonale D

Donc A = D-(E+F) M=D et N=E+F

Dans ce cas M-1= D-1

La formule de rcurrence :

Xk+1=M-1 N Xk + M-1 B
xi = 1

Scrit :

O les xik sont les composantes du vecteur Xk Cest la mthode de Jacobi

Mthode de Gauss Seidel :


Converge plus rapidement . On sinspire du calcul de Jacobi

Mais on fait la premire somme sur les coeffs dj calculs de ltape k+1

Ca converge plus vite, mais difficilement parrallisable A doit tre dominante diagonale i.e ABS( diagonale )soit tre > somme des v.abs des lements sur la ligne pour tre sr de la convergence.

Nous avons vu 2 familles de mthodes : -Les mthodes exactes, type pivot de Gauss Prcises, peu rapides, sensibles aux fluctuations

- Les mthodes itratives (ou dites de relaxation ) Moins prcises, plus rapides, plus stables Mais il est parfois difficile de prdire si elles convergent Plus on fait ditrations, plus la mthode est prcise.. La matrice doit tre diagonale dominante

Interpolations et Extrapolations de fonctions

Le problme : On a un ensemble de n points : x0 . Xn-1 et pour chaque point on connat la valeur dune fonction f inconnue (-priori): f(x0) . f(xn-1) (rem :les f(xi) seront aussi nots fi ) Question : Quelle est la valeur de f sur les points intermdiaire ? * Pour cela on doit supposer un modle mathmatique de f (polynome, somme de sinus etc) * On doit aussi savoir : 1) Les f(xi) sont-elles des valeurs exactes 2) Les f(xi) sont-elles des valeurs approches (ex : pts de mesure) ?

DONC : il ny a pas de manire idale dinterpoler/extrapoler une fonction car on a besoins dhypothses sur f. Diffrentes hypothses donneront des interpolations/extrapolations diffrentes eh oui Donc ce sera nous de savoir, en fonctions de la physique du problme, quelle est la meilleur hypothse sur la forme de f effectuer.

Si les f(xi) sont des valeurs exactes on fera une dcomposition sur une base de fonctions (des polynmes le plus souvent)

Si les f(xi) sont des valeurs approches on essaiera dadapter (de fitter en anglais) un modle mathmatique aux points de de mesure.

Les f(xi) sont des valeurs exactes : Dcomposition sur une base de fonctions
On suppose que f est la combinaison linaire dune famille de fonctions

f ( x) = aii ( x)
i

f est toujours dfinie sur un domaine : [xmin , xmax] 1er question : que choisir comme base ? 2me question : Comment calculer les ai ? Remarque : parfois on a pas besoin de connatre les ai explicitement, Certains algorithmes fournissent les ai , dautres donnent directement le rsultat f(xi)

1. Dcomposition polynomiale Supposons que f est polynomiale. Avec N points on peut construire un polynme dordre N-1 qui traverser les N points : N 1 i On suppose : i i =0

f ( x) = a x

Pour calculer les coefficients ai On a n quations n inconnues : Les inconnues sont les coefficients ai Et les n quations sont : f(xi)=fi o les fi sont les valeurs de f aux points xi . => Cela peut scrire matriciellement

1 n 1 + ... + an 1 x0 = f0 a0 + a1 x0 ... n 1 + + = ... a0 + a1 x1 a x f n 1 n 1 n 1 n 1

N quations linaires N inconnues. Les ai sont les inconnues Les xij sont les coefficients

1 1 x0 1 1 x1 ... ... 1 x1 n 1

n 1 a0 ... x0 n 1 ... x1 a1 = ... ... ... n 1 ... xn 1 an 1

f0 f1 ... f n 1
f

Pour trouver A il suffit de calculer : A = M-1 f => Il faut donc inverser une matrice de N points cette mthode est intressante, marche mais elle est coteuse temps de calcul Car souvent on a pas besoin connatre les ai Seul f(x) nous interesse

2. Dcomposition en polynmes de Lagrange Pour calculer une dcomposition polynomiale sans calculer les ai on peut utiliser les polynmes de Lagrange :

f ( x) = ai li ( x)
i =0
ai : coefficients ai=f(xi) iem polynme de Lagrange

N 1

li ( x) =

j =0, j i

n 1

(x x j ) ( xi x j )

Les Li(x) sont des polynmes dordre n-1 : ~ produits de (x-xj) pour j diffrent de i

Exemple : Xi= [ 0 , 2 , 4, 6] et Fi=[ 0, 4, 0, 4]

Calculer les polynomes de Lagrange .

On a donc un polynme dordre 3. Les polynomes de Lagrange sont une mthode rapide de calculer des points sur la courbes sans avoir calculer explicitement les coefficients Si on a peu de points calculer cest interessant Sil y en a beaucoup, il est plus intressant de calculer les coefficients (moins de calculs effectuer).

On voit que les mthodes polynomiales divergent toujours linfini : Pas un problme pour linterpolation si N est faible Peut tre un problme pour lextrapolation

Mais cest une mthode : INSTABLE

Autre exemple avec 50 points

On interpole ces 50 points avec un polynome dodre 49

Notre polynme passe bien par tous les points mais entre ces points Il a des variations IMPORTANTES (ici : + ou 1021 !!!!) => TRES INSTABLE quand on a beaucoup de points

Autre exemple (moins sauvage)

Interpolation par polynmes de Lagrange

Linterpolation polynomiale ne doit-tre utilise que : -Si on a peu de points (moins de 10) -Si on est sur que les fi sont des valeurs EXACTES (pas de pts de mesure) Pour rsoudre ce problme dinstabilit en conservant un approche polynomiale :

Mthode simple : Ne pas utiliser tous les points, mais seulement les voisins 1 point : F est constante par morceaux 2 points : F est affine par morceaux (mais discontinue) (mais de non drivable, classe C0)

3 points : F est parabolique par morceaux (drivable 1 fois, classe C1) Etc

1 point : constantes par morceaux

2 points : affine par morceaux

3 points : Parabolique par morceaux

Ces mthodes sont plutt stables souvent trs utiles mais ont de mauvaises proprits de drivabilits

Pour les calculer : On utilise les polynmes de Legendre. On veut calculer f(x) en utilisant les p plus proches voisins : Xj1 Xjp

On a alors :

x j1< x < Xjp

2pt

f ( x) = ai
i= j 0

jp

j = j 0, j i

jp

(x x j ) ( xi x j )

3 pt

1 pt

Dans le cas a 1 point : F(x)=f(xp0) (XP0 est le pt immdiatement infrieur X) Dans le cas 2 points :

f ( x) =

( x x p0 ) ( x p1 x p 0 )

( f ( x p1 ) f ( x p 0 ))

(xp1, F(xp1) )

(xp0, F(xp0) )

Simple interpolation linaire Une mthode dinterpolation populaire sappelle CUBIC SPLINE , elle utilise 4 points => F est de classe C3 (polynome dodre 3)

Interpolation parabolique (3 voisins).

Interpolation linaire (2 voisins)

Les interpolations polynomiales sont simples programmer MAIS Elles sont dangereusement instables. Plus lordre est lev plus linstabilit sera grande. => Il faut prfrer les interpolations qui se basent sur les 2 ou 3 voisins (ordre faible)

Il existe encore dautres mthodes dinterpolation exactes : On peut aussi dcomposer en fractions rationnelles

p0 + p1 x + p2 x 2 + ... + pn 1 x n 1 f ( x) = q0 + q1 x + q2 x 2 + ... + qn 1 x n 1
Les inconnues sont les pi et les qi . Les fractions rationnelles sont moins instables que les polynomes mais moins faciles coder. Elles peuvent modliser des fonctions avec des ples (complexes) etc Pour plus dinfo, lire Numerical Recipes

Les f(xi) sont des valeurs approches : Adaptation dun modle de fonctions
Souvent en physique, on obtient des points de mesures f(xi) aux points xi : Ex : - temprature dun solide en fct de la temprature -Nombre datomes radio-actifs en fonction du temps Etc. Exemple de mesure : Nb datomes en fonction du temps

Si les fi sont des points de mesures, ils sont soumis des erreurs, des fluctuations (on appelle cela du bruit) qui rend une interpolation exacte INSTABLE et invariablement FAUSSE !!

Dans ce genre de problme, typiquement on veut trouver quelle est la meilleure fonction mathmatique qui reprsente les donnes.

=> Elle ne passe pas exactement par les points, mais elle sen approche. On appelle souvent cela fitter une fonction (en franais adapter ).

Ex : faire passer une gaussienne par des points

Fitter un nuage de points par une droite (Rgression linaire)

Fitter un nuage par une exponentielle (decroissance radio-active)

Etc

Le problme ici nest donc pas dinterpoler MAIS De trouver le meilleur modle mathmatique qui reprsente les donnes.

Donc ncessit dun modle mathmatique priori !!! Ce modle sera choisit en fonction : -Soit de la physique du problme -Soit de la forme des donnes exprimentales (Sachez que lil humain est un excellent outil pour analyser rapidement un ensemble de donnes ne jamais ngliger cela !!)

On se choisit donc un modle

mathmatique :

Cest un ensemble de fonctions qui dpendent dun ou plusieurs paramtres.

EXEMPLES:

modles Y=aX+B Y=a ebx

description Rgression linaire exponentielle

paramtres a et b a et b a,,

Y=a cos ( x + ) Sinus/Cosinus

Etc Moins on a de paramtres libres, plus robuste sera le modle (moins sujet aux instabilits) , mais le fit sera plus difficile

Lobjectif nest PAS de reproduire tous les points exactement (si cest le cas, cf. Cours sur linterpolation) Lobjectif EST de trouver la fonction qui passe au plus prs des points de mesure : => Minimiser la distance entre chaque point de la fonction et chaque pts de mesure EXEMPLES

On doit donc se donner une MESURE de la distance entre les points et la fonction. On peut en imaginer de nombreuses . Une mesure courante : MOINDRES CARRES (xhi 2, 2)

2 (a, b, c,...) =

tt les pts

( y *i ya ,b ,c.. ( xi )) 2
2 i

Y*i = pt de mesure numro i (absice xi) Ya,b,c..(xi)= Modle (qui dpend des paramtres a,b,c..) au point xi

i = incertitude de mesure sur le point i


Donc le problme consiste trouver les paramtres a,b,c etc qui minimisent le Xhi2 En clair le xhi2 cest : la somme des carrs des erreurs

Considrons cet ensemble de mesures Y*i pour i=1 n A lil on voit que cest la fonction constante Y(x)=10

On va utiliser un modle 1 paramtre : Y(x)=a Quelle est la meilleure valeur de a ?

Ici nous avons trac la valeur du XHI2 en fonction du paramtre a Nous voyons que le XHI2 est minimis pour a =10

Cest un exemple simple 1 dimension (1 paramtre) En pratique souvent on utilise 2 ou 3 paramtres.. Minimisation en plusieurs dimensions Notez que la valeur du XHI2 nous donne une estimation de la qualit du fit.

Nous avons donc besoin dun algorithme de minimisation pour trouver le meilleur ensemble de paramtres { a,b,c } qui minimise le XHI2. Nous verrons de tels algorithmes plus tard dans le cours.

CEPENDANT Pour le cas dune rgression linaire (fit par une droite, Y=aX+b) il existe un algorithme simple et analytique qui donne directement la meilleure valeur de a et b (2 paramtres) au sens des moindres carrs. Cette mthode peut-tre gnralise pour des fonctions polynomiales : Y=a0+a1X +a2X2 + + anXn

Etude du XHI2

2 (a, b, c,...) =

tt les pts

( y *i ya ,b ,c.. ( xi )) 2 2i

Le XHI2 est une fonction des paramtres a,b,c , nots maintenant : a1 , , an Si le XHI2 est minimal au point (a*1, , a*n) alors toutes les drives partielle sannulent ce point l.

2 a1 2 a2 ... 2 an

= 0
* * a1 ,.., a n

= 0
* * a1 ,.., a n

= 0
* * a1 ,.., a n

(a, b, c,...) =
2

tt les pts

( y*i ya,b,c.. ( xi ))2


2 i

( y yi ) = 2 tt les pts i
* i

La distance

ya0 ,a1 ,..an1 = a0 + a1 x + a2 x 2 + ... + an 1 x n 1 y = ap x p


p =0 n 1

La fonction. On cherche la meilleure combinaison de ai pour minimiser la distance

On doit alors rsoudre simultanement les n quations

2 a1 2 a2 ... 2 an

= 0
* * ,.., a n a1

= 0
* a1

,.., a

* n

= 0
* * a1 ,.., a n

* 2 ( ) y y i 2 i (a, b, c,...) = 2 i tt les pts

* p y i a p xi Np p =0 2 = i pts:i
n 1 Np 2 = 2 ak xik 1 ak i

O les (xi, , y*i) sont les points de mesure Et les (xi, , yi) sont les points de la fonction modle

* n 1 p y i a p xi p =0 i

!! Attention aux indices : k : numro de la variable que lon drive p: coefficient p du polynome i: numro du point de mesure

(a x )
Np k 1 k i i

* n 1 p y i a p xi p =0 =0 i
Np * y k + n 1 k i x x = i i i i i Np Np

a0 0

an a1 k k +1 xi + xi + ... + 1 i n i

Np

On obtient donc le systme linaire, pour k=0, n-1

(n + 1) / 0 xi / 1 pts ... n 1 xi / n pts

xi / 0 pts 2 xi / 1 pts ... 1+ n 1 xi / n pts


M => A=M-1 Y

... ... ... ...

n 1 xi / 0 yi pts a0 pts y x i i xi1+ n 1 / 1 a1 = pts pts ... ... ... n 1 a y x 1 n i i 2n2 xi / n pts pts
x A = Y

CAS PARTICULIER : Rgression linaire


Y=a0 +a1 X , donc n=1 et k=0,1

Et on pose =1 (mme incertitude de mesure sur tous les points)

Ordre du polynme

La Valeur du XHI2 est interessante : elle donne une indication sur la qualit du fit : Distance moyenne ~ (XHI2/n points)1/2 en units de i => Fit idal : XHI2~n points (chaque points est fitt en moyenne 1 ) Si XHI2 >> n points : mauvais fit ou barres derreur surestimes Si XHI2 << n points : trop bon fit : Vous avez srement surestime les barres derreurs SOUVENT, quand on a besoin rapidement dun fit , on met toutes les barres a 1 Mais dans ce cas on a pas destimation robuste de la qualit du fit

Exemple 1 : Fit par une droite Ici tous les i =0.5 Valeur du 2 = 25.2 La deviation moyenne est ~ sqrt(25.2/n points) ~ 1.2 Delta

Exemple 2 : Fit par une droite avec un point aberrant

=0.5 pour tous les pts La droite a t tire vers le bas

XHI2=234 >> nb de pts Mauvais fit

Solution ?? En fait la barre derreur sur le dernier pt peut etre place beaucoup plus , disons =10. pour ce pts, et 0.5 pour les autres

=0.5 pour tous les pts et =10 pour le pt abrrant On retrouve une solution acceptable XHI2=22 (Ok)

Conclusion: mme si souvent on oublie de considrer les barres derreur de mesure peut tre trs utile pour sassurer de la qualit du fit

Exemple 3 : Fit par une fonction exponentielle : Y=a

ebx

les pts de mesure (xi , yi*)

On utilise la regression

linaire

sur le LOG des points car :

Si les (xi , yi*) sont reprsentables par Y=a

ebx =>

Les (xi, Ln(yi*) ) sont reprsentables par Y=Ln(a)+ b X ( cest une droite)

=> Y=LOG(Y)

En rsum: Faites attention quand vous calculez un fit : ayez toujours une estimation de sa qualit en considrant la valeur du XHI2 . Pour cela vous devez toujours connatre la qualit de vos points de mesure (barre derreur). Si votre modle de fonction est polynomial, vous pouvez trouver de manire analytique la meilleure solution en passant par une simple inversion de matrice. Si vous voulez fitter par une fonction plus complique Il faudra faire une VRAIE minimisation du XHI2 avec un algorithme de minimisation itratif (Amoeba, Simplex etc) plus tard dans le cours

Les gnrateurs de nombres pseudo-alatoires

Pour beaucoup dapplications en physique et en mathmatique il est utile (voire ncessaire) davoir un gnrateur de nombres alatoires : Exemples : Simulation dune source radioactive Simulation du mouvement brownien Estimation dune intgrale complexe en N dimensions (N>3) Simulation dun gaz Etc

On ne peut PAS rellement crer des nombres alatoires de manire algorithmique car tous les outils sont dtrministes. Nous construirons des sries de nombres que nous qualifieront de pseudo-alatoires si elles rpondent certaines tests statistiques i.e si elle a les mmes proprit statistique quune vraie srie alatoire.

Toutes les sries pseudo-alatoires dpendent dun chiffre, appel grane ( seed ) . On pourra regner la mme srie de chiffre en partant de la mme grane => reproductibilit de la srie (indispensable pour tester les programmes)

DISTRIBUTION UNIFORMES

Dans de nombreux langages de programmation, des gnrateurs de nombres pseudo-alatoires sont implments. Il sappellent souvent : RAN, RANDOM , RANDOMU etc

Un appel typique : X=RANDOM(seed) o seed est un nombre appel grane

La majorit des fonctions RANDOM sont appel : Gnrateurs congruentiels Se sont des sries du type :

U j+1 = a U j (mod m)

Ou

U j+1 = a U j + c (mod m)

U j+1 = a U j (mod m)

Ou

U j+1 = a U j + c (mod m)

m= grand nombre ~ maximum reprsentable par la machine (~232 = 4.3 109) U0 = graine a, c : paramtres du gnrateur

Donc une srie de nombres pseudo-alatoires est une suite de chiffre calculs itrativement, avec U0= graine. Donc si on utilise la mme grane => on obtient la mme suite La qualit de la suite dpend dun choix Judicieux de a et de c.

Certains couples (a,c) sont connus pour tre bons, dautres mauvais.

Exemple : Uj+1= a Uj+c (mod M) Avec a=47, b=5, m=65536

Si on veut une srie entre 0 et 1 on divise par m Pas mal comme rsultat mais si on tire 105 nombres les pb apparaissent :

Tirage de 1 million de chiffres pseudo-alatoires

On voit clairement apparatre des corrlations entre les nombres, Priode tous les ~ 65000

Mme gnrateur, mais avec m=106 => des corrlations existent toujours MAIS plus longues : tous les 106 typiquement

Donc il faut bien choisir les valeurs de a, c et m Il en existe beaucoup dans la littrature

Uj+1=(Uj a +c) mod (m)

Les gnrateurs congruentiels sont faciles coder et rapides (important si on a besoin de 109 nombres par exemples) MAIS Ils finissent toujours par se rpter (i.e modulo m), les corrlations sont invitables Donc il faut jamais utiliser des sries de N nombres o N est comparable m

Il faut savoir aussi que le hasard est toujours plus important sur les premires dcimales (essayez pour voir)=> Si vous avez besoin de 2 nombres alatoires, Tirez en 2, et NE FAITES PAS je casse le nombre en plusieurs bouts pour en faire deux

Un gnrateur relativement simple et performant est : A=75 = 16087 M=232-1 = 2147483647 C=0

Pour 106 chiffres a lair OK

Tirage entre 0 et 1

Valeurs thoriques : <X>=0.5 Variance (Sigma^2)=1./12.=0.083333 A la vue des 2 premiers moments notre distribution est assez fidlement uniforme..

Pour diminuer encore les corrlations, diverses techniques existent, Par exemple on tire au hasard lindice du chiffre numro j ( shuffling ) On peut aussi utiliser des suites de Fibonacci (demandent + de mmoire) Uj+1 =(aUj-1 + bUJ-1+c) mod (m) etc

Les gnrateurs congruentiels permettent de tirer une srie de nombre avec un distribution ~ uniforme entre 0 et m-1

Si vous avez besoin dune srie entre 0 et 1, divisez les rsultat par m.

EN PRATIQUE On prfrera utiliser des algorithmes prprogramms en SE RENSEIGNANT sur leur robustesse !!! Tirez au hasard 107 chiffres et affichez le rsultat dj lil vous aurez une ide sil y a des corrlations videntes ou non

Mfiez vous si vous avez besoin dune LONGUE squence ROBUSTE.. Des corrlations caches peuvent vraiment affecter la validit de votre rsultat !! ENFIN Si vous voulez du VRAI hasard, cest possible.. Sur le web !! http://www.random.org/ O vous aurez des sries VRAIMENT alatoires, tires de systmes physiques

Fabrication de suites pseudo-alatoires non-uniformes

Nous savons fabriquer une distribution uniforme entre a et b :

p( x) =

1 ba

Mais de nombreux problmes ncessitent des distributions non-uniformes : exemples


( x )2 2 2

1 p( x) = e 2

Gaussienne (Normale)

p( x) =

x e
x!

Poisson

P(x)= densit de probabilit

a p ( x) = (a 2 + x 2 )
p( x) = x

Cauchy / Lorentzienne

x2 2 2

Raleygh

etc.

Problme : Nous voulons gnrer une srie de N points pseudo-alatoires qui sont distribus suivant une densit de probabilit p(x)

Pour cela nous allons utiliser un thorme fondamental de transformation des lois de probabilits : Prliminaires : On considre une srie de nombre alatoires xi entre a et b p(x) dx est la probabilit quun nombre xi soit entre x et x+dx

p ( x)dx = 1 la probabilit dtre dans le domaine de dfinition [a,b]


a

est gale 1 (Normalisation)

On dfinit C(x) la distribution cumule : Probabilit dtre < x :

C ( x) = p ( x)dx
a

On a donc C(b)=1

Exemple : p(x)=1/(b-a) => c(x)= (x-a)/(b-a)

Transformons les probabilits : On considre une srie de nombre {xi} distribus uniformments On considre maintenant la srie des { yi } o yi=f(xi) est une fonction bijective sur [a,b Les { yi } sont aussi not les { f(xi) } Connaissant p(x) nous voulons connatre la distribution p(y) des {yi} Soit x=Y-1(y)

dx p(y) dy = p(x) dx p ( y ) = p ( x) dy
Avec x=f-1(y) Exemple : Prenons y=-ln(x) , et p(x)=1. entre 0 et 1 Alors : P(y)=p(x)*|dx/dy| avec -1/dx=dy => dx/dy=-1/x P(y)= 1. | 1/x | or x=e-y p(y)=ey Distribution exponentielle !!!

Exemple : {xi}={5.740e-005, 0.965 , 0.1291, 0.0106, 0.1106,


=>

0.3120, 0.825, 0.9401, 0.922, 0.217, 0.44616127, .}

{yi}={9.763,

0.03437, 2.0466, 4.541, 2.201, 1.16455, 0.1919, 0.0617, 0.080, 1.5274, 0.8070 }

{xi} distrib. uniforme entre 0 et 1

=>

{ -ln(xi)} : distrib. exponentielle

Donc en utilisant la formule de transformation des distributions

dx p( y ) = p( x) o x = f 1 ( y ) dy
1 ( y) df 1 p( y) = p f ( y) dy

On peut transformer notre distribution uniforme en nimporte quelle autre distribution Sous rserve que lon puisse calculer dx/dy et f-1 (ce qui nest pas toujours les cas..)

De manire plus pratique : On peut utiliser faire intervenir la distrib. cumulative Supposons que nous voulins obtenir une distribution p(y) partir de nombres uniformment {xi} distribus entre 0 et 1, p(x)=1. Comme la distrib. Cumulative

C ( y) =

y inf

p( y)dy

Si on pose : y=f (x)=C-1 (x) <=> x=f -1 (y)=C(y) Alors :


1 df ( y) 1 p( y) = p f ( y) <=> dy

dx p( y ) = p( x) <=> dy dC p( y) = 1 = = p( y ) 1 dC / dx dy 1

EN PRATIQUE : Soit une srie de nombres {xi} uniformment distribus entre 0 et 1 On veut construire une distribution {yi} qui suit la lois p(y)

Soit P(y) la distribution cumulative :

p( y) =

y inf

p( y)dy

On calcule alors yi=P-1(xi) Les yi ont la bonne distribution

Exemple :

1 p( y) = (1 + y 2 ) 1 arctan( y ) => C ( y ) = + 2 => C 1 ( x) = tan(x / 2)

Lorentzienne

On calcule des {xi} distribus uniformment => On calcule les yi =C-1(xi) qui seront distribus selon une Lorentzienne

=>

Approche Graphique: Soit C la distribution cumulative de p P(x)= Gaussienne

Exemple de la Gaussienne Mais attention il y aura un petit problme

On prend des points {xi} distribus uniformment entre -1 et 1

Sur laxe de X on obtient les points {Yi} distribus selon une gaussienne Graphiquement cela marche bien , mais analytiquement problme !

Tout cela est trs bien mais pour de nombreuses fonctions on ne sait pas calculer C-1(x) Exemple : Pour la Gaussienne :

1 p( y ) = e 2
y

( y )2 2 2

=> dy ERF ( y )

1 C ( y) = e 2

( y ) 2 2 2

O Erf est la fonction Erreur Non analytique donc non inversible analytiquement

Autre exemple : Distribution Gamma:

x e p( x) = (a )

a 1 x

On na pas dexpression de C(x) analytique encore moins de C-1

Etc

Dans dautres cas , on connat C mais on nest pas capable de calculer C-1 Exemple C(x)=a0+a1 X + a2 X2 +a3 X3 + . + aN XN On polynme dordre elev (> 5) nest pas analytiquement inversible Et mme un polynme dordre 3 est difficilement inversible

Dans ces deux cas l on utilisera une mthode de REJECTION

Que nous ntudierons pas cette anne

Pour le cas particulier de la distribution Gaussienne, il existe un algorithme courant qui genre deux variables alatoires.* Mthode de : Box-Muller Soient x1 et x2 deux variables uniformes entre 0 et 1 Considrons les transformation suivantes :

y1 = 2 ln( x1 ) cos(2x2 ) y2 = 2 ln( x1 ) sin( 2x2 )


On peut montrer que Y1 et Y2 sont distribus selon un distribution gaussienne de variance = 1 => La norme aussi : (Y12+Y22)1/2 => utile si on a besoin dun seul chiffre

INTEGRATION MONTE-CARLO Les nombres alatoires servent aussi intgrer des fonctions . Lintgration Monte Carlo est en gnral intressante pour une intgrale multi-dimensionnelle (N>~3) Ide de base : Si on tire N points au hasard le nombre de points sous la courbe est proportionnelle laire de celle -ci

A=Aire de la boite

A=Aire de la boite

Lintgrale de f lintrieure de la boite (entre Xmin et Xmax) est

X max

X min

N sous F f ( x)dx A N total

En fait lintgration Mont Carlo est aussi intressante si le domaine dintgration est difficile calculer (la fonction peut-tre trs simple): Exemple :

z +
2

(x

+ y 3 1
2

x 1 y 3

F(x)=1 On veut calculer le volume :

V = dxdydz
v

On peut donc considrer un volume simple qui entoure le morceau de tore et compter le nombre de points qui tombent lintrieure

MAIS cette mthode est trs inefficace : il faudra tirer beaucoup de points pour converger vers le rsultat

Voici une mthode plus efficace : On veut Calculer

I = f ( x)dx
A
Sur un domaine compliqu A, x et dx sont multi-dimensionnels On se donne un domaine plus simple, D qui englobe A Soit V le volume de D

On rcrit lintgrale :

I = f ( x)dx
A
Comme :

I = f ( x)dx = f ( x) g ( x)dx
D A

g ( x) = 1 si x A o g ( x) = 0 si x A
Que lon peut encore rcrire :

I =

1 f ( x) g ( x)dx = f ( x) g ( x)Vdx V D

O V est le volume du domaine D.

Pourquoi cette transformation ? crit sous cette forme :

I =

1 f ( x)dx = f ( x) g ( x)Vdx V D

On voit que I est la valeur moyenne de h(x)=f(x)g(x)V sur le domaine D Donc maintenant si {xi} sont des points uniformment distribus dans D Alors

1 I N

V h( xi ) = N i

f ( x )g ( x )
i i i

Voil un algorithme qui converge beaucoup plus rapidement que de tirer des points sous la courbe. CEPENDANT : pour le calcule de g(x) , on doit toujours tester si x appartient au domaine

Exemple : Intgrons f(x)=cos(x)2 sur lintervalle 0-1

Le rsultat exacte est : 0.72729516..

V I N

f ( x)g ( x )
i i

V = longueur de lintervalle : 1 g(x) =1 si on tire uniquement des points entre 0 et 1 F(x)=cos(x)2

Lerreur sur le rsultat diminue avec le nb de points

Voici lerreur sur le rsultat en fonction du nombre de points tirs

On peut montrer que souvent , lerreur dcroit en

1 N

Donc pour avoir une erreur 2 fois plus faible , il faut 4 fois plus de points !!! => pour 50 points lerreur (relative) est environ 0.05 pour avoir une erreur de seulement 0.025 il faut environ 200 points Et pour erreur~0.01 il fait environ 800 points ..

En conclusion : Lintgration par mthode Monte-Carlo permet dintgrer des fonctions -Complexes - Sur des domaines compliques - A plusieurs dimensions.

Vous aimerez peut-être aussi