Sauts de croissance démographique
-
- Messages : 2184
- Inscription : jeu. déc. 08, 2005 3:56 pm
Sauts de croissance démographique
Bonjour, bonjour.
Je trouve la progression de la croissance démographique en fonction de la taille de la population un peu brusque. L'une de mes planètes a mis deux fois plus de temps à passer 90k à 100k habitants que pour passer de 100k à 200k.
Apparemment, vous avez pour divers seuils avec divers facteurs de l'indicateur de la croissance démographique (x0.1 ; x1 ; ...). Ne pourrait-on pas plutôt utiliser une gaussienne du log10 de la population ? Le calcul n'étant fait qu'une fois par jour et par planète, ce ne serait pas gourmand et plus efficace.
Exemple avec I*exp( - (log10(pop) - P0)² / Lambda)
Soit I l'indicateur démographique.
Voici ce que ça donne avec P0 = 6 et Lambda = 3.
La croissance est donnée en multiple de I.
1k.............0,05
10k...........0,26..........Plus rapide que le 0.1 actuel
100k.........0,71..........Plus lent que le 1.0 actuel
1M............1,00
10M..........0,71
100M.........0,26
1G............0,05..........Assez bon pour atteindre doucement les 10G
10G..........0,005........Croissance faible (qqs millions par soir)
Pour l'intégration temporelle de L*f(L), si quelqu'un peut me dépanner, je suis un poil rouillé et je manque de temps.
Qu'en pensez-vous ?
Je trouve la progression de la croissance démographique en fonction de la taille de la population un peu brusque. L'une de mes planètes a mis deux fois plus de temps à passer 90k à 100k habitants que pour passer de 100k à 200k.
Apparemment, vous avez pour divers seuils avec divers facteurs de l'indicateur de la croissance démographique (x0.1 ; x1 ; ...). Ne pourrait-on pas plutôt utiliser une gaussienne du log10 de la population ? Le calcul n'étant fait qu'une fois par jour et par planète, ce ne serait pas gourmand et plus efficace.
Exemple avec I*exp( - (log10(pop) - P0)² / Lambda)
Soit I l'indicateur démographique.
Voici ce que ça donne avec P0 = 6 et Lambda = 3.
La croissance est donnée en multiple de I.
1k.............0,05
10k...........0,26..........Plus rapide que le 0.1 actuel
100k.........0,71..........Plus lent que le 1.0 actuel
1M............1,00
10M..........0,71
100M.........0,26
1G............0,05..........Assez bon pour atteindre doucement les 10G
10G..........0,005........Croissance faible (qqs millions par soir)
Pour l'intégration temporelle de L*f(L), si quelqu'un peut me dépanner, je suis un poil rouillé et je manque de temps.
Qu'en pensez-vous ?
-
- Site Admin
- Messages : 4718
- Inscription : mar. mars 29, 2005 3:27 pm
-
- Messages : 1385
- Inscription : jeu. août 31, 2006 5:47 pm
-
- Messages : 2184
- Inscription : jeu. déc. 08, 2005 3:56 pm
Merci pour vos commentaires.
Je viens de reprendre tout ça en utilisant mon tableur préféré pour m'éviter d'avoir à sortir l'artillerie lourde mathématique. Voici le nombre de cycles nécessaires pour arriver, avec un indicateur démo de 20, d'arriver à une population N en partant de 10k habitants.
Pop...........Temps
100k.........28 (un mois)
1M............42
10M..........56 (deux mois)
100M.........83 (trois mois)
1G............190 (six mois)
10G..........1067 (trois ans)
Je tiens à votre dispotion une feuile de calcul OOo permettant de tout recalculer en faisant varier I, Lambda et P0.
Je viens de reprendre tout ça en utilisant mon tableur préféré pour m'éviter d'avoir à sortir l'artillerie lourde mathématique. Voici le nombre de cycles nécessaires pour arriver, avec un indicateur démo de 20, d'arriver à une population N en partant de 10k habitants.
Pop...........Temps
100k.........28 (un mois)
1M............42
10M..........56 (deux mois)
100M.........83 (trois mois)
1G............190 (six mois)
10G..........1067 (trois ans)
Je tiens à votre dispotion une feuile de calcul OOo permettant de tout recalculer en faisant varier I, Lambda et P0.
-
- Messages : 2184
- Inscription : jeu. déc. 08, 2005 3:56 pm
Il ne s'agit pas de pouvoir vérifier mais de pouvoir tester d'autres jeux de valeurs sans aucun effort.
Par exemple, en deux secondes je vois qu'avec P0 = 6,25 et Lambda = 4 on a :
Pop...........Temps
100k.........28 (un mois)
1M............43
10M..........56 (deux mois)
100M.........75
1G............119 (quatre mois)
10G..........303 (dix mois)
Et aussi : 100G........1596 (cinq ans )
Le 100G ne devrait pas pouivoir être atteint dans le design original. Ici on vérifie qu'en pratique ce n'est pas possible.
Par exemple, en deux secondes je vois qu'avec P0 = 6,25 et Lambda = 4 on a :
Pop...........Temps
100k.........28 (un mois)
1M............43
10M..........56 (deux mois)
100M.........75
1G............119 (quatre mois)
10G..........303 (dix mois)
Et aussi : 100G........1596 (cinq ans )
Le 100G ne devrait pas pouivoir être atteint dans le design original. Ici on vérifie qu'en pratique ce n'est pas possible.
-
- Messages : 2184
- Inscription : jeu. déc. 08, 2005 3:56 pm
-
- Messages : 2184
- Inscription : jeu. déc. 08, 2005 3:56 pm
Bon, voilà, j'ai rebossé un peu sur ma formule qui ne me satisfaisait pas complètement. Avec la précédente, il était trop dur de s'assurer qu'on resterait sous les 10G habitants. Cette condition exercait de trop grandes contraintes sur les paramètres qu'on ne pouvait fixer librement pour ajuster finement la durée des différents palliers de population. Alors, j'ai ajouté un filtre passe-bas modifié.
La nouvelle formule est donc :
C = I * exp( - (log10(P)/L0)² / Lambda) / sqrt(1 + (P / PC)^Ec)
- Le résultat, C, est la croissance par cycle de la planète
- I est l'indice démographique de croissance
- P est la population
- L0 est le logarithme base 10 de la population pour laquelle la croissance est maximale
- Lambda est la finesse de la courbe : la gaussienne est plus ou moins piquée
- Pc est la population de coupure, à partir de laquelle la croissance doit rapidement chuter, de façon à s'arrêter avant les 10G
- Ec est l'exposant de coupure, permettant de rendre la chute plus ou moins brutale à l'approche des 10G
Voilà ce que ça donne avec :
I = 25 (25% de croissance par cycle au max)
L0 = 7 (pic à dix millions d'habitants)
Lambda = 10 (courbe épaisse)
Pc = 8E9 (coupure à partir de 8 milliards d'habitants)
Ec = 100 (coupure rapide)
En partant d'une population initiale de 10k, voici le nombre de cycles nécessaires pour parvenir à chacun des palliers de population
100k 19
1M 32
10M 43
100M 54
1G 66
2G 71
5G 78
8G 82
9G 145
10G Quelques millénaires
On arrive un milliard en à peu près autant de temps qu'avec la formule actuellement utilisée par Apo. Au-delà, je ne sais pas comment le jeu se comporte aujourd'hui.
La nouvelle formule est donc :
C = I * exp( - (log10(P)/L0)² / Lambda) / sqrt(1 + (P / PC)^Ec)
- Le résultat, C, est la croissance par cycle de la planète
- I est l'indice démographique de croissance
- P est la population
- L0 est le logarithme base 10 de la population pour laquelle la croissance est maximale
- Lambda est la finesse de la courbe : la gaussienne est plus ou moins piquée
- Pc est la population de coupure, à partir de laquelle la croissance doit rapidement chuter, de façon à s'arrêter avant les 10G
- Ec est l'exposant de coupure, permettant de rendre la chute plus ou moins brutale à l'approche des 10G
Voilà ce que ça donne avec :
I = 25 (25% de croissance par cycle au max)
L0 = 7 (pic à dix millions d'habitants)
Lambda = 10 (courbe épaisse)
Pc = 8E9 (coupure à partir de 8 milliards d'habitants)
Ec = 100 (coupure rapide)
En partant d'une population initiale de 10k, voici le nombre de cycles nécessaires pour parvenir à chacun des palliers de population
100k 19
1M 32
10M 43
100M 54
1G 66
2G 71
5G 78
8G 82
9G 145
10G Quelques millénaires
On arrive un milliard en à peu près autant de temps qu'avec la formule actuellement utilisée par Apo. Au-delà, je ne sais pas comment le jeu se comporte aujourd'hui.
-
- Messages : 173
- Inscription : jeu. sept. 27, 2007 7:39 am
- Localisation : colmar/houilles