les preuves de l'évolution

Le débat infini se poursuit ici
machtiern
Messages : 76
Inscription : 07 juil. 2012, 19:15

Re: les preuves de l'évolution

#51

Message par machtiern » 27 mai 2015, 13:47

Je suis confus... Je me retire sans faire de bruit...

Avatar de l’utilisateur
Lulu Cypher
Modérateur
Modérateur
Messages : 5822
Inscription : 24 avr. 2015, 22:30
Localisation : Vénus

Re: les preuves de l'évolution

#52

Message par Lulu Cypher » 27 mai 2015, 13:53

machtiern a écrit :Je suis confus... Je me retire sans faire de bruit...
:a2:

Et Dieu dit : « que Darwin soit »
------------------------------
Les animaux sont moins intolérants que nous : un cochon affamé mangera du musulman (P. Desproges)
------------------------------
Attention ce post est susceptible (lui-aussi) de contenir des traces d'humour. L'auteur tient à signaler qu'il décline toute responsabilité quant aux conséquences de leurs mésinterprétations.

Avatar de l’utilisateur
Ethel
Messages : 316
Inscription : 22 oct. 2014, 12:34

Re: les preuves de l'évolution

#53

Message par Ethel » 28 mai 2015, 07:44

Hello !

J'avais un peu de temps à perdre, je me suis amusée à faire un petit programme de sélection naturelle : l'environnement d'une population d'individus dont les tailles varient (uniformément) entre 0.1 et 1 change au temps 0 et à partir de là, leur nourriture se trouve en hauteur (aléatoire entre 0 et 1 par défaut). Quand ils n'ont plus à manger, ils meurent. Ils peuvent faire des bébés, qui prennent une taille comprise entre celles des parents. On voit l'évolution de la population sur plusieurs générations (10 par défaut). C'est sous Scilab, vous pouvez copier-coller le code ci-dessous dans un fichier .sce .
SpoilerAfficher
// Un jour, l’environnement de la population des pikmins change : alors que jusqu'à présent, leur nourriture, le pikmiam, se trouvait au sol, un accident magnetico-telluro-quantique le fait maintenant léviter. Comment les pikmins vont-ils s'adapter à leur nouvel environnement ?

// effacer tous les graphs des simulations précédentes
xdel(winsid());
// effacer toutes les variables des simulations précédentes
clear;

//------------------------------------------------------------------------------
//paramètres qu'on peut bidouiller

// nombre de "pas de temps" (jours par ex) par génération
T=10;
// nombre total de générations
G=10;
// nombre d'individus de la première génération
N=1000;
// hauteur minimale de la nourriture ie difficulté à obtenir de la nourriture (entre 0 et 1)
difF=0;
// difficulté à faire un bébé (entre 0 (lapin) et 1 (panda) :-) )
difB=0.3;
// stock initial de nourriture de chaque individu
stockI=0;

//------------------------------------------------------------------------------

// la moitié de la population (les h premiers sont des filles, les autres des garçons ou vice-versa, l'individu n est en couple avec l'individu n+h)
h=floor(N/2);

//taille des individus de la première génération définie aléatoirement entre 0.1 et 1
taille=0.9*rand(1,N)+0.1;

// définition du vecteur des abscisses pour l'histogramme
[x]=linspace(0.1,1,90);

// calcul et enregistrement des tailles min, max et moy du nombre d'individus de la population
m(1,1)=min(taille);
M(1,1)=max(taille);
mm(1,1)=mean(taille);
Nn(1,1)=N;

// histogramme des tailles
figure;
histplot(x,taille);
xtitle('Histogramme des tailles', 'Tailles', 'Nombre d''individus');

// à chaque génération
for g=1:G

// chaque individu reçoit un stock de nourriture égal à stockI
stock=stockI*ones(1,N);

j=1;

// à chaque pas de temps
for t=1:T

// chaque individu trouve de la nourriture à une certaine hauteur déterminée aléatoirement entre 0 et 1
testfood=rand(1,N);

// pour chaque individu
for n=1:N

// si l'individu est aussi grand ou plus grand que la hauteur où se situe la nourriture qu'il a trouvé, il la prend
if taille(1,n)>=testfood(1,n)+difF

// dans ce cas son stock augmente de 1
stock(1,n)=stock(1,n)+1;

end

// si le stock de l'individu atteint 0, il meurt de faim :'-(
if stock(1,n)<=0;

// dans ce cas, il est "effacé" de la liste des tailles
taille(1,n)=0;

end

end

// chaque couple fait un lancé de dé pour avoir un bébé (si, si, c'est comme ça qu'on fait les bébés...:-) )
testbaby=rand(1,h);

// pour chaque couple
for n=1:h

// si le résultat du lancer de dé est supérieur à la valeur de la difficulté à avoir un bébé, et qu'aucun des deux parents n'est déjà mort, la cigogne leur amène un bébé
if taille(1,n)>0 & taille(1,n+h)>0 & testbaby(1,n)>difB

// la taille du bébé est une valeur aléatoire entre les tailles des deux parents
taillebaby(1,j)=rand()*abs(taille(1,n)-taille(1,n+h))+min(taille(1,n),taille(1,n+h));

// il y a un bébé de plus !
j=j+1;

end

end //(boucle sur les individus)

// chaque individu mange et perd 1 de nourriture (à chaque pas de temps)
stock=stock-1;

end //(boucle sur le temps)

// le nombre d'individus de la nouvelle génération est égal aux nombres de bébés
N=size(taillebaby,2);

// la moitié (h)sont des filles, l'autre des garçons
h=floor(N/2);

// la liste des tailles de la nouvelle génération est la liste des tailles des bébés
taille=taillebaby;

// histogramme des tailles
figure;
histplot(x,taille);
xtitle('Histogramme des tailles', 'Tailles', 'Nombre d''individus');

// calcul et enregistrement des tailles min, max et moy du nombre d'individus de la population
m(g+1,1)=min(taille);
M(g+1,1)=max(taille);
mm(g+1,1)=mean(taille);
Nn(g+1,1)=N;

end // (boucle sur les générations)

// définition du vecteur des abscisses pour les graphs
xx=[1:1:G+1];

// graph tailles min, max, moy de la population au cours des générations
figure;
plot2d(xx,[m M mm],leg="min@max@moy");
xtitle('Evolution des tailles', 'Génération', 'Taille');

//graph nombre d'individus de chaque génération
figure;
plot2d(xx,Nn);
xtitle('Evolution de la population', 'Génération', 'Nombre d''individus');
Voici les tailles à la génération 0 :
Figure0.png
Figure0.png (6.82 Kio) Consulté 1350 fois
à la génération 5 :
Figure5.png
Figure5.png (4.95 Kio) Consulté 1350 fois
à la génération 10 :
Figure10.png
Figure10.png (4.42 Kio) Consulté 1350 fois
Il faut pas respirer la compote, ça fait tousser.

Avatar de l’utilisateur
Ethel
Messages : 316
Inscription : 22 oct. 2014, 12:34

Re: les preuves de l'évolution

#54

Message par Ethel » 28 mai 2015, 07:46

En résumé, l'évolution des tailles au cours des générations :
FigR.png
FigR.png (6.17 Kio) Consulté 1349 fois
Et le nombre d'individus au cours des générations :
FigN.png
FigN.png (6.36 Kio) Consulté 1349 fois
Désolée c'est pas très joli... :oops:
Il faut pas respirer la compote, ça fait tousser.

Avatar de l’utilisateur
spin-up
Modérateur
Modérateur
Messages : 3885
Inscription : 23 févr. 2012, 07:01

Re: les preuves de l'évolution

#55

Message par spin-up » 28 mai 2015, 08:59

Je viens d'essayer, et mon PC a pas digéré les 150 millions de Pikmins a la 42eme generation... :lol:
Mais la succession d'histogrammes faisait un tres joli graphe animé.

Prochaine etape, introduire une population de predateurs, leur quantite de nourriture etant la population de Pikmin.Quand les predateurs augmentent les pikmins diminuent, faisant diminuer les predateurs, donc les pikmins reaugmentent, etc...

Mieux...pour chasser le pikmin le predateur doit avoir une taille superieure ou egale au pikmin. Comme ca on verra une coevolution de la taille des deux populations.

Allez, au boulot, ca t'apprendra a planter mon PC avec tes populations invasives de pikmins libidineux!

Avatar de l’utilisateur
Ethel
Messages : 316
Inscription : 22 oct. 2014, 12:34

Re: les preuves de l'évolution

#56

Message par Ethel » 28 mai 2015, 09:09

spin-up a écrit :Je viens d'essayer, et mon PC a pas digéré les 150 millions de Pikmins a la 42eme generation... :lol:
...
Allez, au boulot, ca t'apprendra a planter mon PC avec tes populations invasives de pikmins libidineux!
Ah oui, c'est sûr qu'il faut être prudent avec les paramètres, sinon c'est l'invasion (ou l'extinction) :a2:
Il faut pas respirer la compote, ça fait tousser.

Avatar de l’utilisateur
Ethel
Messages : 316
Inscription : 22 oct. 2014, 12:34

Re: les preuves de l'évolution

#57

Message par Ethel » 28 mai 2015, 09:35

SpoilerAfficher
// Un jour, l'environnement de la population des pikmins change : alors que jusqu'à présent, leur nourriture, le pikmiam, se trouvait au sol, un accident magnetico-telluro-quantique le fait maintenant léviter. Comment les pikmins vont-ils s'adapter à leur nouvel environnement ?

// effacer tous les graphs des simulations précédentes
xdel(winsid());
// effacer toutes les variables des simulations précédentes
clear;

//------------------------------------------------------------------------------
//paramètres qu'on peut bidouiller

// nombre de "pas de temps" (jours par ex) par génération
T=10;
// nombre total de générations
G=10;
// nombre d'individus de la première génération
N=1000;
// hauteur minimale de la nourriture ie difficulté à obtenir de la nourriture (entre 0 et 1)
difF=0;
// difficulté à faire un bébé (entre 0 (lapin) et 1 (panda) :-) )
difB=0.3;
// stock initial de nourriture de chaque individu
stockI=0;
// nombre max de pikmins, au delà, le programme quitte
limite=50000;

//------------------------------------------------------------------------------

// la moitié de la population (les h premiers sont des filles, les autres des garçons ou vice-versa, l'individu n est en couple avec l'individu n+h)
h=floor(N/2);

//taille des individus de la première génération définie aléatoirement entre 0.1 et 1
taille=0.9*rand(1,N)+0.1;

// définition du vecteur des abscisses pour l'histogramme
[x]=linspace(0.1,1,90);

// calcul et enregistrement des tailles min, max et moy du nombre d'individus de la population
m(1,1)=min(taille);
M(1,1)=max(taille);
mm(1,1)=mean(taille);
Nn(1,1)=N;

// histogramme des tailles
figure;
histplot(x,taille);
xtitle('Histogramme des tailles', 'Tailles', 'Nombre d''individus');

// à chaque génération
for g=1:G

// chaque individu reçoit un stock de nourriture égal à stockI
stock=stockI*ones(1,N);

j=1;

// à chaque pas de temps
for t=1:T

// chaque individu trouve de la nourriture à une certaine hauteur déterminée aléatoirement entre 0 et 1
testfood=rand(1,N);

// pour chaque individu
for n=1:N

// si l'individu est aussi grand ou plus grand que la hauteur où se situe la nourriture qu'il a trouvé, il la prend
if taille(1,n)>=testfood(1,n)+difF

// dans ce cas son stock augmente de 1
stock(1,n)=stock(1,n)+1;

end

// si le stock de l'individu atteint 0, il meurt de faim :'-(
if stock(1,n)<=0;

// dans ce cas, il est "effacé" de la liste des tailles
taille(1,n)=0;

end

end

// chaque couple fait un lancé de dé pour avoir un bébé (si, si, c'est comme ça qu'on fait les bébés...:-) )
testbaby=rand(1,h);

// pour chaque couple
for n=1:h

// si le résultat du lancer de dé est supérieur à la valeur de la difficulté à avoir un bébé, et qu'aucun des deux parents n'est déjà mort, la cigogne leur amène un bébé
if taille(1,n)>0 & taille(1,n+h)>0 & testbaby(1,n)>difB

// la taille du bébé est une valeur aléatoire entre les tailles des deux parents
taillebaby(1,j)=rand()*abs(taille(1,n)-taille(1,n+h))+min(taille(1,n),taille(1,n+h));

// il y a un bébé de plus !
j=j+1;

if j>limite

disp("Désolé, une météorite a anéanti votre population de pikmins (nombre max de pikmins atteint)");

resume;

end


end

end //(boucle sur les individus)

// chaque individu mange et perd 1 de nourriture (à chaque pas de temps)
stock=stock-1;

end //(boucle sur le temps)

// le nombre d'individus de la nouvelle génération est égal aux nombres de bébés
N=size(taillebaby,2);

// la moitié (h)sont des filles, l'autre des garçons
h=floor(N/2);

// la liste des tailles de la nouvelle génération est la liste des tailles des bébés
taille=taillebaby;

// histogramme des tailles
figure;
histplot(x,taille);
xtitle('Histogramme des tailles', 'Tailles', 'Nombre d''individus');

// calcul et enregistrement des tailles min, max et moy du nombre d'individus de la population
m(g+1,1)=min(taille);
M(g+1,1)=max(taille);
mm(g+1,1)=mean(taille);
Nn(g+1,1)=N;

end // (boucle sur les générations)

// définition du vecteur des abscisses pour les graphs
xx=[1:1:G+1];

// graph tailles min, max, moy de la population au cours des générations
figure;
plot2d(xx,[m M mm],leg="min@max@moy");
xtitle('Evolution des tailles', 'Génération', 'Taille');

//graph nombre d'individus de chaque génération
figure;
plot2d(xx,Nn);
xtitle('Evolution de la population', 'Génération', 'Nombre d''individus');
Voilà, j'ai rajouté une limite à la population, au delà, ça quitte.
Il faut pas respirer la compote, ça fait tousser.

Avatar de l’utilisateur
Christian
Messages : 4061
Inscription : 03 sept. 2003, 09:59
Localisation : Montréal

Re: les preuves de l'évolution

#58

Message par Christian » 30 mai 2015, 01:23

Scilab est une version open source d'un calculateur comme Matlab?
« I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. »
« J'imagine qu'il est tentant, si le seul outil que vous avez est un marteau, de traiter tout problème comme si c'était un clou »

Abraham Maslow

Avatar de l’utilisateur
Ethel
Messages : 316
Inscription : 22 oct. 2014, 12:34

Re: les preuves de l'évolution

#59

Message par Ethel » 30 mai 2015, 05:46

Christian a écrit :Scilab est une version open source d'un calculateur comme Matlab?
Oui, c'est l'idée. Après, je suppose qu'il y a des choses qu'on ne peut pas faire sous Scilab. J'ai l'habitude de Matlab mais c'est la première fois que je réutilise Scilab depuis la fac.
Il faut pas respirer la compote, ça fait tousser.

Avatar de l’utilisateur
spin-up
Modérateur
Modérateur
Messages : 3885
Inscription : 23 févr. 2012, 07:01

Re: les preuves de l'évolution

#60

Message par spin-up » 30 mai 2015, 07:40

Le code d'Ethel tourne sous matlab si on remplace les / / par des % pour les commentaires et qu'on change remplace les lignes

histplot(x,taille);
xtitle('Histogramme des tailles', 'Tailles', 'Nombre d''individus');

par

V=hist(taille,x);
plot(x,V);

Avatar de l’utilisateur
PhD Smith
Messages : 3317
Inscription : 04 août 2011, 17:23
Localisation : Règlement: règlement

Re: les preuves de l'évolution

#61

Message par PhD Smith » 30 mai 2015, 11:03

La page de présentation de Scilab.
Imagepraedicator veridicus, inquisitor intrepidus, doctor egregiusImage

Avatar de l’utilisateur
lau'jik
Messages : 885
Inscription : 17 déc. 2012, 19:11

Re: les preuves de l'évolution

#62

Message par lau'jik » 30 mai 2015, 11:06

:shock: Comme je n'y comprend que tchi à vos logiciels (question évolution mes connaissances informatiques sont proche de la soupe primordiale :? ), voici donc un "jeu" où l'on peut faire évoluer des "bidules" (je ne sais comment appeler toutes ces espèces de petits napperons au crochet multicolors...) et intervenir sur certains paramètres. C'est un peu comme regarder un aquarium : ça calme :mrgreen:
"Parler pour ne rien dire et ne rien dire pour parler sont les deux principes majeurs et rigoureux de tous ceux qui feraient mieux de la fermer avant de l'ouvrir." Pierre Dac
"Ne pas connaître son talent, c'est faciliter la réussite des médiocres."

Phil goulet
Messages : 60
Inscription : 28 mars 2015, 11:14

Re: les preuves de l'évolution

#63

Message par Phil goulet » 30 mai 2015, 11:49

Pour revenir au sujet du post:

Voici une video explicative sur l'évolution du Nerf Laryngé chez les mamifères:

https://www.youtube.com/watch?v=cO1a1Ek-HD0

Je trouvais l'explication interressante.

Avatar de l’utilisateur
Pepejul
Messages : 9054
Inscription : 11 déc. 2013, 13:07
Localisation : Marseille, France

Re: les preuves de l'évolution

#64

Message par Pepejul » 30 mai 2015, 12:23

En effet ! Merci du lien !
On a tort d'écrire tord ! Le prochain qui fait la faute je le tords !

Avatar de l’utilisateur
Christian
Messages : 4061
Inscription : 03 sept. 2003, 09:59
Localisation : Montréal

Re: les preuves de l'évolution

#65

Message par Christian » 08 juil. 2015, 12:03

Il y a une expérience qui se déroule depuis 1988: E. Coli, cobayes depuis 60 000 générations.
Science Presse a écrit :Dans un laboratoire de l’Université d’État du Michigan, il y a 27 ans, le biologiste Richard Lenski a pris une souche d’E. coli et l’a distribuée dans 12 cultures différentes. Depuis, tous les 75 jours (toutes les 500 générations), des échantillons sont congelés, ce qui permet de revenir en arrière et de pointer des moments-clefs de l’évolution: au fil du temps en effet, de nouveaux traits sont apparus chez l’une ou l’autre des 12 familles. L’une d’elles a par exemple connu une «explosion démographique» imprévue en 2003: plutôt que de se contenter du glucose fourni par les humains pour se nourrir, cette famille a choisi du citrate provenant de la soupe dans laquelle elle se reproduit, un «aliment» qui, en temps normal, n’aurait pas dû faire partie de son alimentation.

Autrement dit, c’est l’évolution en direct.
« I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. »
« J'imagine qu'il est tentant, si le seul outil que vous avez est un marteau, de traiter tout problème comme si c'était un clou »

Abraham Maslow

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit