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

Private GIT Repository
typos
[cours-mesi.git] / tel / TPmatlab / interpolation / TP2d / newton_cano.m
1 function B=newton_cano(A,C)\r
2\r
3 %\r
4 % newton_cano : passage de la forme de newton à la forme canonique.\r
5 %\r
6 % *********************************************************\r
7 %\r
8 %  B=newton_cano(A,C)\r
9 %     L'algorithme repose sur l'algorithme d'Hörner réitéré n fois, avec\r
10 %     décalage successif des centres. Cette fonction permet de passer de \r
11 %     la forme de Newton :\r
12 %          p_n(x)=a_0+a_1(x-c_1)+a_2(x-c_1)(x-c_2)+...+a_n(x-c_1)...(x-c_n)\r
13 %     à la forme canonique \r
14 %          p_n(x)=b_0+b_1x+b_2x^2+...+b_nx^n\r
15 %\r
16 %       variables d'entrées : \r
17 %     * C : contient les centres c_i, pour 1 <=i<=n\r
18 %     * A : contient les coefficients a_i, pour 0<=i<=n         \r
19 %\r
20 %       variables de sortie\r
21 %     * B : contient les coefficients b_n, b_(n-1),...,b_0\r
22 %           (dans cet ordre là) \r
23\r
24\r
25 % ************ Fonctions auxiliaires utilisées ************\r
26 %\r
27 %       aucune\r
28 %\r
29 % *********************************************************\r
30 %\r
31 \r
32 \r
33 % Contrôles d'entrée\r
34 %\r
35 % nombre d'arguments\r
36 if nargin~=2\r
37    error('nombre d''arguments de la fonction incorrect');\r
38 end\r
39 % taille des variables X et D\r
40 n=length(C);\r
41 np=length(A)-1;\r
42 if n~=np\r
43    error('les deux tableaux n''ont pas la taille adéquate');\r
44 end\r
45 \r
46 \r
47 % Corps d'algorithme\r
48 Auxi=A;\r
49 for j=1:n\r
50    for i=n-1:-1:j-1\r
51        Auxi(i+1)=Auxi(i+1)-C(i-j+2)*Auxi(i+2);\r
52    end\r
53 end\r
54 B=fliplr(Auxi);\r