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

Private GIT Repository
j
[cours-mesi.git] / tel / TPmatlab / interpolation / TP2a / eval_horner_sca.m
1 function z=eval_horner_sca(t,C,D)\r
2\r
3 %\r
4 % eval_horner_sca : évaluation scalaire d'un polynôme à partir de sa forme de Newton.\r
5 %\r
6 % *********************************************************\r
7 %\r
8 %  z=eval_horner_sca(t,C,D)\r
9 %     L'évaluation est faite par l'algorithme de Hörner donné en cours,\r
10 %     Elle permet de calculer :\r
11 %         p_n(t)=d_0+d_1(t-c_1)+d_2(t-c_1)(t-c_2)+...+d_n(t-c_1)...(t-c_n)\r
12 %\r
13 %       variables d'entrées : \r
14 %     * t : contient le réel où est évalué p_n\r
15 %     * C : contient les centres c_i, pour 1 <=i<=n\r
16 %     * D : contient les coefficients d_i, pour 0<=i<=n         \r
17 %\r
18 %       variables de sortie\r
19 %     * z : contient p_n(t)     \r
20 %\r
21 %\r
22 % ************ Fonctions auxiliaires utilisées ************\r
23 %\r
24 %       aucune\r
25 %\r
26 % *********************************************************\r
27 \r
28 \r
29 % Contrôles d'entrée\r
30 %\r
31 % nombre d'arguments\r
32 if nargin~=3\r
33    error('nombre d''arguments de la fonction incorrect');\r
34 end\r
35 % taille des variables C et D\r
36 n=length(C);\r
37 np=length(D)-1;\r
38 if n~=np\r
39    error('les deux tableaux n''ont pas la taille adéquate');\r
40 end\r
41 \r
42 \r
43 % Corps d'algorithme\r
44 auxi=D(n+1);\r
45 for i=n-1:-1:0\r
46    auxi=(t-C(i+1))*auxi+D(i+1);\r
47 end\r
48 z=auxi;\r
49 \r
50 \r
51 \r