Fiche d'exercices de Mathématiques sur le langage Matlab.
[...] Pour une meilleure visualisation de cette limite, on trace f Pn ( en fonction du nombre de points n : for n=1:20 x=linspace(-5,5,n); X=linspace(-5,5,200); v=vander(X,x,y); b(n)=norm(a,inf); end h=1:20; plot(h,b) xlabel('Le nombre de points') ylabel('L''erreur d''interpolation') On obtient la courbe suivante : Interprétation : Comme le montre la figure, l'erreur d'interpolation diminue au début, puis à partir d'un nombre de points d'interpolation de 10, il commence à augmenter brusquement. Cela prouve donc le nombre de points limite pour avoir une bonne approximation de la fonction est de 10 points. [...]
[...] 1ère partie : l'interpolation polynomiale Exercice : 1 la matrice de Vandermonde On cherche l'unique polynôme de degré n qui interpole la fonction définit au points (xi,yi)i=0, .,n On va donc résoudre le système d'équations linéaires suivant en notation matricielle : Xa=y X est la matrice de Vandermonde. a est le vecteur de coefficient du polynôme recherché. [...]
[...] y est le vecteur des valeurs de la fonction dans les point xi. Question 1 : Le script Matlab permettant de trouver le polynôme d'interpolation est : function v=vander(X,x,y) m=length(x); d=ones(m); for i=1:m for j=2:m end end a=resolgauss(d,y); for i=2:m end Question 2 Prenons comme exemple la fonction = + et des points d'interpolation espacés sur On représente graphiquement la fonction initiale et le polynôme d'interpolation pour des nombres de points croissants : x=linspace(-5,5,3); X=linspace(-5,5,200); v=vander(X,x,y); subplot(3,2,1), hold on plot(X,v,'r') hold off x=linspace(-5,5,4); v=vander(X,x,y); subplot(3,2,2), hold on plot(X,v,'r') hold off x=linspace(-5,5,5); v=vander(X,x,y); subplot(3,2,3), hold on plot(X,v,'r') hold off subplot(3,2,4), hold on x=linspace(-5,5,6); v=vander(X,x,y); plot(X,v,'r') hold off x=linspace(-5,5,7); v=vander(X,x,y); subplot(3,2,5), hold on plot(X,v,'r') hold off x=linspace(-5,5,8); v=vander(X,x,y); subplot(3,2,6), hold on plot(X,v,'r') hold off On obtient pour les polynômes d'interpolations d'ordres : et 7 successivement les courbes suivantes : On remarque qu'à partir de l'ordre la courbe représentant le polynôme d'interpolation se décale de celle de la fonction initiale jusqu'à ce qu'il devienne comme le montre la figure suivante pour un ordre de 9 : La résolution est donc limitée et elle ne marche pas à partir d'un nombre de points d'interpolation de 10. [...]
[...] X=linspace(0,6,200); for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(1,2,1),plot(X,p) for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(1,2,2),plot(X,p) On obtient les figures suivantes : Exercice : 3 le polynôme de Newton a-Programme en Matlab function q=new(X,x,y) m=length(x); f=zeros(m-1); for j=1:m-1 end for i=2:m-1 for j=i:m-1 end end for i=1:m-1 for j=1:i end end b-Exemple d'application : On reprend l'exemple précédent pour pouvoir comparer la méthode avec les autres: x=linspace(-5,5,3); X=linspace(-5,5,200); for i=1:200 end subplot(3,2,1), hold on plot(X,q,'r') hold off x=linspace(-5,5,4); for i=1:200 end subplot(3,2,2), hold on plot(X,q,'r') hold off x=linspace(-5,5,5); for i=1:200 end subplot(3,2,3), hold on plot(X,q,'r') hold off subplot(3,2,4), hold on x=linspace(-5,5,6); for i=1:200 end plot(X,q,'r') hold off x=linspace(-5,5,7); for i=1:200 end subplot(3,2,5), hold on plot(X,q,'r') hold off x=linspace(-5,5,8); for i=1:200 end subplot(3,2,6), hold on plot(X,q,'r') hold off On obtient pour les polynômes d'interpolations d'ordres : et 7 successivement les courbes suivantes : c-Remarque : On constate qu'on a obtenu les mêmes figures que celles obtenues précédemment, ce qui montre que le polynôme d'interpolation est unique quelque soit la méthode utilisée pour sa détermination. L'interpolation a donc la même erreur et elle est limitée par le même nombre de points qui est de 10 points. [...]
[...] Exercice le polynôme de Lagrange Programme en Matlab : function p=lagrange(X,x,y) m=length(x); for i=1:m for j=1:m if end end end p=sum(y.*l); end Exemple d'application: On reprend l'exemple précédent pour pouvoir comparer les deux méthodes: x=linspace(-5,5,3); X=linspace(-5,5,200); for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(3,2,1), hold on plot(X,p,'r') hold off x=linspace(-5,5,4); for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(3,2,2), hold on plot(X,p,'r') hold off x=linspace(-5,5,5); for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(3,2,3), hold on plot(X,p,'r') hold off subplot(3,2,4), hold on x=linspace(-5,5,6); for i=1:200 end plot(X,p,'r') hold off x=linspace(-5,5,7); for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(3,2,5), hold on plot(X,p,'r') hold off x=linspace(-5,5,8); for i=1:200 p(i)=lagrange(X(i),x,y); end subplot(3,2,6), hold on plot(X,p,'r') hold off On obtient pour les polynômes d'interpolations d'ordres : et 7 successivement les courbes suivantes : Remarque : On constate qu'on a obtenu les mêmes figures que celles obtenues précédemment, ce qui montre que le polynôme d'interpolation est unique quelque soit la méthode utilisée pour sa détermination. L'interpolation a donc la même erreur et elle est limitée par le même nombre de points qui est de 10 points. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture