Estimation de la proportion des océans du globe selon la méthode de Monte Carlo

Comme un morpion malpoli, insultant et débile (dont le message a été supprimé par Yahoo depuis…) ne m’a pas pris au sérieux quand j’avais raconté que l’on peut estimer la proportion de la surface des océans du globe par rapport à la surface totale au moyen d’une méthode statistique, alors je vais prouver que c’est possible dans le présent article.

Description de la méthode :

On pixelise la surface du globe terrestre en un grand nombre de points disposés aléatoirement (ça tombe au hasard soit en mer, soit sur continent). Ensuite on compte le nombre de points situés dans les océans par rapport au nombre total de points.

Cette méthode statistique est connue sous le nom de méthode de Monte Carlo. Cette méthode sert même à déterminer la valeur du nombre π. Hé oui, ça marche avec des méthodes aléatoires. N’en déplaise à certains, hein…

Historiquement, le véritable développement des méthodes de Monte-Carlo s’est effectué sous l’impulsion de John von Neumann et Stanislas Ulam notamment, lors de la Seconde Guerre mondiale et des recherches sur la fabrication de la bombe atomique. À l’époque, il fallait trouver des moyens de calculer plus vite ou de gagner du temps. Cela peut paraître paradoxal, mais les méthodes aléatoires ça marche. Sinon, cela aurait été de la folie de s’en servir inutilement en temps de guerre, n’est-ce pas ?…

J’ai conçu un programme en langage Perl. La latitude géographique est dans l’intervalle -90° et +90°, et la longitude géographique est dans l’intervalle -180° et +180°. Le signe de chaque valeur a 50% de chances d’être négatif et 50% d’être positif.

Voici le code source du programme Perl :

#!/usr/bin/perl

for ($stat = 1; $stat <= 30; $stat++)
{
$boolean1 = rand();
$boolean2 = rand();
$signe1 = 1;
$signe2 = 1;

if ($boolean1 < 0.5)
{
$signe1 = -1;
}
if ($boolean2 < 0.5)
{
$signe2 = -1;
}
$latitude = $signe1 * rand(90);
$longitude = $signe2 * rand(180);
print « $latitude,$longitude \n »;
}

En exécutant le programme, j’obtiens une liste de 30 coordonnées géographiques. Je reporte chacune sur le site de https://maps.google.fr. Et j’examine sur quel endroit ça tombe sur le globe terrestre.

Voici la liste des 30 coordonnées obtenues aléatoirement :

61.1818135145515,174.455953265919 : Mer de Bering
63.1572301987557,130.94970081205 : Russie continentale, près de Yakoutsk
27.1788839660237,109.158485777037 : Chine continentale
-34.2470709784551,-60.8486417803449 : Argentine, près de Rojas
30.2648982735253,149.441613619355 : Océan Pacifique, près de la fosse du Japon
-41.447058743573,-162.897429882856 :Océan Pacifique Sud
31.3210105706191,43.0036188922723 : Irak, près de Karbala et de Arar, zone désertique
51.0959386159527,140.353727370045 : Russie continentale, en face de l’île Sakhaline
10.7073637661307,14.7055933236143 : Afrique continentale, près de N’Djamena
72.0511604726763,13.7606796791616 : Mer de Norvège
-3.16467506922542,-118.088800153522 : Océan Pacifique Sud
57.1933402046566,125.42001226909 : Russie
15.0156951780626,23.6173422545232 : Soudan, Afrique
0.693272879419204,105.634334319018 : Mer de Chine méridionale, près de Singapour
5.6853994567647,144.171775358691 : Océan Pacifique Nord
57.1193557755404,142.38070063337 : Mer d’Okhotsk
-3.41863738565195,-32.5558904626026 : Océan Atlantique Sud
-43.4005580335695,-141.274953581579 : Océan Pacifique Sud
-59.1408893833474,-14.057973746069 : Océan Atlantique Sud
-43.7273570900159,-38.1967736934708 : Océan Atlantique Sud
-60.9623306576857,-159.857997835532 : Océan du Sud, près de l’Antarctique
-61.7294340657307,-136.373618618663 : Océan du Sud, près de l’Antarctique
-38.407476056716,-89.1450323175193 : Océan Pacifique Sud
-18.5078245475625,-178.966282115071 : Océan Pacifique, près de Wallis et Futuna
34.7556621320018,100.282355112638 : Chine continentale
20.3173332238488,58.0407740428225 : Mer d’Arabie, entre l’Inde et l’Arabie
-68.7392298501737,-21.4141647990727 : Océan du Sud, près de l’Antarctique
7.06014342079737,11.2906061065463 : Afrique continentale, Nigeria
21.5626404513493,135.18144372669 : Océan Pacifique Nord
27.0773473134182,90.1556991052541: Bhoutan, Asie

  • Bilan : il y a 19 points situés dans les océans par rapport à 30 points du globe au total. Avec l’échantillon de 30 coordonnées, le résultat montre ici que les océans occupent 63,33% de la surface du globe. On n’est pas trop loin des 70% attendus. Avec un échantillon de dizaines de milliers de coordonnées, ou des millions, la précision est sensiblement meilleure. Avec seulement 30 coordonnées, l’échantillon reste insuffisant, mais il a juste servi d’exemple pour l’article ici. Il est possible d’améliorer le code du programme pour rendre la besogne plus rapide, et en ayant un échantillon plus représentatif.

Voici le code source modifié :

for ($stat = 1; $stat <= 30; $stat++)
{
$boolean1 = rand();
$boolean2 = rand();
$signe1 = 1;
$signe2 = 1;
if ($boolean1 < 0.5)
{
$signe1 = -1;
}
if ($boolean2 < 0.5)
{
$signe2 = -1;
}
$latitude = $signe1 * rand(90);
$longitude = $signe2 * rand(180);
$url = « maps.google.fr/maps?q »;
print « <a href=\ »$url=$latitude,$longitude\ »>Position n° $stat</a> \n »;
}

© 2013 John Philip C. Manson

Advertisements