Présenté par : RAMDANI KHawla BOUGHESSAB Marwa Groupe :A1 Interpolation polynôm

Présenté par : RAMDANI KHawla BOUGHESSAB Marwa Groupe :A1 Interpolation polynômiale A. La méthode de Lagrange Soit la fonction f (x )=e x définie sur l’intervalle [a,b ] avec : a=3.50b=3.70 On suppose que les points d’interpolation xi,i=o,…,n, sont équidistants : xi=x0+ih où h=b−a n 1) Calculer het xi pour n=4. h=b−a n =3.70−3,50 4 =0.05 xi=x0+ih x0=a=3.50 x1= 3.50+1(0.05)=3.55 x2= 3.50+2(0.05)=3.6 x3= 3.50+3(0.05)=3.65 x4= 3.50+4(0.05)=3.7=b 2) Remplir le tableau i 0 1 2 3 4 xi 3.5 3.55 3.6 3.65 3.7 f ¿) e 3.5 e 3.55 e 3.6 e 3.65 e 3.7 2) Rappeler les formules de l’interpolation de Lagrange d’une fonction f. Pn(x)=∑yi.li(x) Li(x)=∏ x−xi xi−x L0(x)= (x−x 1)(x−x 2)(x−x 3)(x−x 4) (x0−x1)(x 0−x 2)(x0−x3 )( x0−x4)= (x−3.55) (x−3.6) (x−3,65)(x−3.7) (3.5−3.55)(3.5−3.6)(3.5−3.65)(3.5−3.7) = (x−3.55) (x−3.6) (x−3,65)(x−3.7) 0.00015 L1(x)= (x−x 0) (x−x2) (x−x3 )( x−x 4) (x1−x 0)(x1−x2)(x 1−x3 )(x1−x 4)= (x−3.5) (x−3.6) (x−3,65)(x−3.7) (3.55−3.5)(3.55−3.6)(3.55−3.65)(3.55−3.7) = (x−3.5) (x−3.6) (x−3,65)(x−3.7) 3.75×10−5 L2(x)= (x−x0) (x−x1) (x−x3 )(x−x 4) (x2−x 0)(x 2−x1)(x 2−x 3)(x2−x4)= (x−3.5 )(x−3.55 )(x−3,65)(x−3.7) (3.6−3.5 )(3.6−3.55)(3.6−3.65)(3.6−3.7) = (x−3.5) (x−3.55)(x−3,65 )(x−3.7) 2.5×10−5 L3(x)= (x−x0 )(x−x 1)(x−x 2)(x−x 4) (x3−x0)(x 3−x 1)(x3−x2)(x 3−x 4)= (x−3.5) (x−3.55) (x−3,6)(x−3.7) (3.65−3.5)(3.65−3.55)(3.65−3.6)(3.65−3.7) = (x−3.5) (x−3.55)(x−3,6 )(x−3.7) 3.75×10−5 L4(x)= (x−x0) (x−x1) (x−x2)(x−x3) (x4−x 0)(x 4−x1)(x 4−x 2)(x 4−x3)= (x−3.5 )(x−3.55 )(x−3,6 )( x−3.65) (3.7−3.5 )(3.7−3.55)(3.7−3.6 )(3.7−3.65) = (x−3.5) (x−3.55)(x−3,6 )(x−3.65) 0.00015 P4(x) = L0y0+L1y1+L2y2+L3y3+L4y4 P4(x) = (x−3.55) (x−3.6) (x−3,65)(x−3.7) 0.00015 *e 3.5+ (x−3.5) (x−3.6) (x−3,65)(x−3.7) 2.5×10−5 *e 3.55−¿ (x−3.5) (x−3.55)(x−3,65 )(x−3.7 ) 3.75×10−5 *e 3.6−¿ (x−3.5) (x−3.55)(x−3,6 )(x−3.7 ) 0.00015 ∗e 3.65 + (x−3.5) (x−3.55)(x−3,6 )(x−3.65) 0.00015 *e 3.7 =1.13333x4−10.22x3+40.5512x2−69.5237x+47.8084 3)En utilisant l’interpolation de Newton, Ecrire un programme Matlab de la méthode Newton et donner une approximation de f (3.62). clear all; clc; x=[ 3.5 3.55 3.6 3.65 3.7]; y=[exp(3.5) exp(3.55) exp(3.6) exp(3.65) exp(3.7)]; n= length(x); xp=3.62; s=0; for i=1:n l=1; for j=1:n if i~=j l=l*(xp-x(j))/(x(i)-x(j)); end end s=s+y(i)*l; end disp(s); f(3,62)=37,3376 5) Tracer les graphes de la fonction f et de son polynôme d’interpolation de Lagrange sur le même graphe. Close all ; clear; clc F=@(x) exp(x); p=@(x) 1.13333*(x)^4-10.22*(x)^3+40.5512*(x)^2-69.5237*(x)+47.8084 fplot(f,[3 4]) hold on % j’ai choisi un autre intervalle pour montrer la différance entre eux fplot(p,[3.5 3.7]) grid on xlabel ('X') ylabel ('Y') title ('f(x)') legend () 3.5 3.55 3.6 3.65 3.7 0 5 10 15 20 25 30 35 40 45 6) Refaire l’exécution pour n=10 h=b−a n =3.70−3,50 10 =0.02 xi=x0+ih x0=a=3.50 x1= 3.50+1(0.02)=3.52 x2= 3.50+2(0.02)=3.54 x3= 3.50+3(0.02)=3.56 x4= 3.50+4(0.02)=3.58 x5= 3.50+5(0.02)=3.6 x6= 3.50+6(0.02)=3.62 x7= 3.50+7(0.02)=3.64 x8= 3.50+8(0.02)=3.66 x9= 3.50+9(0.02)=3.68 x10= 3.50+10(0.02)=3.7=b P10(x)=1.58778×107x10−5.71465×108x9+9.25516×109x8 −8.88212×1010x7+5.59372×1011x6−2.41552×1012x5+7.24334×1012x4 −1.48934×1013x3+2.00955×1013x2−1.60672×1013x+5.78068×1012 clear all; clc; disp(['**** la méthode de Lagrange ****']) x=[ 3.5 3.52 3.54 3.56 3.58 3.6 3.62 3.64 3.66 3.68 3.7]; y=[exp(3.5) exp(3.52) exp(3.54) exp(3.56) exp(3.58) exp(3.6) exp(3.62) exp(3.64) exp(3.66) exp(3.68) exp(7) ]; n= length(x); xp=3.62; s=0; for i=1:n l=1; for j=1:n if i~=j l=l*(xp-x(j))/(x(i)-x(j)); end end s=s+y(i)*l; end disp(s); 3.5 3.52 3.54 3.56 3.58 3.6 3.62 3.64 3.66 3.68 3.7 0 5 10 15 20 25 30 35 40 45 B. La méthode de Newton On considère la même fonction f (x )=e x définie sur l’intervalle [a,b ] avec : a=3.50b=3.70 1) Rappeler la formule d’interpolation de Newton pour xipoints d’interpolation i=o ,…,n . Pn(x)=f(xn)=yn Pn(x)=[y0]+[y0,y1](x-x0)+…+[y0,…,yn](x-x 0)….(x-xn-1) 2) Construire la table des différences divisées aux points xi,i=o,…,4. X0 X1 X2 X3 X4 Y0=e 3.5 33,95 Y1=e 3.55 17,4 35,69 6 Y2=e 3.6 18 3 37,52 6,6 Y3=e 3.65 19,3 39,45 Y4=e 3.7 f(x)=1.13333(x−3.65)(x−3.6)(x−3.55)(x−3.5)+5.98667(x−3.6)(x−3.55) (x−3.5)+17.408(x−3.55)(x−3.5)+33.9574(x−3.5)+33.1155 =1.13333x4−10.22x3+40.5512x2−69.5237x+47.8084 3) En utilisant l’interpolation de Newton, Ecrire un programme Matlab de la méthode Newton et donner une approximation de f (3.62). x=input( ' entrer la liste des abscisses: ' ); y=input(' entrer la liste des ordonnées: '); xp=input(' entrer le point d'approximation: '); n=length(x); D=zeros(n,n); D(: ,1)=y ; for j=2:n for i=j:n D(i,j) = (D(i,j-1) - D(i-1,j-1))/(x(i)-x(i-j+1)); end end D c=D(n,n); for k=n-1:-1:1 c=conv (c,poly(x(k))); m= length(c); c(m) = c(m)+ D(k,k) end c A= polyval(c,xp); fprintf(' valeur approximative au point de données donné est :%.4f\n', A); 3) Tracer les graphes de la fonction f et de son polynôme d’interpolation de Newton sur le même graphe. X= linspace(x(1),x(n),100); Y=polyval(c,X); plot(X,Y,'r'); hold on plot(x,y,'o'); 3.5 3.55 3.6 3.65 3.7 0 5 10 15 20 25 30 35 40 45 5) Refaire l’exécution pour n=10 P10(x)=1.58778×107(x−3.68)(x−3.66)(x−3.64)(x−3.62)(x−3.6) (x−3.58)(x−3.56)(x−3.54)(x−3.52)(x−3.5)−1.45322×106(x−3.66) (x−3.64)(x−3.62)(x−3.6)(x−3.58)(x−3.56)(x−3.54)(x−3.52) (x−3.5)+67816.8(x−3.64)(x−3.62)(x−3.6)(x−3.58)(x−3.56) (x−3.54)(x−3.52)(x−3.5)+3100.2(x−3.62)(x−3.6)(x−3.58) (x−3.56)(x−3.54)(x−3.52)(x−3.5)−868.056(x−3.6)(x−3.58) (x−3.56)(x−3.54)(x−3.52)(x−3.5)+78.125(x−3.58)(x−3.56) (x−3.54)(x−3.52)(x−3.5)−2.60417(x−3.56)(x−3.54)(x−3.52) (x−3.5)+5.83333(x−3.54)(x−3.52)(x−3.5)+16.8875(x−3.52) (x−3.5)+33.449(x−3.5)+33.1155 =1.58778×107x10−5.71465×108x9+9.25516×109x8−8.88212×1010 x7+5.59372×1011x6−2.41552×1012x5+7.24334×1012x4−1.48934×1 013x3+2.00955×1013x2−1.60672×1013x+5.78068×1012 x=input( ' entrer la liste des abscisses: ' ); y=input(' entrer la liste des ordonnées: '); xp=input(' entrer le point d'approximation: '); n=length(x); D=zeros(n,n); D(: ,1)=y ; for j=2:n for i=j:n D(i,j) = (D(i,j-1) - D(i-1,j-1))/(x(i)-x(i-j+1)); end end D c=D(n,n); for k=n-1:-1:1 c=conv (c,poly(x(k))); m= length(c); c(m) = c(m)+ D(k,k) end c A= polyval(c,xp); fprintf(' valeur approximative au point de données donné est :%.4f\n', A); C. Erreur d’interpolation 1) Calculer la valeur exacte de f (3.62) f (3.62)= e 3,62=37,33757 2) Déterminer dans chaque cas l’erreur commise: Lagrange n=4 : ε (X)=f(3,62)- P4(3,62)=37,33757-37,3376 = -0,00003 et n=10 : ε (X)=f(3,62)- P4(3,62)=37,33757-337,33757= 0 Newtonn=4: ε (X)=f(3,62)- P4(3,62)=37,33757-37,3376= -0,00003 e t n=10 : ε (X)=f(3,62)- P4(3,62)=37,33757-37,3376= 0 3) Quel est votre commentaire ? _ a cheque fois le degré de polynôme d'interpolation augmente, l'erreur d'interpolation diminue jusqu'à ce qu’il devienne zéro _ les deux méthodes donnent le même résultat uploads/s1/ interpolation-polynomiale.pdf

  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 20, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 0.1525MB