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 Ada suivant :
- WITH TEXT_IO;
-
- PROCEDURE Wave IS
-
- USE TEXT_IO;
-
- W,WaveNumber:Float;
-
- FUNCTION Sqr(X:IN Float) RETURN Float IS BEGIN
- RETURN X*X;
- END Sqr;
-
- FUNCTION Exp(X:IN Float) RETURN Float IS
- A0 : CONSTANT := 0.05;
- A1 : CONSTANT := 6.9;
- A2 : CONSTANT := 205.8;
- A3 : CONSTANT := 42.0;
- Y, Z: Float;
- BEGIN
- Y := Sqr(X);
- z := a2/(y + a3);
- Z := A0*Y + X + A1 - Z;
- RETURN 1.0 - 2.0*X/Z;
- END Exp;
-
- FUNCTION Sqrt(X:IN Float) RETURN Float IS
- A,B,M,XN:FLOAT;
- BEGIN
- IF X=0.0 THEN
- RETURN 0.0;
- ELSE
- M:=1.0;
- XN:=X;
- IF XN<0.0 THEN
- XN:=-XN;
- END IF;
- WHILE XN>=2.0 LOOP
- XN:=0.25*XN;
- M:=2.0*M;
- END LOOP;
- WHILE XN<0.5 LOOP
- XN:=4.0*XN;
- M:=0.5*M;
- END LOOP;
- A:=XN;
- B:=1.0-XN;
- LOOP A:=A*(1.0+0.5*B);
- B:=0.25*(3.0+B)*B*B;
- EXIT WHEN B<1.0E-15;
- END LOOP;
- RETURN A*M;
- END IF;
- END;
-
- FUNCTION Tanh(A:IN Float) RETURN Float IS BEGIN
- RETURN -Exp(-A)/(Exp(A)+Exp(-A))*2.0+1.0;
- END Tanh;
-
- FUNCTION DispersionWave(WaveNumber,Depth,Gravity:IN Float) RETURN Float IS BEGIN
- RETURN Sqrt(WaveNumber*Gravity*Tanh(WaveNumber*Depth));
- END DispersionWave;
-
- BEGIN
- PUT_LINE("Nombre de vague Frequence de vague");
- WaveNumber:=0.01;
- WHILE WaveNumber<2.0 LOOP
- PUT(FLOAT'IMAGE(WaveNumber) & " ");
- W:=DispersionWave(WaveNumber,2.0,9.8066);
- PUT_LINE(FLOAT'IMAGE(W));
- WaveNumber:=WaveNumber+0.1;
- END LOOP;
- END Wave;
on obtiendra le résultat suivant :
Nombre de vague Frequence de vague0.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 : Samedi, le 25 août 2012