Gladir.com - Pascal - Océanographie - Fréquence des vagues


Dans le domaine scientifique, on assiste souvent à des cachoteries de la connaissance sur des choses aussi banale que la fréquence des vagues sur l'océan en fonction du nombre de vague. Heureusement des livres comme «Encyclopededia Universalis, Dictionnaire des Sciences de la Terre, pages 588-591, Houles et vagues, 1998, ISBN: 2-226-10094-6» éclaircissent ce genre de question et nous empêche de tomber directement au Moyen-Age. Vous trouverez la réponse que vous souhaitez, à l'aide du code source Pascal suivant:
Program Wave;

Function Square(X:Real):Real;Begin
 Square := X * X;
End;

Function SquareRoot(X:Real):Real;
Var
 A,B,M,XN:Real;
Begin
 If X=0.0Then Begin
  SquareRoot:=0.0;
 End
  Else
 Begin
  M:=1.0;
  XN:=X;
  If XN < 0.0 Then XN := -XN;
  While XN>=2.0 do Begin
   XN:=0.25*XN;
   M:=2.0*M;
  End;
  While XN<0.5 do Begin
   XN:=4.0*XN;
   M:=0.5*M;
  End;
  A:=XN;
  B:=1.0-XN;
  Repeat
   A:=A*(1.0+0.5*B);
   B:=0.25*(3.0+B)*B*B;
  Until B<1.0E-15;
  SquareRoot:=A*M;
 End;
End;

Function Exp(X:Real):Real;
Const
 A0 = 0.05;
 A1 = 6.9;
 A2 = 205.8;
 A3 = 42.0;
Var
 Y,Z:Real;
Begin
 Y := Square(X);
 z := a2/(y + a3);
 Z := A0*Y + X + A1 - Z;
 Exp := 1.0 - 2.0 * X / Z;
End;


Function Tanh(A:Real):Real;Begin
 Tanh:= -Exp(-A)/(Exp(A)+Exp(-A))*2.0+1.0;
End;

Function DispersionWave(WaveNumber,Depth,Gravity:Real):Real;Begin
 DispersionWave:=SquareRoot(WaveNumber*Gravity*Tanh(WaveNumber*Depth));
End;

Var
 W,WaveNumber:Real;

BEGIN
 WriteLn('Nombre de vague Frequence de vague');
 WaveNumber:=0.01;
 While WaveNumber<2.0 do Begin
  Write(WaveNumber:0:2,' ');
  W:=DispersionWave(WaveNumber,2.0,9.8066);
  WriteLn(W:0:14);
  WaveNumber:=WaveNumber+0.1;
 End;
END.
on obtiendra le résultat suivant:
Nombre de vague Frequence de vague
0.01                0.0442838405346847
0.11                0.483284245969315
0.21                0.904120000135606
0.31                1.29439350996723
0.41                1.64750037820416
0.51                1.96223961769009
0.61                2.24116780044981
0.71                2.48877439250178
0.81                2.71009411116294
0.91                2.90988655848262
1.01                3.09226456180236
1.11                3.26060035427737
1.21                3.4175734276094
1.31                3.56527459565709
1.41                3.70532058634234
1.51                3.83895838612317
1.61                3.96715215371979
1.71                4.09065210263135
1.81                4.21004747750794
1.91                4.32580654215394


Dernière mise à jour: Mardi, le 7 février 2006