1 function Iapp=int_gauss(n,points,poids,rcn)
\r
3 % int_gauss : calcul de l'intégrale par méthode de Gauss à n+1 points
\r
5 % *********************************************************
\r
7 % Iapp=int_gauss(n,points,poids,fcn) : valeur approchée de l'intégrale
\r
8 % de la fonction rcn=r=f/w (w poids poids) sur l'intervalle sous la forme conventionnelle (a,b) avec
\r
9 % l'une des quatre méthodes à n+1 points:
\r
10 % Legendre, Tchebytchev, Hermite ou Laguerre, éventuellement en formel
\r
13 % variables d'entrées :
\r
14 % * n : entier naturel.
\r
15 % * points : tableau de taille (q+1)*(q+1) (avec n<=q) tel que
\r
16 % pour tout l dans {0,...,q}, points(l+1,1:l+1) contient
\r
17 % les l+1 points x_i de la formule (à l+1 points)
\r
18 % * poids : tableau de taille (n+1)*(n+1) tel que
\r
19 % pour tout l dans {0,...,n}, poids(l+1,1:l+1) contient
\r
20 % les l+1 poids D_i de la formule (à l+1 points)
\r
21 % * rcn est une chaîne de caractère représentant la fonction r=f/w
\r
22 % (de type inline, builtin ou par fichier M-file);
\r
23 % variables de sortie
\r
24 % * Iapp : valeur approchée de l'intégrale de f sur un intervalle conventionnel.
\r
28 % ************ Fonctions auxiliaires utilisées ************
\r
32 % *********************************************************
\r
35 % Contrôles d'entrée
\r
36 % nombre d'arguments
\r
38 error('nombre d''arguments de la fonction incorrect');
\r
40 % autres tests éventuels
\r
41 if (fix(n)~=n) | (n<0)
\r
42 error('l''entier n doit être un entier naturel');
\r
44 [q1,q2]=size(points);
\r
45 [q3,q4]=size(poids);
\r
47 error('attention, le troisième argument doit être une matrice carrée');
\r
50 error('attention, le quatrième argument doit être une matrice carrée');
\r
53 error('attention, le troisième et le quatrième argument doivent avoir la même taille');
\r
56 error('attention, n est trop grand');
\r
59 % Corps d'algorithme.
\r
60 Iapp=sum(feval(rcn,(points(n+1,1:n+1))).*poids(n+1,1:n+1));
\r