1 function Iapp=int_gauss_legendre(n,a,b,points,poids,fcn)
\r
3 % int_gauss_legendre : calcul de l'intégrale par méthode de Gauss-Legendre à n+1 points
\r
5 % *********************************************************
\r
7 % Iapp=int_gauss_legendre(n,a,b,points,poids,fcn) : valeur approchée de l'intégrale
\r
8 % de la fonction fcn sur l'intervalle [a,b] avec la méthode de Gauss-Legendre
\r
11 % variables d'entrées :
\r
12 % * n : entier naturel.
\r
13 % * a,b : bornes de l'intervalle
\r
14 % * points : tableau de taille (q+1)*(q+1) (avec n<=q) tel que
\r
15 % pour tout l dans {0,...,q}, points(l+1,1:l+1) contient
\r
16 % les l+1 points x_i de la formule (à l+1 points)
\r
17 % * poids : tableau de taille (n+1)*(n+1) tel que
\r
18 % pour tout l dans {0,...,n}, poids(l+1,1:l+1) contient
\r
19 % les l+1 poids D_i de la formule (à l+1 points)
\r
20 % * fcn est une chaîne de caractère représentant la fonction
\r
21 % (de type inline, builtin ou par fichier M-file);
\r
22 % variables de sortie
\r
23 % * Iapp : valeur approchée de l'intégrale
\r
26 % ************ Fonctions auxiliaires utilisées ************
\r
30 % *********************************************************
\r
34 % Contrôles d'entrée
\r
35 % nombre d'arguments
\r
37 error('nombre d''arguments de la fonction incorrect');
\r
39 % autres tests éventuels
\r
40 if (fix(n)~=n) | (n<0)
\r
41 error('l''entier n doit être un entier naturel');
\r
44 error('attention, a doit être plus petit que b');
\r
46 [q1,q2]=size(points);
\r
47 [q3,q4]=size(poids);
\r
49 error('attention, le troisième argument doit être une matrice carrée');
\r
52 error('attention, le quatrième argument doit être une matrice carrée');
\r
55 error('attention, le troisième et le quatrième argument doivent avoir la même taille');
\r
58 error('attention, n est trop grand');
\r
61 % Corps d'algorithme.
\r
63 Iapp=auxi*sum(feval(fcn,auxi*(points(n+1,1:n+1)+1)+a).*poids(n+1,1:n+1));
\r