Modelisation et SimulationCours 1 : Organisation et Elements Introductifs
Gaetan Hello
Universite d’Evry Val d’EssonneUFR Sciences et [email protected]
2015-2016
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 1 / 29
1 Organisation
2 Introduction a la Modelisation
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 2 / 29
1 OrganisationContenu de l’enseignementProgrammation avec Python - Anaconda : exemple
2 Introduction a la Modelisation
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 3 / 29
1 OrganisationContenu de l’enseignementProgrammation avec Python - Anaconda : exemple
2 Introduction a la Modelisation
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 4 / 29
Contenu de l’enseignement
Competences visees :
I connaissances de base en modelisation numerique pour desapplications potentielles dans differents champs disciplinaires (GE, GI,GM, GSI...),
I capacite a utiliser et rediger des programmes informatiques simplespour la resolution de problemes en science physique et de l’ingenieur.
Pre-requis :
I bases en analyse (derivees partielles, integration, ...),
I bases en algebre (operations sur vecteurs et matrices, ...),
I bases en algorithmie (variables, boucles, structures conditionnelles).
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 5 / 29
Contenu de l’enseignement
Plan des cours (6 seances de 2H) :
I Cours 1 : Organisation et introduction a la notion de modelisationI Cours 2 : Modeles pour la description de la physique
analyse dimensionnelleequations differentiellesresolution analytique et numerique (schema explicite)
I Cours 3 : Optimisation continue
etablissement de fonctions-objectifs a minimisercondition necessaire d’optimaliteresolution analytique et numerique (Newton-Raphson, dichotomie)
I Cours 4 : Optimisation combinatoire
concept de complexites algorithmiquesproblemes classiques (voyageur de commerce, ...)
I Cours 5 : Processus aleatoires
Methodes de Monte-CarloChaınes de Markov
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 6 / 29
Contenu de l’enseignement
Travaux pratiques (3 seances de 4H) :
I utilisation et redaction de programmes informatiques simples enlangage python pour la resolution numerique de problemes demodelisation decrits dans le cours,
I le langage de programmation python s’avere particulierement adapteau developpement d’applications scientifiques/techniques simples caril s’agit d’un langage :
de haut-niveau,interprete,multiparadigme,a la syntaxe simple,dote d’une librairie standard riche,aise a etendre par des modules complementaires,free,opensource ...
I utilisation de la distribution Anaconda proposee par la compagnieContinuum Analytics (free, multiplateforme, contenu riche, IDEconviviale...)
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 7 / 29
1 OrganisationContenu de l’enseignementProgrammation avec Python - Anaconda : exemple
2 Introduction a la Modelisation
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 8 / 29
Programmation avec Python - Anaconda : exemple
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 9 / 29
Programmation avec Python - Anaconda : exemple
import numpy #librairie pour les tableaux
import math #librairie de fct mathematiques
import matplotlib #librairie pour afficher des courbes
#=== parametres physiques =============
m=10. #masse
g=9.81 #acceleration pesanteur
v0=100. #vitesse initiale
alpha=30. #angle initial en degres
deltaT=0.1 #pas de temps
x0=0. #position initiale
y0=0. #position initiale
#=== parametres numeriques ============
nInstants=101 #nb d’instants ou est calculee la trajectoire
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 10 / 29
Programmation avec Python - Anaconda : exemple
#=== initialisations ==================
tab_t=numpy.zeros(nInstants)
tab_x=numpy.zeros(nInstants)
tab_y=numpy.zeros(nInstants)
alpha=alpha/180.*math.pi; #passage de l’angle en radian
#=== on remplit les tableaux ==========
for i in range(nInstants):
tab_t[i]=i*deltaT;
tab_x[i]=v0*math.cos(alpha)*tab_t[i]+x0;
tab_y[i]=-1./2.*g*tab_t[i]**2+v0*math.sin(alpha)*tab_t[i]+y0;
#=== affichage de la courbe x(t) ======
matplotlib.pyplot.plot(tab_x,tab_y)
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 11 / 29
Programmation avec Python - Anaconda : exemple
0 100 200 300 400 500 600 700 800 900x (m)
0
20
40
60
80
100
120
140
y (
m)
Trajectoire du boulet de canon soumis a son poids
y(x)
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 12 / 29
1 Organisation
2 Introduction a la ModelisationConceptsExemples
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 13 / 29
1 Organisation
2 Introduction a la ModelisationConceptsExemples
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 14 / 29
Modeles et modelisations
Une definition d’un modele : il s’agit d’un instrument d’intelligibilite duphenomene etudie constituant une representation formelle de celui-cis’appuyant sur une syntaxe symbolique.
On distingue plusieurs fonctions pour le modele :
I fonction de substitution : l’etude d’un phenomene par nature tropcomplexe sera realisee au moyen d’un modele, la simplification opereerend alors accessibles des elements de comprehension,
I fonction de representation : a partir du tout, des elements pertinentssont extraits et leurs inter-relations explicitees,
I fonction d’explication : les parametres du modele peuvent etreadaptes pour correler des donnees existantes,
I fonction de prediction : un modele aux parametres identifies pour uneinstance donnee du phenomene etudie doit permettre la connaissancede l’evolution du phenomene.
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 15 / 29
Modeles et modelisations
La comprehension effective d’un probleme du monde reel passe souventpar sa traduction sous forme de modeles successifs :
1 Probleme reel (donnees empiriques)
2 Modele physique (symboles : langage courant, schemas,mathematiques,...)
3 Modele numerique, si besoin (mathematiques appliquees)
4 Modele informatique (algorithmique)
La modelisation constitue l’acte de generer un modele a partird’informations pre-existantes.
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 16 / 29
Probleme du monde reel
1 Probleme du monde reel (donnees empiriques)
- mouvement des planetes,- comportement d’une voiture lors d’un crash-test,- previsions meteorologiques,- comportement d’un echangeur thermique,- signature radar d’un avion de combat,- evolution du PIB d’un etat,- comportement des joueurs ”bot” dans un jeu video,- installation de relais de telephonie mobile,- ...
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 17 / 29
Modele physique
2 Modele physique (symboles : langage courant, dessins,mathematiques,...)
- equations de la mecanique celeste,- equations de la mecanique des milieux-continus solides,- equations de la mecanique des milieux-continus fluides,- equations de la thermique,- equations de l’electromagnetisme,- outils conceptuels d’econometrie,- outils d’intelligence artificielle,- equations en optimisation heterogene multi-criteres,- (des couplages peuvent exister)- ...
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 18 / 29
Modele numerique
3 Modele numerique, si besoin (mathematiques appliquees)
- methode des differences-finies (FD - Finite Difference),- methode des elements-finis (FEM - Finite Element Method),- methode des volumes-finis (FV - Finite Volume),- methode des elements de frontiere (BEM - Boundary Element Method),- approches de Monte-Carlo,- reseau de neurones (deep learning...),- logique floue,- chaınes de Markov,- (des couplages peuvent exister)- ...
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 19 / 29
Modele informatique
4 Modele informatique (algorithmique, hardware, software)- hardware
• unite de calcul : processeur multi-coeurs (CPU), GPU, cluster, grid,• memoire partagee/distribuee ...
- systeme d’exploitation• unix, linux, OS/X, android...• windows ...
- paradigme de programmation• procedurale,• orientee-objet ...
- langage de programmation• interprete : matlab, python, PHP...• compile : C, C++, fortran...• intermediaire : java, C#, LISP...
- (des couplages peuvent exister)- ...
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 20 / 29
Notion de modelisations
Le passage d’un type de modele au suivant repose sur une action demodelisation :
1 Probleme physique (ie reel - donnees empiriques)
⇓ Modelisation ”physique”2 Modele physique (langage symbolique)
⇓ Modelisation numerique (FD, FEM, FV, BEM...)3 Modele numerique (mathematiques appliquees)
⇓ Modelisation informatique (paradigme, langage...)
4 Modele informatique (algorithmique, hardware, software)
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 21 / 29
1 Organisation
2 Introduction a la ModelisationConceptsExemples
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 22 / 29
Exemple 1 : Comportement d’une classe durant un cours
On souhaite modeliser l’evolution de l’etat des etudiant durant le coursafin d’ajuster la pratique pedagogique pour s’assurer qu’un maximumd’etudiants soit attentif.
On fait l’hypothese que chaque etudiant a un instant donne ne peut etreque dans l’un des ces 3 etats :
I etat 1 : ecoutant,
I etat 2 : bavardant,
I etat 3 : dormant.
Les probabilites de transition d’etat a l’issue d’une periode fixe (1 min parexemple) sont supposees connues. La quantite pij indique alors laprobabilite de passage de l’etat i vers l’etat j .
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 23 / 29
Exemple 1 : Comportement d’une classe durant un cours
La modelisation du probleme s’appuie ici sur la notion de chaınes deMarkov (cours 5). Chaque etudiant evoluera aleatoirement en respectantles probabilites prescrites
1
23
p11
p12
p31
p23
p32
p13 p
21
p33 p
22
les probabilites doiventsatisfaire la condition :∑3
j=1 pij = 1, ∀i ∈ {1, 2, 3}.
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 24 / 29
Exemple 1 : Comportement d’une classe durant un cours
pour n = 113 etudiants
probabilites :
p11 = 0.9
p12 = 0.05
p13 = 0.05
p21 = 0.3
p22 = 0.5
p23 = 0.2
p31 = 0.8
p32 = 0.05
p33 = 0.15 0 10 20 30 40 50 60instants
0.0
0.2
0.4
0.6
0.8
1.0
pro
port
ion d
etu
dia
nts
Evolution des proportions d'etudiants ecoutant/bavardant/dormant
ecoutantbavardantdormant
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 25 / 29
Exemple 2 : trajectoire du boulet de canon avec frottement
On souhaite connaıtre la trajectoire d’un boulet de canon se deplacantdans l’air. L’approche consistant a ne tenir compte que de l’effet du poidsapparaıt irrealiste au regard de constatations empiriques (volant debadminton). Il faut desormais egalement prendre en compte l’effet dufrottement qu’exerce l’air sur le boulet.
Parmi les differents parametres influents (forme du projectile, temperaturede l’air ...), il ressort que le plus important est la vitesse relative ~v entre lesolide et le fluide.
En premiere approximation, l’action du fluide tendant a s’opposer al’avancee du solide d’autant plus intensement que la vitesse relative estimportante sera representee par une force d’expression :
~f = −k · ~v
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 26 / 29
Exemple 2 : trajectoire du boulet de canon avec frottement
L’expression des forces de frottement selon ~f = −k · ~v constitue le modelede Stokes (adapte aux ”faibles” vitesses). Il existe d’autres modelespertinents pour differents regime d’ecoulement (turbulent → modele deNewton). Le parametre k agrege les effets de l’ensemble des parametresinfluents negliges.
En utilisant le principe fondamental de la dynamique, le phenomene peutetre represente par l’equation :
m · ~x = ~P + ~f (1)
Ainsi en projetant dans un repere cartesien (O,~e1,~e2) ou ~P = −m · g · ~e2
et ~f = −k · ~x , il vient :
m · x1(t) = −k · x1(t)
m · x2(t) = −m · g − k · x2(t)
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 27 / 29
Exemple 2 : trajectoire du boulet de canon avec frottement
Equations du mouvement avec prise en compte du poids seul :
x1(t) = x01 · t + x0
1
x2(t) = −1
2· g · t2 + x0
2 · t + x02
Equations du mouvement avec prise en compte du frottement selon lemodele de Stokes :
x1(t) = x01 ·
m
k·[
1− exp
(− k
m· t)]
+ x01
x2(t) = (x02 +
m · gk
) · m
k·[
1− exp
(− k
m· t)]− m · g
k· t + x0
2
Que se passe t-il lorsque t → +∞ pour chacune des approches ?
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 28 / 29
Exemple 2 : trajectoire du boulet de canon avec frottement
parametres(unites SI) :
m = 10
g = 9.81
v0 = 100
α = 30
k = 1
x0 = 0
y0 = 0
x0 = v0 · cos(α)
y0 = v0 · sin(α) 0 100 200 300 400 500 600 700 800 900x (m)
50
0
50
100
150
y (
m)
Trajectoire du boulet de canon : influence du frottement
sansavec
Gaetan Hello (Univ. d’Evry - UFR ST) Modelisation et Simulation #1 2015-2016 29 / 29