Vous êtes sur la page 1sur 69

Algorithmes numriques

Marc DANIEL Ecole Suprieure d'Ingnieurs de Luminy,


Campus de Luminy, case 925, 13288 Marseille cedex 9 Marc.Daniel@esil.univmed.fr

Mars 2011
ESIL, Algorithmes numriques 1

Plan

Premire partie : Les bases de l'algorithmique numrique


Gnralits Les nombres sur l'ordinateur Les calculs sur ordinateur Les erreurs, les chiffres significatifs, les tests les arithmtiques alternatives Considrations algorithmiques

Deuxime partie : Equations non linaires


Racine d'une quation Evaluation d'un polynme Dichotomie Mthode de Newton Localisation des racines Mthode de Bairstow
ESIL, Algorithmes numriques 2

Plan (suite)

Troisime partie : Systmes d'quations linaires


Gnralits et dfinitions Mthodes directes Mthode de Gauss Mthode du LU Mthode de Cholesky

Mthodes itratives Problmes aux moindres carrs Rsolution aux moindres carrs

Quatrime partie : Diffrentiation et Intgration numriques


Approximation par un polynme Diffrentiation numrique Intgration numrique Intgrales multiples
ESIL, Algorithmes numriques 3

Plan (suite)

Cinquime partie : Interpolation - Approximation - Lissage : notions


Problme Interpolation Meilleure approximation Lissage

Conclusion Bibliographie succincte

ESIL, Algorithmes numriques

Objectifs

Faire dcouvrir la ralit des calculs sur ordinateur le monde des mthodes numriques
les mthodes de base

Poser la problmatique en tant que numricien Etre en mesure de faire face un problme sans a priori dans le cadre d'une problmatique d'ingnieur Permettre d'accder aux mthodes non vues en cours
ESIL, Algorithmes numriques 5

Organisation du cours

2x6 h de cours
TRES court

20h de TD sur machine (en 4 groupes) : travail en binme


Illustration du cours Programmer les mthodes de base Essayer de faire sentir les principales difficults Les TD sont organiss en feuilles
Un compte rendu sera rendre pour chaque feuille au plus tard une semaine aprs la fin du temps imparti
Les programmes Les rsultats Une analyse

Les TD seront nots

Un examen gnral sur le cours, voire sur les TD


ESIL, Algorithmes numriques 6

Premire partie : Les bases de l'algorithmique numrique

ESIL, Algorithmes numriques

Gnralits

Algorithmique numrique ou Analyse Numrique ? 2 approches complmentaires possibles (ncessaires)


Unicit de la solution, convergence, vitesse de convergence,
En lien direct avec les cours d'algbre et d'analyse

Dveloppement d'algorithmes pour rsoudre les problmes


Dans les meilleures conditions Avec le problme tel qu'il se pose
Et pas tel que l'analyse numrique aimerait qu'il se pose

L'approche algorithmique n'exclut pas


De savoir calculer avec un ordinateur De savoir analyser et matriser les calculs De connatre les principaux rsultats thoriques
ESIL, Algorithmes numriques 8

Gnralits

Schma gnral
Problme rel Physique, mcanique,

Formalisation du problme

Zro ou minima de fonctions (mono ou multi-variables) valeur dans R ou Rn Systmes linaires (non linaires) Valeurs propres Equations diffrentielles Equations aux drives partielles

Mthodes de rsolution

rsultat

Problmatiques de l'ingnieur mme informaticien


ESIL, Algorithmes numriques 9

Gnralits

Algorithmique numrique
Problme rel Physique, mcanique, Formalisation du problme

Complexit ?

Qualit numrique ?

Stabilit ? Propagation d'erreurs ? 1 ordinateur Mthodes de rsolution

Analyse du rsultat Cohrence Calibrage Maquette exprimentale Nombre de chiffres significatifs stables

1 rsultat acceptable

ESIL, Algorithmes numriques

10

Gnralits

Algorithmique numrique : les erreurs


Problme rel Physique, mcanique, Erreurs sur les donnes (mesures, )

Formalisation du problme Erreurs de modlisation


Facteurs ngligs Formulation approche Simplification du problme Discrtisation

1 ordinateur Mthodes de rsolution

Erreurs de reprsentation Erreurs de calcul


opration a/b algorithme interne (ex )

1 rsultat acceptable

Erreurs des mthodes


en particulier : itrations

ESIL, Algorithmes numriques 11

Gnralits

Algorithmique numrique : les erreurs Les erreurs sont trs nombreuses Elles peuvent se compenser Elles ont plutt tendance se cumuler Les erreurs introduites par l'ordinateur doivent tre
Matrises, Analyses, Compatibles avec les erreurs sur les donnes et de modlisation, Compatibles entre elles, Acceptables au niveau du rsultat.

ESIL, Algorithmes numriques

12

Gnralits

Le conditionnement
Un problme est dit bien (mal) conditionn si une petite variation sur les donnes entrane une petite (grande) variation sur les rsultats

Problme thorique mais nombreuses consquences pratiques


Algorithme mal conditionn, matrice mal conditionne,

Donnes arrondies, coefficients arrondis, calculs approximatifs


L'erreur d'arrondi sur les donnes peut entraner elle seule d'normes erreurs sur le rsultat Plus tout le reste On peut avoir 0 chiffres corrects avec un problme trs mal conditionn
Voir TP

En prime : propagation des erreurs, mthodes de rsolution instables,


ESIL, Algorithmes numriques 13

Les nombres

Les entiers Reprsents de faon exacte sur n bits (n = 16, 32, 64)
Chaque bit reprsente une puissance positive de 2

Sous forme complment 2 (utile pour les ngatifs)


Nombre = "a n"1 2 n"1 + a n" 2 2 n" 2 + a n" 3 2 n" 3 + ...+ a1 21 + a n"1 2 0 a i # {0,1}, i =
0,..., n " 1

Nombre > 0 : an-1 = 0 (2n-1 > 1+2+22++2n-2) Plus grand entier positif : 2n-1-1 (215-1=32767, 231-1,...) Plus petit entier ngatif : -2n-1 (-215=-32768, -231,...) Nombre = neg <0 : on code le nombre sous la forme -2n-1+(2n-1+neg) = pos >0
ESIL, Algorithmes numriques 14

Les nombres

Les entiers La forme complment 2


x + (-x) = 0 + 1 bit de retenue perdu

Toutes les oprations entires sont exactes


sous rserve de reprsentation possible du rsultat Pas de contrle

La manipulation d'entiers est exacte, mais non contrle


Attention aux dbordements Source relle d'erreurs dans les programmes short int : plus compact, mais plus risqu

ESIL, Algorithmes numriques

15

Les nombres

Les rels Utilisation de la virgule flottante


x = m . bl m = mantisse bl = exposant, b est la base La base usuelle : 10 Les bases des ordinateurs : 8, 16, et surtout 2

m= 0,d1d2d3dn m = d1.b-1+ d2.b-2 + d3.b-3+ + dn.b-n n limit erreurs de reprsentation 0 di < b (en base 2, di = 0 ou 1)

Reprsentation normalise
d1 0 Unicit de la reprsentation
ESIL, Algorithmes numriques 16

Les nombres

Les rels et leurs limites Quels sont les nombres reprsents exactement ? Les flottants dpendent du mode de reprsentation
Plus grand nombre Plus petit nombre Plus petit nombre en | | Erreur de reprsentation Choix de la base Nombre de bits de l'exposant Nombre de bits de la mantisse Nombre de mots pour reprsenter le flottant

L'erreur de reprsentation des rels est une erreur relative


ESIL, Algorithmes numriques 17

Les nombres

Les rels et leurs limites La plupart des rels sont approchs ds leur saisie
Influe sur les calculs (erreur de reprsentation) La norme IEEE-754 : portabilit des programmes
Les mmes rsultats !

La norme IEEE-754
Reprsentation normalise en base 2 (d1=1, donc non conserv) Des rgles d'arrondi et de normalisation
8 bits 23 bits

Flottant SP

l m
11 bits 23+ 29 = 52 bits

l m m Flottant DP l en dcalage de 28-1-1=127 (211-1-1)=1023


Que des positifs reprsenter
ESIL, Algorithmes numriques 18

Les nombres

Les rels et leurs limites La plupart des rels sont approchs ds leur saisie
erreur au niveau du dernier bit err = 2-24 en SP soit 10-7,22 err = 2-53 en DP soit 10-15,95

err est une quantit quasi nulle par rapport 1 On peut avoir x+ = x (voir TP) ( < err) Un flottant rsultat d'un calcul ne vaut jamais 0 Un flottant qui doit tre nul doit tre test voisin de 0. Deux nombres comparer ne sont jamais gaux mais voisins
|x| |x-x'| est au mieux de l'ordre de err (trs optimiste) (10-7, 10-15)
ESIL, Algorithmes numriques 19

Les nombres

Les rels et leurs limites Les exposants diffrent entre la SP et la DP Les prcisions sur le nombre diffrent
Le dernier bit de la reprsentation est faux
Affichages ralistes SVP

L'ordre de grandeur de l'erreur de reprsentation est donc de l'ordre de la puissance associe au dernier bit 2-24 en SP soit 10-7,22 2-53 en DP soit 10-15,95

Ne pas utiliser la DP par principe


Plus de mmoire Plus de temps de calcul

Tout va tre reconsidrer avec les processeurs 64 bits !!!


Sous rserve d'une prise en compte dans la normalisation
ESIL, Algorithmes numriques 20

10

Les nombres

Les rels et leurs limites Un SP ne se convertit pas en DP

8 bits 23 bits

l l

m m

xxxx 0 ou xxxx ?

11 bits 23+ 29 = 52 bits

Sauf si le SP est exact ET si la conversion complte avec des 0 !


int main(void)! {! float x= 0.1 ; /* 0.1 est double en C, mais est convertie dans x double xx ;! xx = x ; /* xx n'est pas la valeur DP correcte de 0.1 xx = 0.1e0 ; /* xx est une valeur DP de 0.1e0 (double en C) return 1 ;! }!

*/! */! */!

Importante source d 'erreur dans les programmes


Vrifier les types des variables, des constantes Faire des tests adapts aux types des variables

Un seul lment en SP (ou adapt la SP) problme garanti


Sauf si la DP ne servait rien !
ESIL, Algorithmes numriques 21

Les nombres

Cas des valeurs petites


a *10-p avec p grand : pas de problme obtenues par diffrences : problme important

On ne divise jamais par un nombre petit


Peut correspondre un 0 Est a priori mal dfini et le rsultat est grand !

ESIL, Algorithmes numriques

22

11

Les oprations

En entier Tous les calculs sont exacts tant que que le rsultat peut s'exprimer en entier
float x ; int a,b ; x = a*b ; /* ne change rien */

En rgle gnral, la division s'effectue dans le type le plus gnral , conversion automatique (cast)
float x ; int a; a= ; x = 1/a ; /* . */ Une cause d'erreur on ne peut plus classique float x ; int a ; x = 1.0/a ; /* . */
En C : 1.0 est double, 1.0/a est double, le rsultat est converti en float !

ESIL, Algorithmes numriques

23

Les oprations

En virgule flottante Les oprations sont ralises dans des registres plus longs
N'augmente pas la prcision des oprandes

Additions
Mise en correspondance des exposants Addition des mantisses Normalisation du rsultat Pas de problme sur des variables du mme ordre a+b=a mme si b0 Rsultat arrondi

Multiplication
Le rsultat dans le registre est bon : comme la main !
Bonne taille des registres

Rsultat est arrondi


ESIL, Algorithmes numriques 24

12

Les oprations

En virgule flottante Les divisions ne sont pas exactes dans le registre


Il faut mieux dcaler les divisions quand c'est possible Rsultat arrondi

Les autres oprations


Algorithmes approchs cbls :
Dveloppements limits, mthodes de Newton,

Algorithmes diffrents suivant les processeurs Rsultat arrondi

Tous les calculs en virgule flottante sont approchs


Sur des nombres approchs

L'ordre des oprations n'est pas anodin


Quand il est grable
ESIL, Algorithmes numriques 25

Les oprations

Soit f(a,b)=333,75b5+a2(11a2b2-b6-121b4-2)+5,5b8+a/2b a=77617 b=33096 extrait de [7] en format IBM (en base 16)
f(a,b) = 1,172603 en SP f(a,b) = 1,1726039400531 en DP

Sur une SUN Sparc


f(a,b) = -9,875012 1029 en SP f(a,b) = -1.180592 1021 en DP

Sur la machine de votre serviteur (IEEE 754)


-7.498167 1029 en SP -1.180592 1021 en DP

Il faut toujours avoir un regard critique

Rsultat thorique : -0,827396


ESIL, Algorithmes numriques 26

13

Les erreurs

Tous les nombres sont approchs - Tous les calculs sont approchs
2 variables ne peuvent tre compares qu' une erreur prs

Comparer x et x*
x = x* ? Erreurs de reprsentation + erreurs de calcul
x = x* n'a pas de sens

Choix d'une prcision


|x-x*| < : erreur absolue
x"x* < # : erreur relative x

ESIL, Algorithmes numriques

27

Les erreurs

x " x * = #x < $ : erreur absolue


L'erreur ne dpend pas de l'ordre de grandeur de x Naturel a priori sur les nombres petits |x| < 1 Si |x| est grand, peut conduire aller chercher normment de chiffres significatifs
Ces chiffres peuvent ne pas tre accessibles

x " x * #x = < $ : erreur relative x x


L'erreur dpend de l'ordre de grandeur de x Naturel a priori pour les nombres grands |x|>>1

Une premire rgle :


Erreur absolue sur les nombres |x| <1, on parle de prcision absolue Erreur relative pour les nombres |x|>1, on parle de prcision relative
quivalent si |x|1

Il existe des applications ncessitant une prcision absolue


ESIL, Algorithmes numriques 28

14

Les erreurs

L'important : le nombre de chiffres significatifs (stables)


Quel que soit l'ordre de grandeur de la variable

Comment relier la prcision au nombre de chiffres significatifs ? Un retour arrire : prcision absolue de l'ordre de 10-n
x10-n x= 0.dddddddddd 10 3 cas =0 x= 0.dddddddddd <0 x= 0.0000dddddddd >0 x= ddd.ddddddd

nbchif = nbchif = nbchif =

Le nombre de chiffres dpend de


ESIL, Algorithmes numriques 29

Les erreurs

Un retour arrire : prcision relative de l'ordre de 10-n


|x|/|x|10-n x= 0.dddddddddd 10, l'ordre de grandeur de x est 10-1 Cela revient tudier avec la prcision absolue 10-n . 10-1 = 10 -(n-+1) 3 cas =0 nbchif = <0 nbchif = >0 nbchif =

ESIL, Algorithmes numriques

30

15

Les erreurs

En conclusion
|x| >1 prcision relative de 10-n |x| <1 prcision absolue de 10-m La cohrence impose m=n+1

Test d'arrt trs gnral


|x| < relative |x| + absolue Valable si x grand ou non

Et ramen en nombre de chiffres significatifs stables


n chiffres significatifs stables |x| < 10-n ( |x| + 0.1) Un vrai bon test (largement utilis)
ESIL, Algorithmes numriques 31

Arithmtiques alternatives

Arithmtique d'intervalle Chaque variable appartient un intervalle et est note [v]


[v]=[v*,v*] = {x/ v* x v*}

Les oprations sont dfinies sur des intervalles


[a]+[b] = [a*+b*,a*+b*] [a]-[b] = [a*-b*,a*-b*] [a]*[b] = [min(a*b*, a*b*, a*b*, a*b*), max(a*b*, a*b*, a*b*, a*b*)] [a]/[b] = [a*,a*] * [1/b*,1/b*] si 0[b]

On peut gnraliser aux fonctions continues Les variables sont toujours l'intrieur d'un intervalle valide : fiable
ESIL, Algorithmes numriques 32

16

Arithmtiques alternatives

Arithmtique d'intervalle Les limites


Le temps de calcul La taille des intervalles des variables qui croit trs vite Problme quand 0 est dans l'intervalle Surestimation des intervalles
Ex : P(x) = x-x2 P([0,1])= [0,1]- [0,1]2 = [0,1]-[0,1] = [-1,1] Ou avec P(x) = x(1-x) P([0,1])= [0,1]*( 1-[0,1])= [0,1]*[0,1] = [0,1] Or le bon intervalle est [0,1/4]

Il faut ventuellement envisager de rduire les intervalles

ESIL, Algorithmes numriques

33

Arithmtiques alternatives

Arithmtique rationnelle La valeur d'une variable est de la forme a/b


a et b entiers Premiers entre eux (forme irrductible)

Les calculs sont effectus sur des fractions rationnelles a c ad + bc num + = = , num et den premiers entre eux b d bd den Les fonctions mathmatiques sont codes en rationnel
!

Les limites
Ne reprsente pas tous les rationnels L'ensemble Q n'est pas l'ensemble R Calculs trs lents
ESIL, Algorithmes numriques 34

17

Arithmtiques alternatives

Prcision infinie Les nombres sont dcomposs en blocs de chiffres successifs.


X1 = xxxx.xxxxyyyyyyyyyzzzzzzz X2 = uuuu.uuuuvvvvvvvvvssssssss

Les oprations sont faites sur les blocs comme la main X1 op X2 la prcision dsire Les limites
La mmoire disponible Le temps de calcul L'intrt rel sur des donnes imprcises

Voir par exemple : http://www.swox.com/gmp/


The GNU Multiple Precision Arithmetic Library
ESIL, Algorithmes numriques 35

Arithmtiques alternatives

Le calcul symbolique Transformation des expressions mathmatiques


Evaluation finale

Des outils intressants de calcul symbolique


Mathematica, Mapple,

Les limites
Le temps de calcul Les capacits de rsolution L'intrt rel sur des donnes imprcises

ESIL, Algorithmes numriques

36

18

Arithmtiques alternatives

Tendances Utilisation systmatique de la double prcision


Masque ou repousse de nombreuses difficults

Les processeurs 64 bits masquent ou repoussent de nombreuses difficults


Peut convenir

Un fort intrt pour les arithmtiques alternatives


Dveloppement de bibliothques

Freins importants lis la lourdeur des approches L'arithmtique flottante a encore de beaux jours devant elle
Toujours tre conscient des risques et contrler les rsultats
ESIL, Algorithmes numriques 37

Considrations algorithmiques

Les problmes itratifs


De nombreux processus sont itratifs D'un point de vue thorique :
lim x n = l

l est inconnue (on ne peut pas comparer xn l !) La dmonstration de la convergence passe par des critres mathmatiques puissants : invrifiable sur un ordinateur ! Il peut exister des conditions de convergence : invrifiable sur un ordinateur

n"#

Les critres utiliss sont plus faibles que les critres thoriques Les processus itratifs peuvent tre divergents
Pour des raisons thoriques Pour des raisons lies l'ordinateur Peuvent sembler converger sur l'ordinateur (ex : un =n)

ESIL, Algorithmes numriques

38

19

Considrations algorithmiques

L'idal serait de comparer xn avec la limite l, mais celle-ci est inconnue !


On ne peut comparer que des itrs successifs |xn+1-xn| On peut s'assurer que plusieurs itrs successifs semblent converger

La ralit de la convergence d'un processus itratif


xn convergence apparente convergence probable oscillations minimum local n

ESIL, Algorithmes numriques

39

Considrations algorithmiques

Il faut des tests robustes


Comparaison des itrs successifs |xn+1-xn| (au minimum) Limiter le nombre d'itrations (indispensable) Tester tous les problmes intermdiaires
Ex : dnominateur petit

En sortie de la structure itrative


Il faut savoir sur quelle condition la structure itrative a t quitte

Rapidement : de nombreux tests associs de nombreux


Programmation par les Souvent incomprhensibles pour l'utilisateur

Un bon programme doit pouvoir laisser l'utilisateur choisir les Si possible, les faire dpendre d'un minimum de prcisions matrisables Problme complexe !

ESIL, Algorithmes numriques

40

20

Considrations algorithmiques

Bon algorithme ? (1/3) Des critres que doivent respecter un bon algorithme
fiable (gre tous les cas) robuste stable fournit des rsultats de qualit ... performant

mais aussi
facile implmenter facile maintenir taille mmoire ncessaire ...

ESIL, Algorithmes numriques

41

Considrations algorithmiques

Bon algorithme ? (2/3) Algorithme adapt aux donnes traiter en gnral ?


mme si non optimal ex : algorithme de tri (bulle) pour des donnes presque tries
Pas de l'algorithmique numrique !

Cadre dans lequel il faut s'intresser la complexit :


plus rapide, qualit et adquation au problme gales pas toujours si simple faire cas des hypothses particulires (sur un exemple, et sont-elles vrifies ?)

ESIL, Algorithmes numriques

42

21

Considrations algorithmiques

Bon algorithme ? (3/3) Ne pas oublier une prsentation soigne


Indentation rigoureuse Beaucoup de commentaires (utiles) Enttes
Numro de version, Date de cration, date de modification Auteur, entreprise Descriptif Dictionnaire des variables en entre et sortie

Tout ce qui est vrai pour l'algorithmique est vrai pour l'algorithmique numrique
Les problmes numriques en plus !
ESIL, Algorithmes numriques 43

Considrations algorithmiques

La complexit La complexit mmoire


Structure mmoire adaptable aux problmes traiter
Pas de float T[10] en dur ; !

Attention la taille des structures de donnes


La taille augmente trs vite

Attention l'allocation dynamique de mmoire


Surtout si peu de dsallocation , Ou mal gre ! Cela a un cot si dans une structure itrative trs interne

ESIL, Algorithmes numriques

44

22

Considrations algorithmiques

La complexit temporelle
Il faut considrer le Mflops et non le Mips

On n'additionne pas n'importe quoi ensemble


pour passer de l'valuation en nombre d'oprations l'valuation en temps (nombre de cycles) :
contexte logiciel contexte matriel obtenir les ratios de temps entre les oprations appliquer ces ratios obtenir un temps global

ESIL, Algorithmes numriques

45

Considrations algorithmiques Nombre de Megaflops pour effectuer des oprations lmentaires

Silicon Graphics R10000


12

Sun Sparc 20

Pentium 166
5 4,5 4 3,5 3 2,5 2 1,5 1 0,5 0

Pentium Pro 200

80 70 60 50 40 30 20 10 0

10 8 6 4 2 0

+-*

Attention aux techniques de mesure * pas d'optimisation possible * mesurer et dduire les temps des oprations accessoires
ESIL, Algorithmes numriques 46

23

Considrations algorithmiques Nombre de Megaflops pour effectuer des oprations lmentaires (tests 2005)

G4 550 MHz

G4 1,5 GHz

P4 2 GHz

P4 2,4 GHz

AMD Athlon 1 GHz

200 180 160 140 120 100 80 60 40 20 0

70 60 50 40

30 25 20 15

30 20 10 0

10 5 0

+-*

Donnes fiables en faisant les tests sur 109 oprations Pas de rsultats stables sur le G5
ESIL, Algorithmes numriques 47

Considrations algorithmiques

On ne peut pas aborder l'algorithmique numrique sans avoir une ide des temps de calcul
Il y a 30 ans, une cole d'ingnieurs avec une machine d'1Mflops tait une cole bien dote On peut considrer un PC actuel 200 Mflops Cray X1E : 147 Tflops (2005)(1 Tflops = 106 Mflops) Blue Gene : 280 Tflops (fin 2005) (131072 processeur s!) (478 Tflops en 2007) Jaguar (Cray) 1759 Tflops (en 2009) (224162 processeurs !)
Fujitsu annonce 10 ptaflops fin 2012 (10. 1015)

Mais
problmes mcaniques exceptionnels trs non linaires, 2 000 000 ddl, soit 1 ou 2 semaines de calcul sur quelques dizaines de processeurs problmes de mcanique linaire (lments finis) on peut atteindre 109 ddl, soit des systmes linaires (109,109), soit de l'ordre de 1027 oprations soit 1013 secondes de Blue Gene .
Pour temprer : matrices creuses

A mditer

ESIL, Algorithmes numriques

48

24

Deuxime partie : Equations non linaires

ESIL, Algorithmes numriques

49

Racine d'une quation

Soit l'quation non linaire f(x)=0


r est une racine de l'quation ou par abus de f si f(r)=0

f valeur dans Rq, x Rp


On considrera surtout p=q=1

Liens avec l'optimisation non linaire : min f(x), x D


Un extremum de f est caractris par :
f'(x)=0 (p=1) Minimum : f''(x) >0 Maximum : f ''(x)<0

grad f = 0 (p>1), si f est valeur dans R (q=1)


Matrice Hessienne H (symtrique) dfinie positive : minimum Matrice Hessienne H (symtrique) dfinie ngative : maximum

La recherche des racines d'une quation est un problme de base


ESIL, Algorithmes numriques 50

25

Racine d'une quation

Quelles situations ? (1/2)


La fonction est connue discrtement
A la prcision de discrtisation prs Aux conditions de rgularit supposes prs Rem : outil imparfait de localisation des racines

La drive premire est accessible ou non


Elle cote calculer ou non

La fonction est connue sous forme d'une fonction d'valuation La fonction est un polynme, et on a accs aux coefficients du polynme

ESIL, Algorithmes numriques

51

Racine d'une quation

Quelles situations ? (2/2)


Une racine cherche
La plus petite, la plus grande, la plus proche d'une valeur donne .

Toutes les racines


Combien faut-il en chercher ? Problme difficile mme pour un polynme (R n'est pas algbriquement clos !)

Le cas des racines multiples (f(r ) = f'(r ) = . = f(p)(r ) = 0 Le cas insoluble de l'infinit de racines
Cas trs important en CAO Cas limite : racines multiples

ESIL, Algorithmes numriques

52

26

Evaluation d'un polynme

Dans quelle base est exprime le polynme


Base canonique (power basis) n i n" i i = 0,...,n Autre base, Bernstein en particulier Bi,n (t) = C i t (1" t) Attention, changement de base mal conditionn

P(x)=a0 xn + a1 xn-1 + an-1 x + an


Evaluation directe proscrire
Stabilit Nombre d'oprations

Il faut utiliser le schma de Horner dans la base canonique D'autres solutions dans d'autres bases
Ex l'algorithme de De Casteljau dans la base de Bernstein
ESIL, Algorithmes numriques 53

Evaluation d'un polynme

Le Schma de Horner P(x)=a0 xn + a1 xn-1 + an-1 x + an


Ou Pn(x)=a0 xn + a1 xn-1 + an-1 x + an

Formellement :
Pn(x) = a0 xn + a1 xn-1 + an-1 x + an Pn(x) = (a0 xn-1 + a1 xn-2 + an-1 ) x + an = an + x P1(x) Pn(x) = ((a0 xn-1 + a1 xn-2 + an-2 ) x +an-1 ) x + an = an + x (an-1 + x P2(x))

Prsentation pratique : on cherche calculer Pn()


Pn(x) = (x- ) Qn-1(x) + An

ESIL, Algorithmes numriques

54

27

Evaluation d'un polynme

b0=a0 bi = ai+ bi-1 An = an+ bn-1

Nombre d'oprations ?
On garde Qn-1 ou pas b = ai+ b

Drives successives :
Pn(x) = (x- ) Qn-1(x) + An Qn-1(x) = (x- ) Qn-2(x) + An-1
.

Q1(x) = (x- ) Q0(x) + A1 Q0(x) = A0 Pn (x) = An+ (x- )An-1+ (x- )2An-2 + + (x- )nA0

A comparer avec le dveloppement de Taylor au voisinage de : Pn(x)=Pn()+(x- )Pn'()+(x- )2Pn''()/2!+ +(x- )nPn(n)()/n! +0
ESIL, Algorithmes numriques 55

Dichotomie

(bisection en anglais) Soit f continue sur [a,b] f(a).f(b)<0


Thorme des valeurs intermdiaires : ]a,b[ f()=0 Hypothse sup. : f est monotone sur [a,b] ! ]a,b[ f()=0 Il faut commencer par trouver 2 telles valeurs a et b ! Tantque (prcision non atteinte) faire c=(a+b)/2 Si (f(a).f(c))<0 alors b=c sinon a=c Finsi Fintantque /* la racine [a,b] */ Et si la fonction n'est pas monotone ?
ESIL, Algorithmes numriques 56

28

Dichotomie

Et si |f(c)|<eps ? Et si f(c) =0 ?
Cas peu probable qui statistiquement se rencontre toujours sur les tests Perdu ! Avec l'algorithme propos, [a,b]->[c(1),b]->[c(2),b]->[c(3),b] Tantque (prcision non atteinte) faire c=(a+b)/2 Si (f(a).f(c))<0 alors b=c sinon a=c Finsi Fintantque /* la racine [a,b] */ Tantque (prcision non atteinte) faire c=(a+b)/2 Si (f(a).f(c))0 alors b=c sinon a=c Finsi Fintantque /* la racine [a,b] */

- Convergence normale : trouvera c comme borne sup de l'intervalle rsultat


ESIL, Algorithmes numriques 57

Dichotomie

l=b-a
Itration 1 : b-a= Itration n : b-a=

On a un encadrement de la racine

Tantque (prcision non atteinte) faire c=(a+b)/2 Si (f(a).f(c)) 0 alors b=c sinon a=c Finsi Fintantque /* la racine [a,b] */

si * est la vraie valeur ]a,b[ | - *| Pour avoir une erreur de l'ordre de , il suffit de prendre n

Attention aux prcisions non atteignables et aux problmes numriques


Toujours limiter le nombre d'itrations

Ce n'est pas la mthode la plus rapide C'est la mthode LA PLUS ROBUSTE


C'est une bonne mthode gnrique
ESIL, Algorithmes numriques 58

29

La mthode de Newton

Une des mthodes les plus clbres


Utilisable pour les fonctions de plusieurs variables Convergence rapide (quand elle converge)

Soit un point de dpart donn x0


On cherche x t.q. f(x0+x)=0 Soit le dveloppement de Taylor de f au voisinage de x :

En ngligeant les termes partir du 2e ordre : D'o

x1 = x 0 "

f (x 0 ) f ' (x 0 )

La mthode est approche, il faut itrer : k 1 x k = x k"1 "

f (x k"1 ) f ' (x k"1 )


59

! !
La mthode de Newton

ESIL, Algorithmes numriques

Interprtation gomtrique
quation de la tangente en x0 La tangente coupe l'axe des x en x0 Convergence rapide (quand elle converge)

La mthode de Newton impose d'avoir accs la drive Une drive approche conduira tout de mme un rsultat
l'extrme, n'importe quelle droite va fonctionner Attention l'annulation de la drive
Que se passe-t-il ?

Mieux vaut a priori partir prs de la solution


ESIL, Algorithmes numriques 60

30

La mthode de Newton

Analyse de l'erreur
Dveloppement de Taylor au voisinage de x0 Et en (1) : x0

L'algorithme revient crire : 0=f(x0)+ (x1-x0)f'(x0) (2) Donc (1)+(2) (si f' ne s'annule pas) :

" i+1 # K" i2

! La convergence de la mthode de Newton est quadratique


Beaucoup plus rapide que la dichotomie N'offre pas un encadrement de la racine Imparfaitement, double le nombre de chiffres corrects chaque itration ESIL, Algorithmes numriques

61

La mthode de Newton

L'application la plus connue : racine pime d'un nombre a


f(x)=xp-a = 0 f'(x)=p.xp-1
P xk " a x k+1 = x k " p.x kp"1 1 a x k+1 = ((p " 1)x k + p"1 ) p xk

Si p=2

x k+1 =

1 a (x k + ) 2 xk

1 des algorithmes cabls sur les processeurs


+ un algorithme pour trouver un point de dpart convenable

ESIL, Algorithmes numriques

62

31

La mthode de Newton

Tout n'est pas si merveilleux


Cela ne fonctionne pas toujours Il y a des conditions thoriques pour que Newton converge
Elles sont invrifiables en pratique

Point de dpart

Minimum local

Far away!

Inflexion

Fin du tour gratuit !!!! Il faut faire avec : Contrler les itrs successifs
Contrler le nombre d'itrations Contrler les drives

ESIL, Algorithmes numriques

63

La mthode de Newton

Cas des racines multiples d'ordre p


f() = f'() = = f(p-1)(), f(p)() 0 La convergence se ralentit fortement et attention la drive est racine simple de u(x)=f(x)/f'(x)
On peut appliquer Newton u Fait apparatre f'' Convergence quadratique

Mthode de la scante
Mthode 2 pas Pas d'valuation de la drive Pas de convergence quadratique f (x k ) # f (x k#1 ) f ' (x k ) " x k # x k#1

x0 x1

x k +1 = x k " f (x k )
!

x k " x k"1 f (x k ) " f (x k"1 )


ESIL, Algorithmes numriques 64

!
32

Localisation des racines

Cas gnral
L'idal : avoir l'information provenant du problme lui-mme Discrtiser l'intervalle de dfinition et encadrer des racines
Problme pour un encadrement de 2m racines Une seule racine si encadrement de 2m+1 racines

Attention avec Newton, l'encadrement de la racine ne conduit pas forcment l'obtention de la racine Cas du polynme : diviser chaque fois P(x) par (x-)
Il faut programmer la division euclidienne de 2 polynmes
Comme la main , ou Horner (!)

Attention l'accumulation des erreurs Vrifier que est toujours racine du polynme initial

ESIL, Algorithmes numriques

65

Localisation des racines

Cas des polynmes Rgles de Descartes


Localisation Nombre de racines positives

Suite de Sturm
P(x) polynme ( coefficients rels) n'ayant que des racines simples P0(x)=P(x) P1(x)=P'(x) j 2 Pj : Pj-2(x)=Pj-1(x). Qj-1(x)-Pj(x) (P0=P1.Q1-P2) On arrte la suite quand Pm est constant (au pire, m=n)

S(x) = (P0,P1,.,Pm) et V(u) le nombre de changements de signe dans S(u) Le nombre de racines de P sur [u,v] = V(u)-V(v)
ESIL, Algorithmes numriques 66

33

Mthode de Bairstow

Polynmes coefficients rels: la mthode de Bairstow


Recherche des racines sur C (corps algbriquement clos) Pn(x)=(x2+p.x+q)Qn-2(x)+R(p,q).x+S(p,q)
On cherche p et q de sorte que S(p,q) et R(p,q) soient nuls
Application de Newton multivariables (p et q)

L'algorithme s'arrte lorsque le polynme Q est de degr 1 ou 2 On cherche les racines de x2+p.x+q
> 0 : deux racines relles = 0 : une racine double < 0 : deux racines complexes conjugues

Reste les dernires racines du dernier polynme Q

ESIL, Algorithmes numriques

67

Mthode de Bairstow

a0 xn + a1 xn-1 + an-1 x + an = (x2+p.x+q) (b0 xn-2 + b1 xn-3 + bn-3 x + bn-2 )+R x + S En posant, bn-1 = R et bn= S - p R b0 = a0 b1 = a1 - p b0 b2 = a2 - p b1 - q b0 bk = ak - p bk-1 - q bk-2 bn-1 = an-1 - p bn-2 - q bn-3 bn = an - p bn-1 - q bn-2

a0 = b0 a1 = b1 + p b0 a2 = b2 + p b1 + q b0 ak = bk + p bk-1 + q bk-2 2 k n-2 an-1 = R + p bn-2 + q bn-3 an = S + q bn-2

Le calcul des bi est donc effectu jusqu' n partir de i=2

ESIL, Algorithmes numriques

68

34

Mthode de Bairstow

Partant de p0 et q0 quelconques, on cherche p et q


R(p+ p, q+ q) = 0 et S(p+ p, q+ q) = 0 "R "R Au premier ordre : $ & R(p, q) + "p #p + "q #q = 0 & % & S(p, q) + "S #p + "S #q = 0 & "p "q ' Systme de Cramer 2X2

% ' ' "p = ' ' & ' ' ' "q = ' (

#R #S $R Np #q #q = #R #S #R #S Det $ #p #q #q #p #S #R R $S Nq #p #p = Det #R #S $ #R #S #p #q #q #p
S
ESIL, Algorithmes numriques 69

Mthode de Bairstow

Reste estimer les drives partielles


b0/p = 0 b1/p = - b0 - p b0/p b2/p = - b1 - p b1/p - q b0/p bk/p = - bk-1 - p bk-1/p - q bk-2/p bn-1/p = - bn-2 - p bn-2/p - q bn-3/p bn/p = - bn-1 - p bn-1/p - q bn-2/p

b0 = a0 b1 = a1 - p b0 b2 = a2 - p b1 - q b0 bk = ak - p bk-1 - q bk-2 bn-1 = an-1 - p bn-2 - q bn-3 bn = an - p bn-1 - q bn-2

Notations : bk+1/p = -ck, 0 k n-2


Et pour allger les notations finales : bn/p = -cn-1 -bn-1

c0 = b0 c1 = b1 - p c0 c2 = b2 - p c1 - q c0 ck = bk - p ck-1 - q ck-2 cn-2 = bn-2 - p cn-3 - q cn-4 cn-1 = - p cn-2 - q cn-3


ESIL, Algorithmes numriques 70

35

Mthode de Bairstow

Reste estimer les drives partielles


b0/q = 0 b1/q = 0 b2/q = - b0 - p b1/q - q b0/q bk/q = - bk-2 - p bk-1/q - q bk-2/q bn-1/q = - bn-3 - p bn-2/q - q bn-3/q bn/q = - bn-2 - p bn-1/q - q bn-2/q

b0 = a0 b1 = a1 - p b0 b2 = a2 - p b1 - q b0 bk = ak - p bk-1 - q bk-2 bn-1 = an-1 - p bn-2 - q bn-3 bn = an - p bn-1 - q bn-2

Notations : bk+2/q = -c'k, 0 k n-2


c0 = b0 c1 = b1 - p c0 c2 = b2 - p c1 - q c0 ck = bk - p ck-1 - q ck-2 cn-2 = bn-2 - p cn-3 - q cn-4 cn-1 = - p cn-2 - q cn-3

c'0 = b0 c'1 = b1 - p c'0 c'2 = b2 - p c'1 - q c'0 c'k = bk - p c'k-1 - q c'k-2 c'n-2 = bn-2 - p c'n-3 - q c'n-4 k n-2
ESIL, Algorithmes numriques 71

ck=c'k

Mthode de Bairstow

Il reste tout regrouper


bn-1 = R et bn= S - p R (1) bk+1/p = -ck et bn/p = -cn-1 -bn-1 bk+2/q = -c'k (1)

% ' ' "p = ' ' & ' ' ' "q = ' (

#R #S $R #q #q = #R #S #R #S Det $ #p #q #q #p #S #R R $S Nq #p #p = #R #S #R #S Det $ #p #q #q #p
Np S

"R "bn#1 = = #c n# 2 "p "p ! "R "bn#1 = = #c' n# 3 = #c n# 3 "q "q "S "bn "R = +R+ p = #c n#1 # bn#1 + bn#1 # pc n# 2 "p "p "p "S "bn "R = +p = #c n# 2 # pc n# 3 "q "q "q
!

2 # Det = c n" 2 " c n"1c n" 3 % $ N p = bn"1c n" 2 " bn c n" 3 % & N q = bn c n" 2 " bn"1c n"1

ESIL, Algorithmes numriques

72

36

Mthode de Bairstow

Algorithme On part d'un polynme courant Pcour = Polynme initial A chaque fois que l'on trouve 2 racines, le degr de Pcour diminue de 2 (Pcour=Qn-2) Tests d'arrt
Degr de Pcour 2
On sait directement calculer ses racines

Sur p et q ou sur R et S ?
Prcision sur x ou sur f(x) ? La convergence de Newton implique : "p = 0 et "q = 0 A considrer videmment proche de 0 avec test relatif ou absolu par rapport p et q (suivant les valeurs de p et q)

!
ESIL, Algorithmes numriques 73

Mthode de Bairstow

Algorithme SIMPLIFIE
Pcour =Polynme initial ; deg_Pcour = n ; processus convergent est vrai Tantque ((deg_Pcour>2) et (processus convergent)) faire p=p0 ; q=q0 "p et "q initialiss pour passer le test ci- dessous Tantque (convergence sur p et q non atteinte et nombre d' itrations OK) faire calcul des bi et des ci calcul de "p et "q avec dcalage si problme de dnominateur p = p + "p q = q + "q Fintantque ! Si (processus convergent) alors (soit nombre d'itrations OK) ! 2+px+q calculer les 2 racines de x mettre jour les bi (avec les nouveaux p et q) (i=0, ,deg_Pcour-2) Pcour=Qn-2 (les bi) ; deg_Pcour= deg_Pcour-2 Finsi Fintantque Si (processus convergent) alors calculer la (ou les 2) racine(s) de Pcour (polynme de degr 1 ou 2) Finsi

ESIL, Algorithmes numriques

74

37

Troisime partie : Systmes d'quations linaires

ESIL, Algorithmes numriques

75

Gnralits et dfinitions

Il existe des systmes algbriques et semi-algbriques Il existe des systmes linaires et non-linaires Systme linaire : A.X = B Il existe des systmes
Carrs : Sur-dtermins : Sous-dtermins :

ESIL, Algorithmes numriques

76

38

Gnralits et dfinitions

Formellement : A.X = B X = A-1.B (A carre)


Ne jamais calculer l'inverse
Long : revient rsoudre n systmes Numriquement par formidable Inutile : on peut faire autrement

Systme de Cramer :
Complexit d'un calcul de dterminant n! Numriquement instable !

Mthodes
Directes : les principales
Gauss, LU, Cholesky, QU (Householder,),

Itratives
Construire une suite Xk qui doit converger vers X (Jacobi, Gauss-Seidel, )

Penser la possibilit d'avoir plusieurs seconds membres


ESIL, Algorithmes numriques 77

Gnralits et dfinitions

Norme matricielle : Anneau des matrices d'ordre n


Application vrifiant les proprits des normes ET ||A.B||||A|| ||B|| 2 n n 2 Ex : norme de Frobenius :

A = " " a ij
i=1 j=1

Norme subordonne une norme vectorielle :


La dfinition implique ||AX|| ||A|| ||X||

A = sup
X" 0

A.X X

Thorme 1

! X 1 = " xi
i

A 1 = max " a ij
j i 2 i

X X

2 #

"x
i i

! = # (AT A) A2

= max x i

A $ = max " a ij
i j

(ATA) = rayon spectral de ATA Les racines carres positives des valeurs propres de ATA : valeurs singulires de A (dfinition)

! ||A||2 : plus grande valeur singulire de A =max

ESIL, Algorithmes numriques

78

39

Gnralits et dfinitions

Thorme 2 : Si A est normale : ||A||2= (A) (toute matrice symtrique ou hermitienne est normale) Thorme 3 : Si Q est orthogonale (unitaire) || Q.A||2=||A||2 Dfinition : Conditionnement d'une matrice (condition number) Cond(A)= ||A||.||A-1|| Thorme 4 :
Cond(A) 1 Cond(A)=Cond(A-1)

Cond 2 (A) =

- Si Q est unitaire Cond2(Q)=1, Cond2(AQ)=Cond2(A)= Cond2(QA) - Cond(A)=Cond(A) (0)

" max " min

Cond 2 (A) =

" max " min

si A est normale

ESIL, Algorithmes numriques

79

Gnralits et dfinitions

Le rang d'une matrice A(n,m) (ou rang du systme) = rang du systme de ses vecteurs colonnes rg A inf (n,m) Une matrice est de rang maximum si : rg A = inf(n,m) Une matrice carre A(n,n) est inversible si rg A = n On ne rsout que les systmes de rang maximum
Possible mais sans intrt sur les systmes rectangulaires

Si la matrice n'est pas de rang maximum min = 0


Cond2(A)= Cond2(A) 107 en float, Cond2(A)1016 en double On parle de rang numrique d'un systme

Le rang d'une matrice = nombre de valeurs singulires 0


ESIL, Algorithmes numriques 80

40

Gnralits et dfinitions

Influence du conditionnement : A X = B Soit une perturbation des donnes B

Soit une perturbation de A : A

L'erreur relative sur X est amplifie par le conditionnement


Majoration, mais atteinte en pratique

ESIL, Algorithmes numriques

81

Gnralits et dfinitions

Exemple d'un systme mal conditionn # 6 13 "17&#1& # 2 & % (% ( % ( % 13 29 "38(%1( = % 4 ( % (% ( % ( $"17 "38 50 '$1' $"5' +/- 0.1 sur le second membre # 6 13 "17&# 2.1 & # 2.1 & % (% ( % ( ! % 13 29 "38(%"1.2( = % 3.9 ( % (% ( % ( $"17 "38 50 '$ "0.3' $ "5.1' +/- 0.1 alatoirement sur les coefficients de la matrice # 6.1 13.1 "17 &#"0.08& # 2 & ! % (% ( % ( 29 "38.1(% 2.83 ( = % 4 ( %"12.9 % (% ( % ( $"16.9 "37.9 50.1 '$"2.08' $ "5'
ESIL, Algorithmes numriques 82

41

Gnralits et dfinitions

Une formule approche bien utile Influence des erreurs de reprsentation (sur B et sur A)
Soit c le nombre de chiffres significatifs sur la solution :

"X # 10$ c X

Cmax associ la plus petite perturbation (2-24 en float ou 2-53 en double) : 2-n = 10-cmax

c " c max # log10 (cond (A))


Formule approche 1 chiffre prs environ due J.C. Daubisse

Ex :

en float cond(A)= 105, alors c=7-5=2 en float cond(A)= 107, alors c=7-7=0

Si les erreurs sont plus grandes : remplacer cmax par la valeur correspondante
Il y aura moins de chiffres significatifs
ESIL, Algorithmes numriques 83

Mthodes directes

2 approches Remplacer le systme par un systme ayant les mmes solutions


A X = B M.A X = M B = M' X = B'
Gauss, Jordan, QU (Householder, Givens, )

Attention au conditionnement de M' L'idal : M orthogonale Cond2(M')=Cond2(A)


Cas du QU, (SVD)

Il faut videmment que M soit inversible :


M' X = B' M-1 M' X = M-1 B' A X = B

Dcomposer A en un produit de matrices remarquables


La rsolution devient triviale
LU, Cholesky, (SVD)

ESIL, Algorithmes numriques

84

42

Mthodes directes

Rsolution d'un systme triangulaire A X = B Triangulaire suprieure : aij = 0 si Triangulaire infrieure : aij = 0 si Le rang du systme doit tre maximal : Rsolution :
xk = 1 a kk
n $ ' &bk " # a kj .x j ) j= k+1 % (

Evaluation : !

Algorithme videmment en n2

ESIL, Algorithmes numriques

85

Mthodes directes

3 oprations de modification d'un systme A X = B Inversion de 2 lignes i et j M(lilj)


Il suffit d'inverser les lignes i et j de la matrice identit M.M=I M inversible det M.A = -det A

Multiplier une ligne i par


Remplacer le terme aii de la matrice I par M(lili) M(lili) M(li1/li)=M(li 1/li) M(li li)=I M inversible det M.A = det A

Remplacer une ligne i par ligne i + ligne j


M(li li+lj)=I+ M* avec M*lm= limj M(li li+lj)-1= M(li li-lj) det M.A = det A
ESIL, Algorithmes numriques 86

43

Mthodes directes

Cas trs important de modification d'un systme A X = B Inversion de 2 colonnes


Possible d'aprs la commutativit de l'addition La forme matricielle, revient changer le nom des inconnues Il faut
Garder trace des permutations Rsoudre Remettre les inconnues dans le bon ordre

Prendre un vecteur de n lments initialis avec perm(i) =i Echange des colonnes i et j :


changer les contenus de perm(i) et perm(j)

perm mmorise toutes les inversions de colonnes Chaque inversion change le signe du dterminant

Utile pour Gauss avec pivot total, QR avec classement des colonnes par norme dcroissante,
ESIL, Algorithmes numriques 87

Mthode de Gauss

Sans doute la mthode la plus connue (rsultats honntes)


Considrer la premire colonne Faire apparatre des 0 sous la diagonale Considrer la sous-matrice (n-1,n-1) partir de i=2, j=2 Recommencer le procd

"x $ $x $x $ #x

x x x x

x x x x

"x x% ' $ x' 0 $ $0 x' ' $ x& #0

x x' x' x'

x x' x' x'

"x x% ' $ x' ' 0 $ $0 x' ' ' $ x' & #0

x x' x' x'

x x' x' x'

x % "x ' $ x' ' $ 0 x' ' $ 0 ' $ x' & # 0

x x' 0 0

x x' x' ' x' '

x% ' x' ' x' ' ' ' x' ' &

NE PAS OUBLIER DE TRAITER LE SECOND MEMBRE ! matrice finale est ! La triangulaire suprieure !
Rsolution directe

ESIL, Algorithmes numriques

88

44

"x Description de l'tape k (k=1 n (ou n-1)) $ 0 $ aij=0 j<k, j<i $0 $ $0 $ #0

Mthode de Gauss

x x b e h

x x 0 a 0 d 0 g

x% ' x' c' ' f' ' l&

Faire apparatre des 0 sous a : remplacer d par d - d/a * a Remplacer la ligne(k+1) par la ligne(k+1) - d/a ligne(k) :
M(lk+1lk+1-(d/a) lk) soit : M(lk+1lk+1-(ak+1,k/ak,k) lk) !

On ne fait videmment pas le produit M.A, on calcule directement les termes utiles. Formule gnrale : On ne calcule pas les 0 : aik, i=k+1,n Possibilit de prcalculer : ak+1,k/ak,k Le second membre B est souvent mis en tant que (n+1) colonne de A
ESIL, Algorithmes numriques 89

Mthode de Gauss

Le terme akk est le pivot

Et si le pivot s' annule ?


Il faut changer de pivot

"x $ $0 $0 $ $0 $... $ #0

x x x x 0 a k,k 0 a k+1,k ... ... 0 a n ,k

x x a k,k+1

... ... ...

x % ' x ' a k,n ' ' a k+1,n ' ' ' a n ,n &

Solution minimale : M(lklp) p>k La division par un nombre petit pose problme : mieux vaut un grand ! pivot

Statgie : pivot partiel : pivot t.q.


Si |pivot| < ?

pivot = sup | a pk |
p= k,...,n

Statgie : pivot total : pivot t.q.

pivot = sup | a pl |
p= k,...,n l= k,...,n

! Si |pivot| < ? Modifie l'ordre des inconnues Optimal, mais inversion de lignes et colonnes

ESIL, Algorithmes numriques

90

45

Mthode de Gauss

Evaluation (1/2)

# a ik % a ij = a ij " a a kj % kk $ %b = b " a ik b i k % i a kk &

j = k + 1, n i = k + 1, n

Division pr-calcule Nouvelle ligne i : ! Avec le second membre : Calcul effectu pour les toutes les lignes soit : Et calcul effectu pour tous les k :

ESIL, Algorithmes numriques

91

Mthode de Gauss

Evaluation (2/2)

# a ik % a ij = a ij " a a kj % kk $ a ik %b = b " bk i % i a kk &

j = k + 1, n i = k + 1, n

Pour la division :

! En comptant la rsolution du systme triangulaire sup :

n 3 " n n(n " 1) + 3 2 n 3 " n n(n " 1) + 3 2 n(n - 1) +n 2

add mul div

Algorithme en : n3/3 add et mul et n2/2 div heuristique : max(|aii|)/min(|aii|) une ide de cond(A)
ESIL, Algorithmes numriques 92

46

Mthode du LU

Mthode classique A est dcompose en L.U


L triangulaire infrieure U triangulaire suprieure Dcomposition non unique
Mthode Crout uii=1

L.U X=B
LY=B puis UX=Y La dcomposition ne modifie pas B

" a11 $ $ a 21 $ $ # a n1

a12 a 22 a jj

a1n % ' ' '= ' a nn &

" l11 $ $ $ $ # l n1

0 l 22

0 0 l jj

% ' ' ' ' l nn & 0 0 0

"1 u12 $ $0 1 $0 0 $ #0 0

u 22 1 0

u1n % ' ' u jn ' ' 1 &


93

ESIL, Algorithmes numriques

Mthode du LU
r"1

Construction de : L par colonnes U par lignes


" $ r $ $ $ #
r

l ir = a ir " # l ij u jr
j=1

i = r,..., n
i = r + 1,..., n

u ri =

r"1 ' 1 $ & a ri " # l rj u ji ) l rr % j=1 (

!
%"1 % " '$ ' $ '$ 1 ! ' = $ '$ 1 ' $ '$ ' $ 1& # &# % ' ' ' ' &

Il faut lrr0
!
Mme principe que Gauss Pivot sur la colonne ljr j>r (le plus grand). Pivot nul : non inversible ! On inverse les lignes Vecteur perm pour le second membre !!

On peut stocker U et L sur A


A=L+U-I
ESIL, Algorithmes numriques 94

47

Mthode du LU
r"1

Evaluation de la dcomposition l ir = a ir " # l ij u jr r=1,, n


Pour les lij : Pour les uij :

i = r,..., n
i = r + 1,..., n

u ri =

r"1 ' 1 $ & a ri " # l rj u ji ) l rr % j=1 (

j=1

!
!

(n-r+1) termes et (r-1) add et mul 1 division (n-r) termes et (r-1) add et mul 1 mul sup (1/lrr *(.))

Il faut ajouter deux rsolutions de systmes triangulaires Pas plus intressant que Gauss
Pas de traitement du second membre Peut tre intressant

2n 3 " 3n 2 + n 6 3 n "n 3 n(n - 1) 2


ESIL, Algorithmes numriques 95

add mul div

Mthode de Cholesky

S'applique sur les matrices symtriques dfinies positives


Matrices pour les mthodes des lments finis Equations normales des problmes aux moindres carrs

Ne peut s'appliquer que sur ces matrices


1 racine carre et 1 division Permet de contrler que les matrices ont la bonne forme

A est dcompose en L.LT (L triangulaire infrieure)


L.LTX=B
LY=B puis LTX=Y

" a11 $ $ a 21 $ $ # a n1

a12 a 22 a jj

a1n % ' ' '= ' a nn &

" l11 $ $ $ $ # l n1

0 l 22

0 0 l jj

% ' ' ' ' l nn & 0 0 0

" l11 $ $0 $0 $ #0

l 22 0 0

l jj 0

l1n % ' ' ' ' l nn &


96

ESIL, Algorithmes numriques

48

Mthode de Cholesky

Construction par colonnes


2 l jj = a jj " # l jl l=1 j"1

" a11 $ $ a 21 $ $ # a n1

a12 a 22 a jj

a1n % ' ' ' ' a nn &

" l11 $ $ $ $ # l n1

0 l 22

0 0 l jj

0 % " l11 '$ 0' $0 0' $0 '$ l & #0


nn

l 22 0 0

l jj 0

l1n % ' ' ' ' l nn &

(choix de la racine positive, la racine carre existe si A correcte)


! !

l kj =

1 l jj

j"1 $ ' & a kj " # l kl l jl ) % ( l=1

k = j + 1,..., n

(ljj0 si A correcte)

!
!
Evaluation :

expression directe de A=L.LT, L stocke sur A

Algorithme en : n3/6 add et mul et n2/2 div


!

n3 " n + n(n " 1) 6 n3 " n + n(n " 1) 6 n(n - 1) + 2n 2 n


ESIL, Algorithmes numriques 97

add mul div rac

Mthodes itratives

Rsoudre A.X=B
Prendre X0 quelconque Construire la suite :
k

Xk+1=M.Xk+C k0

Telle que : lim X = X k"# Il faut savoir grer un bon test d'arrt sur un vecteur !

Thorme : Les mthodes itratives convergent si (M)<1 ! Il faut que A soit particulire pour assurer la convergence
Si A est diagonale dominante, (MJacobi)<1 et (Mgauss-Seidel)<1 La convergence
Peut ne pas exister Peut tre trs lente (acclation possible)

2 intrts
Matrices creuses Solutions approximatives
ESIL, Algorithmes numriques 98

49

Mthodes itratives

Jacobi

"a11 x1 + a12 x 2 + ......+ a1n x n = b1 $ $a21 x1 + a22 x 2 + ......+ a2 n x n = b2 # $... $an1 x1 + a n2 x 2 + ......+ a nn x n = bn %

soit X0 = (x0, x1, , xn)T


Par exemple

"b X0 = $ 1 # a11
x ik+1 =

b2 a22

...

T bn % ' ann &

On peut calculer Xk+1 :

! Calcul trs simple et rapide des itrs :

n 1 (bi " $ aij x k ) j aii j=1, j#i

On injecte dans le systme les valeurs de l'tape d'avant

Coefficient diagonal nul


Inversion de lignes
ESIL, Algorithmes numriques 99

Mthodes itratives

Gauss-Siedel

"a11 x1 + a12 x 2 + ......+ a1n x n = b1 $ $a21 x1 + a22 x 2 + ......+ a2 n x n = b2 # $... $an1 x1 + a n2 x 2 + ......+ a nn x n = bn %

soit X0 = (x0, x1, , xn)T

! Simple amlioration de Jacobi : k+1 k Ds que x j est calcul, pourquoi utiliser x j ?

x ik +1 =
!

i"1 n 1 (bi " # aij x kj +1 " # aij x kj ) aii j=1 j= i+1 !

Calcul trs simple et rapide des itrs

!
ESIL, Algorithmes numriques 100

50

Problmes de moindres carrs

Problmes excessivement classiques et TRES importants


Un exemple

n points du plan (xi,yi)


On cherche faire passer une courbe au mieux par ces points (ventuellement errons)

On choisit (par exemple) de prendre un


polynme P On choisit son degr (m) (avec m+1<n)

Cela revient crire P(xi)=yi i=1,,n (m+1) coefficients inconnus de P : P(x)=amxm+am-1xm-1+.. +a0 Soit : M.Xa=Y, systme linaire n lignes et m+1 colonnes Le systme est surdtermin (trop contraint) (m+1=n : systme carr)

Nombreux autres exemples (droite de rgression linaire, plan moyen, , les courbes de TP de physique !)
ESIL, Algorithmes numriques 101

Problmes de moindres carrs

Problme surdtermin : recherche d'une solution avec une erreur L'approche la plus classique : approche aux moindres carrs (least square approach)
Recherche des (m+1) coefficients de P permettant d'obtenir :
n

e = min F(a m ,..., a0 ) = min # P(x i ) " yi


i=1

2 2

Il s'agit de la minimisation d'un fonction F (m+1) inconnues e est atteint si : Grad F = 0

Si

"F =0 "a j

j = 0,..., m

ESIL, Algorithmes numriques

102

51

Problmes de moindres carrs

j = 0,..., m
j = 0,..., m

n "F = 0 = 2($ (P(x i ) # yi )x ij ) "a j i=1

min F(a m ,..., a0 ) = min # P(x i ) " yi


i=1

2 2

)x " P(x i! ij = " yi xij


i=1 i=1
m xn % ' ' 1' &

!
!

"xm $ 1 $ ... $1 #

... ...

"x $ $ $ $ m $ xn $ #
m 1

... 1% " am % '$ ' ' $ ... ' = '$ ' ' # a0 & ... 1' ' &

"xm $ 1 $ ... $1 #

...

! ...

m y1 x n %" ! % '$ ' '$ ' 1 '$ ... ' = &$ ' $ ' $ ' # yn &

ESIL, Algorithmes numriques

103

!
Problmes de moindres carrs

Approche aux moindres carrs Revient rsoudre : MTM.Xa=MT.Y

Problme linaire (m+1,m+1) On montre facilement qu'il s'agit bien d'un minimum Un problme aux moindres carrs est simple rsoudre Dvelopp sur un exemple
mais se gnralise facilement (voir [5])

ESIL, Algorithmes numriques

104

52

Rsolution aux moindres carrs

Rsoudre aux moindres carrs A.X=B


A nl lignes et nc colonnes Rechercher X qui minimise la fonction f :
Si nl=nc Si nl>nc

f (X) = A.X " B

2 2

Rappel (thorme 3)

! A.X " B 2 = Q.A.X " Q.B 2 Si Q est orthogonale : Il existe des transformations orthogonales qui conduisent
". $ $0 $0 $ $0 $0 $ #0 . . .% ' . . ! .' 0 . .' ' 0 0 .' 0 0 0' ' 0 0 0&
nc

nc

nl

Q.A compose de : A1(nc,nc) A2(nl-nc,nc) Transformation de Householder Transformation de Givens


ESIL, Algorithmes numriques 105

Rsolution aux moindres carrs

Il faut rsoudre
. . .% " % " % " % ' $ ' $ ' $ ' . . .' $ ' $ ' $ ' X ( B1 R1 A1 0 . .' $ ' $ ' $ ' ' $ ' $ '=$ ' 0 0 .' # & $ ' $ ' $ ' $ ' 0 0 0' A2 ' $ B2' $R2 ' 0 0 0& # & # & ! Le vecteur R est appel rsidu Il faut trouver le minimum de ||R||2 !
On a R1= A1.X - B1 R2=B2

". $ $0 $0 $ $0 $0 $ #0

ESIL, Algorithmes numriques

106

53

Rsolution aux moindres carrs

Thorme de Pythagore
A.X " B 2 = R1 2 + R2
2 2 2 2 2

". $ $0 A1 $ 0 $ $0 A2 $ 0 $ #0
2

Donc min A.X " B 2 = min R1 2 + min R2 min R1


2 2

. . .% ' . . .' 0 . .' ' 0 0 .' 0 0 0' ' 0 0 0& ! 2


2

" % $ ' $ '( $ ' X $ ' # &

" % " % $ ' $ ' $ ' $ ' $B1' $R1 ' $ '=$ ' $ ' $ ' $ ' $ ' $B2' $R ' # & # 2 &

? ?

! min R2
!

2 2

Rsoudre A.X=B aux moindres carrs ATA.X=ATB


L'erreur commise est

R2

2 2

La diffrence : cond2(ATA)=cond2(A)2 !!!!!!!

! ATA.X=ATB Il faut rsoudre A.X=B aux moindres carrs


ESIL, Algorithmes numriques 107

Rsolution aux moindres carrs

Transformation QU ou transformation de Householder Lemme :


uT.u et u.uT dmonstration : u un vecteur de Rn norm (uTu=1) la matrice H = I -2 u.uT est symtrique et orthogonale

Thorme : soit a de Rn aT=(a1,a2, , an), alors il existe une


matrice H, t.q. H.a = e1 (e1T=(1,0, , 0)), En d'autres termes, si a est une colonne de matrice, H fait apparatre un coefficient en premire position et des 0 en dessous &% = -(signe(a1 )) a ( 1 T H = I " $ .$ avec '# = %(% " a1 ) # ($ = a " %.e ) 1
ESIL, Algorithmes numriques 108

54

Rsolution aux moindres carrs

En pratique, l'tape r :
r " $ $0 =$ a $ $ $ #

A (r)

% ' ' ' ' ' ' &

&% = -(signe(a1 )) a ( 1 T H = I " $ .$ avec '# = %(% " a1 ) # ($ = a " %.e ) 1

On dfinit Hr (n-r+1,n-r+1) avec la colonne a n-r+1

I ! Et H(r) : $

"

0% ' #0 H r &

(H(r) est orthogonale)


(r) A21 % ' (r) H r A22 &

(r) (r) (r) " I 0 %" A11 A21 % " A11 A (r+1) = H (r) A (r) = $ $ '=$ ' (r) A22 & # 0 # 0 !H r &# 0 " I 0 %" B1(r) % " B1(r) % B (r+1) = H (r) B (r) = $ ' '$ (r) ' = $ (r) # 0 H r &# B2 & # H r B2 &

! !

On travaille donc sur des sous-matrices r=1, , nc


on peut diviser par le plus grand possible, soit avec la norme de colonne la plus grande inversion de colonne (vecteur perm !) plus grande norme = 0 rang non maximum
ESIL, Algorithmes numriques 109

Quatrime partie : Diffrentiation et Intgration numriques

ESIL, Algorithmes numriques

110

55

Approximation par un polynme

Soit une fonction f connue en (n+1) points x0, xn


f suppose suffisamment drivable Par (n+1) points, il passe un polynme de degr n Pn f(x)=Pn(x)+En(x)
En(x)=0 pour x=xi, i=0,,n En(x) fait intervenir f(n+1)(x)

Si on matrise En, on peut remplacer f par Pn et intgrer ou driver Pn On peut aussi considrer les dveloppements de Taylor
ESIL, Algorithmes numriques 111

Diffrentiation numrique

Soit une fonction f connue en (n+1) points x0, xn


Le problme est d'estimer un certain nombre de drives en x0, ,

Les formules les plus connues


f'(x)= [f(x+h)-f(x)]/h
Diffrence avant d'ordre 1 (D.L en x+h) f(x-h) h

f(x) h

f(x+h)

f'(x)= [f(x)-f(x-h)]/h
Diffrence arrire d'ordre 1 (D.L en x-h)

f'(x)= [f(x+h)-f(x-h)]/2h
Diffrence centre d'ordre 1 (2D.L en x+h et x-h) Plus gnrale : f'(x)= [f(x+h)-f(x-h')]/(h+h') En x+h et x+2h, ou x-h et x-2h, ou x-h et x+h f(x-h) h'

f(x) h

f(x+h)

On peut faire des formules d'ordre 2 en combinant 2 DL d'ordre 2

Problme trs instable


grosses approximations et diffrences de quantits voisines Les donnes sont bruites grosses instabilits
ESIL, Algorithmes numriques 112

56

Diffrentiation numrique

Estimation de f'': Appliquer les mmes formules aux valeurs f'(xi) calcules auparavant
Instabilits garanties !

Estimation de f'': Lisser les rsultats


f(x)=Pn(x)+En(x) f'=Pn' et f''=Pn'' Calculer f'(xi) Approcher f' par un polynme f'(x) =Qm(x)+Em(x) f''(x)=Qm'(x)

Estimer des drives est trs utile en modlisation gomtrique et en imagerie


C'est toujours un problme difficile On estime aussi des drives partielles
ESIL, Algorithmes numriques 113

Intgration numrique

[a,b] un intervalle et f une fonction intgrable


On cherche I =

"a f (x)dx

En pratique on dcoupe [a,b] en n intervalles de longueur h ! x0=a, x1=a+h, , xn=a+n.h=b On calcule :I

= " $ xxii#1 f (x)dx


i=1

Plus le pas h est petit


Plus la mthode est prcise Plus les calculs sont longs !
a b

ESIL, Algorithmes numriques

114

57

Intgration numrique

Sur chaque intervalle [xi,xi+1] :


f(x)=Pn(x)+En(x)

" xii+1 f (x)dx = " xii+1 Pn dx + " xii+1 E n dx

Ordre d'une mthode d'intgration


Ou degr de prcision ! Le nombre n maximum pour lequel la mthode permet d'intgrer exactement un polynme de degr infrieur ou gal n

2 possibilits d'action :
Le pas h d'intgration (nombre d'intervalles) Le choix de la formule donc l'ordre de la mthode

L'intgration revient faire des moyennes, de globaliser


Procd numriquement stable Contrairement la drivation
ESIL, Algorithmes numriques 115

Intgration numrique

La mthode des rectangles :

" xii+1 f (x)dx = (xi+1 # x i ) f (ci )

ci $ [x i , x i+1 ]

"a f (x)dx = $ h f (ci )


i=0

n#1

ci % [x i , x i+1 ]

Si ci=xi ou ci=xi+1
La mthode est d'ordre 0

xi ci

xi+1

Si c=(a+b)/2
La mthode est d'ordre 1

Ce n'est pas une mthode performante !

ESIL, Algorithmes numriques

116

58

Intgration numrique

La mthode des trapzes :

" xii+1 f (x)dx = (


n#1

x i+1 # x i )( f (x i ) + f (x i +1 ) 2

b "a f (x)dx = $ ( f (x i ) + f (x i+1 ))

h i=0 2

Que l'on crit :

"a f (x)dx = h.[

f (x 0 ) + f (x n ) n#1 + $ f (x i )] 2 i=1

xi

xi+1

C'est la mthode de base minimale


Mthode d'ordre 1

On peut montrer que l'erreur est en h3


ESIL, Algorithmes numriques 117

Intgration numrique

La mthode de Simpson
Prendre 3 points et de faire passer une parabole par ces 3 points (on prend en gnral le point milieu) Intgrer cette parabole Mthode videmment d'ordre 2

" xii+1 f (x)dx = (

x i+1 # x i )( f (x i ) + 4 f (mi ) + f (x i +1 )) 6
xi mi xi+1

b "a f (x)dx = $ ( f (x i ) + 4 f (mi ) + f (xi+1 ))

n#1

h i=0 6

Que l'on crit :

b "a f (x)dx = [ f (x0 ) + f (x n ) + 2 $ f (xi ) + 4 $ f (mi )]. i=1 i=0

n#1

n#1

h 6
118

ESIL, Algorithmes numriques

59

Intgration numrique

La mthode de Simpson (suite)


Deux notations possibles xi+1-xi=h, mi[xi,xi+1]
formules prcdentes

xi+1-mi=h, mi=xi+1
Intgration sur [xi,xi+2] n intervalles, mais 2n+1 points

x # xi )( f (x i ) + 4 f (x i+1 ) + f (x i +2 ) " f (x)dx = ( i+2 6 n h b "a f (x)dx = # ( f (x 2(i$1) ) + 4 f (x 2i$1 ) + f (x2i )) i=1 3
x i +2 xi

xi

xi+1

xi+2

!
b

Que l'on crit :

n#1 i=1

n i=1

"a f (x)dx = [ f (x0 ) + f (x 2n ) + 2 $ f (x2i ) + 4$ f (x2i#1 )].

h 3
119

ESIL, Algorithmes numriques

!
Intgration numrique

La mthode de Simpson une bonne mthode


Sous rserve d'un pas adapt aux ventuelles oscillations de f

On peut montrer que l'erreur est en h5


Calcul un peu dlicat Plus prcise que ce qui aurait pu tre attendu

En partant de ces mthodes


En subdivisant le pas par 2 En combinant les rsultats entre les subdivisions successives On obtient des rsultats trs prcis
C'est la mthode Romberg

ESIL, Algorithmes numriques

120

60

Intgration numrique

Quadrature de Gauss
Chercher des points astucieux pour valuer la fonction intgrer pour diminuer le nombre de calculs n
1

#"1 f (x)dx = %$ i f (xi )


i=1

n points d'intgration : la quadrature de Gauss est d'ordre 2n-1


Approximativement : 2n coefficients (i et xi). On peut grer 2n contraintes pour les monmes ti, i=0,,2n-1 (base des polynmes de degr 2n-1) ! 2 exact pour les polynmes de degr 3 3 exacte pour les polynmes de degr 5 . Voir par exemple [8] ou wikipdia pour les dmonstrations

Fournit de trs bons rsultats et trs peu de calcul Trs utile en mcanique o les valuations de f sont trs lourdes Pas de contrle de la prcision en jouant sur h
ESIL, Algorithmes numriques 121

Intgration numrique

Quadrature de Gauss Formule 1 point (1= 2, x1=0)


Formule 2 points
1 #"11 dx = 2 = $1 .1+ $ 2 .1

$ x 2 '1 # 1 dx = 2 = $1 .1 # x dx = & 2 ) = 0 = *1 .x1 & )"1 % (


1 "1
1 "1

# x dx = 0 = $1 .x1 + $ 2 .x 2 ! !

1 "1

*x1

#"1 x 2 dx =

2 2 2 = $1 .x1 + $ 2 .x 2 3 3 1 !3 #"1 x 3 dx = 0 = $1 .x1 + $ 2 .x 2


1

" 2 .x 2 (x 2 2 # x12 ) = 0

1 #"1 f (x)dx = f ("

1 1 )+ f ( ) 3 3

ESIL, Algorithmes numriques

122

61

Intgration numrique

Quadrature de Gauss (formules approches)



1 #"1 f (x)dx = f ("

1 1 )+ f ( ) 3 3

#"1 f (x)dx =

! !

..

5 3 8 5 3 f (" ) + f (0) + f ( ) 9 5 9 9 5

Intervalle [a,b] quelconque

b"a 1 b"a a+b t+ )dt # f( 2 "1 2 2 b"a n b"a a+b b I = # f (x)dx = xi + ) %$ i f ( a 2 i=1 2 2
I =

#a f (x)dx =

!
ESIL, Algorithmes numriques 123

Intgrales multiples

Mmes ides mais


Beaucoup plus de calculs Problme du domaine d'intgration

##" f (x, y)dxdy


On essaie de se ramener :
(x, " x01 " y01( x) f! y)dxdy
Le cas idal frquent :
x y ( x)

"a "c f (x, y)dxdy


Quadrature de Gauss multivariables Gnralisation des formules prcdentes

Mthodes classiques
!

ESIL, Algorithmes numriques

124

62

Intgrales multiples

Mthode de Monte-Carlo
Approche trs gnrale et trs utilise de rsolution de problmes Approche probabiliste : Tirage alatoire d'un ensemble de n valeurs

"a f (x)dx = (b # a)E( f (U))


E(f(U)) : esprance de la variable alatoire uniforme f(U)

En dimension suprieure (ici 2):

1 n E( f (U)) = lim $ f (x i ) n"# n i=1

On place dans un rectangle R On remplace f par f* R ! $ f (x, y) si (x, y) " # f *(x, y) = % autrement &0 On tire alatoirement n valeurs sur R 1 n ##" f (x, y)dxdy = aire(R).[ $ f * (xi , yi )] n i=1 ! ESIL, Algorithmes numriques

125

Cinquime partie : Interpolation - Approximation - Lissage : notions

ESIL, Algorithmes numriques

126

63

Problme

Soit une fonction f connue analytiquement ou en tout point


Remplacer f par * t.q. || f - *||
Norme fonctionnelle * exprime dans une bonne base
(fonctions exponentielles, polynmes, )

On remplace f par * :
* moins lourde calculer * a des proprits connues (ex; primitives) On supprime les irrgularits non dsires de f

On parle d'approximation
Domaine de la thorie de l'approximation
Bon espace fonctionnel Bonne base de fonctions d'approximation Bonne norme
ESIL, Algorithmes numriques 127

Problme

On se ramne toujours un problme discret


n points de l'espace considr On cherche faire passer une courbe * par ces points (interpolation)

" *(x i ) = f (x i ), i = 1,...n


au mieux au sens d'une norme parmi ces points (approximation ou lissage)

min $ "(x i ) # f (x i )
i=1

ou

min(max "(x i ) # f (x i ) ) ou ....

L'interpolation est un problme classique


Plus contraint Plus oscillant (donnes errones)

!
ESIL, Algorithmes numriques 128

64

Interpolation

Connu pour ses fortes oscillations entre les points d'appui

Exemple 1 : polynme de Lagrange P(x) = % yi #


i=1 j=1, j"i

(x $ x j ) (x i $ x j )

P(xi)=yi i=1,,n n coefficients inconnus de P : P(x)=an-1xn-1+an-2xn-2+.. +a0 Systme linaire (n,n) : connu pour tre instable
conditionnement de la matrice lev (type Van der Monde)

Exemple 2 : polynme dans ! base canonique la

ESIL, Algorithmes numriques

129

Interpolation

Exemple 3 : Spline d'interpolation (voir cours 3e anne)


Reproduction du comportement du latte (spline) de Plexiglas Beaucoup mieux que les exemples 1 et 2

ESIL, Algorithmes numriques

130

65

Meilleure approximation

Soit E un espace vectoriel fonctionnel prhilbertien


(E.V. muni d'un produit scalaire, E complet E espace de Hilbert) F un sous-espace vectoriel de dimension finie

Thorme de la projection orthogonale


f une fonction de E Il existe * unique de F qui ralise la meilleure approximation de f par des lments de F f " # * = min f " #
#$F

* est la projection orthogonale de f sur F


- C'est la meilleure approximation de f par des lments de F f !

CNS : * vrifie
"# $ F, < f % #*, # >= 0
F

ESIL, Algorithmes numriques

131

Lissage

Exemple 1 : polynme dans la base canonique


P(xi)=yi i=1,,n Approximation par un polynme de degr m (m<n-1) m+1 coefficients inconnus de P : P(x)=amxm+am-1xm-1+.. +a0 On considre le produit scalaire classique
problme aux moindres carrs

Systme linaire (n,m+1) : connu pour tre instable


Surtout pour m grand

Pour viter l'instabilit numrique


Les Bzier, splines, B-splines, (cours de 3e anne) On considre des bases de polynmes orthogonaux

ESIL, Algorithmes numriques

132

66

Lissage

Exemple 2 : base de polynmes orthogonaux


Produit scalaire continu Produit scalaire discret

< Pl , Pk >= "I Pl (x)Pk (x) # (x)dx


n

< Pl , Pk >= " Pl (x i )Pk (x i ) # (x i )


i=1

! deg On fixe le degr : " *(x) = # ai* Pi (x)


i=0

! En appliquant la CNS : < f " #*,# >= 0 applique pour tous les Pk !
!

< f , Pk >= " ai* < Pi , Pk > k = 0,...deg


i=1

Systme linaire (diagonal dans les meilleures situations) beaucoup plus stable

ESIL, Algorithmes numriques

133

Lissage

Exemple 2 : base de polynmes orthogonaux (suite)


La plus connue : base de Thebychev, base orthogonale avec Pl (x)Pk (x) Produit scalaire continu < P , P >= dx
l k

#["1,1]

1" x 2

Polynmes dfinis par : Pn(cos(x))=cos(nx) P0(x)=1, P1(x)=x, Pn+1(x)=2xPn(x)-Pn-1(x) n1 Sur [a,b], changement de variable pour se ramener [-1,1] !
u=1/2[(b-a)x+(b+a)]

Il existe des points de Gauss adapts l'intgration rapide Produit scalaire discret, les polynmes sont orthogonaux si les points d'appui sont : 2i +1 cos( # ), i = 0, ..., n -1 2(n "1) + 2
Le systme est diagonal Sinon, la matrice est pleine

ESIL, Algorithmes numriques

134

67

Dernire partie : Conclusion

ESIL, Algorithmes numriques

135

Conclusion

Le domaine est trs vaste


Vision partielle Qui doit vous permettre d'aborder les autres problmes

Pour chaque problme : plusieurs mthodes


Qui ne sont pas quivalentes Qui peuvent dpendre du contexte A choisir avec attention

Un ordinateur
Extraordinaire outil Un outil limit

Contrler les prcisions rsultats Matriser les itrations Contrler la complexit Contrler a posteriori les rsultats

Il est possible d'obtenir de trs bons avec un peu de soins


ESIL, Algorithmes numriques 136

68

Bibliographie succincte 1. Numerical Recipes in C++: The Art of Scientific Computing, W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Cambridge University Press, 2002 2. Numerical Recipes in C: The Art of Scientific Computing, W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Cambridge University Press 3. Numerical Recipes in Fortran: The Art of Scientific Computing, W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Cambridge University Press 4. Mthodes de Calcul Numrique, J.P. Nougier, Masson, 1983 (1e dition) (puis ?) 5. Introduction l'analyse numrique matricielle et l'optimisation, P. G. Ciarlet, Dunod, 1990 (1e dition) 6. Algorithmique Numrique, C. Brezinski, Ellipses, 1988 7. Qualit des calculs sur ordinateur, vers des arithmtiques plus fiables, M. Daumas et J.-M. Muller diteurs, Masson, 1997 8. Analyse Numrique pour Ingnieurs, A. Fortin, Presses Internationales Polytechnique, 2001

ESIL, Algorithmes numriques

137

69