1 function [points,poids]=points_poids_gauss_symb(c,n)
\r
3 % points_poids_gauss_symb : calcul des poids et des points de Gauss (symbolique)
\r
5 % *********************************************************
\r
7 % [points,poids]=points_poids_gauss_symb(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
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 : utilisation des formules du cours (dérivée)
\r
34 % ************ Fonctions auxiliaires utilisées ************
\r
36 % calcul_poly_gauss_symb, polyval_symb, polyder_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
72 auxis=sym(4)*sqrt(spi);
\r
77 C=polyval_symb(L(k+2,1:k+2),x);
\r
79 points(k+1,1:k+1)=E;
\r
82 Pp=polyder_symb(L(k+2,1:k+2));
\r
84 poids(k+1,j)=2./((sk+1)*polyval_symb(Pp,E(j)).*polyval_symb(L(k+1,1:k+1),E(j)));
\r
87 Pp=polyder_symb(L(k+2,1:k+2));
\r
88 auxis=2*auxis*(sk+1);
\r
90 poids(k+1,j)=auxis/(polyval_symb(Pp,E(j)))^2;
\r
93 Pp=polyder_symb(L(k+2,1:k+2));
\r
95 poids(k+1,j)=1/(E(j)*(polyval_symb(Pp,E(j)))^2);
\r
102 points(1+k,1:1+k)=cos(((2*sym(0:k))+1)/(sk+1)*spi/2);
\r
103 poids(1+k,1:1+k)=spi/(sk+1)*ones(1,k+1);
\r