]> AND Private Git Repository - cours-mesi.git/blob - tel/TPmatlab/interpolation/TP2d/poly_eval_lagr.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
j
[cours-mesi.git] / tel / TPmatlab / interpolation / TP2d / poly_eval_lagr.m
1 function Z=poly_eval_lagr(T,X,Y)\r
2 \r
3 % poly_lagrange : calcul du polynôme de Lagrange en T (vectoriel)\r
4 %\r
5 % *********************************************************\r
6 %\r
7 %  Z=poly_eval_lagr(T,X,Y)\r
8 %     calcul de la valeur du polynôme p_n d'interpolation défini par le nuage de point X,Y\r
9 %     en T  (à partir des polynômes de Lagrange l_i).\r
10 %\r
11 %       variables d'entrées : \r
12 %     * T : contient le tableau ligne des réels où on évalue p_n\r
13 %     * X : contient les centres x_i, pour 0<=i<=n (deux à deux distincts)\r
14 %     * Y : contient les valeurs  f(x_i), pour 0<=i<=n \r
15 %\r
16 %       variables de sortie\r
17 %     * Z : contient l'image du tableau T par p_n (tableau ligne)\r
18 %\r
19\r
20\r
21 % ************ Fonctions auxiliaires utilisées ************\r
22 %\r
23 %     poly_lagrange\r
24 %\r
25 % *********************************************************\r
26 %\r
27 \r
28 \r
29 \r
30 \r
31 \r
32 % Contrôles d'entrée\r
33 %\r
34 % nombre d'arguments\r
35 if nargin~=3\r
36    error('nombre d''arguments de la fonction incorrect');\r
37 end\r
38 na=length(X);\r
39 nb=length(Y);\r
40 if (na~=nb)\r
41    error('X et Y n''ont pas la même taille');\r
42 end\r
43 n=na-1;\r
44 \r
45 % Corps d'algorithme\r
46 Auxi=Y(1)*poly_lagrange(0,T,X);\r
47 for i=2:n+1\r
48         Auxi=Auxi+Y(i)*poly_lagrange(i-1,T,X);\r
49 end\r
50 Z=Auxi;\r