Colonie de bactéries dans une assiette de Petri Compléments Mathématiques

Documents pareils
Cours de Mécanique du point matériel

Chapitre 2 Le problème de l unicité des solutions

Cours d Analyse. Fonctions de plusieurs variables

Plan du cours : électricité 1

I. Polynômes de Tchebychev

Fonctions de plusieurs variables

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Calcul intégral élémentaire en plusieurs variables

Amphi 3: Espaces complets - Applications linéaires continues

Résolution d équations non linéaires

OM 1 Outils mathématiques : fonction de plusieurs variables

3 Approximation de solutions d équations

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Repérage d un point - Vitesse et

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Michel Henry Nicolas Delorme

Rappels sur les suites - Algorithme

Chapitre 0 Introduction à la cinématique

Circuits RL et RC. Chapitre Inductance

Les équations différentielles

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Chapitre 1 Cinématique du point matériel

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

Cours d analyse numérique SMI-S4

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

TSTI 2D CH X : Exemples de lois à densité 1

Cours Fonctions de deux variables

ANALYSE NUMERIQUE ET OPTIMISATION. Une introduction à la modélisation mathématique et à la simulation numérique

3ème séance de Mécanique des fluides. Rappels sur les premières séances Aujourd hui : le modèle du fluide parfait. 2 Écoulements potentiels

Chapitre 7 : Intégration sur un intervalle quelconque

Fonctions de plusieurs variables

Propriétés électriques de la matière

Introduction à l analyse numérique : exemple du cloud computing

Erratum de MÉCANIQUE, 6ème édition. Introduction Page xxi (milieu de page) G = 6, m 3 kg 1 s 2

Commun à tous les candidats

Statistiques Descriptives à une dimension

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Entraînement au concours ACM-ICPC

Intégrales doubles et triples - M

Techniques d interaction dans la visualisation de l information Séminaire DIVA

Valeur cible et solveur. Les calculs effectués habituellement avec Excel utilisent des valeurs numériques qui constituent les données d'un problème.

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Deux disques dans un carré

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Algorithmes pour la planification de mouvements en robotique non-holonome

Microsoft Excel : tables de données

Resolution limit in community detection

Continuité et dérivabilité d une fonction

3. Conditionnement P (B)

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Programmation linéaire

Informatique Générale

Les travaux doivent être remis sous forme papier.

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

Quantification Scalaire et Prédictive

IRL : Simulation distribuée pour les systèmes embarqués

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Algèbre binaire et Circuits logiques ( )

MIS 102 Initiation à l Informatique

Les algorithmes de base du graphisme

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Projet de Traitement du Signal Segmentation d images SAR

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Évaluation et implémentation des langages

Différentiabilité ; Fonctions de plusieurs variables réelles

Corps des nombres complexes, J Paul Tsasa

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Programmation linéaire et Optimisation. Didier Smets

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Fonctions de deux variables. Mai 2011

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

L informatique en BCPST

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

Qualité du logiciel: Méthodes de test

1 Description générale de VISFIELD

OLYMPIADES ACADÉMIQUES DE MATHÉMATIQUES

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Introduction à MATLAB R

Feuille TD n 1 Exercices d algorithmique éléments de correction

Premiers pas avec Mathematica

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Documentation Technique du programme HYDRONDE_LN

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Calcul fonctionnel holomorphe dans les algèbres de Banach

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU)

Plan du cours Cours théoriques. 29 septembre 2014

n N = u N u N+1 1 u pour u 1. f ( uv 1) v N+1 v N v t

Modélisation et Simulation

Transcription:

Colonie de bactéries dans une assiette de Petri Compléments Mathématiques Jamila Sam, Corentin Perret & Roger Küng version 1.2 ( Octobre 2012) c EPFL 2012 2013 Table des matières 1 Rappel du cadre du projet 2 2 Simulation du déplacement 2 3 Méthodes d intégration numérique 2 3.1 Schéma d Euler-Cromer........................... 4 3.2 Runge-Kutta d ordre 4............................ 4 4 Tests de collision 5 4.1 Test de collision avec l assiette de Petri................... 5 4.2 Test de collision d un point avec une boîte.................. 5 4.3 Test de collision d un point avec une sphère................. 6 4.4 Test de collision d un point avec un plan................... 6 4.4.1 Plan infini............................... 6 4.4.2 Portion de plan............................ 6 5 Représentations graphiques 7 1

1 Rappel du cadre du projet Ce projet a pour but de construire un outil informatique permettant de visualiser et simuler de façon simplifiée l évolution de colonies de bactéries dans une assiette de Petri. Pour plus de détails sur le cadre général du projet lui-même, référez-vous à la page Web de description de celui-ci. Le présent document à pour seul but de vous fournir les compléments théoriques, notamment mathématiques, nécessaires à la mise en oeuvre du programme. 2 Simulation du déplacement Nous considérons dans le cadre de ce projet que le mouvement d une bactérie est régi par une équation de type : d v(t) = f( v(t), x(t)) (1) dt où f est une force s exerçant sur la bactérie et conditionnant son mouvement : par exemple une force d attraction dépendant de la position, x(t), de la bactérie et de sa vitesse, v(t), au moment t. Calculer les vitesse et position de la bactérie, conditionnés par f, après l écoulement d un certain temps, revient en fait à résoudre une équation différentielle du second ordre du type : ẍ = f(x, ẋ, t) où x R q est un vecteur (position), ẍ = d2 x dt, ẋ = dx (vitesse) et f est une fonction 2 dt vectorielle de R R q R q dans R q. Nous le ferons moyennant un intégrateur numérique (voir la section?? ci-dessous) qui nous permettra de calculer pas à pas l évolution du mouvement d une bactérie. 3 Méthodes d intégration numérique Peu d équations différentielles possèdent une solution calculable analytiquement. Pour les résoudre, il faut alors passer par l analyse numérique, c est-à-dire le calcul approché, numérique, d une solution particulière à l équation différentielle pour des conditions initiales données. On parle d «intégration numérique». Il existe de nombreux moyens d intégrer numériquement une équation différentielle (cf plus loin). Le moyen le plus simple, dont nous allons nous servir ici pour illustrer les principes, 2

est la méthode dite «d Euler». Imaginons que nous ayons une équation différentielle que l on peut écrire sous la forme : ẍ = f(x, ẋ, t) où x R q est un vecteur (typiquement la position), ẍ = d2 x dt, ẋ = dx et f est une 2 dt fonction vectorielle de R R q R q dans R q (qui en représente typiquement les équations du mouvement). Imaginons également que nous connaissions des conditions initiales i.e. les valeurs x(t 0 ) et ẋ(t 0 ) de x et ẋ au temps T 0. On peut alors utiliser un développement limité au premier ordre pour trouver la valeur de x à un temps t + t : x(t 0 + t) = x(t 0 ) + ẋ(t 0 ) t Par le même raisonnement, on peut écrire pour la dérivée : ẋ(t 0 + t) = ẋ(t 0 ) + ẍ(t 0 ) t = ẋ(t 0 ) + f(x(t 0 ), ẋ(t 0 ), T 0 ) t On peut alors, ainsi de suite, de proche en proche, déterminer de cette manière la valeur de x (la position) et ẋ (la vitesse) pour tout temps t de la forme T 0 + n t. Il suffit pour cela de connaître les conditions initiales x(0), ẋ(0) et la fonction f(x, ẋ, t) puis de faire une boucle sur les calculs précédents en avançant à chaque fois de t. Il est ainsi par exemple possible de déterminer la position et la vitesse d un système pour n importe quel temps T 0 + n t en utilisant l intégrateur d Euler, non pas en calculant directement la solution de l équation, mais en faisant des «petits sauts» pour approcher cette solution. La méthode passe par l utilisation d un «pas de temps» t. Il faut le choisir suffisamment petit pour que l approximation faite dans le développement limité soit «raisonnable». Ceci peut faire l objet de nombreuses études qui seront le sujet de vos cours d analyse numérique. Dans notre cas, un choix de 0.03 secondes semble suffisant. Dans ce projet, de façon générale on cherche donc à résoudre (numériquement) une équation différentielle du second ordre : ẍ = f(x, ẋ, t) (x R q, q vaudra 3 dans notre projet : monde 3D) c est-à-dire, partant de conditions initiales (x (0), ẋ (0) ) au temps T 0, calculer les valeurs x (n) et ẋ (n) ) de x et ẋ au temps T n = T 0 + n t (pour un pas de temps t donné et n 1). Il existe pour cela plusieurs méthodes différentes. En voici deux, de la plus simple à la plus compliquée. 3

3.1 Schéma d Euler-Cromer Calculer x (n) et ẋ (n) comme suit : ẋ (n) = ẋ (n 1) + t f(t n 1, x (n 1), ẋ (n 1) ) x (n) = x (n 1) + t ẋ (n) À noter la différence avec le schéma d Euler (explicite) classique qui utilise l ancienne version ẋ (n 1) de la vitesse dans la seconde équation. 3.2 Runge-Kutta d ordre 4 Cette méthode, plus fiable que la précédente, nécessite huit variables intermédiaires : k 1, k 2, k 3, k 4, k 1, k 2, k 3 et k 4. avec : x (n) = x (n 1) + t 6 (k 1 + 2k 2 + 2k 3 + k 4 ) ẋ (n) = ẋ (n 1) + t 6 (k 1 + 2k 2 + 2k 3 + k 4) k 1 = ẋ (n 1) k 1 = f(t n 1, x (n 1), ẋ (n 1) ) k 2 = ẋ (n 1) + t 2 k 1 k 2 = f(t n 1 + t 2, x(n 1) + t 2 k 1, ẋ (n 1) + t 2 k 1) k 3 = ẋ (n 1) + t 2 k 2 k 3 = f(t n 1 + t 2, x(n 1) + t 2 k 2, ẋ (n 1) + t 2 k 2) k 4 = ẋ (n 1) + t k 3 k 4 = f(t n, x (n 1) + t k 3, ẋ (n 1) + t k 3) Note : T n = T n 1 + t. Notez que quelque soit l intégrateur numérique choisi, si la force est nulle, il permettra de calculer un déplacement rectiligne uniforme (vitesse constante). 4

4 Tests de collision Les bactéries lors de leurs déplacements vont être amenées à être en contact (collision) avec divers éléments de l assiette de Petri : sources de nourriture, éventuellement des obstacles, paroi de l assiette, etc. De telles collisions ont un impact sur le déroulement de la simulation (consommation de nourriture, rebonds pendant le déplacement etc.), il est donc nécessaire de les détecter/tester. On considérera, pour simplifier, que la taille de la bactérie est négligeable : tester si elle est en collision avec un élément e de l assiette de Petri revient dans ces condition à tester si le point que constitue sa position est en collision avec e. Les sources de nourritures peuvent être assimilées à des boites ou à des sphères (selon des choix d implémentation simples). 4.1 Test de collision avec l assiette de Petri L assiette de Petri sera dans le projet un simple cylindre dessiné en position de base (centré en OZ et dont la base à 0 comme coordonnée Z). Dans ces conditions, soit p la position de la bactérie, r le rayon du cylindre et h sa hauteur, on considérera qu elle a été en collision avec l assiette de Petri : p [0] p [0] + p [1] p [1] > r 2 p [2] > h p [2] < 0 où désigne le "ou" logique. 4.2 Test de collision d un point avec une boîte Ce test sera implémenté de façon élémentaire, il ne fonctionnera que sur des boites représentées dans le repère absolu ; ce qui sera le cas dans l implémentation suggérée. Soit p le point à tester et, e min et e max les deux sommets extrêmes de la boites (resp. celui de plus petite et de plus grande norme dans le repère absolu) on considérera que p est en collision avec la boîte si la condition suivante est remplie : p [0] > e min [0] p [1] > e min [1] p [2] > e min [2] où désigne le et logique. p [0] < e max [0] p [1] < e max [1] p [2] < e max [2] 5

4.3 Test de collision d un point avec une sphère Un point sera considéré comme étant en collision avec une sphère si la distance qui le sépare du centre de la sphère est inférieure au rayon de la sphère. 4.4 Test de collision d un point avec un plan On considérera qu un point x 1 est en collision avec un plan si la distance la plus courte de x 1 au plan est inférieure à un certain seuil (par exemple 0.1) 4.4.1 Plan infini Dans le cas d un plan infini défini par un point O et un vecteur normal n (unitaire), le point x 2 le plus proche sur ce plan du point x 1 s exprime comme : x 1 x 2 O n x 2 = x 1 + ( ( O x 1 ) n ) n n (. désigne le produit scalaire) 4.4.2 Portion de plan Dans le cas d une portion rectangulaire de plan d origine O, de normale n (unitaire), de longueur L suivant la direction e L et de largeur l suivant la direction e l, le point x 2 le plus proche sur ce plan au point x 1 se calcule comme suit : n O e l e L x 1 x 2 1. Commencez par calculer le point le plus proche dans le plan infini comme précédemment : ( x 2 = ( O x 1 ) ) n n x 1 + n 6

2. Calculez ensuite ses coordonnées suivant e L et e l : x 2L = ( x 2 O) e L, x 2l = ( x 2 O) e l. 3. Si x 2L > L sinon, si x 2L < 0 4. Ensuite, si x 2l > l sinon, si x 2l < 0 x 2 x 2 (x 2L L) e L, x 2 x 2 x 2L el. x 2 x 2 (x 2l l) e l, x 2 x 2 x 2l el. 5 Représentations graphiques Ce projet utilise la bibliothèque opengl pour ses aspects graphiques. Le dessin de sphères ou de cylindres par le biais de quadriques s y réalise très naturellement. Le dessin de plans peut se réaliser de multiples façons. L algorithme ci-après vous indique comment faire si vous utilisez une représentation du plan sous la forme : d un point p ; et d un vecteur unitaire orthognal au plan, orth. 7

Algorithme 1. Trouver deux vecteurs v 1 et, v 2 tels que ( orth, v 1, v 2 ) forment une base orthogonale de R 3. Ces vecteurs peuvent être trouvés par une méthode d orthogonalisation de type Gramm-Schmidt (. désigne le produit scalaire et le produit d un scalaire par un vecteur) : : (a) Soit les trois vecteurs e1 = (1., 0., 0.), e2 = (0., 1., 0.) et e3 = (0., 0., 1.) ; (b) v1 = e1 ( orth. e1) orth ; (c) si v1 < ε, v1 = e2 ( orth. e2) orth (ε est la précision en dessous de laquelle la norme de v1 sera considérée comme nulle (par exemple 0.01)) ; (d) v2 = e3 ( orth. e3) orth ( v1. e3) v1 ; (e) si v2 < ε, v2 = ( e2 ( orth. e2) orth ( v1. e2) v1) ; (f) v1 = v1 L (1./ v1 ) (L : largeur souhaitée pour le dessin) ; (g) v2 = v2 L (1./ v2 ) ; 2. dessiner le polygone de sommets p + v1 + v2, p v1 + v2, p v1 v2 et p + v1 v2 8