1 function traitement_dem(choix)
\r
2 % visualise les solutions en [a,b] vérifiant diverses hypothèses
\r
3 % du théorème de condition suffisante de convergence en Newton.
\r
6 % choix est un entier désignant le numéro des hypothèses à visualiser.
\r
8 % variables de sortie
\r
9 % aucune: on peut capter l'image produite.
\r
11 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
12 % Fonctions connexes appelées
\r
14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
16 % pour la portabilité graphique
\r
17 global f1_pos f2_pos f3_pos
\r
20 global A B ens_H H2 H3 H4 H5
\r
21 global h_f2 h_f3 CONT att3
\r
22 global unite_att rep coul leg
\r
24 % effacement de fenetre de demande 2
\r
27 % préparation des tracés:affectation des variables nécessaires
\r
35 % on ne fait rien pour l'instant;
\r
37 eval(['Z=H' num2str(choix) ';']);
\r
42 % tracé proprement dit dans la fenetre appropriée
\r
47 % préparation de la fenetre 1
\r
48 h_f1=figure('Position',f1_pos);
\r
50 eval(['K=logical(1-H' num2str(k) ');']);
\r
51 h_p=plot(A(K),B(K),coul{k});
\r
52 lim=[min(min(A)) max(max(A)) min(min(B)) max(max(B))];
\r
53 xlabel('Valeurs de a');ylabel('Valeurs de b');
\r
55 h_leg=legend(['ajout de l''hypothèse ' num2str(k)],0);
\r
57 % travail de détail sur la légende!
\r
58 enf=get(h_leg(1),'Children');
\r
59 set(enf(1),'Color',get(h_p,'color'),'Marker','*');
\r
67 % préparation de la fenetre 1
\r
68 h_f1=figure('Position',f1_pos);
\r
69 plot(A(logical(1-Z)),B(logical(1-Z)),coul{choix});
\r
70 lim=[min(min(A)) max(max(A)) min(min(B)) max(max(B))];
\r
71 xlabel('Valeurs de a');ylabel('Valeurs de b');
\r
74 % traitement un peu spécial pour l'ensemble des hypothèses.
\r
76 % On sort une solution optimale au sens d'un critère à définir.
\r
78 % On peut optimiser au sens de la taille de |b-a|.
\r
79 % Ceci se discute! On peut chercher surtout à avoir un a minimal;
\r
80 % dans d'autres cas on cherchera un b maximal.
\r
83 %[temp,ind]=max(abs(B(H)-A(H)));
\r
84 % à prolonger mais de peu de sens ici.
\r
87 % on minimise a et on cherche pour cette valeur le b maximal
\r
88 % possible, ou l'inverse dans d'autres cas.
\r
89 % sortie des a et b solutions.
\r
93 if (sum(size(tempA))>0) % donc idem en B!
\r
95 ind_a=(tempA==a_opt);
\r
96 b_opt=max(tempB(ind_a));
\r
97 plot(a_opt,b_opt,'r*');
\r
98 h_leg=legend(['Solution optimale: a= ' ...
\r
99 num2str(a_opt) '; b= ' num2str(b_opt)],0);
\r
101 enf=get(h_leg(1),'Children');
\r
102 set(enf(1),'Color','r','Marker','*');
\r
110 % complément dans le cas de l'ensemble des hypothèses
\r
114 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
115 % possibilité de lecture de coordonnées: supprimer le commentaire.
\r
116 % on clique gauche pour lire;
\r
117 % on sort en cliquant droit!
\r
121 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
123 % ouverture de fenetre de choix 3
\r
126 % attente jusqu'a 120 unités de temps: unite_att
\r
129 while (att3==1)&(compt<120)
\r
134 % fermeture de fenetre 3, non visibilité et nettoyage de fenetre 1
\r
135 close(h_f3);close(h_f1);
\r
138 % gestion de réponse ou de son absence
\r
141 disp('Trop tard. Assez attendu.');
\r
142 disp('Vous pouvez modifier le temps sous traitement_dem ligne 123');
\r