]> AND Private Git Repository - cours-mesi.git/blob - tel/TPmatlab/erreur_algorithmique/TP1e/affiche_erreur_derivee.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
init
[cours-mesi.git] / tel / TPmatlab / erreur_algorithmique / TP1e / affiche_erreur_derivee.m
1 function affiche_erreur_derivee(hm,hM,R)\r
2\r
3 %\r
4 %   affiche_erreur_derivee : affichage de l'erreur (logarithmique) pour calcul numérique de dérivée.\r
5 %\r
6 % *********************************************************\r
7 %\r
8 %       affiche_erreur_derivee(hm,hM,R) :\r
9 %      affiche le nuage de point (log10(h_i),log10(epsilon(h_i)))\r
10 %      où pour tout entier i appartenant à (0,...,R), \r
11 %           h_i=h=hm.^((R-i)/R).*hM.^(i/R);\r
12 %           epsilon(h_i) est l'erreur commise en remplaçant la dérivée\r
13 %           de la fonction exponentielle en 1 par (exp(1+h_i)-exp(t-h_i))/(2h_i)\r
14 %\r
15 %\r
16 %       variables d'entrées :\r
17 %   * hm et hM sont deux pas strictement positifs (hm<hM);\r
18 %   * R est le nombre de calcul fait.\r
19 %\r
20 %       variables de sortie : \r
21 %   * le graphe décrit ci-dessus\r
22\r
23\r
24 % ************ Fonctions auxiliaires utilisées ************\r
25 %\r
26 %       aucune\r
27 %\r
28 % *********************************************************\r
29 \r
30 \r
31 \r
32 % Contrôles d'entrée\r
33 \r
34 % nombre d'arguments\r
35 if nargin~=3\r
36    error('nombre d''arguments de la fonction incorrect');\r
37 end\r
38 % autres tests éventuels \r
39    \r
40 \r
41 % Corps d'algorithme\r
42 i=0:R;\r
43 h=hm.^((R-i)/R).*hM.^(i/R);\r
44 epsilon=abs((exp(1+h)-exp(1-h))./(2*h)-exp(1));\r
45 J=find(epsilon==0);\r
46 epsilon(J)=1e-20;\r
47 X=log10(h);\r
48 Y=log10(epsilon);\r
49 plot(X,Y);\r
50 \r
51 \r
52 \r