Modélisation mathématique et simulation numérique de la phyllotaxie

Bonjour à toutes et à tous,

Nous sommes Théo TROUILLARD et Adrien FRAT, deux étudiants en deuxième année de cycle préparatoire à Polytech Angers. Lors du semestre quatre de notre formation, nous avons réalisé un projet de conception qui avait pour intitulé “Modélisation mathématique et simulation numérique de la phyllotaxie”. Lors de ce projet, nos professeurs référents ont été Madame Laetitia PEREZ et Monsieur Laurent AUTRIQUE.

  • Qu’est-ce que la phyllotaxie ?
  • Le mot phyllotaxie vient du grec et il désigne l’arrangement des feuilles ou des fruits d’un être végétal. Ces arrangements sont multiples et ce phénomène permet donc une grande diversité des végétaux dans la nature. En effet, il existe différents types de phyllotaxie et chacun est caractérisé par le nombre de feuilles par nœud d’une plante et par l’angle de divergence entre ces feuilles.

    Par exemple, sur cette photo de camérisier à balais, on voit très bien qu’il y a deux feuilles par noeud et que ces deux feuilles sont séparées par un angle de divergence de 180° :

    Photo de camérisier à balais

    Image 1 : Photo de camérisier à balais

  • L’objectif de ce projet
  • L’objectif de ce projet était de proposer une ou plusieurs simulations de ces arrangements à l’aide d’un outil informatique afin de simuler le développement de certaines plantes.

  • Les différentes étapes du projet
  • Notre projet s’est divisé en quatre grandes étapes.

    D’abord, une phase de documentation où nous avons pu appréhender le sujet en nous renseignant grâce à différents supports sur ce qu’était la phyllotaxie.

    Puis, il y a eu une phase d’étude. Dans cette phase, nous nous sommes intéressés plus particulièrement aux différents types de phyllotaxie et à leurs modèles mathématiques, c’est-à-dire à la façon dont on pouvait définir chaque type de phyllotaxie. Nous avons identifié cinq types principaux de phyllotaxie :

    spiralée : une feuille par nœud et deux feuilles successives séparées par un angle de divergence de 137,5°
    alternée distique : une feuille par nœud et deux feuilles successives séparées par un angle de divergence de 180°
    opposée distique : deux feuilles par nœud séparées par un angle de 180°
    opposée décussée : deux feuilles par nœud séparées par un angle de 180° et les feuilles de deux nœuds successifs sont divergentes de 90°
    verticillée : plusieurs feuilles par nœud (plus de 3)

    Ensuite est venu le moment de réaliser nos simulations. Pour cela, nous avons utilisé le logiciel Scilab. Nous avons retenu seulement quatre types de phyllotaxie (les quatre premières citées précédemment).

    Enfin, la dernière phase de notre projet concernait la rédaction de notre rapport.

  • Travail réalisé – Modèles Mathématiques et Simulations
  • Comme dit précédemment, avant de mettre en œuvre les simulations sur Scilab, nous avons d’abord étudié les modèles mathématiques. Pour nous aider, nous avons réalisé des schémas pour chaque type de phyllotaxie. Pendant notre étude, nous avons vu que nous avions la possibilité de travailler avec des coordonnées polaires car chaque point est défini selon un angle et une distance au centre.

    Schéma représentant la phyllotaxie alternée distique

    Image 2 : Schéma représentant la phyllotaxie alternée distique


    Schéma représentant la phyllotaxie opposée décussée

    Image 3 : Schéma représentant la phyllotaxie opposée décussée

































    A partir de ces schémas, nous avons essayé de déterminer des algorithmes pour chaque cas de phyllotaxie. Puis, nous avons adapté ces algorithmes pour les retranscrire dans Scilab.

    Ainsi, nous avons réalisé 4 simulations différentes (exemple dans le prochain paragraphe) que nous avons réunies à l’aide d’une interface graphique.

  • Exemple : Phyllotaxie Spiralée
  • Prenons comme exemple la phyllotaxie spiralée (rappel : une feuille par nœud, deux feuilles successives séparées par un angle de divergence de 137,5°) dont voici le schéma que nous avons fait :

    Image 4 : Schéma représentant la phyllotaxie spiralée

    Image 4 : Schéma représentant la phyllotaxie spiralée

    On voit que pour chaque feuille (une feuille étant représentée par un point vert) l’angle va évoluer et la distance au centre va augmenter. On va donc raisonner avec une boucle itérative.

    On commence par initialiser un incrément à 0 (Exemple: n = 0)

    Puis commence notre boucle qui va de n au nombre d’itérations souhaité.

    Pour chaque itération, on peut définir ou redéfinir :
    -un angle phi = n * 137,5 (rotation dans le sens anti-horaire de 137,5° à chaque itération)
    -une distance au centre r au centre qui est égale à n (plus l’incrément va augmenter plus la distance au centre va aussi augmenter)
    -notre point (x,y) en passant des coordonnées polaires aux coordonnées cartésiennes

    Enfin, on termine la boucle en augmentant l’incrément (n+1).

    On peut retranscrire cet algorithme sous Scilab en ajoutant dans la boucle l’affichage de chaque point sur un graphique.

    Nous obtenons le résultat graphique suivant :

    Résultat graphique de notre simulation pour la phyllotaxie spiralée

    Image 5 : Résultat graphique de notre simulation pour la phyllotaxie spiralée

  • Conclusion
  • Nous avons donc réussi à établir quatre simulations différentes que nous avons réunies dans une interface graphique avec Scilab. Pour cela, nous avons utilisé le module GUI Builder de Scilab. Nous sommes fiers du résultat final mais nous sommes conscients qu’il peut être amélioré (ajout de couleurs, simulation en 3D,…). De plus, ce projet nous a permis de réinvestir et/ou d’acquérir de nouvelles connaissances et de travailler en groupe, ce qui est un aspect important du métier d’ingénieur..

    Aperçu de notre interface graphique

    Image 6 : Aperçu de notre interface graphique

    ——————————————————————————————————————-
    Image 1 : image prise sur un blog botanique (http://www.annie-claude-bolomier.fr)
    Image 2,3 et 4 : schémas réalisés avec le logiciel draw.u-angers.fr
    Image 5 et 6 : obtenues avec nos codes Scilab

    Modélisation mathématique et simulation numérique de la phyllotaxie

    Bonjour à tous,

    Dans le cadre du dernier semestre de PEIP2, il nous est proposé de concevoir un projet par groupe d’étudiants. Nous sommes deux élèves à avoir travaillé sur ce projet, Paul Bolufer ainsi que moi-même Marc Berret. Le projet est encadré par des professeurs de l’école et a pour durée une centaine d’heures.

    L’objectif de ce projet est de réaliser un simulateur permettant de modéliser le développement de certaines plantes. Pour notre part, nous avons choisi de le faire sous le langage Python. La modélisation s’appuie sur des modèles mathématiques.

    1. Présentation du projet

    La phyllotaxie est la science qui étudie l’ordre dans lequel sont implantées les feuilles, ou plus globalement la disposition des éléments d’un fruit, d’une fleur ou d’un bourgeon.

    Nous avons ainsi décidé d’orienter notre projet vers la création d’un programme informatique permettant de simuler la disposition des feuilles lors de la croissance d’une plante.

    Pour réaliser ce simulateur, il nous a été nécessaire d’acquérir de nouvelles compétences telles que:
    – la maîtrise des outils mathématiques pour comprendre le comportement et l’évolution des plantes
    – la maîtrise d’un outil informatique pour réaliser ces simulations

    Et nous avons rapidement été confrontés à de premières contraintes comme:
    – la nécessité de réaliser un travail de documentation sur le sujet
    – comprendre les modèles mathématiques mis en jeu
    – apprendre un nouveau langage de programmation (Python)

    Il était alors important de bien structurer nos séances de travail, d’adopter une bonne organisation et de se partager les tâches afin de mener à bien notre projet.

    2. Travail réalisé

    Pour mener à bien ce projet, nous avons orienté notre travail en deux parties. Dans un premier temps, la documentation sur notre sujet, à savoir la phyllotaxie ainsi que les modèles mathématiques. Dans un seconde temps, la mise en pratique par le développement du simulateur sur le langage Python.

      2.1 Documentation

    Les différents types de phyllotaxie

    Il suffit de changer l’angle pour obtenir une nouvelle forme de phyllotaxie. Il en existe 4 différentes:

    Phyllotaxie verticillé :
    Elle présente au moins trois organes par nœud. L’angle entre un nœud et le suivant est de 45 degrés. Ce cas de phyllotaxie est assez fréquent dans la nature.

    Plants de véroniques de Virginie.

    Plants de véroniques de Virginie.

    Phyllotaxie opposée :
    Les feuilles sont opposées deux par deux et on observe une rotation de 90 degrés entre un nœud et le suivant.

    Branches de menthe

    Branches de menthe

    Phyllotaxie spiralée :
    Il s’agit de la forme la plus classique de phyllotaxie, on compte un seul organe par nœud et un angle de 137,5 degré entre un organe et le suivant. On la retrouve dans 92% des plantes.

    Pomme de pin

    Pomme de pin

    Phyllotaxie alternée :
    Elle présente une feuille par nœud et un angle de 180 degrés entre deux organes consécutifs.

    Branche de chêne

    Branche de chêne

    Représentation mathématique en deux dimensions (théorie)

    Pour dessiner les points, on utilise le repère polaire:
    r = c * sqrt(n)
    teta= n * angle
    avec n est le nombre de points, c est la distance entre le point.

    repère polaire

    repère polaire

    Nous pouvons passer du repère polaire au repère cartésien pour dessiner avec un code informatique. En effet, les langages de programmation ne comprennent pas le repère polaire.

    Pour faire ceci, on utilise les propriétés du cosinus et du sinus qui sont respectivement:
    cos = adj/hyp et sin = opp/hyp
    On trouve que cos(teta)= x/r et sin()= y/r et ainsi x=cos(teta)*r et y=sin(teta)*r

    Il suffira juste de faire une boucle en fonction de n et de préciser les paramètres de c et de l’angle.

      2.2 Mise en pratique sur Python

    Concrètement, une fois le sujet compris, il faut le retranscrire sur un programme informatique. Pour ce faire nous avons suivi des formations pour apprendre le langage Python.

    Représentation de la phyllotaxie spiralée en deux dimensions (langage Python, éditeur VSC)

    Code phyllotaxie en 2D sur Python

    Code phyllotaxie en 2D sur Python

    Explication du code:
    Il faut tout d’abord importer les modules turtle et math nécessaire pour faire la représentation sous forme de dessins et pour utiliser les outils mathématiques. (ligne 1 et 2)

    Ensuite, on crée la fonction phy2D (ligne 4) et on rentre les paramètres avec c la distance entre les points, e l’épaisseur. On fait une boucle qui va dessiner un grand nombre de points (n=1000).

    On passe du repère polaire au cartésien. D’ailleurs, dans notre variable a (ligne 9), on convertit notre angle en radian en multipliant par pi/180 et par n pour que a dépend du point choisi. Puis, on dessine les points en changeant à chaque fois de position (x,y).

    À la fin, il suffit simplement d’appeler la fonction en indiquant les paramètres et on obtient la figure ci-dessous:

    Représentation graphique de la phyllotaxie spiralée (angle d’or: 137.5 degrés)

    Représentation graphique de la phyllotaxie spiralée (angle d’or: 137.5 degrés)

    Représentation en deux dimensions d’une marguerite et d’un tournesol

    En s’appuyant sur le code précédent, on peut dessiner n’importe quelle plante en 2D. En effet, il suffit juste de créer des fonctions dessinant un pétale et les répéter le nombre de fois que l’on veut.

    Simulation marguerite

    Simulation tournesol

    Création de l’application et d’un menu

    Une fois que nos programmes pour représenter la phyllotaxie en 2D et avec des exemples concrets étaient fonctionnels sur Python, nous avons créé l’application pour les regrouper. Ainsi nous nous sommes aidés du module tkinter sur Python pour faire les boutons, le menu…

    À gauche se trouvent les choix des différents paramètres et à droite l’interface graphique de dessin.

    Interface principale du simulateur

    Interface principale du simulateur


    Conclusion

    Pour conclure, ce projet a été long mais motivant pour chacun d’entre nous. En effet, nous avons apprécié travailler en équipe. Nous sommes très fiers du travail réalisé et des notions que nous avons pu découvrir. Le résultat final est conforme au cahier des charges, tout au long de la réalisation de ce projet nous nous sommes adaptés à la fois aux modèles mathématiques ainsi qu’aux outils informatiques. Nous avons développé sous Python un simulateur complet permettant de modéliser la phyllotaxie en 2D mais aussi sous forme d’exemples avec le cas de la marguerite et du tournesol. Ce travail fut pour nous enrichissant, à la fois sur l’aspect des recherches, celui de la découverte mais aussi sur l’apprentissage d’un nouveau langage de programmation : Python.