1 function integ=simpson(h,y,ind_deb,ind_fin)
\r
2 % calcule de façon simplifiée une intégrale en méthode de simpson
\r
5 % h est le demi-pas d'intégration au sens du cours;
\r
6 % y est le vecteur des valeurs de la fonction à intégrer;
\r
7 % ind_deb est l'indice de la borne basse de l'intervalle d'intégration;
\r
8 % ind_fin est l'indice de la borne haute de l'intervalle d'intégration;
\r
9 % Il est implicite que le nombre (ind_fin-ind_deb) est un entier pair
\r
10 % c'est-à-dire que le nombre de points d'intégration est impair.
\r
12 % variables de sortie
\r
13 % integ est la valeur approchée par Simpson de l'intégrale cherchée
\r
14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
15 % Fonctions connexes appelées
\r
17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
22 error('Nombre de champs incorrect');
\r
24 % controle de données
\r
25 bool1=(h>0)*(mod(ind_fin-ind_deb,2)==0)*(ind_deb<ind_fin);
\r
26 bool2=(floor(ind_deb)==ind_deb)*(floor(ind_fin)==ind_fin);
\r
28 error('Problème de paramètres. Voir controle de données');
\r
32 % génération des coefficients de Simpson
\r
33 lgr=ind_fin-ind_deb+1;
\r
34 coef=2*ones(1,lgr-2);
\r
35 impairs=1:2:lgr-2; % détermination des indices impairs dans coef
\r
36 coef(impairs)=coef(impairs)+2;
\r
39 % calcul de l'intégrale proprement dite
\r
40 integ=h/3*y(ind_deb:ind_fin)*coef;
\r