1 function [points,poids]=points_poids_gauss_vand(c,n)
\r
3 % points_poids_gauss_vand : calcul des poids et des points de Gauss (avec Vandermonde)
\r
5 % *********************************************************
\r
7 % [points,poids]=points_poids_gauss_vand(c,n) renvoie les points D_i et les points x_i
\r
8 % des formules d'intégration à l+1 points pour 0<=l<=n, pour
\r
9 % l'une des quatre méthodes : Legendre, Tchebytchev, Hermite ou Laguerre,
\r
10 % éventuellement en formel
\r
12 % variables d'entrées :
\r
13 % * n : entier naturel.
\r
14 % * c définit la méthode :
\r
15 % c=1 : méthode de Gauss-Legendre,
\r
16 % c=2 : méthode de Gauss-Tchebychev,
\r
17 % c=3 : méthode de Gauss-Hermite,
\r
18 % c=4 : méthode de Gauss-Laguerre;
\r
20 % variables de sortie
\r
21 % * points : tableau de taille (n+1)*(n+1) tel que
\r
22 % pour tout l dans {0,...,n}, points(l+1,1:l+1) contient
\r
23 % les l+1 points x_i de la formule (à l+1 points)
\r
24 % * poids : tableau de taille (n+1)*(n+1) tel que
\r
25 % pour tout l dans {0,...,n}, poids(l+1,1:l+1) contient
\r
26 % les l+1 poids D_i de la formule (à l+1 points)
\r
28 % Pour ces deux tableau, évaluation numérique (augmenter le nombre
\r
29 % de chiffre avec la fonction digits) ou formelle si possible.
\r
30 % méthode : points : recherche de zéro,
\r
31 % poids : calcul à partir des points en inversant la matrice de Vandermonde
\r
34 % ************ Fonctions connexes utilisées ***************
\r
36 % calcul_poly_gauss_symb, polyval_symb, expression_part_symb
\r
38 % *********************************************************
\r
40 % Contrôles d'entrée
\r
41 % nombre d'arguments
\r
43 error('nombre d''arguments de la fonction incorrect');
\r
45 % autres tests éventuels
\r
46 if (fix(n)~=n) | (n<0)
\r
47 error('l''entier n doit être un entier naturel');
\r
50 % Corps d'algorithme.
\r
51 poids=zeros(n+1,n+1);
\r
52 points=zeros(n+1,n+1);
\r
57 L=calcul_poly_gauss_symb(c,n+1);
\r
58 if ((1<=c) & (c<=3))
\r
67 poids(1,1)=sqrt(spi);
\r
75 C=polyval_symb(L(k+2,1:k+2),x);
\r
77 points(k+1,1:k+1)=E;
\r
79 U(i+1)=expression_part_symb(c,i);
\r
81 M(1,1:k+1)=sym(ones(1,k+1));
\r
84 M(i,j)=(points(k+1,j))^(i-1);
\r
87 poids(k+1,1:k+1)=M\U(1:k+1);
\r
92 points(1+k,1:1+k)=cos((2*sym(0:k)+1)/(sk+1)*spi/2);
\r
93 poids(1+k,1:1+k)=spi/(sk+1)*ones(1,k+1);
\r