modélisation et simulation en physique qcd+qed prediction bmw 2014 ... u montpellier elisation mo...

211

Upload: trandung

Post on 19-May-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Mod�elisation et simulation en physique

HMPH104, Facult�e des Sciences de Montpellier, 2017Felix Br�ummer ([email protected])

HMPH104, U Montpellier Mod�elisation et simulation en physique 1 / 206

Page 2: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

1 Introduction

2 Limitations des m�ethodes num�eriques

3 Int�egration et d�eriv�ee num�erique

4 M�ethodes de Monte Carlo : Int�egration, �echantillonnage, optimisation

5 �Equations di��erentielles ordinaires

6 �Equations di��erentielles partielles

HMPH104, U Montpellier Mod�elisation et simulation en physique 2 / 206

Page 3: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Introduction

HMPH104, U Montpellier Mod�elisation et simulation en physique 3 / 206

Page 4: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La physique num�erique

Situation commune en physique : On conna�t les �equations qui g�erent un syst�eme, maison ne peut pas les r�esoudre analytiquement.

Des solutions exactes n'existent que pour tr�es peu de probl�emes(beaucoup de sym�etrie, peu de d�egr�es de libert�e, pas de dissipation. . . )

Approximations control�ees parfois possible pour des syst�emes qui sont su�sammentproches d'un syst�eme exactement soluble.

Pour un syst�eme g�en�erique on a typiquement besoin des m�ethodes num�eriques !

HMPH104, U Montpellier Mod�elisation et simulation en physique 4 / 206

Page 5: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La physique num�erique

Exemple : m�ecanique c�eleste

Probl�eme de Kepler : Deux points mat�eriels, potentiel V � 1r: exactement soluble

(trajectoires = coniques).

Syst�eme solaire : Probl�eme �a plus que deux corps, mais attraction gravitationnelleentre les plan�etes faible par rapport �a l'attraction par le soleil! th�eorie des perturbations permet d'obtenir des r�esultats analytiques.

Cas g�en�erique du probl�eme �a n > 2 corps, toutes masses comparables! il faut r�esoudre les �equations de mouvement num�eriquement

HMPH104, U Montpellier Mod�elisation et simulation en physique 5 / 206

Page 6: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La physique num�erique

Exemple : physique des particules �el�ementaires

Particules �el�ementaires (excitations des champs quantiques) sans interactions :th�eorie exactement soluble

Particules avec interactions faibles (�el�ectrodynamique quantique. . . ) :th�eorie des perturbations

Particules soumises �a la force forte �a �energies basses! m�ethodes num�eriques : th�eorie quantique des champs sur r�eseau

HMPH104, U Montpellier Mod�elisation et simulation en physique 6 / 206

Page 7: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Applications r�ecentes de la physique num�erique

Formation des structures cosmiques ! Springel et al. 2005

Simulation de la distribution de la mati�ere (galaxies et amas galactiques) dans l'universprimordial : 1010 \particules" sous l'in uence de la gravitation Newtonienne, 1 mois surun supercalculateur

HMPH104, U Montpellier Mod�elisation et simulation en physique 7 / 206

Page 8: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Applications r�ecentes de la physique num�erique

Relativit�e num�erique ! Ossokine/Buonanno/Dietrich/Haas, SXS project 2017

bh.mp4

Emission d'ondes gravitationnelles lors de la collision de deux trous noirs, �ev�enementGW170104 r�ecemment observ�e par l'exp�erience LIGO

HMPH104, U Montpellier Mod�elisation et simulation en physique 8 / 206

Page 9: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Applications r�ecentes de la physique num�erique

Th�eorie quantique des champs sur r�eseau ! Borsanyi et al. 2014

0

2

4

6

8

10

ΔM

[MeV

]

ΔN

ΔΣ

ΔΞ

ΔD

ΔCG

ΔΞcc

experimentQCD+QEDprediction

BMW 2014 HCH

Premier calcul ab initio de la di��erence des masses du proton et du neutron �N (60 TBde donn�ees num�eriques)

HMPH104, U Montpellier Mod�elisation et simulation en physique 9 / 206

Page 10: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Applications r�ecentes de la physique num�erique

Collision d'ions lourds ! Models and Data Analysis Initiative, https://madai-public.cs.unc.edu/

himovie.mov

Collision de deux nouyaux Au �a une �energie de 200 GeV au collisionneur r�elativiste d'ionslourds RHIC

HMPH104, U Montpellier Mod�elisation et simulation en physique 10 / 206

Page 11: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Aper�cu du cours

Contenu : Algorithmes pour la physique num�erique

Erreur num�erique et complexit�e

Int�egration et di��erentiation num�erique

Equations di��erentielles ordinaires

Equations di��erentielles partielles

M�ethodes de Monte Carlo

Pr�er�equis :

Physique et math�ematique au niveau de la licence en physique

Connaissances de base en programmation(Techniques avanc�ees ! cours de Herv�e Wozniak, en parall�ele)

Mati�ere �a revoir ind�ependamment si n�ecessaire !

Familiarit�e avec Python : avantageux mais pas essentiel (�ca s'apprend vite)

HMPH104, U Montpellier Mod�elisation et simulation en physique 11 / 206

Page 12: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Aper�cu du cours

Ressources :

Ces notes de cours sur Moodle

Autres notes de cours en ligne, p. ex. par A. Palacios@UM (ce cours jusqu'�a 2015)

R�ef�erence pour quelques commandes importantes : Reference.pdf sur Moodle

Livre p�edagogique : \Computational physics" par M. Newman, CreateSpace 2013.

Livre encyclop�edique : \Numerical recipes in C++ (3rd ed.)" par W. H. Press,S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Cambridge Univ. Pr. 2007

Informations compl�ementaires (programmation avec Python 3, algorithmique �el�ementaire,m�ethode de Newton, alg�ebre lin�eaire num�erique, Monte Carlo. . . ) :

Notes du cours de HLPH609 \Programmation pour la physique" en L3 physique etapplications.

HMPH104, U Montpellier Mod�elisation et simulation en physique 12 / 206

Page 13: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La physique num�erique avec Python

Le langage Python 3 :

simple �a apprendre

polyvalent : beaucoup de domaines d'application

\batteries included" : vaste fonctionnalit�e dans les biblioth�eques

interpr�et�e, pas compil�e ) programmes facilement portable

supporte plusieurs styles de programmation : proc�edurale, orient�ee objet,fonctionnelle. . .

D�esavantage principal : programmes pas tr�es vite, di�cile �a optimiser) pas l'outil id�eal pour le calcul num�erique �a haute performance

HMPH104, U Montpellier Mod�elisation et simulation en physique 13 / 206

Page 14: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Python 3 en 3 transparents

Si vous n'etes pas encore familier avec Python : �Etudiez surtout les exemples de codepour voir le fonctionnement !

Di��erences avec d'autres langages populaires

Pas de d�eclaration des variables, il su�t de leur donner une valeur :

x = 5 # Affecte la valeur 5 �a la nouvelle variable x

# Le type est int (entier), ce qui r�esulte

# de la forme de l'affectation

y = 5.0E-4 # y = 0.0005 , nouvelle variable du type float

# (nombre flottant , pr�ecision double)

Une instruction par ligne, pas de \ ;" pour les s�eparer.

Blocs d'instructions distingu�es par le niveau d'indentation (pas de \{ }" ni de \end") :

if answer == correct_answer:

for i in range (3):

print("Well done!")

celebrate ()

HMPH104, U Montpellier Mod�elisation et simulation en physique 14 / 206

Page 15: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Python 3 en 3 transparents

Structures de controle

Structure conditionnelle :

if CONDITION:

INSTRUCTION1

INSTRUCTION2

...

elif CONDITION2: # facultatif

...

else: # facultatif

...

CONTINUE_HERE

Boucle for :

for VAR in ITERABLE:

INSTRUCTION1

...

CONTINUE_HERE

HMPH104, U Montpellier Mod�elisation et simulation en physique 15 / 206

Page 16: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Python 3 en 3 transparents

Boucle while :

while CONDITION:

INSTRUCTION1

...

CONTINUE_HERE

D�e�nition de fonction :

def FUNCTION_NAME(ARGUMENT1 , ARGUMENT2 , ...):

INSTRUCTION1

INSTRUCTION2

...

return RETURN_VALUE # facultatif

Appel de fonction :

print("The answer is", abs(-42))

HMPH104, U Montpellier Mod�elisation et simulation en physique 16 / 206

Page 17: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Un programme exemplaireUn programme qui a�che les longueurs d'onde � qui apparaissent dans le spectred'�emission de l'hydrog�ene avec la formule de Rydberg :

1

�= R

�1

n2� 1

m2

�; R = 1:097 � 107m�1 :

#!/usr/bin/python3

# Affiche les longeurs d'onde du spectre d'�emission de H

R = 1.097E-2 # R en unit�es de 1/nm

n_max = 0 # nombre quantique principal maximal

while n_max <= 0:

user_input = input("Entrez n_max > 0: ")

n_max = int(user_input)

for n in range(1, n_max +1): # pour tous n entre 1 et n_max:

print("S�erie", n, ":")

for m in range(n+1, n+6): # afficher 5 valeurs de lambda

lambdainv = R * (1/n**2 - 1/m**2)

print("{:.2f} nm".format (1/ lambdainv))

HMPH104, U Montpellier Mod�elisation et simulation en physique 17 / 206

Page 18: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Limitations des m�ethodes num�eriques

HMPH104, U Montpellier Mod�elisation et simulation en physique 18 / 206

Page 19: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Dans ce chapitre

La repr�esentation des nombres en Python

L'erreur num�erique

La complexit�e des algorithmes

HMPH104, U Montpellier Mod�elisation et simulation en physique 19 / 206

Page 20: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Limitations des m�ethodes num�eriques

Un ordinateur ne dispose pas d'une puissance de calcul in�nie :

Repr�esentation des donn�ees avec une pr�ecision �nie! erreurs d'arrondi, instabilit�es num�eriques

Le temps de calcul, la m�emoire et la largeur de bande sont limit�es :! r�esultats approximatives, erreurs de troncature! restrictions de la taille maximale des taches faisables

HMPH104, U Montpellier Mod�elisation et simulation en physique 20 / 206

Page 21: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La repr�esentation des nombres en Python

Python conna�t trois types de donn�ees num�eriques de base :

les nombres entiers (int)

les nombres r�eels ottants (float)

les nombres complexes ottants (complex)

Contrairement aux langages de programmation plus traditionnels, la taille des int n'est(th�eoriquement) pas limit�ee en Python : arithm�etique multipr�ecision.En pratique la manipulation des entiers extr�emement grands est pourtant limit�ee par lam�emoire �nie de l'ordinateur.

Un float en Python est de pr�ecision �xe de normalement 8 octets, soit 64 bits,conformement �a la norme IEEE754 \pr�ecision double".

Un complex correspond �a deux float, un pour la partie r�eelle et un pour la partieimaginaire.

HMPH104, U Montpellier Mod�elisation et simulation en physique 21 / 206

Page 22: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Les nombres ottants �a pr�ecision double

R�epartition des 64 bits d'un float :

signe: 1 bit

exposant: 11 bitsmantisse: 52 bits

L'exposant E peut repr�esenter 211 = 2048 nombres di��erents, entre �1022 et 1023inclus, les deux valeurs restants ayant une signi�cation sp�eciale

Avec les bits b0 : : : b51 de la mantisse et s le bit du signe, la valeur est alors

(�1)s 1 +

52Xn=1

b52�n2�n!� 2E

Nombres ottants aux valeurs absolues entre 2�1022 � 10�308 et 21024 � 10308 avecune pr�ecision de 53 log10 2 � 16 d�ecimales.

Lorsqu'une variable devient plus grande que 10308 : d�epassement, elle obtient lavaleur sp�eciale inf (in�ni) en Python

Lorsqu'une variable devient plus petite que 10�308 : soupassement, elle est mise �az�ero

HMPH104, U Montpellier Mod�elisation et simulation en physique 22 / 206

Page 23: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercice

�Ecrire deux versions d'un programme qui calcule la factorielle d'un nombre x donn�e.Dans la premi�ere version, x sera represent�e par un int et dans la deuxi�eme par un float.Qu'est-ce qu'on obtient pour la factorielle de 200 avec les deux programmes ? Expliquerce que l'on observe.

Indications (pour ceux qui ne conaissent pas encore Python) :

Pour cr�eer une variable x du type int et lui donner la valeur 1 :x = 1

Pour cr�eer une variable x du type float et lui donner la valeur 1 :x = 1.0

La commande a *= b remplace la valeur de a par le produit a � b.Boucle sur i de 0 �a n-1 :for i in range(n):

...

Fonctions : voir p. 16. (Python supporte la r�ecursivit�e !)

HMPH104, U Montpellier Mod�elisation et simulation en physique 23 / 206

Page 24: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur num�erique : Erreur d'arrondi

Niveau de pr�ecision = 16 d�ecimales

Exemple

En Python :p2 = 1:4142135623730951

En r�ealit�e :p2 = 1:4142135623730950488 : : :

Erreur d'arrondi : 0:0000000000000000512 : : :

3:0 et 2:999999999999999 sont le meme nombre en pr�ecision double !) il ne faut jamais tester si les valeurs de deux float sont �egales :

if x == y: # �a �eviter: faux pour x = 3.0 et y = 2.999...

print(x)

mais plutot si elles sont �egales �a une incertitude donn�ee pr�es :

epsilon = 1.0E-12

if abs(x - y) < epsilon: # mieux

print(x)

HMPH104, U Montpellier Mod�elisation et simulation en physique 24 / 206

Page 25: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur num�erique : Perte d'information

Probl�eme lorsqu'il faut combiner plusieurs nombres dont les ordres de grandeur sont tr�esdi��erents.

Exemple : x = 1, y = 1 + 10�14p2, alors 1014(y � x) = p2.

En Python :p2 = 1:414213562373095 � ��x = 1:000000000000000 � ��y = 1:000000000000014 � ��

y � x = 1:4 � � � � � � � � � � � � � � � � � � � 10�14

En fait le code

x = 1.0

y = 1.0 + 1.0E-14 * 2**(1/2)

print (2**(1/2))

print (1.0 E14 * (x - y))

produit l'a�chage1.4142135623730951

1.4210854715202004

) l'erreur d'arrondi appara�t d�ej�a dans la 2�eme d�ecimale !

HMPH104, U Montpellier Mod�elisation et simulation en physique 25 / 206

Page 26: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercice

�Ecrire un programme qui calcule la solution de l'�equation du second d�egr�eax2 + bx+ c = 0 en utilisant la formule standard,

x =�b�p�

2a; � = b2 � 4ac :

Qu'est-ce qu'on obtient pour a = c = 0:001 et b = 1000 ?Montrer qu'on peut aussi �ecrire les racines comme

x =2c

�b�p� :

Modi�er votre programme pour les �egalement calculer avec la deuxi�eme formule, etl'appliquer au cas a = c = 0:001 et b = 1000. Qu'est-ce qu'on obtient ? Quelle estl'explication ?

HMPH104, U Montpellier Mod�elisation et simulation en physique 26 / 206

Page 27: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur num�erique : Erreur de troncature

Pour un r�esultat d�e�ni par une limite : repr�esentation sur l'ordinateur toujours inexacte.

Exemple

e = limN!1

NXn=0

1

n!

Impossible de calculer une in�nit�e de termes en pratique

) erreur de troncature

En realit�e : e = 2:71828182845904 : : :Avec N = 10 : e � 2:71828180114638Erreur de troncature : 0:00000002731266 : : :

HMPH104, U Montpellier Mod�elisation et simulation en physique 27 / 206

Page 28: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercice

On va calculer l'int�egrale

I =

Z 1

�1f(x) dx f(x) =

p1� x2

avec une m�ethode num�erique simple et �etudier sa pr�ecision.Donner la valeur analytique de I (Indication : qu'est-ce que la signi�cationg�eometrique de cette int�egrale ?)�Ecrire un programme qui calcule une approximation de I par la N -�eme somme �adroite de Riemann.(Rappel : On divise l'intervalle [�1; 1] en N morceaux de largeur 2=N et poseI �PN

k=12Nfk avec fk = f(xk) et xk = �1 + 2k

N.)

Qu'est-ce qu'on obtient pour N = 100 ? Comparer avec la valeur analytique (ouplutot avec sa repr�esentation en Python).Si on augmente N tel que le temps de calcul reste inf�erieur �a 1s, par combienpeut-on reduire l'erreur de troncature ?

HMPH104, U Montpellier Mod�elisation et simulation en physique 28 / 206

Page 29: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur num�erique : Erreur absolue et relative

Soit x un nombre et ~x une approximation de x. On d�e�nit l'erreur absolue �(x; ~x),

�(x; ~x) = jx� ~xjet l'erreur relative �r(x; ~x)

�r(x; ~x) =jx� ~xjjxj = �

�1;

~x

x

�:

On ne conna�t jamais les valeurs exactes des erreurs num�eriques �, �r (sinon il n'y auraitpas besoin d'approximation). Typiquement on suppose qu'il s'ag�t des variables al�eatoiresnormalement distribu�ees. Le symbole � d�esigne l'�ecart-type de � et C l'�ecart-type de �r,

� = Cjxj :Par exemple, pour l'erreur d'arrondi du aux limites de la pr�ecision double, C = 10�16.

L'objectif de l'analyse d'erreurs est de d�eterminer C (ou �) pour obtenir une estimationpour �r (ou �).

HMPH104, U Montpellier Mod�elisation et simulation en physique 29 / 206

Page 30: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur num�erique : propagation des incertitudes

Selon la th�eorie des probablit�es :

Pour la somme y = x1 + x2 de deux nombres x1 et x2 avec incertitudes pascorrel�ees �1 et �2, on a �2y = �21 + �22 et donc

�y =q�21 + �22 :

Cas particulier : si les incertitudes r�elatives sont �egales, C1 = C2 � C, alors�y = C

px21 + x22.

Pour le produit y = x1x2 les carr�es des incertitudes relatives s'ajoutent, alors

Cy =qC21 + C2

2

Cas particulier : si C1 = C2 � C, alors Cy =p2C.

Cas g�en�eral : Soit y = y(x1; : : : xn), alors l'incertitude de y est

�y =

vuut nXi=1

�@y

@xi�i

�2

HMPH104, U Montpellier Mod�elisation et simulation en physique 30 / 206

Page 31: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur num�erique : Stabilit�e d'un algorithme

Un algorithme est

instable : des petites variations des donn�ees d'entr�ee peuvent se traduire en grandesvariations des donn�ees de sortie) l'erreur num�erique est ampli��ee

stable : des petites variations des donn�ees d'entr�ee ne produisent pas de grandesvariations des donn�ees de sortie) l'erreur num�erique est att�enu�ee ou reste inchang�ee.

La stabilit�e d'un algorithme peut etre pr�ecis�e quantitativement selon la situation.�Evidemment, etre stable est un crit�ere d�esirable.

HMPH104, U Montpellier Mod�elisation et simulation en physique 31 / 206

Page 32: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Complexit�e d'un algorithme

Exemples des probl�emes num�eriques :

�Evaluer une fonction �a n d�ecimales de pr�ecision

R�esoudre une �equation avec une pr�ecision de 1 sur n

Diagonaliser une matrice n� nTrier une liste de n �el�ements

Trouver la position d'un �el�ement particulier dans une liste de n �el�ements

Mesure de la performance d'un algorithme :Comment le temps de calcul T (n) depend-il de la taille des donn�ees d'entr�ee n ?

(Autres mesures selon la situation : besoin de m�emoire M(n) ou de largeur de bande du r�eseau B(n). . . )

On est int�eress�e surtout par le comportement asymptotique de T (n) pour des grands n.

HMPH104, U Montpellier Mod�elisation et simulation en physique 32 / 206

Page 33: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Analyse de complexit�e : Croissance asymptotique

Soit f : R+ ! R+ une fonction. On d�e�nit l'ensemble des fonctions O(f) parO(f) = ffonctions g : R+ ! R+ j 9 c > 0; x0 > 0 8 x > x0 : g(x) � c f(x)g

= fonctions qui croissent au maximum aussi vite que f asymptotiquement(pour x su�samment grand).

De meme, on d�e�nit (f) par

(f) = ffonctions g : R+ ! R+ j 9 c > 0; x0 > 0 8 x > x0 : cg(x) � f(x)g= fonctions qui croissent au moins aussi vite que f asymptotiquement

et en�n�(f) = (f) \ O(f)

= fonctions avec le meme comportement asymptotique que f .

HMPH104, U Montpellier Mod�elisation et simulation en physique 33 / 206

Page 34: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Analyse de complexit�e : Exemple de croissance asymptotiqueExemple : Soit g(x) = 2x3 � 3x2 + 1.

g(x) 2 O(x3)(pour grands x on peut n�egliger tous les termes sauf 2x3 ; puis on choisit c � 2).

De meme, g(x) 2 (x3)(meme raisonnement ; ici il su�t de choisir c > 1=2).

Puisque g(x) 2 O(x3) et g(x) 2 (x3), alors g(x) 2 �(x3).

g(x) 2 O(exp(x)), mais g(x) 62 (exp(x))(croissance compar�ee : l'exponentielle cro�t plus vite que toute puissance).

g(x) 62 O(x2), mais g(x) 2 (x2)

zoom out !

HMPH104, U Montpellier Mod�elisation et simulation en physique 34 / 206

Page 35: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercice

Montrer que pour des constantes positives a; b; c on a

�(log(xa)) = �(logb x) = �(log(cx)) = �(log(x)) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 35 / 206

Page 36: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Analyse de complexit�e

Objectif de l'analyse de complexit�e : trouver le comportement asymptotique de lafonction T (n) = temps de calcul en fonction de la taille des donn�ees d'entr�ee

) compter les op�erations simples n�ecessaires pour e�ectuer l'algorithme

Op�eration simple = a�ectation, op�eration arithm�etique sur float, comparaison. . .

Remarque 1 : En informatique la notation O(f(n)) est souvent utilis�ee au lieu de�(f(n)) meme si le sens est di��erent. Exemple : Si un algorithme est caract�eris�e par lacomplexit�e en temps T (n) 2 �(n logn), on dit commun�ement que� T (n) 2 O(n logn) � (ou meme, par abuse de notation, � T (n) = O(n logn) �) |juste par implication, mais strictement parlant une a�rmation plus faible. Ici nousutiliserons la notation plus pr�ecise � T (n) 2 �(n logn) �.

Remarque 2 : Pour l'analyse de complexit�e les symboles O, et � sont d�e�nis pour lalimite dans laquelle l'argument de la fonction tend vers in�ni. Par contre, en analyser�eelle on les d�e�nit normalement pour la limite dans laquelle l'argument tend vers z�ero(comme on verra quand on discute l'int�egration et la di��erentiation num�erique).

HMPH104, U Montpellier Mod�elisation et simulation en physique 36 / 206

Page 37: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Recherche lin�eaire

Donn�ees d'entr�ee : une liste L de longueur n qui contient l'�el�ement x

R�esultat : la position de x dans L

Algorithme : parcourir L, comparer x avec chaque �el�ement, terminer lorsqu'on letrouve

def linear_search(L, x):

for index , item in enumerate(L):

if item == x:

return index

Analyse de complexit�e :

Dans le meilleur cas, 1�er �el�ement = x, alors T (n) = const., alors T (n) 2 �(1).

Dans le pire cas, il faut parcourir toute la liste et e�ectuer une comparaison par�el�ement : T (n) / n, alors T (n) 2 �(n).

En moyenne, il faut parcourir la moiti�e de la liste : T (n) / n2, alors T (n) 2 �(n).

HMPH104, U Montpellier Mod�elisation et simulation en physique 37 / 206

Page 38: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Deuxi�eme exemple : Recherche dichotomique

Donn�ees d'entr�ee : une liste L ordonn�ee de longueur n qui contient l'�el�ement x

R�esultat : la position de x dans L

Algorithme : comparer l'�el�ement m au milieu de la liste avec x. Si m > x, rep�eteravec la moiti�e de la liste �a la gauche de m. Sinon, rep�eter avec la moiti�e �a la droitede m. D�es que la sous-liste restante ne contient qu'un seul �el�ement, terminer.

def binary_search(L, x):

left , right = 0, len(L) # L[left:right] contient x

while right - left > 1: # il y a plus qu'un �el�ement?

mid = (right + left) // 2 # indice du milieu

if L[mid] > x: # x dans la moiti�e �a gauche?

right = mid # r�ep�eter avec L[left:mid]

else: # x dans la moiti�e �a droite?

left = mid # r�ep�eter avec L[mid:right]

return left

Analyse de complexit�e :

log2 n it�erations de la boucle ) T (n) / log2 n, alors T (n) 2 �(log(n)).

HMPH104, U Montpellier Mod�elisation et simulation en physique 38 / 206

Page 39: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercice

Le code suivant teste si un nombre n est premier par des essais successives de division.Analyser sa complexit�e : quel est le comportement asymptotique de T (n) en moyenne ?

def is_prime(n):

k = 2

while k**2 <= n:

if n % k == 0:

return False

k += 1

return True

Exercice

Rappel : Le produit matriciel de deux matrices A et B de dimension n� n est

(A �B)ij =nX

k=1

AikBkj :

Analyser la complexit�e d'un algorithme qui calcule le produit matriciel avec cette formule.

HMPH104, U Montpellier Mod�elisation et simulation en physique 39 / 206

Page 40: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Analyse de complexit�e

Exemple hypoth�etique : Supposons qu'un algorithme a besoin d'un temps de calculT (10) = 10 �s si les donn�ees d'entr�ee sont caract�eris�ees par n = 10. Alors en fonction desa complexit�e le temps de calcul sera approximativement, pour n > 10 :

n = 10 n = 20 n = 30 n = 100 n = 1000 n = 10 000

�(1) 10 �s 10 �s 10 �s 10 �s 10 �s 10 �s�(logn) 10 �s 13 �s 15 �s 20 �s 30 �s 40 �s�(pn) 10 �s 14 �s 17 �s 32 �s 100 �s 320 �s

�(n) 10 �s 20 �s 30 �s 100 �s 1 ms 10 ms�(n2) 10 �s 40 �s 90 �s 1 ms 100 ms 10 s�(n3) 10 �s 80 �s 270 �s 10 ms 10 s 3 h�(en) 10 �s 220 ms 1.5 h 1026 ans� 10417 ans� 104326 ans�

(� age de l'univers � 1010 ans)

Ordres de grandeur utiles : Un ordinateur moderne peut e�ectuer � une milliarded'op�erations simples dans un temps \raisonnable" (� secondes { minutes).

Temps pour une million d'op�erations simples = \instantan�ee" (< 1s)

Temps pour une billion d'op�erations simples = \in�ni" (> heures)

HMPH104, U Montpellier Mod�elisation et simulation en physique 40 / 206

Page 41: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Int�egration et d�eriv�ee num�erique

HMPH104, U Montpellier Mod�elisation et simulation en physique 41 / 206

Page 42: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Dans ce chapitre

La m�ethode des trap�ezes

La m�ethode de Simpson et les autres m�ethodes de Newton-Cotes

La m�ethode de Romberg

La quadrature de Gauss

La d�eriv�ee num�erique

HMPH104, U Montpellier Mod�elisation et simulation en physique 42 / 206

Page 43: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

L'int�egration num�erique

Probl�eme : On chercheR baf(x) dx pour un f dont on ne conna�t pas la primitive.

L'int�egrale peut etre impropre (f pas d�e�nie en a ou b, ou a = �1 ou b =1)

L'int�egrande peut contenir des discontinuit�es ou des singularit�es

Int�egration multidimensionnelle ! m�ethodes de Monte Carlo, plus tard

D�e�nition de l'int�egrale par les sommes de Riemann :

Z b

a

f(x) dx = limN!1

NXk=1

h fk ; h =b� aN

; fk = f(xk) ; xk = a+ kh

Calcul de l'aire entre la courbe de f(x) et l'axe des x avec N rectangles d'aire h fk.

������������������������������������������������������������

������������������������������������������������������������

���������������������������������������������������������������������������

���������������������������������������������������������������������������

����������������������������������������������������������������������

����������������������������������������������������������������������

��������������������������������������������������

��������������������������������������������������

�������������������������������������������������������

�������������������������������������������������������

����������������������������������������������������������������������

����������������������������������������������������������������������

x x x x xx0 1 2 3 4 5 6

f(x)

xa = x

(Ici : sommes �a droite. Similaire pour les sommes �a gauche ou au milieu.)

HMPH104, U Montpellier Mod�elisation et simulation en physique 43 / 206

Page 44: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes : M�ethode des trap�ezes

Mieux : Au lieu des rectangles, utiliser des trap�ezes

�����������������������������������������������������������������

�����������������������������������������������������������������

���������������������������������������������������������������������������

���������������������������������������������������������������������������

���������������������������������������������������������������������������

���������������������������������������������������������������������������

����������������������������������������������������������������������

����������������������������������������������������������������������

������������������������������������������������

������������������������������������������������

����������������������������������������������������������������������

����������������������������������������������������������������������

x

f(x)

x x x x xx0 1 2 3 4 5 6a = x

R�egle des trap�ezes : Z xk+1

xk

f(x) dx � h

2(fk+1 + fk)

alors Z b

a

f(x) dx =N�1Xk=0

Z xk+1

xk

f(x) dx � h f(a)

2+f(b)

2+

N�1Xk=1

fk

!:

HMPH104, U Montpellier Mod�elisation et simulation en physique 44 / 206

Page 45: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes : M�ethode des trap�ezes

Fonction simple pour calculer des int�egrales avec la m�ethode des trap�ezes :

def int_trapez(f, a, b, N):

h = (b - a) / N

result = f(a)/2 + f(b)/2 # les points aux bornes

for k in range(1, N): # les points �a l'int�erieur

result += f(a + k*h)

result *= h

return result

Pour la tester :

from math import sin , pi

print("I =", int_trapez(sin , 0, pi, 10000))

HMPH104, U Montpellier Mod�elisation et simulation en physique 45 / 206

Page 46: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Estimation de l'erreur pour la r�egle des trap�ezes

Developpement limit�e de f(x) en xk :

f(x) = fk + (x� xk)f 0k + 1

2(x� xk)2f 00k + : : :

On int�egre entre xk et xk+1 :Z xk+1

xk

f(x) dx

= fk

Z xk+1

xk

dx+ f 0k

Z xk+1

xk

(x� xk) dx+ 1

2f 00k

Z xk+1

xk

(x� xk)2 dx+ : : :

= h fk +1

2h2 f 0k +

1

6h3 f 00k +O(h4)

De meme, pour un d�eveloppement limit�e de f(x) en xk+1,Z xk+1

xk

f(x) dx = h fk+1 � 1

2h2f 0k+1 +

1

6h3 f 00k+1 +O(h4) :

On ajoute ces deux �equations et divise par 2 :Z xk+1

xk

f(x) dx =1

2h (fk + fk+1) +

1

4h2�f 0k � f 0k+1

�+

1

12h3�f 00k + f 00k+1

�+O(h4)

HMPH104, U Montpellier Mod�elisation et simulation en physique 46 / 206

Page 47: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Estimation de l'erreur pour la r�egle des trap�ezesOn prend la somme sur toutes les tranches :Z b

a

f(x) dx =N�1Xk=0

Z xk+1

xk

f(x) dx

=1

2hN�1Xk=0

(fk + fk+1)| {z }r�egle des trap�ezes

+1

4h2�f 0(a)� f 0(b)�+ 1

12h3

N�1Xk=0

�f 00k + f 00k+1

�+O(Nh4)

Tous les termes / h2 se suppriment sauf 14h2(f 0(a)� f 0(b)).

On peut montrer : Pareil pour les termes / h4 ) le O(Nh4) est en fait O(h4).Les termes / h3 correspondent �a la r�egle des trap�ezes pour la fonction h2

6f 00(x) :

1

12h3

N�1Xk=0

�f 00k + f 00k+1

�=

Z b

a

�h2

6f 00(x)

�dx+O(h4) = h2

6

�f 0(b)� f 0(a)�+O(h4) :

En r�esum�e :Z b

a

f(x) dx =1

2hN�1Xk=0

(fk + fk+1)| {z }r�egle des trap�ezes

+1

12h2�f 0(a)� f 0(b)�| {z }

erreur �a premier ordre

+O(h4) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 47 / 206

Page 48: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Estimation de l'erreur pour la r�egle des trap�ezesFormule d'Euler-MacLaurin pour l'erreur de troncature :

� � 1

12h2(f 0(a)� f 0(b)) :

M�ethode d'ordre h : r�esultat exact �a termes d'ordre h2 pr�es.

Comparaison avec erreur d'arrondi : avec une pr�ecision r�elative C � 10�16, leserreurs sont comparables lorsque

1

12h2(f 0(a)� f 0(b)) ' C

Z b

a

f(x) dx

ou avec h = (b� a)=N

N � (b� a)sf 0(a)� f 0(b)12R baf(x) dx

C�1=2 :

Si le facteur est O(1), alors pour N ' 108 it�erations l'erreur de troncature devientmoins important que l'erreur d'arrondi. Pour un nombre raisonnable d'it�erationsc'est l'erreur de troncature qui est dominant.

Complexit�e : pour une pr�ecision de 1 sur n, besoin de �(pn) op�erations simples.

HMPH104, U Montpellier Mod�elisation et simulation en physique 48 / 206

Page 49: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Estimation de l'erreur pour la r�egle des trap�ezes

Fa�con plus pratique d'estimer l'erreur : faire varier le nombre de points.

On d�enomme

I la valeur exacte de l'int�egrale, I =R baf(x) dx

N1 le nombre de tranches de largeur h1 = (b� a)=N1

I1 la valeur obtenue avec la m�ethode des trap�ezes

�1 l'erreur num�erique en premi�ere approximation, I � I1 + �1

Sachant que la m�ethode des trap�ezes est d'ordre h :

I = I1 + �1 +O(h41) = I1 + c h21 +O(h41) ; c = cte:

Si on redouble le nombre de points, N2 = 2N1 et h2 = h1=2 :

I = I2 + c h22 + : : :

alorsI2 � I1 = c (h21 � h22) � 3c h22

) �2 � 1

3(I2 � I1)

HMPH104, U Montpellier Mod�elisation et simulation en physique 49 / 206

Page 50: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes : M�ethode de Simpson

���������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������

������������������������������������������������������

������������������������������������������������������

������������������

������������������

���������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������

�������������

�������������

�������������

�������������

������������������������������������������������������������������������

������������������������������������������������������������������������

���������������������������������������������

���������������������������������������������

x

f(x)

x x x x xx1 2 3 4 5 6x x x x xx0 1 2 3 4 5 60a = x

Meme mieux : approximer la courbe sur chaque tranche pas par une constante (sommede Riemann) ni par une droite (m�ethode des trap�ezes) mais par un polynome de 2ndd�egr�e : M�ethode de Simpson.

HMPH104, U Montpellier Mod�elisation et simulation en physique 50 / 206

Page 51: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes : M�ethode de Simpson

Fonction quadratique d�e�nie sur deux tranches cons�ecutives par (xk�1; fk�1), (xk; fk) et(xk+1; fk+1) :

a x2k�1 + b xk�1 + c = fk�1a x2k + b xk + c = fka x2k+1 + b xk+1 + c = fk+1

9=; 3 �equations lin�eaires, 3 inconnues a, b, c

Pour simplicit�e : xk�1 = �h, xk = 0, xk+1 = h :

a h2 � b h+ c =f(�h)c =f(0)

a h2 + b h+ c =f(h)

Solution :

c = f(0) ; b =f(h)� f(�h)

2h; a =

f(h) + f(�h)� 2 f(0)

2h2:

En tant que polynome, ax2 + bx+ c est facile �a int�egrer :Z h

�hax2 + bx+ c dx =

h

3(f(�h) + 4 f(0) + f(h)) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 51 / 206

Page 52: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes : M�ethode de Simpson

���������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������

������������������������������������������������������

������������������������������������������������������

������������������

������������������

���������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������

�������������

�������������

�������������

�������������

������������������������������������������������������������������������

������������������������������������������������������������������������

���������������������������������������������

���������������������������������������������

x

f(x)

x x x x xx1 2 3 4 5 6x x x x xx0 1 2 3 4 5 60a = x

On a trouv�e : Z xk+1

xk�1

f(x) dx � h

3(fk�1 + 4 fk + fk+1)

Alors Z b

a

f(x) dx =X

1�k�N�1k impair

Z xk+1

xk�1

f(x) dx

)Z b

a

f(x) dx � h

3

0BB@f(a) + f(b) + 4

X1�k�N�1k impair

fk + 2X

2�k�N�2k pair

fk

1CCA

R�egle de Simpson.

HMPH104, U Montpellier Mod�elisation et simulation en physique 52 / 206

Page 53: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Estimation de l'erreur de la m�ethode de Simpson

Calcul similare comme pour la m�ethode des trap�ezes : Formule d'Euler-MacLaurin,

� � 1

90h4�f 000(a)� f 000(b)�

M�ethode d'ordre h3 : exacte �a termes d'ordre h4 pr�es.

L'erreur d'arrondi devient comparable �a l'erreur de troncature pour seulementN ' 10 000 points. En g�en�eral un plus grand nombre de points n'augmentera pas lapr�ecision du calcul.

Convergence beaucoup plus vite que la m�ethode des trap�ezes pour des int�egrandesbien comport�ees (d�eriv�ees born�ees. . . )

Complexit�e : pour atteindre une pr�ecision de 1 sur n,

1

n!= � / h4 / 1

N4

alors il faut �evaluer f �a N / n1=4 points ) op�erations simples / n1=4 ) �(n1=4).

HMPH104, U Montpellier Mod�elisation et simulation en physique 53 / 206

Page 54: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Simpson

Exercices

Pour la m�ethode de Simpson, on peut aussi estimer l'erreur en premi�ereapproximation en redoublant le nombre de pas, comme avec la m�ethode des trap�ezes(voir p. 49). Montrer qu'on obtient ainsi l'estimation

�2 � 1

15(I2 � I1) :

R�ealiser une fonction int_simpson(f, a, b, N) similaire �a la fonctionint_trapez du cours, mais qui utilise la m�ethode de Simpson.Calculer

I =

Z �

0

x2 sinx dx

avec la m�ethode des trap�ezes et avec la m�ethode de Simpson pourN = 10; 100; 1000; 2000 et comparer avec le r�esultat exact I = �2 � 4. PourN = 2000, comparer l'estimation de l'erreur obtenue avec la formule ci-dessus (ouplutot avec la formule de p. 49 pour la m�ethode des trap�ezes) avec l'erreur r�eel.Impl�ementer un sch�ema adaptatif pour la m�ethode de Simpson (comme celuipr�esent�e ci-dessous pour la r�egle des trap�ezes).

HMPH104, U Montpellier Mod�elisation et simulation en physique 54 / 206

Page 55: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes de degr�e p

G�en�eralisation :

p tranches cons�ecutives entre xk et xk+p d�e�nissent un polynome de degr�e p

On peut alors approximerZ xk+p

xk

f(x) dx �Z xk+p

xk

�cpx

p + cp�1xp�1 + : : :+ c0

�dx

o�u les coe�cients ci sont d�etermin�es par les p+ 1 �equations lin�eaires

cpxpk + : : :+ c0 = fk

: : :

cpxpk+p + : : :+ c0 = fk+p

La primitive du polynome est facile �a calculer analytiquement.

R�esultat : R�egle d'int�egration de Newton-Cotes de degr�e p.

HMPH104, U Montpellier Mod�elisation et simulation en physique 55 / 206

Page 56: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes de degr�e p

p = 1 : R�egle des trap�ezes,Z b

a

f(x) dx � h�1

2f(a) + f1 + f2 + f3 + : : :+ fN�1 +

1

2f(b)

�:

p = 2 : R�egle de Simpson,Z b

a

f(x) dx � h�1

3f(a) +

4

3f1 +

2

3f2 +

4

3f3 +

2

3f4 + : : :+

4

3fN�1 +

1

3f(b)

�:

p = 3 : R�egle de Simpson 3=8,Z b

a

f(x) dx � h�3

8f(a) +

9

8f1 +

9

8f2 +

3

4f3 +

9

8f4 +

9

8f5 +

3

4f6 + : : :+

3

8f(b)

�:

p = 4 : R�egle de Boole,Z b

a

f(x) dx � h 14

45f(a) +

64

45f1 +

8

15f2 +

64

45f3 +

28

45f4

+64

45f5 +

8

15f6 +

64

45f7 + : : :+

64

45fN�1 +

14

45f(b)

!:

HMPH104, U Montpellier Mod�elisation et simulation en physique 56 / 206

Page 57: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Newton-Cotes

La m�ethode de degr�e p donne le r�esultat exact si la fonction f est un polynome dedegr�e � p.(Meme mieux si p pair : m�ethode exacte pour polynomes de d�egr�e � p+ 1 ! plus di�cile �a montrer.)

En pratique : La vitesse de convergence augmente avec p si f \se comporte bien"(est bien approxim�ee par des polynomes ; pas de discontinuit�es et/ou singularit�es)

Pour des int�egrandes discontinues, rapidement uctuantes ou singulaires : r�egle destrap�ezes peut etre le meilleur choix

HMPH104, U Montpellier Mod�elisation et simulation en physique 57 / 206

Page 58: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode des trap�ezes adaptative

On retourne �a la r�egle des trap�ezes et on rappelle la notation de p. 49 :

I =

Z b

a

f(x) dx

= Ii + �i +O(h4i ) pour un calcul avec Ni sous-intervalles de largeur hi =b� aNi

= hi

f(a)

2+f(b)

2+

Ni�1Xk=1

fk

!+ �i +O(h4i ) ;

On rappelle aussi l'estimation de l'erreur : Si Ni+1 = 2Ni, alors

�i+1 � 1

3(Ii+1 � Ii) :

M�ethode adaptative pour atteindre une pr�ecision donn�ee � :

Calculer I1 avec N1 au choix

Successivement redoubler le nombre de points, Ni+1 = 2Ni, et calculer Ii+1.(On peut r�eutiliser les points d�ej�a calcul�es ! �economiser le temps de calcul.)

Calculer �i+1. Si j�i+1j < �, terminer.

HMPH104, U Montpellier Mod�elisation et simulation en physique 58 / 206

Page 59: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode des trap�ezes adaptative

Pour r�eutiliser les points d�ej�a calcul�es, on note que

Ii = hi

f(a)

2+f(b)

2+

Ni�1Xk=1

f(a+ khi)

!

= hi

0BB@f(a)2

+f(b)

2+

X1�k�Ni�1k impair

f(a+ khi) +X

2�k�Ni�2k pair

f(a+ khi)

1CCA

Or X2�k�Ni�2

k pair

f(a+ k hi) =

Ni=2�1X`=1

f(a+ 2`hi) =

Ni�1�1X`=1

f(a+ `hi�1)

o�u on a pos�e k = 2` et utilis�e que 2hi = hi�1 et Ni=2 = Ni�1. Alors

Ii =1

2hi�1

0@f(a)

2+f(b)

2+

Ni�1�1X`=1

f(a+ `hi�1)

1A

| {z }Ii�1

+hiX

1�k�Ni�1k impair

f(a+ khi) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 59 / 206

Page 60: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode des trap�ezes adaptative

Ii =1

2Ii�1 + hi

X1�k�Ni�1k impair

f(a+ khi)

Code :

def int_trapez_ad(f, a, b, delta =1.0E-5, N=10):

oldI = 1.0 E308 # "infini"

h = (b - a) / N

newI = 0.5*f(a) + 0.5*f(b) # calcul de I_1

for k in range(1, N):

newI += f(a + h*k)

newI *= h # fin du calcul de I_1

while abs(oldI - newI)/3 > delta: # calcul de I_(i+1):

h /= 2 # d�edoubler incr�ement

N *= 2 # redoubler nombre de points

oldI = newI

newI *= 0.5 # valeur initiale: I_i / 2

for k in range(1, N, 2): # ajouter les f_k impairs

newI += h * f(a + k*h)

return newI

HMPH104, U Montpellier Mod�elisation et simulation en physique 60 / 206

Page 61: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

Id�ee : extrapolation de l'approximation en redoublant le nombre de points.On observe : Avec la m�ethode des trap�ezes, on a

�i =1

3(Ii � Ii�1)

alors

I = Ii +1

3(Ii � Ii�1) +O(h4i )

R�esultat exact �a termes d'ordre h4 pr�es, meme si calcul�e avec la r�egle des trap�ezes !

La m�ethode de Romberg se base sur une g�en�eralisation de cette observation.

HMPH104, U Montpellier Mod�elisation et simulation en physique 61 / 206

Page 62: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

Pour obtenir un r�esultat exact �a termes d'ordre h6 pr�es :

Notation

Ri;1 = Ii ; Ri;2 = Ii +1

3(Ii � Ii�1) = Ii +

1

3(Ri;1 �Ri�1;1)

On vient d'observer que

I = Ri;2 + c2 h4i +O(h6i ) ; c2 = cte:

Vrai aussi pour i� 1 :

I = Ri�1;2 + c2 h4i�1 +O(h6i�1) = Ri�1;2 + 16c2 h

4i +O(h6i )

On �elimine c2 de ces deux �equations :

I = Ri;2 +1

15(Ri;2 �Ri�1;2) +O(h6i )

Pr�ecision O(h5i ), erreur O(h6i ) .

HMPH104, U Montpellier Mod�elisation et simulation en physique 62 / 206

Page 63: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

En continuant ce processus, on peut atteindre une pr�ecision quelconque en utilisantseulement la m�ethode des trap�ezes. En g�en�erale :

Ri;m = r�esultat apr�es i� 1 redoublements, pr�ecision O(h2m�1) (erreur O(h2m))

I = Ri;m + cm h2mi +O(h2m+2i ) ; cm = cte:

I = Ri�1;m + 4mcm h2mi +O(h2m+2i )

Apr�es �elimination de cm :

I = Ri;m +1

4m � 1(Ri;m �Ri�1;m)| {z }

Ri;m+1

+O(h2m+2i )

Estimation de l'erreur :

j�ij .���ci�1h2(i�1)i

��� = 1

4i�1 � 1jRi;i�1 �Ri�1;i�1j :

HMPH104, U Montpellier Mod�elisation et simulation en physique 63 / 206

Page 64: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

En pratique : Algorithme

Calculer I1 = R1;1 avec la m�ethode des trap�ezes : pr�ecision O(h1).Calculer I2 = R2;1 avec la m�ethode des trap�ezes et poser

R2;2 = R2;1 +1

3(R2;1 �R1;1) ; pr�ecision O(h32) :

Calculer I3 = R3;1 avec la m�ethode des trap�ezes. Avec R3;1 et R2;1, calculer R3;2.Avec R3;2 et R2;2, calculer R3;3 : pr�ecision O(h53).It�erer : �A la i-�eme it�eration, calculer Ii = Ri;1 avec la r�egle des trap�ezes et lesautres Ri;m avec la formule de p. 63, jusqu'�a Ri;i : pr�ecision O(h2i�1i ).

Terminer lorsque l'erreur, estim�ee par

j�ij . 1

4i�1 � 1jRi;i�1 �Ri�1;i�1j ;

devient inf�erieur �a la pr�ecision d�esir�ee.

HMPH104, U Montpellier Mod�elisation et simulation en physique 64 / 206

Page 65: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

Sch�ema :I1 = R1;1

&I2 = R2;1 ! R2;2

& &I3 = R3;1 ! R3;2 ! R3;3

& & &I4 = R4;1 ! R4;2 ! R4;3 ! R4;4

etc.

\Extrapolation de Richardson"

HMPH104, U Montpellier Mod�elisation et simulation en physique 65 / 206

Page 66: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

from trapezium import int_trapez

def int_romberg(f, a, b, delta =1.0E-5, N=2):

eps = 1.0 E308 # erreur

i = 1 # it�eration

R = [int_trapez(f, a, b, N)] # R = liste des R_(i,m)

while eps > delta:

i += 1

N *= 2

R_old = R[:] # R_old = liste des R_(i-1,m)

R += [0.0] # allonger R par 1 �el�ement

R[0] = int_trapez(f, a, b, N) # calculer R_(i,1) ...

for k in range(i-1): # ... et les autres R_(i,m)

R[k+1] = R[k] + 1/(4**(k+1) - 1) * (R[k] - R_old[k])

eps = 1/(4**(i-1) - 1) * abs(R[i-2] - R_old[i-2])

return R[i-1], eps # renvoyer R_(i,i) et l'erreur

Ce code ne r�eutilise pas les points d�ej�a calcul�es. Optimisation ! exercices.

HMPH104, U Montpellier Mod�elisation et simulation en physique 66 / 206

Page 67: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Romberg

Exercices

Optimiser le code pour la m�ethode de Romberg, de la sorte que les points d�ej�acalcul�es sont r�eutilis�es �a chaque it�eration (comme avec la m�ethode adaptative).Calculez Z 2

0

cos(x)3 dx

�a une pr�ecision de 13 d�ecimales avec la m�ethode des trap�ezes adaptative et avec lam�ethode de Romberg. Comparez le temps de calcul.Calculez l'int�egrale d'exercice 1.3.3,

I =

Z 1

�1

p1� x2 dx

par la m�ethode de Romberg. Avec le r�esultat num�erique et la valeur analytique de I,calculez l'erreur num�erique et comparez avec l'estimation donn�e par le programme.Qu'est-ce qu'on observe ? Quelle est l'explication ?

HMPH104, U Montpellier Mod�elisation et simulation en physique 67 / 206

Page 68: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

Rappels :

Toutes les m�ethodes qu'on a discut�e jusqu'au pr�esent sont bas�ees sur unesubdivision de l'intervalle d'int�egration en N tranches de meme largeur h.

En particulier, c'est le cas pour la m�ethode de Newton-Cotes de degr�e p. Cettem�ethode n�ecessite que N soit un multiple de p.

La m�ethode de Newton-Cotes de degr�e p donne le r�esultat exact si l'int�egrande estun polynome de degr�e � p. En ce cas, N = p tranches sont su�sants.

Ces m�ethodes n�ecessitent l'�evaluation de f �a N + 1 points (noeuds).

M�ethode de Gauss : une m�ethode qui donne le r�esultat exact, avec N noeuds, sil'int�egrande est un polynome de degr�e � 2N � 1. Les noeuds ne seront pas �equidistants.

HMPH104, U Montpellier Mod�elisation et simulation en physique 68 / 206

Page 69: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

R�egle d'int�egration g�en�erale :

Z b

a

f(x) dx �NXk=0

wkfk

fk = f(xk), avec les noeuds xk 2 [a; b], pas forcement �equidistants, pas forcementx0 = a ou xN = b

fwkg = poids

Exemple : R�egle des trap�ezes, xk = a+ kh et poids w0 = wN = h2, w1�k�N�1 = h

Exemple : R�egle de Simpson, xk = a+ kh et w0 = wN = h3, autres wk = 4h

3ou 2h

3

HMPH104, U Montpellier Mod�elisation et simulation en physique 69 / 206

Page 70: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de GaussPour trouver des poids wk pour N noeuds xk (1 � k � N) pas �equidistants, onconsid�ere les polynomes d'interpolation de degr�e N � 1 suivants :

�(k)(x) =Y

m=1:::Nm6=k

x� xmxk � xm =

x� x1xk � x1 � � �

x� xk�1xk � xk�1 �

x� xk+1xk � xk+1 � � �

x� xNxk � xN

Propri�et�e :

�(k)(xm) = �mk ��

1 ; m = k0 ; m 6= k

On d�e�nit

�(x) =NXk=1

f(xk)�(k)(x)

Propri�et�es :

Polynome de degr�e N � 1 (combinaison lin�eaire des polynomes de degr�e N � 1)

�(xm) = f(xm) car

�(xm) =NXk=1

f(xk)�(k)(xm) =NXk=1

f(xk)�km = f(xm)

Unique car N coe�cients determin�es par N contraintesHMPH104, U Montpellier Mod�elisation et simulation en physique 70 / 206

Page 71: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

En posantZ b

a

f(x) dx �Z b

a

�(x) dx =

Z b

a

NXk=1

f(xk)�(k)(x) dx =NXk=1

f(xk)

Z b

a

�(k)(x) dx

on note que

wk =

Z b

a

�(k)(x) dx :

On a identi��e les poids f!kg pour un ensemble fxkg de noeuds donn�eMalheureusement �(k)(x) n'est pas facile �a int�egrer analytiquement (polynome |mais d�e�ni par 2N�1 termes ! Trop pour N & 30).

Heureusement il faut les int�egrer seulement une fois pour un seul choix de a et b.Apres on peut les r�eutiliser pour int�egrer une fonction f(x) quelconque sur unintervalle [a; b] quelconque.

HMPH104, U Montpellier Mod�elisation et simulation en physique 71 / 206

Page 72: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

Pour l'intervalle [�1; 1] d'int�egration et un ensemble de N noeudsx1 : : : xN 2 [�1; 1] : Calculer une seule fois les poids

wk =

Z 1

�1�(k)(x) dx pour k = 1 : : : N

Pour un autre domaine d'int�egration [a; b] : Red�e�nition des noeuds,

x0k =1

2(b� a)xk + 1

2(b+ a) (transformation a�ne)

et des poids,

w0k =1

2(b� a)wk :

Ainsi on peut calculer pour un f(x) et [a; b] quelconque

Z b

a

f(x) dx �NXk=1

w0kf(x0k) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 72 / 206

Page 73: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

Comment choisir les xk ?

Pour arriver �a l'ordre maximale, tel que le r�esultat est exact si f(x) est un polynome dedegr�e � 2N � 1 :

xk = z�eros du N -�eme polynome de Legendre PN (x)

wk =2

1� x2�dPNdx

��2�����x=xk

(Pas de demonstration ici.) Voir aussi TD 1.1.3 et 1.1.4.

Quadrature de Gauss-Legendre.

D'autres choix de xk et wk peuvent donner des r�esultats exacts pour

f(x) =W (x) � polynome

() r�esultats optimis�es si f est bien approxim�ee par une expression de cette forme) avec

W (x) = 1p1�x2

(Gauss-Chebychev), W (x) = x�e�x (Gauss-Laguerre), W (x) = e�x2

(Gauss-Hermite) etc.

HMPH104, U Montpellier Mod�elisation et simulation en physique 73 / 206

Page 74: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

Poids et noeuds pour la m�ethode de Gauss-Legendre :

N = 10 N = 100

(Figures par M. Newman)

HMPH104, U Montpellier Mod�elisation et simulation en physique 74 / 206

Page 75: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

def int_gauss(f, points , weights):

result = 0.0

for x, w in zip(points , weights):

result += w * f(x)

return result

Le �chier gaussxw.py contient une fonction gaussxw(N) pour calculer les noeuds etpoids de la quadrature de Gauss-Legendre pour un N donn�e. Exemple d'usage :

from gaussxw import gaussxw

N = 100

x, w = gaussxw(N)

# adapter x -> x' et w -> w' �a l'intervalle [a, b]:

a, b = 0, 1

xp = 0.5*(b - a)*x + 0.5*(b + a)

wp = 0.5*(b - a)*w

# calculer l'int�egrale d'une fonction sur [a, b]:

from math import atanh

print("R�esultat:", int_gauss(atanh , xp , wp))

HMPH104, U Montpellier Mod�elisation et simulation en physique 75 / 206

Page 76: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

Forces :

Convergence excellente pour des int�egrandes bien approxim�ees par un polynome (ouune fonction du type W (x)� polynome)

Tr�es peu d'�evaluations de fonction n�ecessaires

M�ethode ouverte : pas besoin d'�evaluer la fonction aux limites a et b

Faiblesses :

Convergence mauvaise pour des int�egrandes pas r�egulaires

Le calcul des poids et noeuds prend du temps (mais do�t etre e�ectu�e qu'une fois)

Impossible de r�eutiliser les points d�ej�a calcul�es lorsqu'on augmente N

HMPH104, U Montpellier Mod�elisation et simulation en physique 76 / 206

Page 77: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Quadrature de Gauss

Exercices

Selon la th�eorie de Debye, la capacit�e thermique d'un solide est donn�ee par la formule

CV = 9nV kB

�T

�D

�3 Z �D=T

0

x4 ex

(ex � 1)2dx

o�u V est le volume, n la densit�e num�erique, kB = 1:38 � 10�23 JK�1 la constante deBoltzmann, T la temp�erature et �D la temp�erature de Debye.

�Ecrire une fonction CV(T) qui calcule CV en fonction de la temp�erature, pour unbloc de (10 cm)3 d'aluminium (n = 6:022 � 1028 m�3, �D = 428 K). Utiliser laquadrature de Gauss avec N = 50 noeuds.Tracer CV (T ) entre T = 5 K et T = 500 K.

HMPH104, U Montpellier Mod�elisation et simulation en physique 77 / 206

Page 78: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Comparaison des m�ethodes d'int�egration

M�ethode des trap�ezes :

Facile �a impl�ementer

Pas tr�es pr�ecise

Bon choix pour les int�egrandes irr�egulaires

M�ethode de Simpson :

Facile �a impl�ementer

Plutot pr�ecise

Mauvais choix pour les int�egrandes irr�egulaires

M�ethode de Romberg :

Impl�ementation plus compliqu�ee

Tr�es pr�ecise

Mauvais choix pour les int�egrandes irr�egulaires

M�ethode de Gauss :

Impl�ementation n�ecessite calcul des noeuds et poids

Tr�es pr�ecise

Mauvais choix pour les int�egrandes irr�egulaires

HMPH104, U Montpellier Mod�elisation et simulation en physique 78 / 206

Page 79: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Int�egrales impropres

Pour calculer une int�egrale impropre, Z 1

0

f(x) dx

la proc�edure standard est de faire un changement de variable :

y =x

1 + x; x =

y

1� y :

Alors

dx =dy

(1� y)2 ;Z 1

0

f(x) dx =

Z 1

0

1

(1� y)2 f�

y

1� y�

dy :

Pour calculerR1af(x) dx : calculer

R10f(x) dx et soustraire

R a0f(x) dx.

Pour calculerR1�1 f(x) dx : calculer la somme de

R10f(x) dx et de

R 0�1 f(x) dx.

Selon le probl�eme d'autres changements de variable peuvent donner de meilleursr�esultats, par exemple,

y =x�

� + x�avec des constantes �; � :

HMPH104, U Montpellier Mod�elisation et simulation en physique 79 / 206

Page 80: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La d�eriv�ee num�erique

Probl�eme : Pour une fonction f(x) (qu'on peut �evaluer num�eriquement), calculer lad�eriv�ee f 0(x).Solution pr�ef�er�ee si possible : calculer f 0 analytiquement et l'�evaluer num�eriquement.

f 0 peut etre calcul�e analytiquement pour les fonctions �el�ementaires.

Techniques de base pour le calcul num�erique de la d�eriv�ee plutot impr�ecises

Mais souvent l'expression de f(x) n'est pas connue : f d�e�nie implicitement, comme unesolution d'�equation di��erentielle / alg�ebrique. Dans ce cas on a besoin de calculer f 0

d'une mani�ere compl�etement num�erique.

HMPH104, U Montpellier Mod�elisation et simulation en physique 80 / 206

Page 81: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

D�eriv�ees : Di��erences progressives et r�egressives

D�e�nition de la d�eriv�ee :

f 0(x) = limh! 0

f(x+ h)� f(x)h

:

Approximation

f(x) � f(x+ h)� f(x)h

pour h su�samment petit : di��erence progressive.

�Equivalent :

f(x) � f(x)� f(x� h)h

;

pour h su�samment petit : di��erence r�egressive.

x−h x x+h

regressiveprogressive

HMPH104, U Montpellier Mod�elisation et simulation en physique 81 / 206

Page 82: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Erreur de la d�eriv�ee

Erreur pour le calcul de la d�eriv�ee en utilisant la di��erence progressive :

f(x+ h) = f(x) + hf 0(x) +1

2h2f 00(x) + : : : (d�eveloppement limit�e)

) f 0(x) =f(x+ h)� f(x)

h� 1

2h f 00(x) + : : :

Erreur O(h).Probl�eme : si on choisit h petit, on peut faire baisser l'erreur de troncature, mais enmeme temps �ca va faire monter l'erreur d'arrondi.

Raison : on soustrait f(x) de f(x+ h), deux quantit�es tr�es proches ! voir chap�tre 2 etTD1.3. Exemple extreme : f(x) = x2, d�eriv�ee �a x = 1 avec h = 10�16 :

h = 1.0E-16

print (((1.0+h)**2 - 1.0**2) / h)

a�che 0:0 alors que le vrai r�esultat est 2 !

Choix optimal avec cette m�ethode si f(x) = O(1) : h � 10�8, pas tr�es pr�ecis. Pareil pourdi��erence r�egressive.

HMPH104, U Montpellier Mod�elisation et simulation en physique 82 / 206

Page 83: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

D�eriv�ee centrale

Moyenne des di��erences progressives et r�egressives avec pas h=2 :

f 0(x) � f�x+ h

2

�� f �x� h2

�h

D�eveloppement limit�e :

f

�x+

h

2

�= f(x) +

1

2hf 0(x) +

1

8h2f 00(x) +

1

48h3f 000(x) + : : :

f

�x� h

2

�= f(x)� 1

2hf 0(x) +

1

8h2f 00(x)� 1

48h3f 000(x) + : : :

On soustrait ces deux �equations :

f 0(x) =f�x+ h

2

�� f �x� h2

�h

� 1

24h2f 000(x) + : : :

Mieux que la di��erence progressive ou r�egressive : erreur O(h2).Choix optimal si f(x) = O(1) : h � 10�5, erreur � � 10�10.

HMPH104, U Montpellier Mod�elisation et simulation en physique 83 / 206

Page 84: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

D�eriv�ee seconde

D�eriv�ee centrale :

f 00(x) � f 0�x+ h

2

�� f 0 �x� h2

�h

Avec

f 0�x+

h

2

�� f(x+ h

2+ h

2)� f �x+ h

2� h

2

�h

=f(x+ h)� f(x)

h

et

f 0�x� h

2

�� f(x)� f(x� h)

h

on trouve

f 00(x) � f(x+ h)� 2f(x) + f(x� h)h2

:

Erreur :

� = � 1

12h2 f 0000(x) + : : : (! exercices)

Choix optimal si f(x) = O(1) : h � 10�4, erreur � � 10�8.

HMPH104, U Montpellier Mod�elisation et simulation en physique 84 / 206

Page 85: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercices

Montrer que

f 00(x) =f(x+ h)� 2f(x) + f(x� h)

h2� 1

12h2 f 0000(x) +O(h3) :

R�ealiser une fonction f(x) qui retourne 1 + 12tanh(2x) (se servir de la fonction

math.tanh). Calculer �a la main l'expression analytique de f 0(x) et tracez-la,ensemble avec la d�eriv�ee num�erique de f(x) calcul�ee avec la d�eriv�ee centrale, surl'intervalle [�2; 2].

HMPH104, U Montpellier Mod�elisation et simulation en physique 85 / 206

Page 86: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Monte Carlo : Int�egration,�echantillonnage, optimisation

HMPH104, U Montpellier Mod�elisation et simulation en physique 86 / 206

Page 87: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Dans ce chapitre

Int�egration Monte Carlo

�Echantillonnage avec Monte Carlo par cha�nes de Markov

Optimisation avec le recuit simul�e

HMPH104, U Montpellier Mod�elisation et simulation en physique 87 / 206

Page 88: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Les m�ethodes de Monte Carlo

Les m�ethodes de Monte Carlo (MC) sont des algorithmes non d�eterministes qui utilisentdes processus al�eatoires pour obtenir des approximations num�eriques. Pour certainsclasses de probl�emes ils sont beaucoup plus e�cients que ses �equivalents d�eterministes.On se sert des m�ethodes de MC pour trois classes de probl�emes (entre autres) :

Int�egration : calculer des int�egrales multidimensionnelles, int�egrandes pas r�eguli�eres,conditions aux limites compliqu�ees

�Echantillonnage : g�en�erer des �echantillons des lois de probabilit�e compliqu�ees enplusieurs dimensions

Optimisation : trouver l'optimum global d'une fonction de plusieurs variables avecun grand nombre d'optima locaux.

Les m�ethodes de MC comptent parmi les outils les plus importants de la physiquenum�erique contemporaine. Autres applications : ing�enierie, biologie, sciences �nanci�eres,math�ematique. . .

HMPH104, U Montpellier Mod�elisation et simulation en physique 88 / 206

Page 89: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La g�en�eration des nombres pseudoal�eatoires

Les m�ethodes de MC ont besoin d'un grand nombre des nombres al�eatoires.Probl�eme :

Il est impossible de g�en�erer des vrais nombres al�eatoirespar un algorithme d�eterministe.

Un ordinateur mis dans le meme �etat de memoire plusieurs fois va chaque fois produire lememe r�esultat.Solutions :

soit qu'on se sert d'un g�en�erateur physique de nombres al�eatoires, dont lem�ecanisme repose sur des e�ets de la m�ecanique quantique (vrais nombresal�eatoires : m�ethode lente, pas r�eproductible)

soit qu'on utilise un algorithme d�eterministe pour produire des suites de nombresavec approximativement les memes caract�eristiques stochastiques qu'une vraie suiteal�eatoire (nombres pseudoal�eatoires).

Nous nous servirons des nombres pseudoal�eatoires fournis par la biblioth�eque numpy :

numpy.random.random(n) produit n nombres pseudoal�eatoire dans [0:0; 1:0)(distribution uniforme)

numpy.random.choice(a) renvoie un des �el�ements de l'array a choisi au hasard.

HMPH104, U Montpellier Mod�elisation et simulation en physique 89 / 206

Page 90: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La loi des grands nombres

Soit Xi une suite des variables al�eatoires ind�ependentes ob�eissant la meme distribution,avec l'esp�erance hXi. La loi des grands nombres dit que le moyen sur n des Xi convergevers hXi quand n ! 1 avec probabilit�e 1 :

Pr

�lim

n!1X1 + : : :+Xn

n= hXi

�= 1 :

En pratique : Pour d�eterminer hXi il faut g�en�erer au hasard un nombre su�sant de Xi

et prendre leur moyen.

Plus pr�ecisement, la di��erence X1+:::+Xnn

� hXi tend vers z�ero comme 1pnen moyenne

(car les variances des variables al�eatoires ind�ependantes sont additives).

HMPH104, U Montpellier Mod�elisation et simulation en physique 90 / 206

Page 91: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Int�egration MC : int�egration en d� 1 dimensions

Le �eau de la dimension (\curse of dimensionality") :

Int�egration num�erique dans d dimensions d'une fonction f : D ! R d�e�nie sur D � Rd,

I =

ZD

f(x) ddx :

Convergence des m�ethodes d�eterministes (voir chapitre 3) tr�es lente si d est grand.Par exemple, en d = 100, il faut au moins N100 �evaluations de f pour unesous-division du domaine d'int�egration en N morceaux par dimension. D�ej�a pourN = 2 besoin de 2100 � 1030 �evaluations !

En physique, dimension de l'espace des phases = nombre de degr�es de libert�e dusyst�eme, souvent grande

Solution : algorithmes stochastiques de Monte Carlo dont la convergence ne dependpas directement de la dimension du syst�eme mais suit la loi de 1p

N.

HMPH104, U Montpellier Mod�elisation et simulation en physique 91 / 206

Page 92: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Int�egration MC : int�egrandes di�cilesConsid�erons l'int�egrale

I =

Z 1

0

sin2�

1

x(1� x)�dx :

Int�egrande continue et born�ee ) I existe (I = 0:61515 : : :). R�esultats pour � . 10�3 :

trap�ezes Simpson Gauss-Legendre

0:6158 0:7207 0:615 (?)�0:0001 �0:0002 �0:001 (?)

Meilleur r�esultat par m�ethode de Monte Carlo.HMPH104, U Montpellier Mod�elisation et simulation en physique 92 / 206

Page 93: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

L'int�egration MC

Calculons I =R 10f(x) dx avec une m�ethode stochastique.

M�ethode naive :

On cr�ee N pairs (xi; yi) de nombres al�eatoires uniformement distribu�es sur(0; 1)� (0; 1).

On compte le nombre K de points avec f(xi) � yi.Si N est grand, alors la fraction des points qui tombent en dessous du graphe de fcorrespond �a la fraction de l'aire en dessous du graphe de f .

Alors I � K=N .

N = 1000000

K = 0

for i in range(N):

if f(np.random.random ()) > np.random.random ():

K += 1

I = K/N

HMPH104, U Montpellier Mod�elisation et simulation en physique 93 / 206

Page 94: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

L'int�egration MCM�ethode am�elior�ee :

D�e�nition de la moyenne de f entre a et b :

hfi = 1

b� aZ b

a

f(x) dx

On estime hfi par

hfi � 1

N

NXi=1

f(xi)

avec les xi uniformement distribu�ees sur [a; b]. Alors

I � b� aN

NXi=1

f(xi) :

N = 10000000

favg = 0.0

for i in range(N):

favg += f(np.random.random ())

I = favg/N

R�esultat I = 0:6151� 0:0002.HMPH104, U Montpellier Mod�elisation et simulation en physique 94 / 206

Page 95: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

L'int�egration MC

L'erreur r�elative pour les deux m�ethodes est de l'ordre 1=pN , mais le coe�cient est

plus petit pour la m�ethode am�elior�ee (et elle coute moins cher en temps de calcul).

Des m�ethodes d'int�egration de MC plus sophistiqu�ees existent pour des int�egrandestr�es in�egales (�echantillonnage pr�ef�erentiel avec des estimateurs biais�es, \importancesampling"). Erreur toujoirs O(1=pN).

Comparaison : l'erreur pour la m�ethode des trap�ezes �etait de l'ordre 1=N2, pour lam�ethode de Simpson de l'ordre 1=N4

Il faut pr�ef�erer les m�ethodes d�eterministes si possible (par exemple, pour desint�egrales simples dans . 3 dimensons).

En revanche, en d� 1 dimensions ou pour les int�egrandes mal comport�ees lesm�ethodes de MC peuvent etre les seuls outils utilisables malgr�e leur mauvaise vitessede convergence.

HMPH104, U Montpellier Mod�elisation et simulation en physique 95 / 206

Page 96: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

L'int�egration MC

Exercices

R�ealiser un programme qui calcule le volume de la boule de rayon 1 dans d dimensions par

une int�egration MC. Comparer avec les valeurs exactes 4�3, 8�2

15et �5

120pour d = 3; 5; 10.

HMPH104, U Montpellier Mod�elisation et simulation en physique 96 / 206

Page 97: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage

Rappel :

Une loi de probabilit�e P (x) sur un espace mesurable M est une applicationP : M ! [0; 1[ tel que

PRMP (x) = 1 (+ conditions techniques).

La probabilit�e d'une variable al�eatoire X distribu�ee selon P de prendre une valeurdans E �M est

Pr (X 2 E) =XZ

E

P (x) :

L'esp�erance hfi d'une fonction f(x) sur M selon la loi de probabilit�e P est

hfi =XZ

M

f(x)P (x) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 97 / 206

Page 98: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage

Examples des lois de probabilit�e en physique :

La densit�e de probabilit�eP (x) = j (x)j2

avec (x) une fonction d'onde en m�ecanique quantique.

La distribution de Boltzmann,

P (x) =1

Ze�E(x)kBT

de la physique statistique, qui d�ecrit un ensemble canonique en �equilibre thermique.T = temp�erature, kB = constante de Boltzmann, Z = normalisation,P (x) = probabilit�e d'etre dans l'�etat microscopique x avec �energie E(x).

P (xjd) = la probabilit�e post�erieure Bayesienne qu'un certain mod�ele avec certainsvaleurs de param�etres x d�ecrit les donn�ees exp�erimentales d.

P (xjd) � P (djx)P (x)P (djx) : qualit�e d'ajustement, P (x) : probabilit�e a priori = biais th�eorique.

HMPH104, U Montpellier Mod�elisation et simulation en physique 98 / 206

Page 99: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage

Probl�eme : obtenir un �echantillon d'une loi de probabilit�e P (x) sur M

= une suite �nie de N variables al�eatoires distribu�ees selon P (x)

Motivations :

Avec un �echantillon de taille N pour N su�samment grand, on peut analyser lespropri�et�es de la loi de probabilit�e P (x) num�eriquement. Par exemple :

Calcul num�erique des esp�erances $ des observables physiques

Calcul num�erique des correlations

Marginalisation (int�egration/sommation d'un sous-ensemble des composantes de x)

HMPH104, U Montpellier Mod�elisation et simulation en physique 99 / 206

Page 100: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�EchantillonnageOn dispose d'un g�en�erateur de variables al�eatoires uniformement distribu�ees sur [0; 1).

Comment en obtenir un �echantillon de P (x) ?

M�ethode analytique : M�ethode de la transform�ee inverse en une dimension.

Soit y une variable distribu�ee uniformement sur [0; 1). On cherche x(y) tel que x estdistribu�e selon P (x). Or selon le th�eor�eme de la r�eciproque de la fonction de repartition :

P (x) dx = dy )Z x(y)

�1P (x0) dx0 =

Z y

0

dy0 = y

alors il faut calculer l'int�egrale �a gauche et r�esoudre l'�equation selon x(y).

Exemple : P (x) = 12sin(x) sur [0; �).

y =

Z x

0

1

2sin(x0) dx0 =

1

2(1� cos(x)) ) x = arccos(1� 2y)

Faisable seulement pour les P (x) dont on connait la primitive et qui permettent deresoudre l'�equation r�esultante. M�ethode tr�es limit�ee. D'autres m�ethodes analytiquesexistent pour des P (x) sp�eciales (p.ex. algorithme de Box-Muller pour la loi normale).HMPH104, U Montpellier Mod�elisation et simulation en physique 100 / 206

Page 101: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC

M�ethode de MC : M�ethode de rejet.

On gen�ere des variables al�eatoires xi uniformement distribu�ees sur un domaine D de Mqui inclut le support de P . On les garde avec probabilit�e P (xi)=c (o�u c � maxP est uneconstante), on rej�ete les autres.

import numpy as np

def rejection_sampling(P, c, Dmin , Dmax):

while True:

# g�en�erer x uniformement distribu�e sur [Dmin , Dmax):

x = (Dmax - Dmin) * np.random.random () + Dmin

# accepter avec probabilit�e P(x) / c; sinon r�ep�eter

if P(x) / c > np.random.random ():

return x

Plutot ine�cace pour des P (x) �etroitement concentr�ees (il faut g�en�erer beaucoup depoints juste pour rejeter la plupart apr�es).

HMPH104, U Montpellier Mod�elisation et simulation en physique 101 / 206

Page 102: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

Monte-Carlo par cha�nes de Markov

(MCMC, \Markov Chain Monte Carlo")

Id�ee : Une fois trouv�e la r�egion dans M ou la distribution P est localis�e, rester proche decette r�egion et l'explorer avec une marche al�eatoire : on construit une cha�ne de Markov= une suite des pas al�eatoires.

Algorithme de Metropolis-Hastings :

Partir avec x1 2M choisi al�eatoirement.

Choisir al�eatoirement un point y 2M proche de xn.

Si P (y) � P (xn), accepter y comme prochain point dans la cha�ne.

Si P (y) < P (xn), accepter y avec la probabilit�e P (y)=P (xn).

Si y a �et�e accept�e, repeter avec xn+1 = y. Sinon, repeter avec xn+1 = xn.

On peut montrer : Les fxng1�n�N forment un �echantillon de P (x) pour des grands N .

HMPH104, U Montpellier Mod�elisation et simulation en physique 102 / 206

Page 103: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

HMPH104, U Montpellier Mod�elisation et simulation en physique 103 / 206

Page 104: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

HMPH104, U Montpellier Mod�elisation et simulation en physique 103 / 206

Page 105: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

HMPH104, U Montpellier Mod�elisation et simulation en physique 103 / 206

Page 106: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

HMPH104, U Montpellier Mod�elisation et simulation en physique 103 / 206

Page 107: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

HMPH104, U Montpellier Mod�elisation et simulation en physique 103 / 206

Page 108: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

HMPH104, U Montpellier Mod�elisation et simulation en physique 103 / 206

Page 109: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage MC : Cha�nes de Markov

Remarques :

Le d�eroulement de l'algorithme ne depend que des proportions des probabilit�es. Alorson peut l'utiliser meme si la normalisation absolue de P (x) est inconnue (situationcommune en pratique).

L'algorithme satisfait la condition du bilan d�etail�ee : Soit P (x) la probabilit�e d'etredans l'�etat x et W (x;x0) la probabilit�e de transition entre x et x0, alors

P (x)W (x;x0) = P (x0)W (x0;x) :

Cette condition, ensemble avec certains autres conditions techniques, garantie laconvergence de la distribution des fxng vers P (x).En g�en�eral la cha�ne va d�emarrer dans une r�egion �a basse probabilit�e. Les premiersit�erations, avant de trouver une r�egion �a haute probabilit�e qui est r�epr�esentativepour la distribution de limite, sont donc �a jeter. On parle du \burn-in" (rodage) dela cha�ne.

Si la distribution P (x) poss�ede plusieurs � �les � isol�ees de haute probabilit�e, il peutetre di�cile de faire une transition entre eux. Dans ce cas il vaut mieux d�emarrerplusieurs cha�nes aux points de d�emarrage al�eatoires.

HMPH104, U Montpellier Mod�elisation et simulation en physique 104 / 206

Page 110: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Application : Le mod�ele d'Ising

Le mod�ele d'Ising est tr�es important dans la physique statistique. Il peut d�ecrire, parexemple, un solide ferromagn�etique repr�esent�e par un r�eseau de N spins.

Tout spin est dans un des deux �etats j+i ou j�i : 2N possibles con�gurations.

L'�energie d'une telle con�guration d�epend des orientations des spins par rapport �aleurs premiers voisins dans le r�eseau. Le hamiltonien est

H = �JXhiji

SiSj :

Ici Si = �1 pour le spin i dans l'�etat j�i, la somme inclut tous pairs hiji de voisinsdans le reseau, et J > 0 est une constante dite l'�energie d'�echange.

La probabilit�e du syst�eme d'etre dans une con�guration � particuli�ere est donn�ee parla loi de Boltzmann :

P (�) =1

Ze�H(�)kBT

ou T est la temp�erature, kB est la constante de Boltzmann, et la normalisation Zest la fonction de partition

Z =X�

e�H(�)kBT :

HMPH104, U Montpellier Mod�elisation et simulation en physique 105 / 206

Page 111: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le mod�ele d'IsingLa magn�etisation d'une con�guration � de N spins Si est

M = �Xi

Si (� = moment magn�etique par spin, constante)

La magn�etisation moyenne est l'esp�erance de la magn�etisation :

hMi =X�

M(�)P (�) =1

Z

X�

M(�)e�H(�)kBT

La susceptibilit�e magn�etique est li�ee aux uctuations de M :

� =N

kBT

�hM2i � hMi2�La capacit�e thermique est li�ee aux uctuations de l'�energie :

CV =1

NkBT 2

�hH2i � hHi2�On s'int�eresse �a l'�energie moyenne et la magnetisation moyenne, ainsi qu'�a lasusceptibilit�e et la capacit�e thermique, en fonction de la temp�erature et du couplage J .Prenons un r�eseau 2-dimensionnel comme exemple.HMPH104, U Montpellier Mod�elisation et simulation en physique 106 / 206

Page 112: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le mod�ele d'Ising 2d

Reseau 2d des spins.

L’energie de chaque

depend de son orientationpar rapport a ses

spin

premiers voisins.

H = �JLXi=1

LXj=1

(SijSi+1;j + SijSi;j+1)

On d�e�nit SL+1;j � S1;j et Si;L+1 � Si;1 (conditions aux limites p�eriodiques).

Probl�eme : Le nombre de con�gurations cro�t tr�es vite avec la taille du syst�eme. Pour unr�eseau de N = L�L = 10� 10 spins on a d�ej�a 2N = 2100 � 1030 con�gurations, donc ilest impossible d'�evaluer les sommes pour Z, hMi, hHi, hM2i ou hH2i.Solution : On calcule les observables approximativement en utilisant un �echantillon de ladistribution de Boltzmann, obtenu avec la m�ethode MCMC.

HMPH104, U Montpellier Mod�elisation et simulation en physique 107 / 206

Page 113: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage Monte Carlo pour le mod�ele d'Ising 2d

Algorithme de Metropolis pour le mod�ele d'Ising :

D�emarrer avec une con�guration soit al�eatoire (\d�emarrage �a chaud") soit ordonn�ee(\d�emarrage �a froid").

Choisir un spin par hasard et �evaluer �E = E0 � E, la di��erence d'�energies si lespin �etait chang�e.

Si �E < 0, changer le spin imp�erativement. Si �E > 0, changer le spin avec laprobabilit�e

1Ze� E0

kBT

1Ze� EkBT

= e� �EkBT

R�ep�eter jusqu'�a l'arriv�ee �a l'�equilibre thermique (\burn-in").

Ensuite, r�ep�eter autant de fois qu'il faut pour obtenir un �echantillon de tailleraisonnable, en gardant en m�emoire les valeurs des observables que l'on veut calculer.

En�n calculer les valeurs moyennes des observables.

Il convient de m�esurer les temp�eratures en unit�es de T0 � JkB

, les �energies en unit�es deJ , et les magn�etisations en unit�es de �. De plus, on va calculer avec des densit�esd'�energie E=N au lieu des �energies E.

HMPH104, U Montpellier Mod�elisation et simulation en physique 108 / 206

Page 114: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d

Pour cr�eer un r�eseau de L� L spins, tous dans l'�etat 1, avec J = 1 et L = 16 :

import numpy as np

L = 16 # pour un r�eseau de L x L spins

norm = 1 / L**2 # constante de normalisation

lat = np.ones((L, L), dtype=int) # le r�eseau

coupling = 1.0 # la constante de couplage J

Initialiser d'autres constantes :

burnin_steps = 10000 # nombre de pas de burn -in

mcmc_steps = 100000 # longueur de chaque cha �ne de Markov

min_T = 0.1 # temp�erature minimale

max_T = 3 # T maximale

T_steps = 30 # nombre de valeurs de T pour le scan

filename = "ising.dat" # fichier pour enr�egistrer donn�ees

HMPH104, U Montpellier Mod�elisation et simulation en physique 109 / 206

Page 115: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d

Voici quelques fonctions pour changer un seul spin. Le spin sera chang�e si �E < 0.Sinon, il sera chang�e avec la probabilit�e e��E=kBT .

# Changer le spin (i, j)

def flip(i, j):

lat[i, j] *= -1

# Changer le spin (i, j) si �energie gagn�ee ou par

# fluctuation thermique; renvoyer diff�erence d'�energies

def flip_maybe(T, i, j):

DeltaE = deltaE(i, j)

if DeltaE < 0: # �energie gagn�ee

flip(i, j)

return DeltaE

elif np.random.random () < np.exp(-DeltaE/T): # �en. perdue

flip(i, j) # changer spin tout de meme (fluctuation)

return DeltaE

else: # rien changer

return 0.0

HMPH104, U Montpellier Mod�elisation et simulation en physique 110 / 206

Page 116: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d

Pour calculer �E :

E = � J (Si�1;j + Si+1;j + Si;j�1 + Si;j+1)Sij + (autres pairs de voisins)

E0 = � J (Si�1;j + Si+1;j + Si;j�1 + Si;j+1) (�Sij) + (autres pairs de voisins)

�E = 2 J (Si�1;j + Si+1;j + Si;j�1 + Si;j+1)Sij

# diff�erence d'�energies si spin (i, j) �etait chang�e

def deltaE(i, j):

prev_i , next_i = (i - 1) % L, (i + 1) % L

prev_j , next_j = (j - 1) % L, (j + 1) % L

DeltaE = 2 * coupling * lat[i, j] * \

(lat[prev_i , j] + lat[next_i , j]

+ lat[i, prev_j] + lat[i, next_j ])

return DeltaE

�A noter le \% L" pour prendre en compte les conditions aux limites p�eriodiques.

HMPH104, U Montpellier Mod�elisation et simulation en physique 111 / 206

Page 117: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d�Energie et magnetisation totale : on rappelle

H = �JLXi=1

LXj=1

(SijSi+1;j + SijSi;j+1) ; M = �Xi

Si

# �energie totale

def energy ():

E = 0.0

for i in range(L):

next_i = (i + 1) % L # 0 si i == L-1, CL p�eriodiques

for j in range(L):

next_j = (j + 1) % L # CL p�eriodiques

E -= coupling * lat[i, j] * lat[next_i , j]

E -= coupling * lat[i, j] * lat[i, next_j]

return E

# magnetisation totale

def magnetisation ():

return lat.sum()

HMPH104, U Montpellier Mod�elisation et simulation en physique 112 / 206

Page 118: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d

Quelques autres fonctions utiles :

# T -> infini: tous spins al�eatoires

def heat():

for i in range(L):

for j in range(L):

if np.random.choice ([True , False ]):

flip(i,j)

# T -> 0: tous spins �egaux , �etat fondamental

def freeze ():

spin = np.random.choice([-1, 1])

for i in range(L):

for j in range(L):

lat[i, j] = spin

# g�en�erer indice al�eatoire

def random_index ():

return np.random.randint(L)

HMPH104, U Montpellier Mod�elisation et simulation en physique 113 / 206

Page 119: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d

M�ethode du \burn-in" pour atteindre l'�equilibre thermique :

def burnin(T, burnin_steps):

for n in range(burnin_steps):

i, j = random_index (), random_index ()

flip_maybe(T, i, j)

On commence le programme principale :

Epoints = np.zeros(T_steps) # points de <E>

Mpoints = np.zeros(T_steps) # points de <M>

E2points = np.zeros(T_steps) # points de <E^2>

M2points = np.zeros(T_steps) # points de <M^2>

T = min_T

dT = (max_T - min_T) / T_steps

Tpoints = np.arange(min_T , max_T , dT) # points pour scan

HMPH104, U Montpellier Mod�elisation et simulation en physique 114 / 206

Page 120: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2d

Boucle principale :

for step in range(T_steps):

freeze () # commencer en �etat fondamental

burnin(T, burnin_steps) # burn -in sans rien m�emoriser

en = energy () # �energie en �equilibre

magn = magnetisation () # magn�etisation en �equilibre

E = M = E2 = M2 = 0.0 # <E>, <M>, <E^2>, <M^2>

for n in range(mcmc_steps): # boucle MCMC

i, j = random_index (), random_index () # choisir spin

oldstate = lat[i, j] # enr�egistrer son �etat

en += flip_maybe(T, i, j) # le changer (ou pas)

E += en # mettre �a jour <E>

E2 += en**2 # mettre �a jour <E^2>

magn += lat[i, j] - oldstate # recalculer M

M += magn # mettre �a jour <M>

M2 += magn **2 # mettre �a jour <M^2>

HMPH104, U Montpellier Mod�elisation et simulation en physique 115 / 206

Page 121: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2dIl reste de normaliser les r�esultats et de les enregistrer :

# Continuation de la boucle principale:

E *= norm

M *= norm

M2 *= norm **2

E2 *= norm **2

E /= mcmc_steps

M /= mcmc_steps

E2 /= mcmc_steps

M2 /= mcmc_steps

Epoints[n] = E

E2points[n] = E2

Mpoints[n] = M

M2points[n] = M2

T += dT # fin de boucle principale

np.savetxt(filename , np.transpose( \

[Epoints , E2points , Mpoints , M2points , Tpoints ]))

HMPH104, U Montpellier Mod�elisation et simulation en physique 116 / 206

Page 122: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

MCMC pour le mod�ele d'Ising 2dLe programme plot_ising.py trace les donn�ees :

import numpy as np

import matplotlib.pyplot as plt

filename = "ising.dat"

data = np.transpose(np.loadtxt(filename))

Epoints = data [0]

E2points = data [1]

Mpoints = data [2]

M2points = data [3]

Tpoints = data [4]

# Calcul de la susceptibilit�e et la capacit�e thermique:

chipoints = 256 * (M2points - Mpoints **2) / Tpoints

CVpoints = 256 * (E2points - Epoints **2) / Tpoints **2

plt.plot(Tpoints , CVpoints , 'm*') # trace CV(T)

plt.xlabel('T/T0')

plt.ylabel('Specific heat')

plt.show()

HMPH104, U Montpellier Mod�elisation et simulation en physique 117 / 206

Page 123: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

R�esultats pour 100 points, 3M it�erations MC par point (�2h sur mon portable) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 118 / 206

Page 124: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le mod�ele d'Ising 2d, r�esultats

�A basses temp�eratures : magn�etisation spontan�ee

�A hautes temp�eratures : magn�etisation moyenne est z�ero

Transition de phase du deuxi�eme ordre �a la temp�erature de Curie Tc = 2:27T0

�A T > Tc : Loi de Curie-Weiss pour la susceptibilit�e, � � 1T�Tc (approximativement)

Simulation moins pr�ecise autour de Tc

HMPH104, U Montpellier Mod�elisation et simulation en physique 119 / 206

Page 125: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Echantillonnage de MC

Exercices

R�ealiser une simulation MC d'un gaz parfait quantique dans une bo�te. Le gaz consiste de1000 atomes, chacun caract�eris�e par trois nombres quantiques nx, ny, nz = 1; 2; 3 : : :1.L'�energie cin�etique par atome est

E =�2~2

2mL2�n2x + n2y + n2z

�avec L la longueur de la bo�te et m la masse. Les atomes n'interagissent pas, doncl'�energie totale est la somme des �energies cin�etiques.

Montrer que, si on passe de nx �a nx � 1, alors l'�energie change par

�E =�2~2

2mL2(�2nx + 1) :

Utiliser l'algorithme de Metropolis-Hastings pour simuler le syst�eme. La loi deprobabilit�e est celle de Boltzmann,

P (�) =1

Ze�E(�)=kBT :

Tracer l'�energie par particule pour un �echantillon de N = 200 000 points �a T �xe.Tracer l'�energie moyenne en fonction de la temp�erature.

HMPH104, U Montpellier Mod�elisation et simulation en physique 120 / 206

Page 126: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

Le recuit simul�e (\Simulated Annealing") : un algorithme dont le m�ecanisme est inspir�epar un processus physique, l'abaissement de la temp�erature dans le grille cristallin d'unsolide chau��e. Si le refroidissement dure su�samment longtemps, le solide va en�n setrouver dans l'�etat d'�energie minimale. Si on refroidit trop vite, on va probablementarriver dans un mimimum local avec des imperfections dans la grille.

Dans un contexte plus g�en�erale, l'objectif de l'algorithme est de trouver un minimumglobal approximatif d'une fonction compliqu�ee. Si il y a de multiples minima locaux, lesalgorithmes d�eterministes sont ine�cients, mais une m�ethode MC comme le recuit simul�epeut toujours etre employ�ee.

HMPH104, U Montpellier Mod�elisation et simulation en physique 121 / 206

Page 127: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

Pour trouver l'�etat d'�energie minimale d'un syst�eme avec la m�ethode du recuit simul�e :

Explorer le syst�eme avec une marche al�eatoire construite par l'algorithme deMetropolis-Hastings et la loi de probabilit�e de Boltzmann.

Progressivement abaisser la temp�erature.

Lorsque T ! 0 les uctuations thermiques deviennent impossibles et le syst�eme vase trouver dans un �etat de basse �energie (pas forcement le minimum global, maissouvent une bonne approximation).

D'autres fonctions peuvent etre minimis�ees sur le meme principe.

HMPH104, U Montpellier Mod�elisation et simulation en physique 122 / 206

Page 128: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�eProbl�eme exemplaire : Le voyageur de commerce

Un voyageur de commerce veut visiter N villes, s�epar�ees par des distances donn�ees, enprenant le chemin le plus court possible. Lequel est l'ordre optimale ?

On va placer les villes sur le plan (x; y) et leur donner les coordonn�ees (xi; yi)(i = 1 : : : N). On suppose en outre que le voyageur va �a la �n retourner �a son pointd'origine ; la fonction �a minimiser est alors

d =Xi

p(xi � xi+1)2 + (yi � yi+1)2

o�u on identi�e (xN+1; yN+1) ' (x1; y1) et on minimise sur l'ensemble des chemins = despermutations d'indices modulo surcomptage.

( , )x y

( , )x y

( , )x y

( , )x y

( , )x y

1 1

2 2

33

4 4

5 5

12(N � 1)! chemins in�equivalents ) tr�es ine�cient de les tous tester. Algorithmes connus

pour calculer la solution exacte ont un temps de calcul T (N) au moins exponentiel.HMPH104, U Montpellier Mod�elisation et simulation en physique 123 / 206

Page 129: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

Recuit simul�e pour le probl�eme du voyageur de commerce :

Commencer avec un chemin quelconque.

�A chaque it�eration, proposer un nouveau chemin avec deux villes (choisies auhasard) �echang�ees. Calculer \l'�energie" = la longueur du nouveau chemin.

Accepter ou rejeter le nouveau chemin selon l'algorithme de Metropolis-Hastings etla loi de Boltzmann �avec \temp�erature" T .

Progressivement abaisser la temp�erature pour att�enuer les uctuations \thermiques".

HMPH104, U Montpellier Mod�elisation et simulation en physique 124 / 206

Page 130: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

import numpy as np

N = 20 # nombre de villes �a visiter

Tstart = 10.0 # temp�erature de depart

Tend = 1.E-2 # temp�erature minimale

delta = 1.E-4 # taux de refroidissement

def length(p): # calcule la longueur d'un chemin

L = 0.0

for n in range(N-1):

L += np.sqrt((p[n, 0]-p[n+1, 0])**2 \

+ (p[n, 1]-p[n+1, 1]) **2)

# ajouter la distance du premier au dernier point:

L += np.sqrt((p[N-1, 0]-p[0, 0])**2 \

+ (p[N-1, 1]-p[0, 1]) **2)

return L

HMPH104, U Montpellier Mod�elisation et simulation en physique 125 / 206

Page 131: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

path = np.random.random ([N, 2]) # N pairs de coordonn�ees

d = length(path) # longueur du chemin

T = Tstart # initialiser la temp�erature

while T > Tend: # boucle principale

city1 , city2 = np.random.randint(N), np.random.randint(N)

path[[city1 , city2],:] = path[[city2 , city1 ],:]

newd = length(path) # longueur du nouveau chemin

if np.exp(-(newd - d)/T) > np.random.random ():

d = newd

else: # annuler l'�echange

path[[city1 , city2],:] = path[[city2 , city1 ],:]

T *= (1 - delta) # refroidissement exponentiel

Ici le programme de refroidissement est d�e�ni par T ! (1� �)T �a chaque it�eration.Selon le probl�eme, d'autres sch�emas de variation de la temp�erature peuvent etre pluse�cace.

HMPH104, U Montpellier Mod�elisation et simulation en physique 126 / 206

Page 132: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

Exemple pour N = 20 villes :

HMPH104, U Montpellier Mod�elisation et simulation en physique 127 / 206

Page 133: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Le recuit simul�e

Exercices

R�ealiser un programme qui calcule le nombre maximal de dim�eres que l'on peut placersur un pavage carr�e N �N . Chaque dim�ere va occuper deux carr�es voisins. (La reponse,bien sur, est N2=2 si N est pair o�u (N2 � 1)=2 si N est impair, mais supposons que nousne le savons pas.) Utiliser le recuit simul�e.

HMPH104, U Montpellier Mod�elisation et simulation en physique 128 / 206

Page 134: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equations di��erentielles ordinaires

HMPH104, U Montpellier Mod�elisation et simulation en physique 129 / 206

Page 135: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Dans ce chapitre

La m�ethode d'Euler

Les m�ethodes de Runge-Kutta

Les EDO d'ordre sup�erieur et les syst�emes d'�equations di��erentielles

Les m�ethodes adaptatives

HMPH104, U Montpellier Mod�elisation et simulation en physique 130 / 206

Page 136: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equations di��erentielles ordinaires

Rappel : EDO = �equation di��erentielle o�u la/les fonction(s) inconnue(s) d�epende(nt)d'un seul param�etre t.

Exemple : oscillateur harmonique,

d2

dt2x(t) + !2x(t) = 0 ; solution : x(t) = A cos!t+B sin!t :

On va d'abord se limiter aux EDO du premier ordre avec une seule fonction inconnue.Forme g�en�erale :

d

dtx(t) = f(x; t) :

Probl�eme de Cauchy : Soit une telle EDO avec la condition initiale

x(0) = x0 ;

quelle est la fonction x(t) qui satisfait les deux ?

HMPH104, U Montpellier Mod�elisation et simulation en physique 131 / 206

Page 137: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'Euler

On cherche la solution de

d

dtx(t) = f(x; t) ; x(0) = x0 :

D�eveloppement limit�e :

x(h) = x(0) + hdx

dt(0) +

1

2h2

d2x

dt2(0) +O(h3) = x(0) + h f(x; 0) +O(h2) :

Pour h petit on n�eglige les termes de O(h2) :x(h) � x(0) + h f(x(0); 0) :

On utilise cette approximation pour calculer x(2h) :

x(2h) � x(h) + h f(x(h); h)

puis successivement x(3h), x(4h) etc. M�ethode d'Euler. En g�en�erale :

x(t+ h) � x(t) + h f(x(t); t) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 132 / 206

Page 138: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'EulerExemple : Soit l'EDO

dx

dt= �x3 + sin t

avec la condition initiale x(0) = 0. On calcule la solution �a 1000 points entre 0 et 10 :

import numpy as np

import matplotlib.pyplot as plt

def f(x, t):

return -x**3 + np.sin(t)

a, b, = 0.0, 10.0 # intervalle

N = 1000 # nombre de points

h = (b - a) / N # incr�ement

x = 0.0 # condition initiale

tpoints , xpoints = np.arange(a, b, h), []

for t in tpoints:

xpoints.append(x)

x += h * f(x, t)

plt.plot(tpoints , xpoints)

plt.show()

HMPH104, U Montpellier Mod�elisation et simulation en physique 133 / 206

Page 139: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'Euler

R�esultat :

HMPH104, U Montpellier Mod�elisation et simulation en physique 134 / 206

Page 140: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'Euler

Estimation de l'erreur :

�A chaque pas on n�eglige les termes O(h2). Terme d'erreur dominant : 12h2 d

2xdt2

.

Il y a N = (b� a)=h pas au total. Alors

N�1Xk=0

1

2h2

d2x

dt2(xk; tk) =

1

2hN�1Xk=0

h@f

@t(xk; tk) � 1

2h

Z b

a

@f

@tdt

=1

2h (f(x(b); b)� f(x(a); a)) :

On a pu approximer la somme par une int�egrale pour petit h. L'erreur num�eriquetotale est donc O(h).La m�ethode d'Euler est simple mais pas tr�es pr�ecise.

Elle est aussi facilement instable comme nous verrons de suite.

HMPH104, U Montpellier Mod�elisation et simulation en physique 135 / 206

Page 141: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'Euler

Stabilit�e num�erique

Exemple :dx

dt= ��x ; x(0) = 1

avec � > 0. Solution analytique :x(t) = e��t

Solution num�erique avec Euler :

x(h) = x(0)� h�x(0) = x(0)(1� h�) = 1� h�x(2h) = x(h)� h�x(h) = x(h)(1� h�) = (1� h�)2

: : :

x(nh) = (1� h�)n cf. ex = limn!1

�1 +

x

n

�n

Si 0 < h < 2�, alors j1� h�j < 1, alors limn!1(1� h�)n = 0 comme il faut

Mais si h > 2�, alors (1� h�)n diverge lorsque n ! 1.

Condition de stabilit�e : h < 2�.

HMPH104, U Montpellier Mod�elisation et simulation en physique 136 / 206

Page 142: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'Euler

Stabilit�e num�erique

dx

dt= ��x ; � > 0 ; x(0) = 1 :

Solution avec Euler pour � = 10 et h = 0:3, h = 0:15, h = 0:05 : Courbe bleue = e��t,points rouges = approximation num�erique

h = 0:3 h = 0:15 h = 0:05

HMPH104, U Montpellier Mod�elisation et simulation en physique 137 / 206

Page 143: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode d'Euler implicite

La m�ethode d'Euler que nous venons d'�etudier est une m�ethode explicite : en fonction del'�etat du syst�eme �a t on peut directement calculer l'�etat du syst�eme �a t+ h :

x(t+ h) � x(t) + h f(x(t); t)

Plus stable : m�ethode d'Euler implicite (retrograde) o�u

x(t+ h) � x(t) + h f(x(t+ h); t+ h)

Plus di�cile de mettre en oeuvre : il faut r�esoudre cette �equation selon x(t+ h).

Exemple comme avant : f(x) = ��x, x(0) = 1 :

x(h) = x(0)� h�x(h) = 1� h�x(h) ) x(h) =1

1 + h�

: : :

x(nh) = x((n� 1)h)� h�x(nh) = 1

(1 + h�)n�1� h�(nh) ) x(nh) =

1

(1 + h�)n

Converge vers 0 lorsque n ! 1 pour tout h > 0 (comme il faut : limx!1 e��x = 0).M�ethode stable.

HMPH104, U Montpellier Mod�elisation et simulation en physique 138 / 206

Page 144: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Runge-Kutta : Second ordre

M�ethode d'Euler = m�ethode de Runge-Kutta du premier ordre.

M�ethode de Runge-Kutta du second ordre (\midpoint method", m�ethode du point demilieu) :

extrapolation au prochain point x(t+ h) avec la pente �a t+ h=2 plutot qu'�a t :

t t+h

x(t) t+h/2calculé avec pente à

calculé avec méthode de Euler (pente à )t

Meilleure approximation.

HMPH104, U Montpellier Mod�elisation et simulation en physique 139 / 206

Page 145: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Runge-Kutta : Second ordre

D�eveloppement limit�e en t+ h2:

x(t+ h) = x(t+ h=2) +1

2hdx

dt(t+ h=2) +

1

8h2

d2x

dt2(t+ h=2) +O(h3) :

De meme :

x(t) = x(t+ h=2)� 1

2hdx

dt(t+ h=2) +

1

8h2

d2x

dt2(t+ h=2) +O(h3) :

On soustrait :

x(t+ h) = x(t) + hdx

dt(t+ h=2) +O(h3) = x(t) + hf(x(t+ h=2); t+ h=2) +O(h3) :

Plus de terme O(h2). L'erreur est O(h3).Probl�eme : On a besoin de x(t+ h=2) pour �evaluer le terme hf(x(t+ h=2); t+ h=2).Mais on n'a pas encore calcul�e x au-d�el�a de t.

Solution : On prend l'approximation de la m�ethode d'Euler,x(t+ h=2) � x(t) + 1

2hf(x; t). L'erreur reste d'ordre h3 car (apr�es d�eveloppement limit�e)

f�x(t) + 1

2h f(x; t); t+ h=2

�= f (x(t+ h=2); t+ h=2) +O(h2) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 140 / 206

Page 146: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Runge-Kutta : Second ordre

Algorithme pour la m�ethode de Runge-Kutta du second ordre :

Calculerk1 � h f(x; t):

Utiliser ce r�esultat pour approximer x(t+ h=2) � x(t) + 12hf(x; t) = x(t) + 1

2k1.

Ins�erer cette valeur dans f pour calculer

k2 � hf(x+ k1=2; t+ h=2) :

En�n, calculerx(t+ h) = x(t) + k2 :

HMPH104, U Montpellier Mod�elisation et simulation en physique 141 / 206

Page 147: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exercices

Modi�er le programme de p. 133 pour calculer la solution de l'EDO

dx

dt= �x3 + sin t

avec la condition initiale x(0) = 0 par la m�ethode de Runge-Kutta du second ordre.Tracer la solution pour N = 10, N = 20, N = 100. Comparer avec le r�esultat du coursobtenu avec N = 1000 et la m�ethode d'Euler.

HMPH104, U Montpellier Mod�elisation et simulation en physique 142 / 206

Page 148: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Runge-Kutta : RK4

M�ethode de Runge-Kutta du quatri�eme ordre

On peut g�en�eraliser ce sch�ema (avec plusieurs d�eveloppements limit�ees en plusieurspoints, prenont des combinaisons lin�eaires telles que les termes jusqu'�a un ordre �xe hn

se suppriment) : m�ethodes de Runge-Kutta.

Un bon compromis entre la performance de l'algorithme et l'e�ort de programmation estla c�el�ebre m�ethode de Runge-Kutta du quatri�eme ordre (RK4). Les �equations sont encorefaciles �a impl�ementer :

k1 = hf(x; t) ;

k2 = hf(x+ k1=2; t+ h=2) ;

k3 = hf(x+ k2=2; t+ h=2) ;

k4 = hf(x+ k3; t+ h) ;

x(t+ h) = x(t) +1

6(k1 + 2 k2 + 2 k3 + k4) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 143 / 206

Page 149: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes de Runge-Kutta : RK4

Code :

import numpy as np

def rk4(f, a, b, x0, N):

h = (b - a) / N # incr�ement

x = x0 # �a t=a, x=x0

tpoints = np.arange(a, b, h)

xpoints = []

for t in tpoints:

xpoints.append(x)

k1 = h * f(x, t)

k2 = h * f(x + k1/2, t + h/2)

k3 = h * f(x + k2/2, t + h/2)

k4 = h * f(x + k3, t + h)

x += (k1 + 2*k2 + 2*k3 + k4)/6

# renvoyer les listes des t et x(t)

return tpoints , xpoints

HMPH104, U Montpellier Mod�elisation et simulation en physique 144 / 206

Page 150: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Comparaison d'erreurOn consid�ere le probl�eme de Cauchy

dx

dt= x� x2

2; x(0) = 1 :

Solution exacte :

x(t) =2

1 + e�t

Solution num�erique avec N = 5000 pas entre 0 et 10

Erreur avec Euler :

aspect lisse ) erreur de troncature domine

Erreur avec RK4 :

aspect bruit�e ) erreur d'arrondiHMPH104, U Montpellier Mod�elisation et simulation en physique 145 / 206

Page 151: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Les EDO d'ordre sup�erieur

Une EDO du second ordre peut toujours etre reduite �a deux EDO du premier ordre.Exemple :

d2x

dt2x� xdx

dt� x2 � t = 0

On d�e�nit v(t) = dx= dt et on obtient le syst�eme �equivalent

dx

dt= v ;

dv

dt= v + x+

t

x:

Une EDO du n-�eme ordre peut toujours etre reduite �a n EDO du premier ordre.Meme principe : on d�e�nit v(t) = dx=dt, a(t) = dv=dt etc. et on trouve la solutiondu syst�eme coupl�e d'EDO du premier ordre avec les fonctions inconnues x; v; a; : : :

HMPH104, U Montpellier Mod�elisation et simulation en physique 146 / 206

Page 152: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Syst�emes d'�equations di��erentielles coupl�ees

Maintenant : Plusieurs fonctions inconnues (d�ependent toujours d'un seul param�etre t).

Forme g�en�erale pour une EDO du premier ordre avec deux fonctions inconnues :

dx

dt= fx(x; y; t) ;

dy

dt= fy(x; y; t) :

Avec n fonctions inconnues : en notation vectorielle

dr

dt= f(r; t)

o�u r = (x(t); y(t); : : :) et f(r; t) = (fx(r; t); fy(r; t); : : :)

Les m�ethodes num�eriques pour la solution ne sont pas plus compliqu�ees : simplesg�en�eralisations des m�ethodes pour une seule fonction inconnue.

HMPH104, U Montpellier Mod�elisation et simulation en physique 147 / 206

Page 153: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Syst�emes d'�equations di��erentielles coupl�ees

M�ethode de Runge-Kutta du 4�eme ordre pour n �equations coupl�ees :

Soitdr

dt= f(r; t)

avec r(0) = r0.

�A chaque pas on calcule

k1 = h f(r; t) ;

k2 = h f(r+ k1=2; t+ h=2) ;

k3 = h f(r+ k2=2; t+ h=2) ;

k4 = h f(r+ k3; t+ h) ;

et en�n on obtient le prochain point :

r(t+ h) = r(t) +1

6(k1 + 2k2 + 2k3 + k4) :

Memes �equations que pour le cas d'une seule fonction x(t).

HMPH104, U Montpellier Mod�elisation et simulation en physique 148 / 206

Page 154: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple

θ

y

x

l

Lagrangien : L = T � V = 12m�_x2 + _y2

��mgy = 12m`2 _�2 +mg` cos �

�Equations de mouvement : @L@�� d

dt@L

@ _�= 0, alors

d2�

dt2= �g

`sin �

�Equation di��erentielle ordinaire du second ordre pour � = �(t). Oscillateuranharmonique.

Avec ! = d�dt, �equivalent �a deux �equations du premier ordre :

d!

dt= �g

`sin � ;

d�

dt= ! :

HMPH104, U Montpellier Mod�elisation et simulation en physique 149 / 206

Page 155: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple

On cherche alors la solution de

d!

dt= �g

`sin � ;

d�

dt= ! :

avec les conditions initiales �(0) = �0, !(0) = !0.

On r�ealise d'abord la fonction f qui retourne les membres de droite des EDO :

import numpy as np

g = 9.81 # acc�el�eration gravitationnelle

L = 0.1 # longueur du pendule

def f(r, t):

theta = r[0]

omega = r[1]

ftheta = omega

fomega = -g / L * np.sin(theta)

return np.array ([ftheta , fomega ])

HMPH104, U Montpellier Mod�elisation et simulation en physique 150 / 206

Page 156: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simpleEnsuite on impl�emente les conditions initiales :

theta0 = 1.5 # angle �a t=0

omega0 = 0. # vitesse angulaire �a t=0

a, b = 0, 3 # intervalle de temps

N = 300 # nombre de pas

h = (b - a) / N # pas d'incr�ement

tpoints = np.arange(a, b, h) # temps interm�ediaires

thetapoints = [] # on va mettre les theta(t) ici

omegapoints = [] # on va mettre les omega(t) ici

r = np.array([theta0 , omega0 ]) # conditions initiales

En�n on calcule la solution avec la m�ethode RK4 :

for t in tpoints:

thetapoints.append(r[0])

omegapoints.append(r[1])

k1 = h * f(r, t)

k2 = h * f(r + k1/2, t + h/2)

k3 = h * f(r + k2/2, t + h/2)

k4 = h * f(r + k3, t + h)

r += (k1 + 2*k2 + 2*k3 + k4)/6

HMPH104, U Montpellier Mod�elisation et simulation en physique 151 / 206

Page 157: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple

On trace x(t) = ` sin �(t) (ligne bleue) et, pour comparaison, la fonction sinuso��daleobtenue avec l'approximation harmonique (ligne verte) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 152 / 206

Page 158: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple

On trace x(t) = ` sin �(t) versus _x(t) = `!(t) cos �(t) : diagramme d'espace des phases

HMPH104, U Montpellier Mod�elisation et simulation en physique 153 / 206

Page 159: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : RK4 avec pas variableId�ee : faire varier h a�n d'obtenir une erreur approximativement constante �a chaque pas.

Motivation : dans les r�egions de x; t o�u le membre droite f(x; t) varie lentement, on peutobtenir une bonne pr�ecision avec un grand h. Par contre, si la variation de f(x; t) estimportante, h doit etre choisi petit.

Estimation de l'erreur locale : on calcule deux pas successifs d'inc�rement h, puis, �apartir du meme point de depart, un seul pas d'incr�ement 2h.

t t+h

x(t)

t+2h

x =

x = résultat après deux pas

résultat après un pas

de largeur h

de largeur 2h2

1

Puisque la m�ethode RK4 est exacte jusqu'�a l'ordre h4, on a

x(t+ 2h) = x1 + 2ch5 +O(h6) ; c = cte.

= x2 + c(2h)5 +O(h6)On conclut que l'erreur par pas, � � ch5, est donn�e par

� � 1

30(x1 � x2) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 154 / 206

Page 160: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : RK4 avec pas variable

On cherche l'incr�ement h0 tel que l'erreur num�erique par unit�e de temps est �egale �a unepr�ecision �xe � ) l'erreur locale �a chaque pas est �h0.

Si h < h0 : le calcul est plus pr�ecis que n�ecessaire ) on peut �economiser enaugmentant h

Si h > h0 : le calcul n'est pas assez pr�ecis ) il faut r�eduire h

Alors

�h0!= jch05j = jch5j

�h0

h

�5

=1

30jx1 � x2j

�h0

h

�5

On r�earrange :

h0 = h�1=4 ; � =30h�

jx1 � x2j :

HMPH104, U Montpellier Mod�elisation et simulation en physique 155 / 206

Page 161: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : RK4 avec pas variable

Algorithme :

�A chaque point t on calcule x1 (avec deux pas d'incr�ement h) et x2 (avec un pasd'incr�ement 2h).

Avec x1, x2 et h on calcule �.

Si � > 1, alors h < h0, alors on peut augmenter h par un facteur �1=4. On continuedonc avec la nouvelle estimation x1 pour x au point t+ 2h, et on calcule le prochainpas avec h h�1=4.

Si par contre � < 1, on n'a pas obtenu la pr�ecision d�esir�ee. Alors on r�ep�ete toute laproc�edure avec h h�1=4.

Pour �eviter un accroissement trop important de l'incr�ement, au cas o�uaccidentellement �� 1, on limitera le facteur d'augmentation en pratique. Parexemple, on augmentera h au maximum par un facteur 3 �a chaque �etape, meme si�1=4 > 3.

On peut aussi utiliser cette m�ethode pour r�esoudre des syst�emes d'EDO coupl�ees.

HMPH104, U Montpellier Mod�elisation et simulation en physique 156 / 206

Page 162: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple avec RK4 adaptativeDans l'exemple ci-dessus : remplacer la boucle sur t par

t = a # temps initial

tpoints = [] # temps interm�ediaires

delta = 1.0E-5 # pr�ecision

while t < b:

thetapoints.append(r[0])

omegapoints.append(r[1])

tpoints.append(t)

r1 = rk4step(rk4step(r, t, h), t + h, h) # deux pas RK4

r2 = rk4step(r, t, 2*h) # un pas RK4 avec incr�ement 2h

rho = 30 * h * delta / abs(r2[0] - r1[0])

if rho < 1: # pas assez pr�ecis: diminuer h, r�ep�eter

h *= rho **(1/4)

r1 = rk4step(rk4step(r, t, h), t + h, h)

t += 2*h

else: # trop pr�ecis: augmenter h pour prochain pas

t += 2*h

h *= min(rho **(1/4) , 3.0) # (max. par un facteur 3)

r = r1

HMPH104, U Montpellier Mod�elisation et simulation en physique 157 / 206

Page 163: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple avec RK4 adaptative

La fonction rk4step() de l'exemple pr�ec�edent ex�ecute un pas de RK4 :

def rk4step(r, t, h):

k1 = h * f(r, t)

k2 = h * f(r + k1/2, t + h/2)

k3 = h * f(r + k2/2, t + h/2)

k4 = h * f(r + k3, t + h)

return r + (k1 + 2*k2 + 2*k3 + k4)/6

On a calcul�e l'erreur par rapport �a � seulement. Il peut convenir de le calculer par rapport�a � et ! (o�u toutes les fonctions inconnues en g�en�eral) selon le probl�eme.

HMPH104, U Montpellier Mod�elisation et simulation en physique 158 / 206

Page 164: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple : Pendule simple avec RK4 adaptative

Avec une pr�ecision de � = 10�7 (on trace un point sur cinq en t) :

HMPH104, U Montpellier Mod�elisation et simulation en physique 159 / 206

Page 165: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

RK4 avec pas variable

Exercices

On va utiliser la m�ethode RK4 adaptative pour calculer la trajectoire d'une com�ete. Onn�eglige l'attraction gravitationnelle exerc�ee par la com�ete au soleil, et on choisit un r�ep�ereavec le soleil au centre et les axes x et y dans le plan du mouvement. La constantegravitationnelle de Newton est G = 6:67408 � 10�11 m3 kg�1 s�2 et la masse du soleil estM = 1:989 � 1030 kg.

Trouver les deux �equations de mouvement pour les coordonn�ees de la com�ete enfonction du temps x(t) et y(t).Les transformer en un syst�eme de quatre �equations du premier ordre.R�ealiser un programme qui calcule la solution avec les conditions initialesx(0) = 4 � 109 km, y(0) = 0, _x(0) = 0, _y(0) = 500 m s�1 avec la m�ethode RK4 �apr�ecision �xe. Tracer x(y) ; choisir h su�samment petit que l'orbite ne change pasvisiblement �a chaque r�evolution.R�ealiser un programme qui e�ectue le meme calcul avec la m�ethode RK4 adaptative.La pr�ecision sera � =1 km/an. Comparer avec l'algorithme �a pr�ecision �xe.

HMPH104, U Montpellier Mod�elisation et simulation en physique 160 / 206

Page 166: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

Id�ee : extrapolation de Richardson, similaire �a la m�ethode d'int�egration de Romberg.

Il faut d'abord introduire la m�ethode du point de milieu modi��ee (MPMM).

Algorithme de la MPMM : Avec x(t) donn�e, pour calculer x(t+H) o�u H = Nh, ond�e�nit

z0 = x(t) ;

z1 = z0 + h f(z0; t) ;

zm+1 = zm�1 + 2h f(zm; t+mh) ; m = 1; 2; : : : ; N � 1

En�n,

x(t+H) � 1

2(zN + zN�1 + h f(zN ; t+H)) :

Sauf pour le premier et dernier point cela correspond �a la m�ethode du point de milieu(RK2). M�ethode de deuxi�eme ordre avec une propri�et�e importante : si N est pair, alorsl'erreur locale est donn�ee par une s�erie enti�ere paire en h (\th�eor�eme de Gragg"). Lespuissances impaires se suppriment.

HMPH104, U Montpellier Mod�elisation et simulation en physique 161 / 206

Page 167: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

Code pour la MPMM :

# Calcul de x(t+H) par m�ethode du point de milieu modifi�ee

# f = fonction du membre de droite de l'EDO

# x = point de d�epart

# H = largeur de l'intervalle

# N = nombre de pas partiels

def mmpm(f, x, t, H, N):

h = H/N # incr�ement par pas partiel

zold = x # z0

znew = zold + h*f(zold , t) # z1

for m in range(1, N):

znew , zold = zold + 2*h*f(znew , t + m*h), znew

return (znew + zold + h*f(znew , t+H))/2

HMPH104, U Montpellier Mod�elisation et simulation en physique 162 / 206

Page 168: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

On n'utilise normalement pas la MPMM toute seule, mais elle est le fondement de lam�ethode de Bulirsch-Stoer.

Pour calculer x(t+H) :

On calcule x(t+H) avec N = 2 avec la MPMM : deux pas de h1 = H=2,r�esultat � R1;1.

On r�ecalcule x(t+H) avec N = 4 avec la MPMM : quatre pas de h2 = H=4,r�esultat � R2;1.

Puisque l'erreur est donn�ee par une s�erie enti�ere paire, on sait que

x(t+H) = R2;1 + c1 h22 +O(h42) ; c1 = cte.

etx(t+H) = R1;1 + c1 h

21 +O(h41) = R1;1 + 4 c1 h

22 +O(h42) :

On r�earrange :

x(t+H) = R2;1 +1

3(R2;1 �R1;1)| {z }�R2;2

+O(h42) :

L'erreur de l'approximation R2;2 est de l'ordre h42 !

HMPH104, U Montpellier Mod�elisation et simulation en physique 163 / 206

Page 169: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-StoerProchaine �etape : on calcule x(t+H) avec N = 6 avec la MPMM : six pas deh3 = H=6, r�esultat � R3;1.

Meme raisonnement qu'avant : l'erreur de

R3;2 = R3;1 +4

5(R3;1 �R2;1)

est de l'ordre h43, comme celle de R2;2. Alors

x(t+H) = R3;2 + c2 h43 +O(h63) = R2;2 +

81

16c2 h

43 +O(h63)

Donc

x(t+H) = R3;3 +O(h63) ; R3;3 � R3;2 +16

65(R3;2 �R2;2) :

It�eration : Rk;1 est l'approximation trouv�ee par la MPMM avec N = 2k pasinterm�ediaires, hk = h1=(2k). Rk;m est le r�esultat am�elior�e avec une erreur deO(h2m). Avec Rk;1 et les Rk�1;i on peut construire tous les Rk;m jusqu'�a Rk;k. Ona

�k;m � cmh2mk =Rk;m �Rk�1;m

(k=(k � 1))2m � 1

et la relation r�ecursive

Rk;m+1 = Rk;m +Rk;m �Rk�1;m

(k=(k � 1))2m � 1

HMPH104, U Montpellier Mod�elisation et simulation en physique 164 / 206

Page 170: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

Sch�ema :R1;1

&R2;1 ! R2;2

& &R3;1 ! R3;2 ! R3;3

& & &R4;1 ! R4;2 ! R4;3 ! R4;4

etc.

Extrapolation de Richardson, comme pour l'int�egration de Romberg. Tous les Rk;1

calcul�es par la MPMM avec un incr�ement hk = h1=(2k). Tous les autres Rk;m calcul�espar r�ecurrence.

HMPH104, U Montpellier Mod�elisation et simulation en physique 165 / 206

Page 171: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

Algorithme :

Pour k = 1; 2; 3 : : : :

Calculer Rk;1 avec la MPMM.

Calculer les autres Rk;m jusqu'�a Rk;k avec la relation r�ecursive

Rk;m+1 = Rk;m +Rk;m �Rk�1;m

(k=(k � 1))2m � 1

Si k > 1, estimer l'erreur sur Rk;k�1 avec la formule

�k;k�1 � Rk;k�1 �Rk�1;k�1(k=(k � 1))2k�2 � 1

(On ne peut pas estimer l'erreur �k;k sur le r�esultat �nal Rk;k parce que Rk�1;kn'existe pas, mais �k;k�1 est une estimation conservative pour �k;k).

Terminer lorsque �k;k�1 est plus petit que la pr�ecision d�esir�ee. Renvoyer Rk;k.

HMPH104, U Montpellier Mod�elisation et simulation en physique 166 / 206

Page 172: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

En pratique :

Seul le point x(t+H) b�en�e�cie de la pr�ecision sup�erieure obtenue parl'extrapolation de Richardson. Les points interm�ediaires x(t+mh) ont �et�e calcul�esavec une pr�ecision plutot m�ediocre, celle de la MPMM.

De plus, la m�ethode fonctionne le mieux si le nombre d'it�erations ne d�epasse pas� 20 ) il faut que H soit su�samment petit

En pratique : pour r�esoudre une EDO sur un intervalle de temps [a; b], subdiviser[a; b] en morceaux de largeur H su�samment petits et appliquer la m�ethodesuccessivement �a chaque sous-intervalle.

On peut meme faire le programme d�eterminer le largeur de H : dans les r�egions o�uN & 20, subdiviser l'intervalle en deux moiti�es de largeur H=2 et r�eessayer.

HMPH104, U Montpellier Mod�elisation et simulation en physique 167 / 206

Page 173: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

Projet : Le probl�eme �a n corps gravitationnel avec la m�ethode de Bulirsch-Stoer

�Ecrire un code qui permet de calculer le mouvement de n points mat�eriels dans le champgravitationnel cr�ee par eux-memes. On suppose que les masses ainsi que les vitesses etpositions �a t = 0 sont donn�ees. Utilisez la m�ethode de Bulirsch-Stoer. Possiblesapplications : voir enonc�e.

HMPH104, U Montpellier Mod�elisation et simulation en physique 168 / 206

Page 174: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethodes adaptatives : M�ethode de Bulirsch-Stoer

Remarques :

Contrairement �a la m�ethode d'int�egration de Romberg, on ne redouble pas lenombre de pas �a chaque it�eration mais on ajoute 2. (Il se trouve que c'est pluse�cace ; de plus, contrairement �a l'int�egration, il n'y a pas de moyen de r�eutiliser lespoints d�ej�a calcul�es.)

En cons�equence, la formule de r�ecurrence de la m�ethode de Bulirsch-Stoer (voirp. 166) est di��erente de celle de la m�ethode de Romberg (voir p. 63).

La m�ethode de Bulirsch-Stoer est normalement plus vite que la m�ethode RK4adaptative parce qu'elle n�ecessite moins d'�evaluations de la fonction f .(Numerical Recipes : \RK4 = cheval de labour, BS = cheval de course". . . )

HMPH104, U Montpellier Mod�elisation et simulation en physique 169 / 206

Page 175: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

R�esum�e : �Equations di��erentielles ordinaires

Euler :

facile �a impl�ementer

impr�ecis

instable sauf pour la variante implicite

Runge-Kutta d'ordre sup�erieur :

facile �a impl�ementer

plutot e�cace

plutot stable

Bulirsch-Stoer :

plus compliqu�ee

tr�es e�cace

plutot stable

convergence problematique si la solution n'est pas r�eguli�ere ( uctuations rapides,divergences).

HMPH104, U Montpellier Mod�elisation et simulation en physique 170 / 206

Page 176: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

R�esum�e : �Equations di��erentielles ordinaires

On n'a pas trait�e :

m�ethodes pr�edicteur/correcteur

algorithmes sp�eciaux pour des probl�emes conservatifs

algorithmes sp�eciaux pour des probl�emes raides (des multiples �echelles tr�esdi��erentes)

probl�emes avec des conditions aux limites plutot que des conditions initiales(plusieurs fonctions inconnues avec valeurs sp�eci��ees �a plusieurs points t0, t1, . . . )

et encore beaucoup plus. . .

HMPH104, U Montpellier Mod�elisation et simulation en physique 171 / 206

Page 177: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equations di��erentielles partielles

HMPH104, U Montpellier Mod�elisation et simulation en physique 172 / 206

Page 178: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Dans ce chapitre

La classi�cation des EDP

Les m�ethodes des di��erences �nies

Probl�emes aux limites : M�ethode de Jacobi, m�ethode de surrelaxation successive

Probl�emes de Cauchy : M�ethode FTCS, m�ethode de Crank-Nicolson

HMPH104, U Montpellier Mod�elisation et simulation en physique 173 / 206

Page 179: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Classi�cation des EDPOn consid�ere une EDP quasi-lin�eaire et du second ordre

D�(t; xi) = f(�; t; xi)

avec D un op�erateur di��erentiel du second ordre.

Classi�cation en math�ematique selon la structure des coe�cients des d�eriv�eessecondes :

hyperbolique, exemple : �equation d'onde

D =@2

@t2� c2

Xi

@2

@x2i

parabolique, exemple : �equation de la chaleur

D =@

@t� a

Xi

@2

@x2i

elliptique, exemple : �equation de Laplace

D =Xi

@2

@x2i:

HMPH104, U Montpellier Mod�elisation et simulation en physique 174 / 206

Page 180: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Classi�cation des EDP

Classi�cation en num�erique selon le type de probl�eme :

Probl�eme de Cauchy pour les �equations hyperboliques et paraboliques. On sp�eci�edes valeurs initiales �a un t donn�e (ainsi que des valeurs aux limites du domainespatial), puis on calcule l'evolution du syst�eme en t. Probl�eme dynamique.

Probl�eme aux limites pour les �equations elliptiques : On sp�eci�e des valeurs auxlimites au bord du domaine spatial, puis on calcule les valeurs en int�erieur. Probl�emestatique.

Types de conditions aux limites/initiales :

Conditions de Dirichlet : on sp�eci�e les valeurs de la fonction inconnue �

Conditions de Neumann : on sp�eci�e ses d�eriv�ees.

HMPH104, U Montpellier Mod�elisation et simulation en physique 175 / 206

Page 181: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Les m�ethodes des di��erences �nies

On construit un maillage du domaine de d�e�nition de la fonction inconnue �, parexemple, un maillage r�egulier rectiligne en deux dimensions :

(x , y )(x , y )2

(x , y )1

y

x

a

a x

y

(x , y )31

21

1 2(x , y )

3 1(x , y )

1

2

Ensuite on approxime les d�eriv�ees �a chaque noeud par des expressions discr�etes, voirpp. 83, 84. On obtient un syst�eme d'�equations alg�ebriques pour les valeurs de � auxnoeuds du maillage.

Solution num�eriqe du probl�eme = solution de ce syst�eme d'�equations.

HMPH104, U Montpellier Mod�elisation et simulation en physique 176 / 206

Page 182: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme aux limites : L'�equation de Laplace en 2D

On cherche la solution de l'�equation de Laplace en 2D�@2

@x2+

@2

@y2

��(x; y) = 0

dans un carr�e de 1� 1 m, o�u le potentiel � v�eri�e les conditions aux limites�(x; y = 1m) = 1V et �(x; y = 0) = �(x = 0; y) = �(x = 1m; y) = 0.

φ = 0

φ = 1 V

x

y

HMPH104, U Montpellier Mod�elisation et simulation en physique 177 / 206

Page 183: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme aux limites : L'�equation de Laplace en 2D

Avec a la constante de r�eseau aux deux dimensions, la version discr�ete de l'op�erateur deLaplace est (voir p.84)�

@2

@x2+

@2

@y2

��(x; y)

� �(x+ a; y) + �(x� a; y)� 2�(x; y)

a2+�(x; y + a) + �(x; y � a)� 2�(x; y)

a2

=�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a)� 4�(x; y)

a2

alors l'�equation de Laplace devient

�(x; y) � 1

4(�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a)) (?)

Pour a = 1 cm, on a un r�eseau de 101� 101 points (x; y) (y compris ceux au bord), dont400 au bord qui v�eri�ent �(x; y) = 0 ou �(x; y) = 1 V selon leur position. Les autres9801 points doivent v�eri�er (?) ) syst�eme de 9801 �equations coupl�ees.

HMPH104, U Montpellier Mod�elisation et simulation en physique 178 / 206

Page 184: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme aux limites : L'�equation de Laplace en 2D

Pour r�esoudre le syst�eme de 9801 �equations

�(x; y) � 1

4(�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a))

on peut se servir de la m�ethode de Jacobi :

Commencer avec une estimation pour �(x; y) �a chaque noeud (pas forcement tr�espr�ecise)

Calculer

�0(x; y) =1

4(�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a))

pour chaque noeud (x; y) �a l'int�erieur

Si jj�� �0jj < � avec � la pr�ecision d�esir�ee : terminer. Sinon, r�ep�eter avec � �0.

HMPH104, U Montpellier Mod�elisation et simulation en physique 179 / 206

Page 185: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme aux limites : L'�equation de Laplace en 2D

import numpy as np

N = 100 # maillage = r�eseau de (N+1) x (N+1)

delta = 1.E-5 # pr�ecision souhait�ee

U = 1.0 # potentiel en haut

phi = np.zeros ((N+1, N+1))

phiprime = np.zeros((N+1, N+1))

phi[0, :] = U # conditions aux limites

eps = 1.0 E308

while eps > delta:

for i in range(N+1):

for j in range(N+1):

if i == 0 or i == N or j == 0 or j == N:

phiprime[i, j] = phi[i, j]

else:

phiprime[i, j] = (phi[i+1, j] + phi[i-1, j] \

+ phi[i, j+1] + phi[i, j-1]) / 4

eps = np.max(np.abs(phi - phiprime))

phiprime , phi = phi , phiprime

HMPH104, U Montpellier Mod�elisation et simulation en physique 180 / 206

Page 186: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme aux limites : L'�equation de Laplace en 2D

Solution calcul�ee en � 2 min. avec un portable moderne.

HMPH104, U Montpellier Mod�elisation et simulation en physique 181 / 206

Page 187: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La m�ethode de Jacobi pour des probl�emes aux limites

Propri�et�es de la m�ethode de Jacobi :

M�ethode de relaxation : on cherche un point �xe �� de l'op�erateur a2

4�+ 1 en

l'applicant de fa�con r�ep�et�ee �a l'estimation initiale. Si�a2

4� + 1

��� = ��;

alors ��� = 0.

Proc�edure converge pour toute estimation initiale ) stable.

Deux sources d'erreur num�erique : 1. pr�ecision limit�ee de la solution it�erative et 2.assimilation des d�eriv�ees aux di��erences �nies.

D�esavantage principal : vitesse tr�es m�ediocre.

HMPH104, U Montpellier Mod�elisation et simulation en physique 182 / 206

Page 188: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La m�ethode de surrelaxation successive

Meme principe que pour la m�ethode de Jacobi mais deux am�eliorations :

Pour la m�ethode de Jacobi on avait assimil�e, �a chaque it�eration,

�0(x; y) =1

4(�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a))

alors le nouveau � au point (x; y) est la moyenne de l'ancien � aux 4 points voisins.Id�ee (\m�ethode de Gauss-Seidel") : calculer cette moyenne avec le nouveau � (pourles points voisins o�u il est d�ej�a connu) ) meilleure approximation

points qui restentà calculer

points déjà calculés

Surrelaxation : pour acc�el�erer la convergence, on choisit ! > 0 et on remplace

�(x; y) 1 + !

4(�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a))�!�(x; y)

HMPH104, U Montpellier Mod�elisation et simulation en physique 183 / 206

Page 189: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La m�ethode de surrelaxation successive

Algorithme pour la r�esolution de l'�equation de Laplace en 2D :

Commencer avec une estimation pour tous les �(x; y) (pas forcement tr�es pr�ecise)

�A chaque noeud �a l'int�erieur, successivement remplacer

�(x; y) 1 + !

4(�(x+ a; y) + �(x� a; y) + �(x; y + a) + �(x; y � a))� !�(x; y)

M�emoriser l'�ecart maximal �max.

Si �max < �, terminer. Sinon, r�ep�eter.

Remarques

Choix de ! : pour ! < 1 on peut montrer que la m�ethode est stable. Plus ! estgrand, plus la convergence est acc�el�er�ee. Alors on choisira ! < 1 mais proche de 1.

Gauss-Seidel : on n'a plus besoin du tableau �0 ! algorithme plus �economique enm�emoire

Surrelaxation sans Gauss-Seidel ) possibles instabilit�es

HMPH104, U Montpellier Mod�elisation et simulation en physique 184 / 206

Page 190: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La m�ethode de surrelaxation successive

Exercices

R�ealiser un programme qui calcule la solution du probl�eme de p. 177 avec lam�ethode de surrelaxation successive. Exp�erimenter avec plusieurs valeurs de ! et�etudier l'e�et sur la vitesse. Tracer la solution.R�ealiser un programme qui calcule la solution de l'�equation de Poisson en deuxdimensions, �

@2

@x2+

@2

@y2

��(x; y) = ��(x; y)

�0

ou � est une densit�e de charge et �0 est la permittivit�e du vide. Le domaine desolution est un carr�e de 1 m � 1 m dont les bords sont mis �a terre (potentiel 0). �Al'int�erieur � est nulle sauf pour deux carr�es de 20 cm � 20 cm homog�enementcharg�es avec densit�e de charge �1 C m�2. Utiliser la m�ethode de surrelaxationsuccessive.

HMPH104, U Montpellier Mod�elisation et simulation en physique 185 / 206

Page 191: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equation matricielle pour les EDP elliptiques

Pour notre exemple l'�equation de Laplace : on �ecrit l'�equation discr�etis�ee de Laplace

�i+1; j + �i�1; j + �i; j+1 + �i; j�1 � 4�i;j = 0 (i; j = 0 : : : N)

On construit un vecteur u = (un) dont les composantes sont les (N � 1)2 inconnues�i; j :

n = i(N + 1) + j

�Equation discr�ete de Laplace (valid�ee par les points �a l'int�erieur, 1 � i � N � 1 et1 � j � N � 1) :

un+N+1 + un�N�1 + un+1 + un�1 � 4un = 0

ou en notation matricielleAu = b

o�u le vecteur b d�epend des conditions aux limites et la matrice A a une structuresp�eciale, voir page suivante.

HMPH104, U Montpellier Mod�elisation et simulation en physique 186 / 206

Page 192: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equation matricielle pour les EDP elliptiques

�Equation matricielle :Au = b

o�u

A =

0BBBBB@

T 1

1 T 1

1 T 1

. . .

1 T

1CCCCCA :

Ici 1 = la matrice d'identit�e (N + 1)� (N + 1), et la matrice T est tridiagonale :

T =

0BBBBB@�4 11 �4 1

1 �4 1. . .

1 �4

1CCCCCA

D�eterminer �(x; y) �a l'int�erieur $ r�esoudre cette �equation matricielle

HMPH104, U Montpellier Mod�elisation et simulation en physique 187 / 206

Page 193: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equation matricielle pour les EDP elliptiques

On obtient une �equation de structure similaire pour toute autre �equation elliptiqueen d dimensions, discr�etis�ee sur un maillage rectangulaire de N1 � : : :�Nd

Strat�egies :

m�ethodes de relaxation comme Jacobi ou Gauss-Seidel

m�ethodes directes de l'alg�ebre lin�eaire num�erique, sp�ecialis�ees en matrices creuses

analyse de Fourier (d�eveloppement en fonctions propres de l'op�erateur di��erentiel)

HMPH104, U Montpellier Mod�elisation et simulation en physique 188 / 206

Page 194: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Les probl�emes de Cauchy

Probl�eme dynamique pour les �equations paraboliques et hyperboliques :

On sp�eci�e des conditions initiales au temps t = 0, puis on cherche la solution �a0 � t � T .Aux limites spatiales du domaine de solution, on sp�eci�e �egalement des conditionsaux limites.

Ceci su�t (normalement) pour uniquement d�eterminer la solution. Contrairementaux �equations elliptiques, pas de conditions au bord entier du domaine de solution :pas de conditions �a t = T .

Existence/unicit�e/r�egularit�e d'une solution : trouver des conditionsn�ecessaires/su�santes peut etre un probl�eme math�ematique dur (p.ex. �equation deNavier-Stokes. . . )

HMPH104, U Montpellier Mod�elisation et simulation en physique 189 / 206

Page 195: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La m�ethode FTCSExemple d'une EDP parabolique : �equation de chaleur en 1 + 1 dimensions

@�

@t�D@2�

@x2

D = coe�cient de di�usion.

Maillage sur x : N points (xn) �equidistants dans le domaine de solution (distance a).

1 2 3(x , t) (x , t)

1a

2 3

x

t

(x , t)

Approximation des di��erences �nies en espace :

@2�

@x2� �(x+ a; t) + �(x� a; t)� 2�(x; t)

a2

alors il faut r�esoudre le syst�eme de N �equations di��erentielles ordinaires (�n � �(xn))@�n@t

(t) =D

a2(�n+1(t) + �n�1(t)� 2�n(t))

HMPH104, U Montpellier Mod�elisation et simulation en physique 190 / 206

Page 196: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

La m�ethode FTCS

@�n@t

(t) =D

a2(�n+1(t) + �n�1(t)� 2�n(t))

Solution avec m�ethode d'Euler. Impr�ecis mais l'erreur est souvent domin�ee par ladiscr�etisation en espace ! pas besoin d'employer une m�ethode d'ordre sup�erieur.(Sinon : m�ethode de Crank-Nicolson, plus tard.)

Pour un incr�ement h en temps :

�n(t+ h) � �n(t) + hD

a2(�n+1(t) + �n�1(t)� 2�n(t))

M�ethode dite foward-time centered-space (FTCS).

HMPH104, U Montpellier Mod�elisation et simulation en physique 191 / 206

Page 197: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme de Cauchy : l'�equation de la chaleur

Dans un bateau �a vapeur, la chaudi�ere �eclate et le fond de la chau�erie est couvert avecde l'eau de temp�erature 100� C. Il est construit des panneaux d'acier d'epaisseur 1 cm ; �al'ext�erieur est l'oc�ean de temp�erature 10� C. On cherche le pro�le de temp�erature del'acier en fonction du temps. Initialement �a t = 0 la temp�erature est uniforme et donn�eepar celle de l'eau de mer. Le coe�cient de di�usion de chaleur de l'acier est 4:25 � 10�6m2 s�1.

acier

eau de mer

eau bouillante

1 cmx

On subdivise x en 100 sous-intervalles. On a alors 101 points x0 : : : x100 avecT (x0) = 10� C et T (x100) = 100� C ind�ependemment du temps (conditions aux limites).La temp�erature des points �a l'int�erieur est de 10� C �a t = 0 (conditions initiales).

HMPH104, U Montpellier Mod�elisation et simulation en physique 192 / 206

Page 198: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme de Cauchy : l'�equation de la chaleur

import numpy as np

import matplotlib.pyplot as plt

D = 4.25E-6 # coefficient de diffusion

w = .01 # largeur de l'intervalle en x

T0 = 283 # temp�erature �a x=0

T1 = 373 # temp�erature �a x=w

N = 100 # subdivision de l'intervalle

a = w/N # constante de reseau

tmax = 10 # on cherche la solution pour t <= tmax

h = 1.E-3 # incr�ement en temps

t = 0

c = h * D / a**2

# initialiser temp�erature �a t=0

T = np.ones(N+1)

T *= T0

T[N] = T1

# temps interm�ediaires pour trace le profile de T

tplot = [.01, .1, 1, 10]

HMPH104, U Montpellier Mod�elisation et simulation en physique 193 / 206

Page 199: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme de Cauchy : l'�equation de la chaleur

# boucle principale

while t < tmax:

T[1:N] = T[1:N] + c * (T[:N-1] + T[2:] - 2 * T[1:N])

for tp in tplot:

if abs(t - tplot) < 0.1 * h:

plt.plot(T)

t += h

plt.show()

�A noter la commandeT[1:N] = T[1:N] + c * (T[:N-1] + T[2:] - 2 * T[1:N])

qui augmente tous les T[n] �a l'int�erieur par c * (T[n-1] + T[n+1] - 2 * T[n]) d'unseul coup.

HMPH104, U Montpellier Mod�elisation et simulation en physique 194 / 206

Page 200: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Exemple d'un probl�eme de Cauchy : l'�equation de la chaleur

HMPH104, U Montpellier Mod�elisation et simulation en physique 195 / 206

Page 201: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Instabilit�e de la m�ethode FTCS

La m�ethode FTCS marche bien pour des simples probl�emes paraboliques, mais elle estinstable pour d'autres probl�emes de Cauchy, par exemple, ceux pour l'�equation d'ondes.Essayons de l'appliquer �a l'�equation d'ondes en une dimension,

@2

@t2�(t; x) = c2

@2

@x2�(x; t) :

Meme strat�egie que pour l'�equation de la chaleur :

discr�etiser l'espace, remplacer @2

@x2par une di��erence �nie �a N points

@2

@x2� � �(x+ a; t) + �(x� a; t)� 2�(x; t)

a2

obtenir alors N EDO coupl�ees en temps (maintenant du second ordre)

@2

@t2�n(t) =

c2

a2(�n+1(t) + �n�1(t)� 2�n(t))

transformer en syst�eme de 2N EDO du premier ordre :

n(t) =@

@t�n(t) ;

@

@t n(t) =

c2

a2(�n+1(t) + �n�1(t)� 2�n(t))

HMPH104, U Montpellier Mod�elisation et simulation en physique 196 / 206

Page 202: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Instabilit�e de la m�ethode FTCS�Equations FTCS :

�n(t+ h) = �n(t) + h n(t)

n(t+ h) = n(t) +hc2

a2(�n+1(t) + �n�1(t)� 2�n(t))

Application : corde vibrante de longueur L avec les deux extr�emit�es �xes (conditions auxlimites) et une forme donn�ee �a t = 0 (condition initiale). On trace la solution �a 4 tempsdi��erents :

Visiblement instable.HMPH104, U Montpellier Mod�elisation et simulation en physique 197 / 206

Page 203: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

Analyse de stabilit�e de von Neumann

D�ecomposer �(x; t) en modes de Fourier,

�(x; t) =Xk

ck(t)eikx :

Pour les op�erateurs di��erentiels qui sont diagonaux en espace de Fourier, les modes ne sem�elangent pas et

ck(t+ h) = �k(h; a)ck(t)

Si les facteurs d'ampli�cation �k v�eri�ent j�kj < 1 8 k alors la m�ethode est stable.

C'est le cas, par exemple, pour l'�equation de la chaleur si h < a2

2Dcar

�k = 1� h4Da2

sin2ka

2:

Si pour au moins un k on a j�kj > 1, alors la m�ethode est instable (mode croissantexponentiellement).

Pour un syst�eme de EDP coupl�ees, les �k sont des matrices et les conditions de(in)stabilit�e s'appliquent �a ses valeurs propres. Exemple : �equation d'ondes, les �ksont des matrices 2� 2 agissant sur les modes de Fourier de (�(x; t); (x; t)).Valeurs propres 1� i 2hc

asin ka

2) instable.

HMPH104, U Montpellier Mod�elisation et simulation en physique 198 / 206

Page 204: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode implicite

Avec la m�ethode d'Euler implicite : �Equations \BTCS" (backward-time centered-space)

�n(t+ h) = �n(t) + h n(t+ h)

n(t+ h) = n(t) +hc2

a2(�n+1(t+ h) + �n�1(t+ h)� 2�n(t+ h))

�n(t+ h) et n(t+ h) ne plus donn�es explicitement en fonction de l'�etat du syst�eme autemps t, mais par un syst�eme de 2N �equations lin�eaires qu'il faut r�esoudre :

0BBBBBBBB@

. . .

�� 0 2� 1 ��1 �h

�� 0 2� 1 ��1 �h

. . .

1CCCCCCCCA�

0BBBBBBBBBBBB@

...�n�1 n�1�n n�n+1 n+1...

1CCCCCCCCCCCCAt+h

=

0BBBBBBBBBBBB@

...�n�1 n�1�n n�n+1 n+1...

1CCCCCCCCCCCCAt

o�u � = hc2=a2. Solution p.ex. avec m�ethode de Gauss, o�u avec des m�ethodes sp�ecialis�eesdes matrices creuses.

HMPH104, U Montpellier Mod�elisation et simulation en physique 199 / 206

Page 205: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Crank-Nicolson

On peut montrer : La m�ethode implicite est toujours stable. Ses d�esavantages sont safaible vitesse (maintenant il faut r�esoudre un syst�eme lin�eaire �a chaque pas) et, pourl'�equation d'ondes, l'amortissement des modes de Fourier (facteurs d'ampli�cation < 1) d�ecroissance exponentielle des modes, toujours pas la solution physique).

Plus e�cace (ordre h2 en temps) et sans ce dernier probl�eme : sch�ema de Crank-Nicolson,on prend la moyenne des formules FTCS et BTCS. Pour l'equation d'ondes :

�n(t+ h) = �n(t) + h1

2( n(t+ h) + n(t))

n(t+ h) = n(t) +hc2

a21

2

��n+1(t+ h) + �n�1(t+ h)� 2�n(t+ h)

+ �n+1(t) + �n�1(t)� 2�n(t)�

Comme pour la m�ethode implicite, il faut r�esoudre ce syst�eme d'�equations lin�eaires a�nde trouver �n(t+ h) et n(t+ h).

HMPH104, U Montpellier Mod�elisation et simulation en physique 200 / 206

Page 206: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Crank-Nicolson�Equations de Crank-Nicolson pour l'�equation d'ondes en forme matricielle : On pose

u(t) =

0BBBBBBBBB@

�0(t) 0(t)�1(t) 1(t)...

�N (t) N (t)

1CCCCCCCCCA

�Equations de CN :A � u(t+ h) = B � u(t)

o�u

A =

0BBBBBBBB@

. . .

�� 0 2� 1 ��1 �h=2

�� 0 2� 1 ��1 �h=2

. . .

1CCCCCCCCA;

� = hc2=2a2, et B = A avec les remplacements h ! �h, � ! ��.HMPH104, U Montpellier Mod�elisation et simulation en physique 201 / 206

Page 207: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Crank-Nicolson

�Equations de Crank-Nicolson pour l'�equation d'ondes en forme matricielle :

A � u(t+ h) = B � u(t)Les matrices A et B ont une structure creuse : presque tous les �el�ements sont z�ero saufceux proche de la diagonale. Des m�ethodes sp�ecialis�ees peuvent donc r�esoudre les�equations de CN en temps de calcul �(N) (plutot que �(N3) pour des m�ethodesg�en�erales, par exemple l'�elimination de Gauss).

Parce qu'on n'a pas discut�e les m�ethodes d'alg�ebre lin�eaire num�erique, on va pourtant seservir de la m�ethode numpy.linalg.solve() (ine�cace pour des matrices creuses) pourr�esoudre les �equations de CN dans notre exemple.

Algorithme :

Initialiser le vecteur u et construire les matrices A et B

�A chaque t, r�esoudre les �equations de CN pour obtenir u(t+ h). Les �el�ements �0, 0, �N et N sont toujours donn�es par les conditions aux limites.

HMPH104, U Montpellier Mod�elisation et simulation en physique 202 / 206

Page 208: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Crank-Nicolson

Initialisation :

import numpy as np

import matplotlib.pyplot as plt

L = .3 # longueur de la corde

c = 100. # vitesse de phase

N = 100 # subdivision de l'intervalle

a = L/N # constante de reseau

tmax = .1 # on cherche la solution pour t <= tmax

h = 1.E-4 # incr�ement en temps

hbar = 1.0545718E-34

alpha = h * c**2 / 2 / a**2

# profil initial

u = np.zeros (2*N + 2)

for k in range(1, N+1):

u[2*k] = np.sin(k / N * np.pi) * k / N / 100

tplot = [0, .01, .02, .03] # temps pour tracer profile

HMPH104, U Montpellier Mod�elisation et simulation en physique 203 / 206

Page 209: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Crank-NicolsonConstruction des matrices :

A = np.zeros ([2*N + 2, 2*N + 2])

B = np.zeros ([2*N + 2, 2*N + 2])

# Blocs 2x2 en haut �a gauche et en bas �a droite = identit�e

# (conditions aux limites)

A[0, 0] = A[1, 1] = A[2*N, 2*N] = A[2*N + 1, 2*N + 1] = 1.0

B[0, 0] = B[1, 1] = B[2*N, 2*N] = B[2*N + 1, 2*N + 1] = 1.0

# Les autres �el�ements:

for i in range(2, 2*N):

A[i, i] = 1.0

B[i, i] = 1.0

if i % 2 == 0: # �el�ements pairs = phi_n

A[i, i+1] = -h/2

B[i, i+1] = h/2

else: # �el�ements impairs = psi_n

A[i, i+1] = -alpha

B[i, i+1] = alpha

A[i, i-1] = 2* alpha

B[i, i-1] = -2*alpha

A[i, i-3] = -alpha

B[i, i-3] = alpha

HMPH104, U Montpellier Mod�elisation et simulation en physique 204 / 206

Page 210: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

M�ethode de Crank-NicolsonBoucle principale :

t = 0.0

while t < tmax:

# �a d�efaut d'un r�esolveur efficace des syst�emes creuses:

# utiliser numpy.linalg.solve () pour la demonstration

u = np.linalg.solve(A, np.dot(B, u))

t += h

R�esultat : plus d'instabilit�e (mais on note l'erreur num�erique apr�es 5 p�eriodes !)

HMPH104, U Montpellier Mod�elisation et simulation en physique 205 / 206

Page 211: Modélisation et simulation en physique QCD+QED prediction BMW 2014 ... U Montpellier elisation Mo det simulation en physique 11 ... L'exposant E peutesenterrep r 2 11 = 2048 nombreserents,di

�Equations di��erentielles partielles

On n'a pas trait�e :

Presque tout | des livres et biblioth�eques enti�eres existent sur ce sujet.

Autres m�ethodes dans la classe des m�ethodes des di��erences �nies : \staggeredleapfrog", m�ethodes de Lax et Lax-Wendro�, . . .

Autres classes de m�ethodes : �El�ements �nis, m�ethodes spectrales, . . .

Applications �a la dynamique des uides, l'�electrodynamique, la relativit�e g�en�erale,. . .

HMPH104, U Montpellier Mod�elisation et simulation en physique 206 / 206