méthodes numériques pour l'ingénieur interpolation f(x)

34
1 ASI 3 Méthodes numériques pour l’ingénieur Interpolation f(x)

Upload: laperouse2008

Post on 08-Jun-2015

4.948 views

Category:

Documents


4 download

DESCRIPTION

voici le contenu mes amis prfité bien et lissé vos commantaires 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

TRANSCRIPT

Page 1: Méthodes numériques pour l'ingénieur interpolation f(x)

1

ASI 3

Méthodes numériquespour l’ingénieur

Interpolationf(x)

Page 2: Méthodes numériques pour l'ingénieur interpolation f(x)

20 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8-4

-3

-2

-1

0

1

2

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 !

Page 3: Méthodes numériques pour l'ingénieur interpolation f(x)

3

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8-4

-3

-2

-1

0

1

2

Approximation de fonctions

• Il faut se restreindre à une famille de fonctions– polynômes, – exponentielles, – fonctions trigonométriques…

Page 4: Méthodes numériques pour l'ingénieur interpolation f(x)

4

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…

Page 5: Méthodes numériques pour l'ingénieur interpolation f(x)

5

ab ab

f(x)

P(x)

f(x)+ε

f(x)-ε

f(x)

P(x)

f(x)+ε

f(x)-ε

Théorème d’approximation de Weierstrass[ ][ ]

[ ]baxxPxfbaxPbaf

, )()( : que tel,sur définit ,)( polynômeun existe il ,0 Alors,

,intervallel'sur continueet définiefonction une soit

∈∀<−>∀

εε

)(xf)(xP

ε−)(xf

ε+)(xf

grandest polynomedu ordrel' pluspetit,est , plus ε

Interpolation :nnnnn ordre :inconnues1équations,1s,contrainte1 points, 1 ++++

Page 6: Méthodes numériques pour l'ingénieur interpolation f(x)

6

Interpolation polynomiale• Le problème : les données, la solution recherchée

• mauvaise solution : résoudre le système linéaire

• la combinaison linéaire de polynômes est un polynôme

( ) ( ) ( )nixfxPxP

xfyxxfyxxfyx

ii

iiiiii

,0),()( que tel)()(,,...,)(,,...,)(, 000

=====

0 1 0

)( )(...)()( ainsi

0)(et 1)( que tel

)( )(...)( )(

00

00

↓↓↓+++=

≠==

+++=

inniiiii

jiii

nnii

xPyxPyxPyxPijxPxP

xPyxPyxPyxP

eVandermond de matrice : )(0

VyVaxaxPn

i

ii =⇒= ∑

=

Page 7: Méthodes numériques pour l'ingénieur interpolation f(x)

7

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

– Construction de p :

avec Li polynôme de Lagrange

– Propriétés de Li• Li(xi)=1• Li(xj)=0 (j ≠ i)

∑=

=n

0iii )x(Ly)x(p

( )( )∏

≠= −

−=

n

ij0j ji

ji xx

xx)x(L

L est un polynôme d’ordre n

démonstration

Page 8: Méthodes numériques pour l'ingénieur interpolation f(x)

8

01

01

10

10

10

01

10

10

10

0110

10

10

xxxxy

xxxxy

xxxxy

xxxxyy

xxyxyxx

xxyyy

−−

+−−

=−−

−−−

=

−−

+−−

=

• 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 a = (y0 - y1) / (x0 - x1)• y1 = a x1 + b b = (x0 y1 - x1 y0) / (x0 - x1)

Lagrange : exemple n°1

L0(x) L1(x)

x0 x1

y1

y0

Page 9: Méthodes numériques pour l'ingénieur interpolation f(x)

9

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 :

( )( )8

4x2x)x(L0−−= ( )

82xx)x(L2

−=( )4

4xx)x(L1 −−=

0 2 4

-

0 2 4 0 2 4

Page 10: Méthodes numériques pour l'ingénieur interpolation f(x)

10

-1 0 1 2 3 4 50

5

10

15

20

25

30

Lagrange : exemple n°2– calcul du polynôme d'interpolation

• p(x)=L0(x) + 5 L1(x) + 17 L2(x)

• en simplifiant, on trouve p(x)=x2+1

Page 11: Méthodes numériques pour l'ingénieur interpolation f(x)

11

Lagrange : l’algorithme

Complexité du calcul : n2

fait*

fait )()(

)(* ;, àjusqu' 1pour

àjusqu'1pour

lyyy

jxixjxxll

ijnjni

i

ii

i

+←

−−←

≠==

Fonction y = lagrange(x,xi,yi)

Page 12: Méthodes numériques pour l'ingénieur interpolation f(x)

12

-1 0 1 2 3 4 5-10

0

10

20

30

40

50

60

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)

Page 13: Méthodes numériques pour l'ingénieur interpolation f(x)

13

Lagrange : exemple n°3

– Erreur d'interpolation e(x) = f(x) - p(x)

-1 0 1 2 3 4 5-20

-10

0

10

20

30

40

50

60

Page 14: Méthodes numériques pour l'ingénieur interpolation f(x)

14

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)

– alors, il existe ξ ∈ I tel que

– NB : ξ dépend de x

• Utilité = on contrôle l’erreur d’approximation donc . la qualité de l’approximation

( ) ( )( ) ( )x

!1nfxe

)1n(

φξ+

=+

Page 15: Méthodes numériques pour l'ingénieur interpolation f(x)

15

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)

Page 16: Méthodes numériques pour l'ingénieur interpolation f(x)

16

La méthode de Neuville• Définition

• Théorème

• Démonstration

• Application systématique

( ) ( ) ( )kk

k

mmmmmm

mmm

yxyxyxk

xP

,,...,,,, points les

sur calculéLagrangedepolynôme )(

2211

21 ,...,,

( ) ( )ji

niiinjjj

xxxPxxxPxx

xP−

−−−= +−+− )()(

)( ,...,1,1,...,1,0,...,1,1,...,1,0

)()(et )()();()( kkjjii xfxPxfxPxfxP ===

3,34,2,1,02,33,2,11,33,20,333

2,22,1,01,22,10,222

1,11,00,111

0,000

QPQPQPQPxQPQPQPx

QPQPxQPx

=======

===

iijijiji PQ ,1,...,1,, −+−−=

Page 17: Méthodes numériques pour l'ingénieur interpolation f(x)

17

L’algorithme de Neuville

Complexité du calcul : n2

( ) ( )

fait),(

fait )()(

11)(1)( àjusqu' 1pour

àjusqu' 1pour fait

)()0,( àjusqu'1pour

nnQy

jixix),jQ(iixx)Q(i,jjixxQ(i,j)

ijni

iyiQni

ii

ii

i

−−−−−−−−−←

==

←=

Fonction y = Neuville(x,xi,yi)

Page 18: Méthodes numériques pour l'ingénieur interpolation f(x)

18

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

Page 19: Méthodes numériques pour l'ingénieur interpolation f(x)

19

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 )a ∉ X , b ∉ X , a ≠ b

Page 20: Méthodes numériques pour l'ingénieur interpolation f(x)

20

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)

Page 21: Méthodes numériques pour l'ingénieur interpolation f(x)

21

Newton : différences divisées

a0

a1

a2

an

• Calcul pratique des coefficients :

x0 f [x0] x1 f [x1] f [x0, x1] x2 f [x2] f [x1, x2] f [x0, x1, x2] … … … ...… … … f [xn-3, xn-2, xn-1] xn f [xn] f [xn-1, xn] f [xn-2, xn-1, xn] … f [x0, ..., xn]

Page 22: Méthodes numériques pour l'ingénieur interpolation f(x)

22

Newton : exemple

a0

a2

p(x)=1 + 2x + x(x-2) (et on retombe sur p(x) = 1 + x2)

a1

• (ex. n°2) : n=2 (0,1), (2,5) et (4,17)

0 f [x0]=1

2 f [x1]=5 f [x0, x1]=(1-5)/(0-2)=2

4 f [x2]=17 f [x1, x2] f [x0, x1, x2]=(5-17)/(2-4)=6 = (2-6)/(0-4)=1

Page 23: Méthodes numériques pour l'ingénieur interpolation f(x)

23

Newton : l’algorithme

Complexité du calcul : n2

fait),((i) àjusqu' 1pour

faitfait

)()(111

àjusqu' 1pour àjusqu' 1pour

fait)()0,(

àjusqu'1pour

inFani

jixix),jF(i)F(i,jF(i,j)

ijni

iyiFni

ii

i

←=

−−−−−−←

==

←=

Fonction a = Newton(xi,yi)

Page 24: Méthodes numériques pour l'ingénieur interpolation f(x)

24-6 -4 -2 0 2 4 6

-6

-4

-2

0

2

4

6

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 !

Page 25: Méthodes numériques pour l'ingénieur interpolation f(x)

25

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

Page 26: Méthodes numériques pour l'ingénieur interpolation f(x)

26

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.

Page 27: Méthodes numériques pour l'ingénieur interpolation f(x)

27

Splines : illustration

P1(x)=α1x3+β1x2+χ1x+δ1

=a1 (x-x1)3+b1 (x-x1) 2+c1 (x-x1) +d1

P2(x)=a2 (x-x2) 3+b2 (x-x2) 2+c2 (x-x2) +d2

Page 28: Méthodes numériques pour l'ingénieur interpolation f(x)

28

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• δi= [xi; xi+1]• gi(x) le polynôme de degré 3 qui coïncide avec g sur l’intervalle δi

Page 29: Méthodes numériques pour l'ingénieur interpolation f(x)

29

Splines cubiques : détermination– g"i(x) est linéaire :

• ∀ x ∈ δi

• on intègre(ai constante)

• on continue(bi constante)

– gi(xi) = yi

– gi(xi+1) = yi+1

( )i

1ii

i

i1ii h

xxmh

xxmxg −+

−=′′ +

+

( ) ( ) ( ) ( ) iiii

31i

ii

3i

1ii bxxah6

xxmh6xxmxg +−+

−+

−= +

+

( ) ( ) ( )i

i

21i

ii

2i

1ii ah2

xxmh2xxmxg +

−−

−=′ +

+

i

2ii

i b6hmy +=

iii

2i1i

1i bha6

hmy ++= ++

1

2

Page 30: Méthodes numériques pour l'ingénieur interpolation f(x)

30

Splines cubiques : détermination– g'(x) est continue :

– et

– on remplace les ai dans :

– 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 (spline naturelle)

( ) ( )i1i1i1i

iii

iii xga2

hma2hmxg −−

− ′=+=+−=′

( ) ( )i1ii

i1ii

i mm6hyy

h1a −−−= ++

3

1 2

3

( ) ( ) ( )

−−−=+++ −

−++−−− 1ii

1ii1i

i1iii1ii1i1i yy

h1yy

h16mhmhh2mh4

4

Page 31: Méthodes numériques pour l'ingénieur interpolation f(x)

31

Splines cubiques : détermination

– Ex de résolution avec hi = xi+1 - xi constant :•

• forme matricielle :

Tm=f

• T inversible (diagonale strictement dominante)

( ) ( ) ( )

−−−=+++ −

−++−−− 1ii

1ii1i

i1iii1ii1i1i yy

h1yy

h16mhmhh2mh4

( ) i1ii1i21ii1i fyy2yh1mm4m =+−=++ +−+−

=

−− 1n

1

1n

1

f

f

m

m

41141

141014

llppp

Page 32: Méthodes numériques pour l'ingénieur interpolation f(x)

32

Splines cubiques : l’algorithme

Complexité du calcul : complexité du solveur

( )

( )

( ) ( )

fait6

)()(

61)(

1;1pour ]0,,0[

\1212

fait6)1(

2)1,( )1,(

2),( 1;2pour

11

1

11

11

ii

iii

iii

i

ii

i

ii

ii

ii

hmiyib

mmhyyh

iani

mmfTm

:n-,:n-TTh

yyh

yyif

hiiThiiT

hhiiTni

−←

−−−←−=

←←←

−−−←−

←+←−

+←−=

++

−+

−−

Page 33: Méthodes numériques pour l'ingénieur interpolation f(x)

33

Splines cubiques : exemple

• Ex : y=2(1+tanh(x)) - x/10 avec 9 points

-6 -4 -2 0 2 4 6-6

-4

-2

0

2

4

6

spline

polynôme de degré 8

Page 34: Méthodes numériques pour l'ingénieur interpolation f(x)

34

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