ASI 3 Méthodes numériques pour l’ingénieur Interpolation f(x) 1 Approximation de fonctions • Soit une fonction f (inconnue explicitement) – connue seulement en certains points x0,x1…xn – ou évaluable par un calcul coûteux. • Principe : – représenter f par une fonction simple, facile à évaluer • Problème : – il existe une infinité de solutions ! 2 1 0 -1 -2 -3 -4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Approximation de fonctions • Il faut se restreindre à une famille de fonctions – polynômes, – exponentielles, – fonctions trigonométriques… 2 1 0 -1 -2 -3 -4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 3 Quelques méthodes d'approximation • Interpolation polynomiale – polynômes de degré au plus n • polynômes de Lagrange • différences finies de Newton • Interpolation par splines – polynômes par morceaux • Interpolation d'Hermite – informations sur les dérivées de la fonction à approcher • ...voir le groupe de TT… 4 Théorème d’approximation de Weierstrass soit f une fonction définie et continue sur l' intervalle a, b Alors, e 0, il existe un polynôme P( x), définit sur a, b tel que : f ( x) P( x) e x a, b f (x) e P(x) P(x) f(x) f (x) f(x)+ e f (x) e f(x)-e plus e , est petit, plus l' ordre du polynome est grand ab ab Interpolation : n 1 points, n 1 contraintes, n 1 équations, n 1 inconnues : ordre n5 Interpolation polynomiale • Le problème : les données, la solution recherchée x0 , y0 f ( x0 ) ,..., xi , yi f ( xi ) ,..., xi , yi f ( xi ) P( x) tel que P( xi ) f ( xi ), i 0, n • mauvaise nsolution : résoudre le système linéaire P( x) ai x i Va y V : matrice de Vandermond e i 0 • la combinaison linéaire de polynômes est un polynôme P ( x) y0 P0 ( x) ... yi Pi ( x) yn Pn ( x) tel que Pi ( xi ) 1 et Pi ( x j ) 0 ji ainsi P ( xi ) y0 P0 ( xi ) ... yi Pi ( xi ) yn Pn ( xi ) 0 1 0 6 Interpolation polynomiale : Lagrange • Théorème – Soient n+1 points distincts xi réels et n+1 réels yi, il existe un unique polynôme p Pn tel que p(xi) = yi pour i = 0 à n démonstration – Construction de p : n p( x ) y i Li ( x ) i 0 x x L (x) x x n avec Li polynôme de Lagrange – Propriétés de Li j i j 0 j i i j L est un polynôme d’ordre n • Li(xi)=1 • Li(xj)=0 (j i) 7 Lagrange : exemple n°1 • Exemple avec n=1 – on connaît 2 points (x0,y0) et (x1,y1) – on cherche la droite y=ax+b (polynôme de degré 1) qui passe par les 2 points : • y0 = a x0 + b • y1 = a x1 + b – a = (y0 - y1) / (x0 - x1) b = (x0 y1 - x1 y0) / (x0 - x1) y1 y0 y0 y1 x0 y 1 x 1 y 0 y x x0 x1 x0 x1 x0 x1 x x0 x x0 x x1 x x1 y y0 y1 y0 y1 x0 x1 x0 x 1 x0 x1 x1 x0 L0(x) L1(x) 8 Lagrange : exemple n°2 • Exemple avec n=2 – on connaît 3 points (0,1), (2,5) et (4,17) – polynômes de Lagrange associés : x x 2 x 2 x 4 x x 4 L2 ( x ) L0 ( x ) L1 ( x ) 8 8 4 - 0 2 4 0 2 4 0 2 4 9 Lagrange : exemple n°2 – calcul du polynôme d'interpolation 30 25 • p(x)=L0(x) + 5 L1(x) + 17 L2(x) 20 15 10 5 0 -1 0 1 2 3 4 5 • en simplifiant, on trouve p(x)=x2+1 10 Lagrange : l’algorithme Fonction y = lagrange(x,xi,yi) pour i 1 jusqu' à n pour j 1 jusqu' à n, j i; x xi ( j ) l l* xi (i ) xi ( j ) fait y y yi * l fait Complexité du calcul : n2 11 Lagrange : exemple n°3 • Exemple avec n=2 (fonction à approcher y=ex) – on connaît 3 points (0,1), (2,7.3891) et (4,54.5982) – Polynôme d'interpolation • p(x) =L0(x) + 7.3891 L1(x) + 54.5982 L2(x) 60 50 40 30 20 10 0 -10 -1 0 1 2 3 4 5 12 Lagrange : exemple n°3 – Erreur d'interpolation e(x) = f(x) - p(x) 60 50 40 30 20 10 0 -10 -20 -1 0 1 2 3 4 5 13 Lagrange : erreur d'interpolation • Théorème : – si f est n+1 dérivable sur [a,b], x [a,b], notons : • I le plus petit intervalle fermé contenant x et les xi • (x)=(x-x0)(x-x1)…(x-xn) ( n 1 ) – alors, il existe I tel que ex x n 1! f – NB : dépend de x • Utilité = on contrôle l’erreur d’approximation donc la qualité de l’approximation . 14 Lagrange : choix de n • Supposons que l'on possède un nb élevé de points pour approcher f … faut-il tous les utiliser ? – (calculs lourds) • Méthode de Neville : – on augmente progressivement n – on calcule des Li de manière récursive – on arrête dès que l'erreur est inférieure à un seuil (d’ou l’utilité du calcul de l’erreur) 15 La méthode de Neuville • Définition Pm1 ,m2 ,..., mk ( x) polynôme de Lagrange calculé sur • xm , ym , xm , ym ,..., xm , ym Théorème x x j P0,1,..., j 1, j 1,..., n ( x) x xi P0,1,...,i1,i1,..., n ( x) P( x) les k points 1 1 2 2 k k xi x j • Démonstration P( xi ) f ( xi ); P( x j ) f ( x j ) et P( xk ) f ( xk ) • Application systématique x0 x1 x2 x3 P0 Q0,0 P1 Q1,0 P2 Q2,0 P3 Q3,0 P0,1 Q1,1 P1, 2 Q2,1 P2,3 Q3,1 Qi , j Pi j ,i j 1,..., i 1,i P0,1, 2 Q2, 2 P1, 2,3 Q3, 2 P0,1, 2, 4 Q3,3 16 L’algorithme de Neuville Fonction y = Neuville(x,xi,yi) pour i 1 jusqu' à n Q(i,0) yi (i ) fait pour i 1 jusqu' à n pour j 1 jusqu' à i x xi (i j ) Q(i,j 1 ) x xi (i) Q(i 1,j 1 ) Q(i,j) xi (i ) xi (i j ) fait y Q ( n, n ) fait Complexité du calcul : n2 17 Interpolation polynomiale : Newton • Polynômes de Newton : – base = {1, (x-x0), (x-x0)(x-x1), …, (x-x0)(x-x1)…(x-xn-1)} – on peut ré-écrire p(x) : p(x)=a0 + a1(x-x0) + a2(x-x0)(x-x1)+…+ an(x-x0)(x-x1)…(x-xn-1) – calcul des ak : méthode des différences divisées 18 Newton : différences divisées • Définition : – Soit une fonction f dont on connaît les valeurs en des points distincts a, b, c, … – On appelle différence divisée d’ordre 0, 1, 2,...,n les expressions définies par récurrence sur l’ordre k : – k=0 f [a] = f (a) – k=1 f [a,b] = ( f [b] - f [a] ) / ( b - a ) – k=2 f [a,b,c] = ( f [a,c] - f [a,b] ) / ( c - b ) – … f [X,a,b] = ( f [X,b] - f [X,a] ) / ( b - a ) aX, bX, ab 19 Newton : différences divisées • Théorèmes : – détermination des coefficients de p(x) dans la base de Newton : f [x0, x1,…, xk] = ak avec k = 0 … n – erreur d'interpolation : e(x) = f [x0, x1,…, xn, x] (x) 20 Newton : différences divisées • Calcul pratique des coefficients : a0 x0 f [x0] a1 x1 f [x1] x2 f [x2] … … … … f [x0, x1] f [x1, x2] … … f [x0, x1, x2] ... f [xn-3, xn-2, xn-1] xn f [xn-1, xn] f [xn-2, xn-1, xn] … f [xn] a2 an f [x0, ..., xn] 21 Newton : exemple • (ex. n°2) : n=2 (0,1), (2,5) et (4,17) a 0 0 f [x0]=1 2 f [x1]=5 4 f [x2]=17 a1 f [x0, x1] =(1-5)/(0-2)=2 f [x1, x2] =(5-17)/(2-4)=6 p(x)=1 + 2x + x(x-2) f [x0, x1, x2] a2 = (2-6)/(0-4)=1 (et on retombe sur p(x) = 1 + x2) 22 Newton : l’algorithme Fonction a = Newton(xi,yi) pour i 1 jusqu' à n F (i,0) yi (i ) fait pour i 1 jusqu' à n pour j 1 jusqu' à i F(i,j 1 ) F(i 1,j 1 ) F(i,j) xi (i ) xi (i j ) fait fait pour i 1 jusqu' à n a (i) F (n, i ) fait Complexité du calcul : n2 23 A bas les polynômes • Ex : y=2(1+tanh(x)) - x/10 avec 9 points – entre les points, le polynôme fait ce qu'il veut… et plus son degré est élevé plus il est apte à osciller ! 6 4 2 0 -2 -4 -6 -6 -4 -2 0 2 4 6 24 Interpolation par splines cubiques • Principe : – on approche la courbe par morceaux (localement) – on prend des polynômes de degré faible (3) pour éviter les oscillations 25 Splines cubiques : définition • Définition : – On appelle spline cubique d’interpolation une fonction notée g, qui vérifie les propriétés suivantes : • g C2[a;b] (g est deux fois continûment dérivable), • g coïncide sur chaque intervalle [xi; xi+1] avec un polynôme de degré inférieur ou égal à 3, • g(xi) = yi pour i = 0 … n • Remarque : – Il faut des conditions supplémentaires pour définir la spline d’interpolation de façon unique – Ex. de conditions supplémentaires : • g"(a) = g"(b) = 0 spline naturelle. 26 Splines : illustration P2(x)=a2 (x-x2) 3+b2 (x-x2) 2+c2 (x-x2) +d2 P1(x)=a1x3+b1x2+c1x+d1 =a1 (x-x1)3+b1 (x-x1) 2+c1 (x-x1) +d1 27 Splines cubiques : détermination • Détermination de la spline d’interpolation – g coïncide sur chaque intervalle [xi; xi+1] avec un polynôme de degré inférieur ou égal à 3 g" est de degré 1 et est déterminé par 2 valeurs: • mi = g"(xi) et mi+1 = g"(xi+1) (moment au noeud n°i) – Notations : • hi = xi+1 - xi pour i = 0 … n-1 • di= [xi; xi+1] • gi(x) le polynôme de degré 3 qui coïncide avec g sur l’intervalle di 28 Splines cubiques : détermination – g"i(x) est linéaire : • x di • on intègre (ai constante) • on continue (bi constante) – gi(xi) = yi – gi(xi+1) = yi+1 x xi x x mi i 1 hi hi x xi 2 xi 1 x 2 g i x mi 1 mi ai 2hi 2hi g ix mi 1 g i x mi 1 x xi 3 m xi 1 x3 a x x b i 6 hi mi hi 2 yi bi 6 1 yi 1 6 hi i mi 1hi 2 ai hi bi 6 i i 2 29 Splines cubiques : détermination – g'(x) est continue : – 1 et 2 ai g i xi mi hi h ai mi i 1 ai 1 g i1 xi 3 2 2 1 yi 1 yi hi mi 1 mi hi 6 – on remplace les ai dans : 3 4 hi 1mi 1 2hi hi 1 mi hi mi 1 1 1 yi yi 1 6 yi 1 yi hi 1 hi – Rappel : on cherche les mi (n+1 inconnues) on a seulement n-1 équations grâce à il faut rajouter 2 conditions, par exemple m0 = mn =0 4 (spline naturelle) 30 Splines cubiques : détermination 4 hi 1mi 1 2hi hi 1 mi hi mi 1 1 1 yi yi 1 6 yi 1 yi hi 1 hi – Ex de résolution avec hi = xi+1 - xi constant : • mi 1 4 mi mi 1 • forme matricielle : Tm=f 1 h 2 y i 1 2 y i y i 1 fi 0 m1 f 1 4 1 1 4 1 1 4 1 m f 1 4 n 1 n 1 • T inversible (diagonale strictement dominante) 31 Splines cubiques : l’algorithme pour i 2; n 1 T (i, i ) 2hi hi 1 T (i, i 1) hi 1 T (i, i 1) 2hi yi 1 yi yi yi 1 f (i 1) 6 hi 1 hi fait T T 2:n-1,2:n-1 m T \ f m [0, m,0] pour i 1; n 1 hi 1 a (i ) yi 1 yi mi 1 mi 6 hi mi hi b(i ) y (i ) 6 fait Complexité du calcul : complexité du solveur 32 Splines cubiques : exemple • Ex : y=2(1+tanh(x)) - x/10 avec 9 points 6 4 spline 2 0 -2 -4 -6 -6 polynôme de degré 8 -4 -2 0 2 4 6 33 Conclusion • Interpolation polynomiale – évaluer la fonction en un point : Polynôme de Lagrange -> méthode de Neville – compiler la fonction : Polynôme de Newton • Interpolation polynomiale par morceau : splines – – – – spline cubique d’interpolation spline cubique d’approximation (on régularise) b spline spline généralisée : splines gausiènnes (multidimensionelle) • approximation - apprentissage 34