1 % script demo_limite_diff_div: calcul et comparaisons de différences divisées par limite formelle et dérivation
\r
4 % ************ Fonctions auxiliaires utilisées ************
\r
8 % *********************************************************
\r
12 % corps d'algorithme
\r
24 % calcul avec les trois valeurs distinctes
\r
27 disp('calcul avec les trois valeurs distinctes');
\r
28 disp('valeurs des trois différences divisées f[x0],f[x0,x1],f[x0,x1,x2]');
\r
30 D=diff_div([x0 x1 x2],[y0 y1 y2]);
\r
34 disp('appuyez sur une touche pour continuer');
\r
37 % calcul avec deux valeurs égales et une distincte
\r
41 disp('premier calcul avec deux valeurs égales et une autre distinctes (x2=x1 et x0~=x1)');
\r
42 disp('valeurs des trois différences divisées f[x0],f[x0,x1],f[x0,x0,x1]');
\r
44 D1A=simplify(limit(D,x2,x1));
\r
45 D1B=simplify(diff_div([x0 x1 x1],[y0 y1 subs(fp,x,x1)]));
\r
46 disp('calcul par passage à la limite');
\r
48 disp('calcul par utilisation de diff_div');
\r
50 disp('comparaison entre les deux expressions');
\r
51 disp(simplify(D1A-D1B));
\r
54 disp('appuyez sur une touche pour continuer');
\r
60 disp('second calcul avec deux valeurs égales et une autre distinctes (x0=x1 et x2~=x1)');
\r
61 disp('valeurs des trois différences divisées f[x0],f[x0,x0],f[x0,x0,x2]');
\r
63 D1C=simplify(limit(D,x1,x0));
\r
64 D1D=simplify(diff_div([x0 x0 x2],[y0 subs(fp,x,x0) y2]));
\r
65 disp('calcul par passage à la limite');
\r
67 disp('calcul par utilisation de diff_div');
\r
69 disp('comparaison entre les deux expressions');
\r
70 disp(simplify(D1C-D1D));
\r
73 disp('appuyez sur une touche pour continuer');
\r
76 % calcul avec les trois valeurs égales
\r
79 disp('calcul avec les valeurs égales (x0=x1=x2)');
\r
80 disp('valeurs des trois différences divisées f[x0],f[x0,x0],f[x0,x0,x0]');
\r
82 D2A=simplify(limit(limit(D,x2,x1),x1,x0));
\r
83 D2B=simplify(diff_div([x0 x0 x0],[y0 subs(fp,x,x0) subs(fpp,x,x0)]));
\r
84 disp('calcul par passage à la limite');
\r
86 disp('calcul par utilisation de diff_div');
\r
88 disp('comparaison entre les deux expressions');
\r
89 disp(simplify(D2A-D2B));
\r
92 disp('appuyez sur une touche pour continuer');
\r
95 % un calcul de dérivée
\r
98 disp('calcul de la derivee de F : x-> f[x0,x1,x]');
\r
100 dodo=diff_div([x0 x1 x],[y0 y1 f]);
\r
102 D3A=simplify(diff(F,x));
\r
103 dudu=diff_div([x0 x1 x x],[y0 y1 f fp]);
\r
104 D3B=simplify(dudu(4));
\r
105 disp('expression de F''(x)');
\r
107 disp('appuyez sur une touche pour continuer');
\r
109 disp('expression de f[x0,x1,x,x]');
\r
112 disp('comparaison entre les deux expressions');
\r
113 disp(simplify(D3A-D3B));
\r
116 disp('appuyez sur une touche pour continuer');
\r
119 % dernier calcul : erreur !!
\r
120 disp('essai de calcul de f[x0],f[x0,x1],f[x0,x1,x1] par substitution maladroite');
\r
121 pretty(subs(D,x2,x1));