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

Private GIT Repository
j
[cours-mesi.git] / tel / TPmatlab / interpolation / TP2f / verifie_diff_div.m
1 function res=verifie_diff_div(X,Y)      \r
2 \r
3 % verifie_diff_div : verification pour le calcul du polynôme interpol. support quelconque\r
4 %\r
5 %\r
6 % *********************************************************\r
7 %\r
8 % res=verifie_diff_div(X,Y)     \r
9 %     vérification du calcul du polynôme d'interpolation défini par le nuage de point X,Y\r
10 %     pour support quelconque\r
11 %\r
12 %       variables d'entrées : \r
13 %     * X : contient les valeurs x_i, pour 0 <=i<=n (dans l'ordre croissant)\r
14 %     * Y : contient les valeurs f^(r)(x_i), pour 0 <=i<=n, de telle sorte que :\r
15 %             si x_k est multiple avec x_{k-1}~=x_k=x_{k+1}=...=x_{k+r}~=x_{k+r+1} alors\r
16 %                y_k=f(x_k), y_{k+1}=f'(x_k), ..., y_{k+r}=f^(r)(x_k).\r
17 %\r
18 %       variables de sortie\r
19 %     * res : contient le maximum des valeur absolue de \r
20 %               n-p où p est le degré du polynôme d'interpolation p_n\r
21 %                   et n+1 est le nombre de points.\r
22 %               maximum sur i dans {0,...,n} maximum sur l dans alpha_i-1\r
23 %               de la quantitée p_n^(l)(x_i)-f^(l)(x_i) (dérivée l fois) où alpha_i est \r
24 %               le nombre d'éléments du n=1-uplet(x_0,...,x_n) égaux à x_i.\r
25 %\r
26 % Le calcul est correct si et seulement si res est nul.\r
27 %\r
28 %\r
29\r
30 % ************ Fonctions auxiliaires utilisées ************\r
31 %\r
32 %     diff_div, newton_cano, val_derivee_multiple \r
33 %\r
34 % *********************************************************\r
35 \r
36 D=diff_div(X,Y);\r
37 P=newton_cano(D,X(1:end-1));\r
38 n=length(X)-1;\r
39 p=length(P)-1;\r
40 erdeg=abs(n-p);\r
41 er=0;\r
42 i=0;\r
43 while (i<=n)\r
44    [alpha,valfder]=val_derivee_multiple(i,X,Y);\r
45    Q=P;\r
46    er=max(er,abs(polyval(P,X(i+1))-valfder(1)));\r
47    for l=1:alpha-1\r
48       Q=polyder(Q);\r
49       er=max(er,abs(polyval(Q,X(i+1))-valfder(l+1)));   \r
50    end\r
51    i=i+alpha;\r
52 end\r
53 res=max(er,erdeg);\r