1 % script : demo_compar_methode_int compare les quatre méthodes d'intégrations
\r
3 % - du point milieu ,
\r
6 % en comparant l'intégrale calculée avec l'intégrale exacte.
\r
7 % en terme d'erreur commise.
\r
10 % ************ Fonctions auxiliaires utilisées ************
\r
12 % saisiefonction, int_fcn
\r
14 % *********************************************************
\r
17 % ATTENTION : si erreur nulle, log(0)/log(10)=log10d0;
\r
20 a=input('Entrez l''extrémité inférieure de [a,b] : ');
\r
21 b=input('Entrez l''extrémité supérieure de [a,b] : ');
\r
22 nmin=input('Entrez la puissance de dix du nombre minimum de point de discrétisation : ');
\r
23 nmax=input('Entrez la puissance de dix du nombre maximum de point de discrétisation : ');
\r
24 p=input('Entrez le nombre total de point de calculs : ');
\r
27 disp('entrée de la fonction à intégrer');
\r
31 disp('entrée de sa primitive');
\r
35 nombrecalcul=zeros(4,p);
\r
36 % calcul des erreurs pour les quatre méthodes
\r
37 integraleexacte=feval(ch2,b)-feval(ch2,a);
\r
39 for k=logspace(nmin,nmax,p)
\r
40 compteur=compteur+1;
\r
44 intva=int_fcn(methode,kf,a,b,ch1);
\r
45 err=abs(intva-integraleexacte);
\r
47 erreur(methode,compteur)=log10d0;
\r
49 erreur(methode,compteur)=log10(err);
\r
54 % tracé des erreurs commises par les différentes méthodes
\r
55 plot(log10x,erreur(1,:),'b',...
\r
56 log10x,erreur(2,:),'r',...
\r
57 log10x,erreur(3,:),'g',...
\r
58 log10x,erreur(4,:),'y');
\r
60 title(['erreur d''intégration pour la fonction ','inline(',formula(ch1),')']);
\r
62 title(['erreur d''intégration pour la fonction ',ch1]);
\r
64 xlabel('logarithme 10 du nombre de points d''intégration');
\r
65 ylabel('logarithme 10 de l''erreur d''intégration');
\r
66 legend('rectangle','trapèzes','milieux','Simpson',0);
\r