Академический Документы
Профессиональный Документы
Культура Документы
Mars 2011
ESIL, Algorithmes numriques 1
Plan
Plan (suite)
Mthodes itratives Problmes aux moindres carrs Rsolution aux moindres carrs
Plan (suite)
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
Gnralits
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
Gnralits
Algorithmique numrique
Problme rel Physique, mcanique, Formalisation du problme
Complexit ?
Qualit numrique ?
Analyse du rsultat Cohrence Calibrage Maquette exprimentale Nombre de chiffres significatifs stables
1 rsultat acceptable
10
Gnralits
1 rsultat acceptable
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.
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
Les nombres
Les entiers Reprsents de faon exacte sur n bits (n = 16, 32, 64)
Chaque bit reprsente une puissance positive de 2
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
15
Les nombres
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
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
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
10
Les nombres
8 bits 23 bits
l l
m m
xxxx 0 ou xxxx ?
Les nombres
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 !
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
12
Les oprations
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
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
27
Les erreurs
14
Les erreurs
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
Les erreurs
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
Arithmtiques alternatives
On peut gnraliser aux fonctions continues Les variables sont toujours l'intrieur d'un intervalle valide : fiable
ESIL, Algorithmes numriques 32
16
Arithmtiques alternatives
33
Arithmtiques alternatives
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
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
Arithmtiques alternatives
Les limites
Le temps de calcul Les capacits de rsolution L'intrt rel sur des donnes imprcises
36
18
Arithmtiques alternatives
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
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)
38
19
Considrations algorithmiques
39
Considrations algorithmiques
Un bon programme doit pouvoir laisser l'utilisateur choisir les Si possible, les faire dpendre d'un minimum de prcisions matrisables Problme complexe !
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 ...
41
Considrations algorithmiques
42
21
Considrations algorithmiques
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
44
22
Considrations algorithmiques
La complexit temporelle
Il faut considrer le Mflops et non le Mips
45
Sun Sparc 20
Pentium 166
5 4,5 4 3,5 3 2,5 2 1,5 1 0,5 0
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
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
48
24
49
25
La fonction est connue sous forme d'une fonction d'valuation La fonction est un polynme, et on a accs aux coefficients du polynme
51
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
52
26
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
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))
54
27
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
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] */
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
29
La mthode de Newton
x1 = x 0 "
f (x 0 ) f ' (x 0 )
! !
La mthode de Newton
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 ?
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) :
61
La mthode de Newton
Si p=2
x k+1 =
1 a (x k + ) 2 xk
62
31
La mthode de Newton
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
63
La mthode de Newton
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 )
!
!
32
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
65
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
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
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
68
34
Mthode de Bairstow
% ' ' "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
35
Mthode de Bairstow
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
% ' ' "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
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
74
37
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 :
76
38
Gnralits et dfinitions
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, )
Gnralits et dfinitions
A = " " a ij
i=1 j=1
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)
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) =
Cond 2 (A) =
si A est normale
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
40
Gnralits et dfinitions
81
Gnralits et dfinitions
Exemple d'un systme mal conditionn # 6 13 "17& # 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
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
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
85
Mthodes directes
43
Mthodes directes
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
"x $ $x $x $ #x
x x x x
x x x x
x x' 0 0
x% ' x' ' x' ' ' ' x' ' &
NE PAS OUBLIER DE TRAITER LE SECOND MEMBRE ! matrice finale est ! La triangulaire suprieure !
Rsolution directe
88
44
Mthode de Gauss
x x b e h
x x 0 a 0 d 0 g
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
"x $ $0 $0 $ $0 $... $ #0
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
pivot = sup | a pk |
p= k,...,n
pivot = sup | a pl |
p= k,...,n l= k,...,n
! Si |pivot| < ? Modifie l'ordre des inconnues Optimal, mais inversion de lignes et colonnes
90
45
Mthode de Gauss
Evaluation (1/2)
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 :
91
Mthode de Gauss
Evaluation (2/2)
j = k + 1, n i = k + 1, n
Pour la division :
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
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
" l11 $ $ $ $ # l n1
0 l 22
0 0 l jj
"1 u12 $ $0 1 $0 0 $ #0 0
u 22 1 0
Mthode du LU
r"1
l ir = a ir " # l ij u jr
j=1
i = r,..., n
i = r + 1,..., n
u ri =
!
%"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 !!
47
Mthode du LU
r"1
i = r,..., n
i = r + 1,..., n
u ri =
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
Mthode de Cholesky
" a11 $ $ a 21 $ $ # a n1
a12 a 22 a jj
" l11 $ $ $ $ # l n1
0 l 22
0 0 l jj
" l11 $ $0 $0 $ #0
l 22 0 0
l jj 0
48
Mthode de Cholesky
" a11 $ $ a 21 $ $ # a n1
a12 a 22 a jj
" l11 $ $ $ $ # l n1
0 l 22
0 0 l jj
l 22 0 0
l jj 0
l kj =
1 l jj
k = j + 1,..., n
(ljj0 si A correcte)
!
!
Evaluation :
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 %
"b X0 = $ 1 # a11
x ik+1 =
b2 a22
...
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 %
x ik +1 =
!
!
ESIL, Algorithmes numriques 100
50
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
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
2 2
Si
"F =0 "a j
j = 0,..., m
102
51
j = 0,..., m
j = 0,..., m
2 2
!
!
"xm $ 1 $ ... $1 #
... ...
"x $ $ $ $ m $ xn $ #
m 1
... 1% " am % '$ ' ' $ ... ' = '$ ' ' # a0 & ... 1' ' &
"xm $ 1 $ ... $1 #
...
! ...
m y1 x n %" ! % '$ ' '$ ' 1 '$ ... ' = &$ ' $ ' $ ' # yn &
103
!
Problmes de moindres carrs
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])
104
52
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
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
106
53
Thorme de Pythagore
A.X " B 2 = R1 2 + R2
2 2 2 2 2
". $ $0 A1 $ 0 $ $0 A2 $ 0 $ #0
2
" % " % $ ' $ ' $ ' $ ' $B1' $R1 ' $ '=$ ' $ ' $ ' $ ' $ ' $B2' $R ' # & # 2 &
? ?
! min R2
!
2 2
R2
2 2
54
En pratique, l'tape r :
r " $ $0 =$ a $ $ $ #
A (r)
I ! Et H(r) : $
"
0% ' #0 H r &
(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 &
! !
110
55
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
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)
56
Diffrentiation numrique
Estimation de f'': Appliquer les mmes formules aux valeurs f'(xi) calcules auparavant
Instabilits garanties !
Intgration numrique
"a f (x)dx
114
57
Intgration numrique
2 possibilits d'action :
Le pas h d'intgration (nombre d'intervalles) Le choix de la formule donc l'ordre de la mthode
Intgration numrique
ci $ [x i , x i+1 ]
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
116
58
Intgration numrique
x i+1 # x i )( f (x i ) + f (x i +1 ) 2
h i=0 2
f (x 0 ) + f (x n ) n#1 + $ f (x i )] 2 i=1
xi
xi+1
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
x i+1 # x i )( f (x i ) + 4 f (mi ) + f (x i +1 )) 6
xi mi xi+1
n#1
h i=0 6
n#1
n#1
h 6
118
59
Intgration numrique
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
n#1 i=1
n i=1
h 3
119
!
Intgration numrique
120
60
Intgration numrique
Quadrature de Gauss
Chercher des points astucieux pour valuer la fonction intgrer pour diminuer le nombre de calculs n
1
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
# x dx = 0 = $1 .x1 + $ 2 .x 2 ! !
1 "1
*x1
#"1 x 2 dx =
" 2 .x 2 (x 2 2 # x12 ) = 0
1 1 )+ f ( ) 3 3
122
61
Intgration numrique
1 1 )+ f ( ) 3 3
#"1 f (x)dx =
! !
..
5 3 8 5 3 f (" ) + f (0) + f ( ) 9 5 9 9 5
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
Mthodes classiques
!
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
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
126
63
Problme
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
min $ "(x i ) # f (x i )
i=1
ou
!
ESIL, Algorithmes numriques 128
64
Interpolation
(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)
129
Interpolation
130
65
Meilleure approximation
CNS : * vrifie
"# $ F, < f % #*, # >= 0
F
131
Lissage
132
66
Lissage
! En appliquant la CNS : < f " #*,# >= 0 applique pour tous les Pk !
!
Systme linaire (diagonal dans les meilleures situations) beaucoup plus stable
133
Lissage
#["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
134
67
135
Conclusion
Un ordinateur
Extraordinaire outil Un outil limit
Contrler les prcisions rsultats Matriser les itrations Contrler la complexit Contrler a posteriori les rsultats
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
137
69