Section courante

A propos

Section administrative du site

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 Turbo Pascal pour Windows suivant :

  1. Program Wave;
  2.  
  3. Uses WinCrt;
  4.  
  5. Function Square(X:Real):Real;Begin
  6.  Square := X * X;
  7. End;
  8.  
  9. Function SquareRoot(X:Real):Real;
  10. Var
  11.  A,B,M,XN:Real;
  12. Begin
  13.  If X=0.0Then Begin
  14.   SquareRoot:=0.0;
  15.  End
  16.   Else
  17.  Begin
  18.   M:=1.0;
  19.   XN:=X;
  20.   If XN < 0.0 Then XN := -XN;
  21.   While XN>=2.0 do Begin
  22.    XN:=0.25*XN;
  23.    M:=2.0*M;
  24.   End;
  25.   While XN<0.5 do Begin
  26.    XN:=4.0*XN;
  27.    M:=0.5*M;
  28.   End;
  29.   A:=XN;
  30.   B:=1.0-XN;
  31.   Repeat
  32.    A:=A*(1.0+0.5*B);
  33.    B:=0.25*(3.0+B)*B*B;
  34.   Until B<1.0E-15;
  35.   SquareRoot:=A*M;
  36.  End;
  37. End;
  38.  
  39. Function Exp(X:Real):Real;
  40. Const
  41.  A0 = 0.05;
  42.  A1 = 6.9;
  43.  A2 = 205.8;
  44.  A3 = 42.0;
  45. Var
  46.  Y,Z:Real;
  47. Begin
  48.  Y := Square(X);
  49.  z := a2/(y + a3);
  50.  Z := A0*Y + X + A1 - Z;
  51.  Exp := 1.0 - 2.0 * X / Z;
  52. End;
  53.  
  54.  
  55. Function Tanh(A:Real):Real;Begin
  56.  Tanh:= -Exp(-A)/(Exp(A)+Exp(-A))*2.0+1.0;
  57. End;
  58.  
  59. Function DispersionWave(WaveNumber,Depth,Gravity:Real):Real;Begin
  60.  DispersionWave:=SquareRoot(WaveNumber*Gravity*Tanh(WaveNumber*Depth));
  61. End;
  62.  
  63. Var
  64.  W,WaveNumber:Real;
  65.  
  66. BEGIN
  67.  WriteLn('Nombre de vague Frequence de vague');
  68.  WaveNumber:=0.01;
  69.  While WaveNumber<2.0 do Begin
  70.   Write(WaveNumber:0:2,' ');
  71.   W:=DispersionWave(WaveNumber,2.0,9.8066);
  72.   WriteLn(W:0:14);
  73.   WaveNumber:=WaveNumber+0.1;
  74.  End;
  75. 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 : Dimanche, le 10 décembre 2017