GINOUX Pierre-Henri
Question 0 : Décrire votre intuition
1.Je pense que la probabilité de la ville qui a eu la chance d'avoir acceuilli les premières personnes va croître très vite, et que cette ville va se peupler au dépend de la seconde.
2.Je pense que la probabilité va croître très vite jusqu'à tendre vers 1.
3.Tant que le nombre d'habitants initiaux dans les 2 villes est équivalent, je pense que cela ne vas rien changer au résultat, juste que la ville qui va se peupler au dépend de l'autre va mettre plus de temps à prendre le dessus.Dans le cas ou le nombre d'habitants est différent pour les 2 villes, je pense que celle qui a le plus d'habitants au départ va croître très très vite au dépend de l'autre, et que la probabilité que les personnes aillent dans cette ville va augmenter très très vite jusqu'à atteindre quasiment 1.
Question 1 : Premières observations de la dynamique
evolution = function(n1, n2, nbtrajectoires, N) {
set.seed(2)
pm = matrix(ncol = nbtrajectoires, nrow = N)
mn1 = matrix(ncol = nbtrajectoires, nrow = N)
mn2 = matrix(ncol = nbtrajectoires, nrow = N)
# On initialise les trajectoires
for (i in 1:nbtrajectoires) {
pm[1, i] = n1/(n1 + n2)
mn1[1, i] = n1
mn2[1, i] = n2
}
# On remplis les matrices
for (j in 1:nbtrajectoires) {
p = runif(N - 1, 0, 1)
for (i in 2:N) {
if (pm[i - 1, j] > p[i - 1]) {
# On ajoute un habitant à la ville 1, la ville 2 ne subit aucun
# changement
mn2[i, j] = mn2[i - 1, j]
mn1[i, j] = mn1[i - 1, j] + 1
} else {
# On ajoute un habitant à la ville 2, la ville 1 ne subit aucun
# changement
mn2[i, j] = mn2[i - 1, j] + 1
mn1[i, j] = mn1[i - 1, j]
}
pm[i, j] = mn1[i, j]/(mn1[i, j] + mn2[i, j])
}
}
return(pm)
}
pm1 = evolution(1, 1, 10, 10000)
matplot(pm1[1:1000, ], type = "l", ylab = "Nombre de tirages", xlab = "Evolution de P(t)",
main = "Trajectoires possible de P(t) pour (n1(1),n2(1)=(1,1))")
Après un essai avec n = 10000 pour s'assurer de la stabilisation des différentes courbes, on décide de fixer n = 1000 pour avoir plus de lisibilité. On voit que toute les courbes se stabilisent au bout d'un certain temps. Ce qui s'explique par la perte de l'importance d'une personne dans la modification de la probabilité à fur et a mesure que le nombre d'habitants progresse. C'est à dire qu'à partir d'un certain t, lorsque un habitant est rajouté, peu importe dans la ville ou il aille, P(t) ne sera quasiment pas modifié, ce qui est logique.
Question 2 : Loi statistique de la limite
pm2 = evolution(1, 1, 1000, 1000)
hist(pm2[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den <- density(pm2[1000, ])
lines(den, col = "red")
La valeur limite suit une loi de repartition uniforme, comme on peut le voir avec le tracé de la densité (trait rouge). Ce qui est logique car la valeur de stabilisation de P(t) dépend entièrement des valeurs aléatoires tirées au début.
Question 3 : Influence de la répartition initiale
pm3 = evolution(10, 10, 1000, 1000)
hist(pm3[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den2 <- density(pm3[1000, ])
lines(den2, col = "red")
On remarque que la répartition des P(t) est maitenant centrée en 0.5, cela se rapproche donc d'une loi normale.
# (100,100)
pm4 = evolution(100, 100, 1000, 1000)
hist(pm4[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den3 <- density(pm4[1000, ])
lines(den3, col = "red")
On est toujours ici sur une loi normale centrée en 0.5, on remarque toutefois que la convergence est plus rapide que précedemment.
# (100,100)
pm4 = evolution(1000, 1000, 1000, 1000)
hist(pm4[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den3 <- density(pm4[1000, ])
lines(den3, col = "red")
On voit ici clairement l'apparition de la loi normale centrée en 0.5.
# (1,10)
pm5 = evolution(1, 10, 1000, 1000)
hist(pm5[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den4 <- density(pm5[1000, ])
lines(den4, col = "red")
Lorsque l'on déséquilibre les populations initiales, la population de la ville qui a le plus grand nombre d'habitants de base croît très très vite au dépend de la seconde. A la fin, quasiment tout le habitants se trouve dans la ville qui était avantagée au début, ce qui est normal puisque la probabilité que le nouvel habitant rejoigne cette ville augmente très vite au dépend de la probabilité de rejoindre la seconde ville .
# (1,100)
pm6 = evolution(1, 100, 1000, 1000)
hist(pm6[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den5 <- density(pm6[1000, ])
lines(den5, col = "red")
Lorsque le déséquilibre est accentué, on remarque que la différence finale de population est également très accentuée.
# (1,1000)
pm7 = evolution(1, 1000, 1000, 1000)
hist(pm7[1000, ], breaks = 100, ylab = "Limite de P(t)", xlab = "Fréquence de P(t)",
main = "Répartition des limites de P(t)")
den6 <- density(pm7[1000, ])
lines(den6, col = "red")
Lorsque le déséquilibre est encore accentué, on remarque que quasiment la totalité des habitants se trouve dans la ville qui était avantagée au départ.
Question 4 : Avez vous changé d'avis ?
Pour ce qui est de la question 1, de la question 2 et de la fin de la question 3, le résultat semble plutôt conforme à mon intuition. Par contre, la surprise se situe au niveau de la loi normale qui fait son apparition lorsque l'on augmente de manière équivalent la population de départ des 2 villes. On pourrait également rajouter d'autres critères pour les tests, qui rapprocheraient cette expérience de la réalité, avec par exemple la situation économique et l'immigration qui en découle.