Etude du Modèle de Lorenz

Transcription

Etude du Modèle de Lorenz
METHODE D' OPTIMISATION :
Etude du Modèle de Lorenz
Silvano Rusconi & Basile Bazin
Département Hydraulique et Mécanique des Fluides
3ème année - Option MSN
Promo 2016
Novembre 2015
Rusconi & Bazin - Devoir n°2
Table des matières
1 Avant Propos.....................................................................................................3
2 Résolution par Runge-Kutta...........................................................................4
3 Estimation par la méthode du Gradient Conjugué.......................................5
3.1 Méthode...............................................................................................................5
3.2 Résultat du gradient conjugué..............................................................................7
4 Estimation par la méthode 4D-Var...............................................................10
4.1 Méthode.............................................................................................................10
4.2 Analyse des résultats..........................................................................................11
4.3 Influence de la fréquence d'observation.............................................................13
4.4 Influence du temps d'observation.......................................................................13
5 Conclusion.......................................................................................................14
Novembre 2015
2
Rusconi & Bazin - Devoir n°2
1
Avant Propos
Ce rapport a pour but de présenter les méthodes du gradient conjugué et la méthode 4D-Var sur
l'exemple de l'attracteur de Lorenz.
L'attracteur de Lorenz est obtenu à l'aide du système dynamique suivant :
dx (t )
=σ×( y (t )−x (t ))
dt
dy (t )
=ρ x (t )−y (t )−x (t ) z (t )
dt
dy (t )
=x (t ) y (t)−β z ( t)
dt
La résolution de ce système nous permet d'obtenir la figure suivante :
Le modèle de Lorenz permet de mettre en évidence les limites des prédictions (notamment
météorologique). En effet pour une petite variation de l'état d'origine on obtient à partir d'un
certain temps une divergence entre les positions de l'attracteur et les valeurs prédites de celui-ci.
C'est la mise en évidence de l'effet papillon.
Novembre 2015
3
Rusconi & Bazin - Devoir n°2
2
Résolution par Runge-Kutta
En 1963, Lorenz publiait ses premiers travaux sur le calcul d'instabilités et de systèmes
chaotiques. Il étudia tout particulièrement un système obtenu à l'aide des équations de NavierStockes et qui porte aujourd'hui son nom : le système de Lorenz.
Méthode de Runge-Kutta : Il existe plusieurs variantes de cette méthode (ordre 3, 4, 5, ...).
Nous nous intéresserons à la méthode de Runge-Kutta d'ordre 4 qui permet de calculer la valeur de
la fonction en quatre points intermédiaires de la manière suivante :
k 1=h. f ( x i , y i )
k 2=h. f ( xi+0.5 h , y i+0.5 k 1)
k 3=h. f ( x i+ 0.5 h , y i +0.5 k 2)
k 4=h . f (x i +h , y i+ k 3)
1
( k +2 k 2 +2 k 3 +k 4 ) h étant le pas de temps.
6 1
Nous on aura donc 3 fonctions f, g et h :
dx
=f ( x , y )=Pr .( y−x)
dt
dy
=g ( x , y , z )=rx− y−xz
dt
dz
=h ( y , z )=ry −bz
dt
Donc l’approximation de notre système s’obtiendra via :
y i+1= y i +
X n +1=X n + ( a1 +2 a2 +2 a3 +a 4 )
Y n+1=Y n+ ( b1+ 2b 2+2b 3+b4 )
Z n +1=Z n + ( c 1 +2 c2 +2 c 3 +c 4 )
Avec les coefficients calculés comme ceci :
a1=h. f ( X n , Y n )
b1=h. g ( X n ,Y n , Z n )
c 1=h . h ( Y n , Z n )
a2=h. f ( X n+ 0.5 a1 , Y n +0.5 a 1)
b2=h. g ( X n +0.5 b1 ,Y n+ 0.5 b1 , Z n+ 0.5 b1 )
c 2=h∗h ( Y n+ 0.5 c 1 , , Z n +0.5 c 1 )
a3=h. f ( X n+ 0.5 a2 ,Y n +0.5 a 2)
b3=h. g ( X n +0.5 b2 , Y n+ 0.5 b2 , Z n+ 0.5 b2 )
c 3=h∗h ( Y n+ 0.5 c 2 , Z n +0.5 c 2 )
a 4=h . f ( X n +a3 , Y n +a3 )
b 4=h . g ( X n+ b3 ,Y n +b 3 , Z n+ b3 )
c 4=h∗h ( Y n +c 3 , Z n +c 3 )
L’algorithme pour la résolution est alors assez simple : une fois le point initial indiqué, on
calcule les coefficients, avec ces derniers on en déduit le point au pas de temps suivant et ainsi de
suite pour un nombre d’itérations indiqué au début du script.
On obtient alors un attracteur étrange : pour un certain jeu de paramètres les trajectoires sont
attirés autours de deux points et oscillent entre ces deux points formant ainsi deux boucles. Les
trajectoires ne se croisent jamais.
Novembre 2015
4
Rusconi & Bazin - Devoir n°2
3
Estimation par la méthode du Gradient Conjugué
3.1
Méthode
Cette méthode sert à minimiser une fonction cout de façon itérative, elle a l’avantage de ne
couter que N itérations N étant le nombre d’inconnues du système. La fonction à minimiser doit
s’écrire sous la forme suivante :
J =0.5 x T . A . x+ BT x +C
Avec A une matrice symétrique définie positive, B un vecteur scalaire et C un scalaire.
Pour simplifier la fonction nous avons posé que nous n’avions seulement une observation (et
pas d’ébauche). La fonction coût s’écrit donc sous cette forme :
0 2
J ( x )=0.5||M ( x )− y ||
Et son gradient :
grad J ( x )=M T ( M ( x )− y 0 )
Nous calculons la matrice M du linéaire tangent de la façon suivante :
t
∫ DF (t ) dt
M =e
Novembre 2015
0
[
]
−σ
σ
0
, Avec DF= ρ−z (t) −1 −x (t )
y (t)
x (t ) −β
la matrice adjoint.
5
Rusconi & Bazin - Devoir n°2
L’algorithme du CG :
Algorithme de la méthode Gradient Conjugué
Novembre 2015
6
Rusconi & Bazin - Devoir n°2
3.2
Résultat du gradient conjugué
Grace au script qui effectue ces actions nous obtenons cette figure :
La croix verte est l’état vrai, le point cible x_0 = [10,10,20] .
Le triangle bleu en haut a droite est le point de mesure initial à x_b =[10.1,10.1, 20.1], puis on
a les itérations qui vont dans la direction de de la cible (point violet) mais il y a dépassement.
En effets le point orange (en bas a gauche sont allés trop loin et donc on perd des itérations a
revenir en arrière. Si par exemple on règle le coefficient de descente en le diminuant de moitié, on
diminue le pas spatial effectué a chaque itération ce qui évite de dépasser la cible. A ce moment on
arrive a la même précision avec seulement 5 itérations au lieu de 7(fig ci-après).
Novembre 2015
7
Rusconi & Bazin - Devoir n°2
Finallement en retrouvant le point initial nous pouvons relancer la resolution avec runge-kutta
et verifier si la prédiction est bonne :
On a globalement une bonne prédiction mais du au comportement chaotique du
système(sensibilité aux condition initiale forte) la prediction s’écarte a partir de 6sec.
Le modèle de lorenz étant super sensible aux conditions initiales, je peux amméliorer la
précision du gradient conjugué. En réglant une condition d’atteinte de l’écart de l’analyse avec
l’état vrai à 10-3 nous retourvons une prediction impeccable sur 10 secondes.
Novembre 2015
8
Rusconi & Bazin - Devoir n°2
Le modèle a est résolut par défaut sur 10000 points. Ici nous avions mis une fenetre de mesure
proche de l’état vrai :les 50 premiers points.
Si nous prenons une fenetre beaucoup plus grande comme par exemple 5000 points
l’algorithme diverge et au bout de deux ittérations (cercles) on est completement éloigné de la
cible (croix verte) comme le montre la figure suivante. On voit donc ici que contrairement a ce
qu’on pourrait penser mettre une fenetre de mesure plus grande n’améliore pas le résultat.
Novembre 2015
9
Rusconi & Bazin - Devoir n°2
4
Estimation par la méthode 4D-Var
4.1
Méthode
La méthode 4D-Var est une méthode d'assimilation de données. On dispose de différentes
observations et le but va être de s'approcher le plus possible de la réalité. On va alors calculer puis
minimiser une fonction coût pour atteindre ce but.
Mais à la différence de la méthode 3D-Var nous n'allons pas traiter la fonction coût pour
chaque observation mais au bout d'un certain nombre d'observation, ceci est la durée
d'assimilation.
Le schéma de notre code est le suivant :
Génération des paramètres d'optimisation,
des conditions initiales et de l'ébauche.
X0 , y0 , z0 et xb , yb , zb
Création de l'état vrai
Xr , Yr , Zr
Avec la méthode de Runge-Kutta
sur x0 , y0 , z0
Génération de l'observation
obsX, obsY, obsZ
Ajout d'un bruit Gaussien
de varience σb
Création et minimisation de la fonction coût
x, y, z
Avec la fonction Matlab
lsqnonlin
Génération des vecteurs postions optimisés
xe, ye, ze
Avec la méthode de Runge-Kutta
sur x, y, z
Post-Processing et visualisation des résultats
Schéma de l'algorithme d'estimation de la solution par notre code Matlab
La fonction coût de s'écrit différement selon les méthodes. Et pour la méthode 4D-Var la
fonction coût s'écrit comme la somme de Jb la fonction coût de l'ébauche et de Jo la fonction coût
des N différentes observations :
J ( x)=J o ( x)+ J b ( x)
Novembre 2015
10
Rusconi & Bazin - Devoir n°2
D'après le cours d'Assimilation de donnée (Cf cours de O. Thual disponible sur le moodle N7)
on a :
N
1
1
J b ( x )= ( x−xb ) T B−1 (x −x b ) et J o ( x )= ∑ [ y 0i −H i M 0 →i (x )]T R−1 [ y 0i −H i M 0 →i ( x) ]
2
2 i=1
With yio les observations, Hi l'opérateur de l'observation au temps i, M0→ i le modèle de l'évolution
dans le temps entre le temps 0 et le temps i
La méthode ainsi construite nous permet d'obtenir la position initiale optimisée par rapport à
l'observation.
4.2
Analyse des résultats
Nous avons lancé les calculs avec les données suivantes :
•
le nombre de point de la simulation : nb_int = 10 000
•
le nombre de point de l'observation : n_obs = 51
•
le pas de temps entre deux points : h = 0.001
•
l'intervalle séparant deux observations : d_obs = 20
•
point d'origine vrai : x0 = ( 10 , 10 , 20 )
•
ébauche du point d'origine : xb = ( 11 , 9 , 18 )
•
l'erreur d' observation : σR = 0,1
•
l'erreur d' ébauche : σB = 0,3
Dans les études d'influences suivantes, les paramètres non indiqués garderont la même valeur.
Le calcul lancé avec ses paramètres nous a donné le point d'origine optimisé :
x = ( 10.19 , 9.84 , 19.90 ) en 393 secondes.
Novembre 2015
11
Rusconi & Bazin - Devoir n°2
Les courbes représentatives de la position en fonctions du temps sont tracées au-dessous :
figures : Comparaison de la postion véritable obtenu par résolution par méthode de Runge-Kutta avec les
postions optimisées analitiquement.
Comme on peut le voir sur les courbes plus haut nous avons bien ici un modèle chaotique. En effet en
partant d'un point d'origine très proche du point d'origine véritable on arrive à un écart dans la prédiction
après environ 8 unité de temps.
Novembre 2015
12
Rusconi & Bazin - Devoir n°2
4.3
Influence de la fréquence d'observation
Pour analyser l'influence de la fréquence d'observation, sans modifier la durée de la fenêtre
d'assimilation, nous avons divisé par deux d_obs et multiplié par deux n_obs (d_obs = 10 et n_obs
=102). Ainsi nous avions bien une fenêtre de même largeur mais deux fois plus dense en points
d'observations.
Le calcul lancé avec ses paramètres nous a donné le point d'origine optimisé :
x = ( 10.14 , 9.89 , 19.94 ) en 421 secondes.
Ainsi nous obtenons de meilleurs résultats en augmentant la fréquence d'observation.
Cependant les résultats sont tout de même très proche.
Comparaison de la position véritable et la position obtenue analytiquement
On note que l'écart de la prédiction se fait au même instant (environ 8 unités de temps) que
dans le cas précédent même si par la suite les deux prédictions sont différentes.
4.4
Influence du temps d'observation
Pour analyser l'influence de la taille de la fenêtre d'assimilation sans modifier la fréquence
d'observation, nous avons divisé multiplié par deux n_obs sans toucher d_obs (d_obs = 20 et
n_obs =102). Ainsi nous avions bien une fenêtre deux fois plus large mais aussi dense en points
d'observations.
Le calcul lancé avec ses paramètres nous a donné le point d'origine optimisé :
x = ( 11.11 , 9.20 , 19.45 ) en 416 secondes.
Novembre 2015
13
Rusconi & Bazin - Devoir n°2
Contrairement à ce qu'on pouvait s'attendre, en doublant la fenêtre d'assimilation et donc le
nombre de points nous obtenons de moins bons résultats avec un temps de calcul supérieur au cas
de base.
Comparaison de la position véritable et la position obtenue analytiquement
On note aussi que l'écart de la prédiction se fait à un temps inférieur au cas de base (environ
6.5 unités de temps).
5
Conclusion
Au cours de ce projet nous avons analysé et expérimenté deux différentes méthodes d'estimations pour
le modèle de Lorenz. Durant ces analyses nous avons pu observer les limites et les avantages des méthodes
4D-Var et gradient conjugué.
Nous avons aussi observé le phénomène d'imprévisibilité du chaos. Ce genre d'analyse ne sont pas
seulement valable pour l'étude météorologique mais également pour plein d'autres domaines d'application
comme la génétique ou encore l'économie.
Novembre 2015
14

Documents pareils