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

Private GIT Repository
ajout de partiels
[cours-mesi.git] / tel / TPmatlab / equation_nonlineaire / TP4i / partie_1 / trace_surface.m
1 function trace_surface(nb_pas,omega_deb,omega_fin,t_deb,t_fin)\r
2 % représente la surface d'équation z=F(omega,t) du tp4I.\r
3 %\r
4 % variables d'entrée\r
5 % nb_pas est un entier désignant la taille commune des vecteurs omega et t\r
6 % omega_deb, omega_fin désignent respectivement\r
7 % les valeurs initiale et finale prises par le paramètre omega.\r
8 % idem en t_deb et t_fin pour t\r
9 %\r
10 % variables de sortie\r
11 % une image qu'il sera possible de capter ou d'imprimer.\r
12 %\r
13 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
14 %                       Fonctions connexes appelées\r
15 %\r
16 %  fonct1\r
17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
18 \r
19 % Tests éventuels\r
20 if nargin~=5\r
21     error('Nombres des arguments incorrects');\r
22 end\r
23 \r
24 % tests complémentaires éventuels sur les autres arguments\r
25 % en fonction des utilisateurs...\r
26 nb_pas=floor(nb_pas);\r
27 if nb_pas==0\r
28     error('Le champ nb_pas est mal passé. Voir partie controle');\r
29 end\r
30 \r
31 pas_t=(t_fin-t_deb)/nb_pas;pas_om=(omega_fin-omega_deb)/nb_pas;\r
32 t=t_deb:pas_t:t_fin;\r
33 omega=omega_deb:pas_om:omega_fin;\r
34 [T,OMEGA]=meshgrid(t,omega);\r
35 Z=fonct1(OMEGA,T);\r
36 \r
37 % tracés \r
38 figure(1);\r
39 % on peut choisir taille et position sur l'écran via son handle\r
40 % et set(1,'position',champs de position). Voir figure...\r
41 mesh(OMEGA,T,Z);\r
42 grid;\r
43 title('Surface z=F(omega,t)');\r
44 xlabel('omega');ylabel('t');zlabel('z');\r
45 \r
46 ch=input('Voulez-vous des tracés complémentaires? (si oui taper 1)','s');\r
47 if ch=='1'\r
48     % on peut positionner la fenetre en fonction de celle des commandes\r
49     pos=get(1,'position');\r
50     figure(2);\r
51     set(2,'position',pos-30);\r
52     \r
53     subplot(2,1,1);\r
54     contour(T,OMEGA,Z,[0 0]);\r
55     title('Niveau zéro de z=F(omega,t)');\r
56     xlabel('t');ylabel('omega');\r
57     \r
58     subplot(2,1,2);\r
59     % à modifier par l'utilisateur ou à saisir ou à passer comme champ!\r
60     val_omega=1;\r
61     \r
62     omega=val_omega*ones(size(t));\r
63     plot(t,fonct1(omega,t));\r
64     xlabel('t');ylabel(['y=F(' num2str(val_omega) ',t)']);\r
65     legend(['Courbe y=F(omega,t) pour omega=' num2str(val_omega)],0);\r
66 end\r
67 \r
68 \r
69 \r