Marée progressive et stationnaire.txt
Transcription
Marée progressive et stationnaire.txt
0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 // propagation d'onde en eaux peu profondes // Canal ouvert à droite (istat=0) ou stationnaire (istat=1) clf() LONG=10000000; // longueur du canal fact=1000000 // facteur d'échelle pour représentation des vecsteurs vitesse istat=1 // onde stationnaire (0) ou non (1) a=5;// amplitude de l'onde yminaffich=-50 //affiche la profondeur jusqu'à une profondeur de 50 m b=get("current_axes"); b.data_bounds=[0,yminaffich;LONG/fact,6]; c=b.children d=gca() //définition des axes d.data_bounds=[0,-50;10,20]; d.axes_visible = 'on'; d.labels_font_size=2; d.x_label.font_size = 3;d.y_label.font_size = 3; d.x_label.text="abscisse en millions de km (cas d''école)" d.y_label.text="profondeur d''eau totale : 500 m" // fixer la couleur du champ de vecteur à "blanc" f=gcf() f.color_map=wintercolormap(32) // définit les dimensions de la figure f.figure_position f.figure_size=[1500,500] c=b.children title('Propagation de la marée en milieu infini','position',[0.5 20],'fontsize',5) // données g=9;81 // gravite T=12*3600; // période de l'onde d=500; //profondeur d'eau C=sqrt(g*d);// célérité de l'onde L=T*C;//longueur d'onde k=2*%pi/L ;// nombre d'onde x=0:LONG/1000:LONG //discrétisation suivant x sigma=2*%pi/T // fréquence coefu=a*g*k/sigma // utilisé pou la vitesse //couleurs des aires des courbes id1=color('white') id2=color(0,191,255) //============================================================================== i=0 for t=0:3600:12*3600 // fixer la couleur du champ de vecteur à "blanc" i=i+1 if i<>1 then yprec=y; end y=a*cos(k*x-sigma*t) if istat==1 then y=y+a*cos(k*x+sigma*t) end if i==1 then yprec=y; end xfpolys([x'/fact;LONG/fact;0],[yprec';yminaffich;yminaffich],[id1]) plot(x'/fact,yprec',"w") xfpolys([x'/fact;LONG/fact;0],[y';yminaffich;yminaffich],[id2]) deltay=max(y,yprec) num=string(i) xpause(100000); title('Propagation de la marée en milieu infini :... '+num+ ' heures','position',[0.5 20],'fontsize',5) // dessin des vecteurs vitesse xvect=[1 2 3 4 5 6 7 8 9 20];yvect=[-40:10:-10] fvarx=coefu*cos(k*xvect*fact-sigma*t); if istat==1 then fvarx=fvarx-coefu*cos(k*xvect*fact+sigma*t); end fvarx(10)=3; fx=fvarx'*ones(1,4);fy=zeros(10,4); // tracé des vecteurs vitesse champ(xvect',yvect',fx,fy,arfact=1,rect=[0,-50,10,20]) //GIF export xs2gif(0,'Marée_'+string(i)+'.gif'); end