1 function [W1,W2,W3]=choix_du_support(pd1,pd2,pd3,v1,v2,v3,verif)
\r
2 % calcule les poids explicites d'une formule de quadrature et vérifie
\r
3 % son caractère exact pour les fonctions polynomes de P2.
\r
6 % pd1,pd2,pd3 sont les symboliques issus de la fonction
\r
7 % recherche_poids pour le problème considéré.
\r
8 % v1,v2,v3 sont trois valeurs distinctes de l'intervalle [-1,1]
\r
9 % qui particularisent les valeurs formelles.
\r
10 % verif est un booléen
\r
11 % si verif=1: le logiciel vérifie formellement que les intégrales
\r
12 % exacte et approchée coincident pour les fonctions considérées;
\r
13 % sinon, il omet cette vérification.
\r
15 % variables de sortie
\r
16 % W1,W2,W3 désignent les poids de la formule de quadrature.
\r
17 % Ainsi l'intégrale I de la fonction f mesurée est donnée par:
\r
18 % I=W1f(v1)+W2f(v2)+W3f(v3).
\r
19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
20 % Fonctions connexes appelées
\r
22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
24 % pour l'exemple, intervention de globales!
\r
29 error('Nombre des arguments incorrect');
\r
31 v=diff(sort([v1 v2 v3]));
\r
33 error('Les points ne sont pas tous dans [-1,1].Voir controle.');
\r
36 error('Les points ne sont pas distincts. Voir controle.');
\r
39 % algorithme proprement dit
\r
42 poids=[pd1 pd2 pd3];
\r
43 poids_expl=sym(subs(poids,[t1 t2 t3],[v1 v2 v3]),'r');
\r
44 W1=poids_expl(1);W2=poids_expl(2);W3=poids_expl(3);
\r
46 % traitement de la vérification si l'utilisateur l'a demandée
\r
50 ch1='On veut intégrer sur [-1,1] la fonction f donnée par';
\r
51 ch2='f(x)=ax^2+bx+c, où a,b,c sont symboliques.';
\r
52 ch3='La valeur exacte de l''intégrale est :';
\r
53 ch4='La valeur fournie par formule de quadrature est :';
\r
54 ch5='obtenue à partir de la valeur du signal aux dates';
\r
55 ch6='avec les poids respectifs';
\r
56 ch7='L''écart entre les deux expressions est de :';
\r
58 v_app=W1*subs(fx,x,v1)+W2*subs(fx,x,v2)+W3*subs(fx,x,v3);
\r
59 % qu'on peut remplacer par un produit matriciel!
\r
60 v_ex=int(fx,x,-1,1);
\r
61 % l'indication de x est inutile en fait...
\r
64 % affichage des résultats
\r
65 disp(ch1);disp(ch2);
\r
69 disp(ch6);poids_expl
\r