1 function res=verifie_diff_div_symb(X,Y)
\r
3 % verifie_diff_div_symb : verification pour le calcul du polynôme interpol. support quelconque en symbolique
\r
6 % *********************************************************
\r
8 % res=verifie_diff_div_symb(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 où X et Y sont des vecteurs symboliques.
\r
11 % Vérification en formel.
\r
14 % variables d'entrées :
\r
15 % * X : contient les valeurs x_i, pour 0 <=i<=n (dans l'ordre croissant)
\r
16 % * Y : contient les valeurs f^(r)(x_i), pour 0 <=i<=n, de telle sorte que :
\r
17 % si x_k est multiple avec x_{k-1}~=x_k=x_{k+1}=...=x_{k+r}~=x_{k+r+1} alors
\r
18 % y_k=f(x_k), y_{k+1}=f'(x_k), ..., y_{k+r}=f^(r)(x_k).
\r
20 % variables de sortie
\r
21 % * res : contient le maximum des valeur absolue de
\r
22 % n-p où p est le degré du polynôme d'interpolation p_n
\r
23 % et n+1 est le nombre de points.
\r
24 % maximum sur i dans {0,...,n} maximum sur l dans alpha_i-1
\r
25 % de la quantitée p_n^(l)(x_i)-f^(l)(x_i) (dérivée l fois) où alpha_i est
\r
26 % le nombre d'éléments du n=1-uplet(x_0,...,x_n) égaux à x_i.
\r
28 % Le calcul est correct si et seulement si res est nul
\r
29 % et incorrect si res est egal à un
\r
33 % ************ Fonctions auxiliaires utilisées ************
\r
35 % diff_div, eval_horner, val_derivee_multiple
\r
37 % *********************************************************
\r
41 R=eval_horner(x,X(1:end-1),D);
\r
46 [alpha,valfder]=val_derivee_multiple(i,X,Y);
\r
48 erloc=~(simplify(subs(R,'x',X(i+1)))==valfder(1));
\r
52 erloc=~(simplify(subs(Q,'x',X(i+1)))==valfder(l+1));
\r