le nombre d’alèles bleus:

a=0:MM b=2:BB

commençons par fixer la graine

set.seed(53)

Question 0 : Decrire votre intuition

Intuitivement, Les alleles donnant la couleur bleue sont recessifs par rapport aux alleles donnant la couleur marron.Donc avec petit i(ieme) et petit P(nb d’individual), il n’est pas évident pour moi que ça converge(stable) en temps court (petit I).

Après, je pense que si on part de situations où il y a une population et generation plus loin(grande), probablement qu’on a de moins en moins de gens des yeux bleus.

Question 1 : Cas d’une petite population

a partir de Po,on gene des resultats d’un processus aleatoire

Ici c’est p1 de Po(new_population):

new_population = function(N = 20, a = 12, b = 4) {
  Pere = rep(0:2,c(a,N-a-b,b));#p0:a--0=mm

  PARENT=sample(Pere,size=N,replace =T)
  Enfant_P=ifelse(PARENT==0,0,
                  ifelse(PARENT==1,sample(size = 1,x=c(0,1),replace = T),1));
  Enfant_M=ifelse(PARENT==0,0,
                  ifelse(PARENT==1,sample(size = 1,x=c(0,1),replace = T),1));
  Enfant = Enfant_M + Enfant_P;
  Enfant
}

On note tous proportions de personnes ayant les yeux bleus(BB) de 1er a Ieme generation:

resultat = function(I=20,N=20,a=12,b=4,bm=2){
  Enfant = new_population(N=N,a=a,b=b)
  resultat<-c()
  resultat=sum(Enfant==bm)/N
  for (i in 2:I) {
      Enfant= new_population(N=N,a=sum(Enfant==0),b=sum(Enfant==2))
      resultat = c(resultat,sum(Enfant==bm)/N)
  }
  resultat
}

N = 10 realisations des trajectoires de (BBi/P, MMi/P) en partant des populations P0 initiales suivantes :

P0 = (BB0, MM0) = (4, 12)

BB

MM

plot(resultat(bm=0), ylim = c(0, 1),type="l", xlab="i (Igeneration)",
    ylab="pourcent de personne MM/P" ) 
# add lines 
for (i in 1:10) { 
  lines(resultat(bm=0),  type="l", lwd=1.5,col=i+20) 
} 

C’est pas tres evidemment, mais des courbes ça converge un petit peu.

Avec un plus grand horizon I=100 et P0 = (BB0, MM0) = (5, 5):

plot(resultat(I=100,a=5,b=5,bm=2), ylim = c(0, 1),type="l", xlab="i (Igeneration)",
    ylab="pourcent de personne d'alèles bleus (BB/P)" ) 
# add lines 
for (i in 1:10) { 
  
  lines(resultat(I=100,a=5,b=5,bm=2),  type="l", lwd=1.5,col=i+20) 
}