1 function visu1_conv_anim(f1)
\r
2 % Propose une visualisation animée de la convergence d'une suite.
\r
5 % f1 désigne un vecteur de n1 valeurs d'une suite convergente
\r
6 % dont la dernière est considérée comme la limite.
\r
7 % L'écart à la limite sera représenté par des rayons polaires
\r
8 % répartis sur un cercle proportionnellement aux gains de variation relative,
\r
9 % rapportés à la somme de ceux-ci, tous considérés en valeur absolue.
\r
10 % Le rayon est l'écart de chaque valeur à la "limite".
\r
12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
13 % Fonctions appelées *
\r
16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
20 error('Nombre des arguments incorrect');
\r
26 % Calibrage des données: ces constantes modifiables par l'utilisateur
\r
27 % pourraient aussi etre passées comme champs complémentaires.
\r
29 % nul_seuil: un nombre inférieur en valeur absolue à nul_seuil est considéré nul.
\r
30 % rap_seuil: pourcentage de la fenetre en dessous duquel on dilate l'image.
\r
31 % u unité de temps en seconde, pour l'expression d'une pause
\r
32 % déterminant la vitesse de défilement des images.
\r
38 % détermination des rayons vecteurs, angles
\r
39 % et initialisations diverses relatives à f1
\r
41 r1=abs(f1-f1(size(f1,2)));ind1=find(r1>nul_seuil);
\r
44 att1=zeros(1,nb_pas1);alph1=zeros(1,nb_pas1);
\r
45 var_rel=abs(diff(r1))./abs(r1(2:nb_pas1));
\r
46 att1(2:nb_pas1)=1./var_rel*u;
\r
47 alph1(2:nb_pas1)=2*pi/sum(var_rel)*cumsum(var_rel);
\r
49 lim=[-coef coef -coef coef];
\r
52 % création des valeurs qui s'enroulent autour de
\r
53 % la limite avec ajustement d'échelle automatique
\r
57 % préparation de la fenetre
\r
58 title('Visualisation de convergence');
\r
60 X=[-c,-c,c,c,-c];Y=[-c,c,c,-c,-c];
\r
63 if (1/coef*r1(n)>rap_seuil)
\r
65 x1=r1(n)*cos(alph1(n));
\r
66 y1=r1(n)*sin(alph1(n));
\r
69 line([0,x1],[0,y1]);hold on;
\r
70 % prise d'une pause (bien méritée!)
\r
75 % annonce d'agrandissement
\r
77 X=[-c,-c,c,c,-c];Y=[-c,c,c,-c,-c];
\r
81 % changement d'échelle
\r
83 lim=k*lim;coef=k*coef;
\r
87 % indication de fin de convergence
\r
89 plot([0],[0],'rp-');legend('Limite ''atteinte''',0);
\r