]> AND Private Git Repository - cours-mesi.git/blob - tel/TPmatlab/equation_nonlineaire/TP4i/partie_2/demo_tp4I.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
j
[cours-mesi.git] / tel / TPmatlab / equation_nonlineaire / TP4i / partie_2 / demo_tp4I.m
1 function demo_tp4I\r
2 % demo de vérification d'hypothèses du théorème de conditions\r
3 % suffisantes de convergence de méthode de Newton\r
4 % pour une fonction polynome.\r
5 % Peut etre transformée en fonction évidemment.\r
6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
7 %                       Fonctions connexes appelées\r
8 %\r
9 % continuer,creat_fen2_dem,creat_fen3_dem,det_choix,etude_hypotheses,\r
10 % (lect_courb),sortie,traitement_dem,vect2str_mat\r
11 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
12 \r
13 % tests éventuels(non rédigés!)\r
14 \r
15 \r
16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
17 % initialisations\r
18 clear all;close all;\r
19 \r
20 % variables globales modifiables avec prudence!\r
21 \r
22 % A modifier pour la portabilité graphique.\r
23 % Ecrit initialement sur un 17 pouces.\r
24 % pour modifier les positions des fenetres 1,2 ou 3 vous les mettez\r
25 % en place sur votre écran et pour chacune vous récupérer son handle h.\r
26 % en tapant get(h,'position') vous récupérez le vecteur position que vous\r
27 % remplacez dans l'écriture ci-dessous.\r
28 global f1_pos; f1_pos=[383 35 630 648];\r
29 global f2_pos; f2_pos=[10 35 360 285];\r
30 global f3_pos; f3_pos=[10 35 360 100];\r
31 \r
32 global unite_att\r
33 global A B\r
34 \r
35 % autres variables modifiables par l'utilisateur\r
36 % unité d'attente de la réaction de l'utilisateur\r
37 % maxi 20 unités pour fenetre 2\r
38 % maxi 240 unités pour fenetre 3\r
39 unite_att=0.5;\r
40 \r
41 % on peut modifier bornes et pas\r
42 pas_a=0.01;a=1:pas_a:4;\r
43 pas_b=.1;b=3:pas_b:10;\r
44 [A,B]=meshgrid(a,b);\r
45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
46 \r
47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
48 % on n'y touche pas sauf après étude approfondie!\r
49 \r
50 % Pour l'équation de Ferrari\r
51 pol=[1 0 6 -60 36];\r
52 % Ceci est modifiable mais le reste devra suivre dans etude_hypothèses!\r
53 \r
54 global ens_H H2 H3 H4 H5;\r
55 global h_f2 BR BP;\r
56 global rep att2 att3 choix coul leg\r
57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
58 \r
59 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
60 % première partie\r
61 \r
62 % recherche des intervalles convenables pour chaque hypothèse\r
63 % et pour l'ensemble des hypothèses du théorème.\r
64 [ens_H,H2,H3,H4,H5]=etude_hypotheses(A,B);\r
65 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
66 \r
67 \r
68 \r
69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
70 % deuxième partie: proposition de visualisation des hypothèses\r
71 \r
72 disp('Voulez-vous visualiser les [a,b]');\r
73 disp('qui vérifient les hypothèses ?');\r
74 ch=input('(si oui,taper 1)   ','s');\r
75 if ch=='1'\r
76     rep=1;\r
77     % préparation de visualisation\r
78     \r
79     % choix des couleurs pour la représentation des intervalles [a,b]\r
80     % sur lesquels les diverses hypothèses sont valides.\r
81     coul=cell(1,5);\r
82     coul{1}='k.';coul{2}='m.';coul{3}='b.';coul{4}='g.';coul{5}='r.';\r
83 \r
84     % création de la cellule des titres d'images à venir\r
85     leg=cell(1,6);\r
86     leg{1}=['En blanc,les intervalles [a,b] sur lesquels'...\r
87         ' le théorème est applicable.'];\r
88     for k=2:5\r
89         leg{k}=['En blanc, les intervalles [a,b], sur lesquels '...\r
90             'l''hypothèse ' num2str(k) ' est valide.'];\r
91     end\r
92     leg{6}=['En blanc, les intervalles [a,b] valides'...\r
93         ' lors du rajout des hypothèses 2 à 5.'];\r
94 \r
95 else\r
96     rep=0;\r
97 end\r
98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
99 \r
100 \r
101 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
102 % entrée en boucle sur rep\r
103 \r
104 while rep==1\r
105     \r
106     % on réinitialise rep et choix;on ne rentre en boucle que si rep\r
107     % est modifié et passe donc à 1.\r
108     rep=0;choix=0;\r
109     \r
110     % ouverture de fenetre de choix 2\r
111     creat_fen2_dem;\r
112     \r
113     % attente jusqu'a 20 unités de temps: unite_att\r
114     compt=0;att2=1;\r
115     \r
116     while (att2==1)&(compt<19)\r
117         pause(unite_att);\r
118         compt=compt+1;\r
119     end\r
120     \r
121     % traitement relatif au choix obtenu (entre 0 et 5)\r
122     traitement_dem(choix);\r
123     \r
124     % regrets!\r
125     if compt>=19\r
126         \r
127         % L'utilisateur n'a rien choisi!\r
128         disp('Trop tard. On sort !');\r
129     end\r
130     \r
131 end\r
132 \r
133 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
134 \r
135 sortie;\r
136 \r
137 % fin de demo!