Académique Documents
Professionnel Documents
Culture Documents
Interpolation
1.5
0.5
-1
-0.5
0.5
-0.5
Version pour Mathematica Edition 2011-2012 Marcel Dlze, Eugne Pasquier www.collegedusud.ch/app/applmaths/
1-Interpolation.nb
1
1.1
Interpolation
Interpolation polynomiale
Notion d'interpolation
On donne une tabelle de valeurs numriques
x 1 2 3 4 y 1.9 2.3 3.1 2.8
Interpoler signifie "calculer des valeurs intermdiaires", par exemple: quelle valeur y correspond x = 2.7? Graphiquement, la situation se prsente comme suit
ListPlot@881, 1.9<, 82, 2.3<, 83, 3.1<, 84, 2.8<<, PlotRange 880, 5<, 80, 4<<, PlotStyle 8PointSize@0.02D<, ImageSize > 8400, 200<, AxesLabel 8"x", "y"<D
y 4
Une mthode simple (mais pas forcment la meilleure) consiste effectuer une interpolation linaire par morceaux, c'est--dire joindre les points par des segments de droite:
ListPlot@881, 1.9`<, 82, 2.3`<, 83, 3.1`<, 84, 2.8`<<, PlotRange 880, 5<, 80, 4<<, ImageSize 8400, 200<, Joined TrueD
4
La fonction affine par morceaux qui passe par les points donns est appele interpolant. Pour x = 2.7, on obtient ainsi y = 2.86 (la mthode de calcul sera prsente ci-dessous). Une autre mthode (qui semble meilleure mais dont la valeur reste discuter) consiste effectuer une interpolation cubique, c'est--dire faire passer par les 4 points donns un polynme de degr 3
1-Interpolation.nb
0 0 1 2 3 4 5
Le polynme de degr 3 qui passe par les points donns est appele interpolant. Pour x = 2.7, on obtient ainsi y = 2.907 (la mthode de calcul sera tudie ci-aprs). Selon l'interpolant choisi, on obtient des rponses diffrentes. Dans ce chapitre, nous prsentons des procds gnraux pour construire des fonctions d'interpolation qui sont au fondement de nombreuses mthodes numriques.
Calcul de l'interpolant
Forme matricielle d'un systme linaire Nous verrons que le calcul consiste essentiellement en un systme d'quations linaires. Il est avantageux d'exprimer les systmes linaires sous forme matricielle. Par exemple, le systme d'quations 3 x 5 y +2 z = 8 x +3 y z = 5 2 x y +3 z = 2 peut aussi s'crire sous la forme suivante, appele forme matricielle 3 5 2 1 3 1 2 1 3 x 8 y = 5 z 2
Nous mettons profit cette forme pour rsoudre efficacement le systme avec Mathematica. Le tableau des coefficients des inconnues est appel matrice du systme linaire:
m = 883, 5, 2<, 81, 3, 1<, 82, 1, 3<<; MatrixForm@mD 3 5 2 1 3 1 2 1 3
Interpolation linaire par morceaux Dtaillons les calculs relatifs aux exemples donns sous "Notion d'interpolation". Dans le cas de l'interpolation linaire par morceaux, deux points conscutifs sont les extrmits d'un segment de droite
x 2 t 3 y 2.3 gHtL 3.1
1-Interpolation.nb
g HtL = c0 + c1 t dont il faut dterminer les coefficients c0 et c1 . L'interpolant doit passer par les deux points donns: g H2L = 2.3 c0 + c1 2 = 2.3 et et g H3L = 3.1 c0 + c1 3 = 3.1
Les conditions prcdentes constituent un systme d'quations linaires que nous rcrivons sous la forme matricielle J 1 2 c 2.3 N J 0N = J N 1 3 c1 3.1
La fonction d'interpolation est une combinaison linaire des fonctions de base g HtL = c0 b0 HtL + c1 b1 HtL
Clear@b, g, tD; b@t_ D = 81, t<; g@t_ D = c.b@tD 0.7 + 0.8 t
Interpolation cubique Dans le cas de l'interpolation cubique, le polynme du troisime degr doit passer par les quatre points donns
x 1 2 t 3 4 y 1.9 2.3 gHtL 3.1 2.8
L'interpolant est le polynme g Ht L de degr 3 g HtL = c0 + c1 t + c2 t2 + c3 t3 L'interpolant doit passer par les quatre points donns: g H1L = 1.9 , g H2L = 2.3, g H3L = 3.1 , g H4L = 2.8
c0 + c1 1 + c2 12 + c3 13 = 1.9 , c0 + c1 3 + c2 32 + c3 33 = 3.1 ,
c0 + c1 2 + c2 22 + c3 23 = 2.3, c0 + c1 4 + c2 42 + c3 43 = 2.8
Les conditions prcdentes constituent un systme d'quations linaires que l'on rcrit sous la forme matricielle 1 1 1 1 1 1 1 2 4 8 3 9 27 4 16 64 c0 c1 c2 c3 1.9 2.3 = 3.1 2.8
1-Interpolation.nb
m = 881, 1, 1, 1<, 81, 2, 4, 8<, 81, 3, 9, 27<, 81, 4, 16, 64<<; MatrixForm@mD 1 1 1 1 1 1 1 2 4 8 3 9 27 4 16 64
y = 81.9, 2.3, 3.1, 2.8<; MatrixForm@yD 1.9 2.3 3.1 2.8 c = LinearSolve@m, yD; MatrixForm@cD 3.4 2.95 1.7 0.25 Clear@g, tD; g@t_ D := 3.4 2.95 t + 1.7 t2 0.25 t3 ; g@2.7D 2.90725
Les fonctions suivantes sont appeles fonctions de base: b0 HtL = 1; b1 HtL = t; b2 HtL = t2 ; b3 HtL = t3
La fonction d'interpolation est une combinaison linaire des fonctions de base g HtL = c0 b0 HtL + c1 b1 HtL + c2 b2 HtL + c3 b3 HtL
Clear@b, g, tD; b@t_ D = 91, t, t2 , t3 =; g@t_ D = c.b@tD 3.4 2.95 t + 1.7 t2 0.25 t3 pts = Transpose@8Range@1, 4D, y<D; Plot@g@tD, 8t, 0, 4.5<, PlotRange 880, 5<, 80, 4<<, Epilog 8PointSize@0.02D, Map@Point, ptsD<, ImageSize > 8400, 200<D
4
Calcul de l'interpolant avec Mathematica Mathematica peut nous donner directement l'interpolant:
? InterpolatingPolynomial InterpolatingPolynomial@data, varD renvoie un polynme de la variable var qui donne un ajustement exact pour une liste de donnes. Le format des donnes peut tre 88x1, f1<, 8x2, f2<, ... < ou 8f1, f2, ... <. Dans le second cas, les xi ont les valeurs 1, 2, ... . Les fi peuvent tre remplaces par 8fi, dfi, ddfi, ... <, spcifiant les drives aux points xi.
1-Interpolation.nb
pts = 882, 2.3<, 83, 3.1<<; Clear@g, tD; g@t_ D = InterpolatingPolynomial@pts, tD; Expand@g@tDD 0.7 + 0.8 t g@2.7D 2.86
Le problme d'interpolation
Enonc du problme d'interpolation 1-1 Sont donns n points Hx0 , y0 L, Hx1 , y1 L, ..., Hxn-1 , yn-1 L g Hx 0 L = y 0 , Proposition 1-1 Le problme d'interpolation 1-1 possde une et une seule solution g. Dmonstration de l'existence du polynme d'interpolation g Dans l'exercice 1.2-1, nous prouverons l'existence du polynme d'interpolation. L'existence dcoule du fait que le systme d'quations que l'on obtient possde au moins une solution. Dmonstration de l'unicit du polynme d'interpolation g Soient g1 , g2 deux solutions du problme d'interpolation. Dfinissons d HxL = g2 H xL - g1 H xL. d est un polynme de degr H n - 1L qui s'annule en n abscisses distinctes d Hx0 L = g2 Hx0 L - g1 Hx0 L = y0 - y0 = 0, d Hx1 L = g2 Hx1 L - g1 Hx1 L = y1 - y1 = 0, ... d Hxn-1 L = g2 Hxn-1 L - g1 Hxn-1 L = yn-1 - yn-1 = 0. Par consquent, d est divisible par H x - x0 L, H x - x1 L, ..., H x - xn-1 L d HxL = Hx - x0 L Hx - x1 L ... Hx - xn-1 L q HxL Si q 0, alors degrHd L n; or degrHd L H n - 1L , donc Finalement, d = 0 et g1 = g2 . Exercice 1.1 - 1 [sans ordinateur] q = 0. donc g Hx 1 L = y 1 , d ' abscisses distinctes x0 < x1 < ... < xn-1 .
Dterminez le polynme g de degr Hn - 1L passant par ces points, c'est--dire ..., g Hxn-1 L = yn-1 .
o q est un polynme.
Les points suivants tant donns M0 H- 1, 2L, M1 H1, - 1L, M2 H2, 3L, M3 H5, - 7L, calculez, par interpolation linaire les ordonnes qui correspondent t = 1.3 et t = 3.2 Exercice 1.1 - 2 [avec Mathematica]
Dterminez le polynme de degr 3 qui passe par les quatre points suivants M0 H- 1, 2L, M1 H1, - 1L, M2 H2, 3L, M3 H5, - 7L
1-Interpolation.nb
Exercice 1.1 - 3
[sans ordinateur]
Dterminez le polynme de degr 3 qui passe par les quatre points suivants M0 H- 1, 2L, M1 H1, - 1L, M2 H2, 3L, M3 H5, - 7L Prescription d'exercice : crivez le polynme cherch comme combinaison linaire des fonctions de base suivantes : 81, t - x0 , Ht - x0 L Ht - x1L, Ht - x0 L Ht - x1 L Ht - x2 L< Quel avantage obtient-on en ayant choisi ces fonctions de base ? Rsolvez le systme d'quations et crivez explicitement la solution g.
1.2
Interpolation trigonomtrique
On donne une tabelle de valeurs numriques qui reprsente la temprature moyenne journalire en un lieu imaginaire
t Dbut janvier Fin mars Mijuin Miseptembre y 3 5 15 8
Interpoler signifie "calculer des valeurs intermdiaires", par exemple: quelle est la temprature moyenne journalire au dbut du mois d'aot ? Numrotons les 365 jours de l'anne de 0 364:
119 273 120 150 151 180 181 211 243 272 303 334 1 dcembre 212 304 242 333 364 31 dcembre 31 30 58 59 89 90 0
30 septembre
Montrons d'abord qu'il n'est pas judicieux d'interpoler par un polynme car le climat est un phnomne cyclique.
pts = 880, 3.<, 889, 5.<, 8166, 15.<, 8258, 8.<<; Clear@g, tD; g@t_ D = InterpolatingPolynomial@pts, tD; Expand@g@tDD 3. 0.0151272 t + 0.00168343 t2 5.65713 106 t3 Plot@g@tD, 8t, 0, 365<, PlotRange 8Automatic, 8 60, 20<<, ImageSize > 8400, 200<D
20
50
100
150
200
250
300
350
-20
-40
-60
Le climat tant un phnomne cyclique, la temprature au 31 dcembre doit tre proche de celle du premier janvier. Le premier jour de l'anne suivante, la temprature devrait tre de -3 C, ce qui est loin d'tre le cas
g@365D 59.3369
Il faut interpoler par des fonctions priodiques dont la priode est un sous-multiple de 365 jours, c'est--dire 365,
365 365 , 3 , 2
...
30 novembre
1 septembre
1 novembre
31 octobre
31 janvier
28 fvrier
1 octobre
31 juillet
1 janvier
1 fvrier
31 mars
1 juillet
30 avril
31 aot
30 juin
31 mai
1 mars
1 avril
1 aot
1 juin
1 mai
1-Interpolation.nb 2 3
Choisissons comme fonctions de base b0 HtL = 1; b1 HtL = cos 2 t ; 365 b2 HtL = sin 2 t ; 365 b3 HtL = cos 4 t 365
La fonction d'interpolation est g HtL = c0 b0 HtL + c1 b1 HtL + c2 b2 HtL + c3 b3 HtL = 2 2 4 c0 + c1 cos t + c2 sin t + c3 cos t 365 365 365 Les conditions remplir sont g H0L = 3 , c0 + c1 cos c0 + c1 cos c0 + c1 cos c0 + c1 cos 2 365 2 365 2 365 2 365 g H89L = 5, 0 + c2 sin g H166L = 15 , 2 365 2 0 + c3 cos 4 g H258L = 8
0 = 3 , 365 4 89 + c2 sin 89 + c3 cos 89 = 5, 365 365 2 4 166 + c2 sin 166 + c3 cos 166 = 15 , 365 365 2 4 258 + c2 sin 258 + c3 cos 258 = 8 365 365 0 sin sin sin
I 178 M 365 332 I 365 M I 516 M 365
Le systme d'quations est linaire. Ecrivons-le sous la forme matricielle 1 1 cos 1 cos 1 cos 1
I 178 M 365 332 I 365 M I 516 M 365
1
cos I 356 M 365
cos I cos
c0 c1 c2 c3
3 5 = 15 8
0
9 CosA 730 E 33 SinA 365 E 63 CosA 730 E
1 CosA 365 E
9
CosA 365 E
63
CosA 365 E
66
MatrixForm@N@mDD 1. 1. 0. 1. 1. 0.0387223 0.99925 0.997001 1. 0.959933 0.280231 0.842942 1. 0.267814 0.963471 0.856551
Les coefficients de la matrice sont des valeurs numriques; aussi, la rsolution du systme ne prsente pas de difficult particulire.
y = 8 3., 5., 15., 8.<; MatrixForm@yD 3. 5. 15. 8. c = LinearSolve@m, yD; MatrixForm@cD 5.81979 9.22485 0.0587724 0.405065
1-Interpolation.nb
Clear@g, tD; g@t_ D = c.b@tD; g@tD 5.81979 9.22485 CosB 2t 365 F + 0.405065 CosB 4t 365 F 0.0587724 SinB 2t 365 F
10
100
200
300
400
500
600
700
1.3
Interpolation (gnralisation)
On donne x0 , x1 , ..., xn1 y0 , y1 , ..., yn1 b0 , b1 , ..., bn1 @p, qD
bj
On cherche une fonction d'interpolation g = c0 b0 + c1 b1 + ... + cn1 bn1 telle que g Hx0 L = y0 , g Hx1 L = y1 , Calcul g Hx0 L = y0 , g Hx1 L = y1 , c0 b0 Hx0 L + c1 b1 Hx0 L + ... + cn1 bn1 Hx0 L = y0 c0 b0 Hx1 L + c1 b1 Hx1 L + ... + cn1 bn1 Hx1 L = y1 ... c0 b0 Hxn1 L + c1 b1 Hxn1 L + ... + cn1 bn1 Hxn1 L = yn1 Le systme d'quations peut s'crire sous forme vectorielle y0 b0 Hx0 L b1 Hx0 L b n1 H x 0 L y1 b0 Hx1 L b1 Hx1 L b n1 H x 1 L + c1 + ... + cn1 = ... ... ... ... y n1 b 0 H x n1 L b 1 H x n1 L b n1 H x n1 L ..., g Hxn1 L = yn1 ..., g Hxn1 L = yn1
c0
10
1-Interpolation.nb
... bn1 Hx0 L ... bn1 Hx1 L ... ... ... bn1 Hxn1 L
c0 y0 c1 y1 = ... ... c n1 y n1
La matrice est rgulire. En particulier, ses vecteurs-colonnes sont linairement indpendants et constituent une base de n b0 Hx0 L b1 Hx0 L b n1 H x 0 L b0 Hx1 L b1 Hx1 L b n1 H x 1 L e0 = , e1 = , ..., en1 = ... ... ... b 0 H x n1 L b 1 H x n1 L b n1 H x n1 L Notre problme consiste exprimer le vecteur y dans la base 9 e0 , e1 , ..., en-1 =, c'est--dire dterminer les coefficients 8 c0 , c1, ..., cn-1 < tels que c0 e0 + c1 e1 + ... + cn1 en1 = y o y0 y1 y= ... y n1
Echantillonnage (ou discrtisation ou "digitalisation") Pour n'importe quelle fonction (dont on ne connat pas forcment l'expression analytique) f : @p, qD on dfinit l'opration d'chantillonnage ou de discrtisation comme suit f Hx0 L f Hx1 L discr HfL := ... f H x n1 L o 8 x0 , x1 , ... , xn-1 < sont les abscisses de l'chantillonnage. Par exemple, le vecteur donn y0 y1 ... y n1 pourrait tre l'chantillonnage d'une certaine fonction f y = discr HfL que l'on dsire interpoler avec les fonctions 8 b0 , b1, ..., bn-1 <. (Ce point de vue sera dvelopp dans le 3.) Avec la notation prcdente, les vecteurs-colonnes de la matrice prennent la forme ek = discr Hbk L pour Exemple Interpolation polynomiale b0 HtL = 1, b1 HtL = t, 1 x0 x2 0
1 ... xn 0 1 1 x1 x2 ... xn 1 1 ... ... ... ... ... 2 n1 1 x n1 x n 1 ... xn1
k = 0, 1, ..., n 1
Exercice 1.2 - 1
[sans ordinateur]
De la proposition 1-1 dcoule l'existence du polynme d'interpolation de degr Hn - 1L. En gnralisant la mthode de l'exercice 1.1-3, dmontrez l'existence de g. Indications: Il suffit de dmontrer que le systme d'quations est rgulier. Plus prcisment ici, montrez que le systme est triangulaire et que les coefficients diagonaux sont non nuls. Exercice 1.2 - 2 [avec Mathematica]
Dterminez une fonction priodique de priode 7 qui passe par les points suivants M0 H- 1, 2L, M1 H1, - 1L, M2 H3, - 3L, M3 H5, 0L
1-Interpolation.nb
11
Indication: Choisissez les fonctions de base suivantes b0 HtL = 1; b1 HtL = cos 2 7 t ; b2 HtL = sin 2 7 t ; b3 HtL = cos 4 t 7