Vous êtes sur la page 1sur 11

Collge du Sud, Bulle 2-me anne OS PAM 3-me anne OC AM

Applications des mathmatiques

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

Le vecteur-colonne suivant est appel membre de droite du systme


y = 88, 5, 2<; MatrixForm@yD 8 5 2

Donn sous cette forme, Mathematica nous donne la solution du systme


8x, y, z< = LinearSolve@m, yD : 131 35 , 5 7 , 17 5 >

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

g Ht L est la fonction affine appele interpolant ou fonction d'interpolation

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

Rsolvons le systme avec Mathematica


m = 881, 2<, 81, 3<<; MatrixForm@mD K 1 2 O 1 3

y = 82.3, 3.1<; MatrixForm@yD K 2.3 O 3.1

c = LinearSolve@m, yD; MatrixForm@cD K 0.7 O 0.8

Clear@g, tD; g@t_ D := 0.7 + 0.8 t; g@2.7D 2.86

Les fonctions suivantes sont appeles fonctions de base: b0 HtL = 1; b1 HtL = t;

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

La rsolution du systme avec Mathematica nous donne

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.

Dans le cas de l'interpolation linaire par morceaux:

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

Dans le cas de l'interpolation cubique:


pts = 881, 1.9<, 82, 2.3<, 83, 3.1<, 84, 2.8<<; Clear@g, tD; g@t_ D = InterpolatingPolynomial@pts, tD; Expand@g@tDD 3.4 2.95 t + 1.7 t2 0.25 t3 g@2.7D 2.90725

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

Ainsi, le temps sera exprim en jours (unit d = day).


y @C D 3 t @d D 0 89 166 258 5 15 8

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

664 M 365 I 1032 M 365

c0 c1 c2 c3

3 5 = 15 8

Rsolvons le systme avec Mathematica


Clear@b, tD; x = 80, 89, 166, 258<; 2 2 4 b@t_ D = :1, CosB tF, SinB tF, CosB tF>; 365 365 365 m = Map@b, xD; MatrixForm@mD 1 1 1 1 1
9 SinA 730 E 33 CosA 365 E 63 SinA 730 E

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

Plot@g@tD, 8t, 0, 365 2<, ImageSize > 8400, 200<D


15

10

100

200

300

400

500

600

700

La fonction est priodique


g@0D 3. g@365D 3.

La temprature au dbut du mois d'aot sera donc, en degrs Celsius,


g@212D 14.1226

1.3

Interpolation (gnralisation)
On donne x0 , x1 , ..., xn1 y0 , y1 , ..., yn1 b0 , b1 , ..., bn1 @p, qD
bj

Enonc du problme des abscisses distinctes p xj q

des ordonnes quelconques; des fonctions de base , j = 0, 1, ..., n 1

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

Il s'agit de rsoudre un systme de n quations n inconnues :

10

1-Interpolation.nb

b0 Hx0 L b1 Hx0 L b0 Hx1 L b1 Hx1 L ... ... b 0 H x n1 L b 1 H x n1 L Hypothses

... 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

b2 HtL = t2 , ..., bn1 HtL = tn1 c0 y0 c1 y1 = ... ... c n1 y n1

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

Vous aimerez peut-être aussi