40
UNIVERSITE DE RENNES 1 U.F.R. S.P.M. Campus de Beaulieu Licence de Physique Rapport de stage mai-juin 2008 Simulation sous MatLab d'une collision classique d'un ion positif  soumis à un champ de potentiel et à un champ magnétique Par SUHARD Jérôme Organisme d'accueil :                                              Nom du responsable :  Equipe SIMPA                                                        Launay Jean-Michel Institut de Physique de Rennes (IPR)                      02-23-23-56-63 Université de Rennes 1                                           [email protected] Campus de Beaulieu - Bat 11B 35042 Rennes Cedex – France http://www.ipr.univ-rennes1.fr/SIMPA/

Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 [email protected] 21 ans Expérience

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

UNIVERSITE DE RENNES 1

U.F.R. S.P.M.

Campus de Beaulieu

Licence de Physique

Rapport de stage mai­juin 2008

Simulation sous MatLab d'une collision classique d'un ion positif soumis à un champ de potentiel et à un champ magnétique 

Par SUHARD Jérôme

Organisme d'accueil :                                              Nom du responsable :  

Equipe SIMPA                                                        Launay Jean­MichelInstitut de Physique de Rennes (IPR)                      02­23­23­56­63Université de Rennes 1                                           Jean­Michel.Launay@univ­rennes1.frCampus de Beaulieu ­ Bat 11B35042 Rennes Cedex – France

http://www.ipr.univ­rennes1.fr/SIMPA/

Page 2: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Avant toute chose, je tenais à remercier toute l'équipe SIMPA ainsi que les 2 stagiaires présent en même temps que moi pour leur amabilité et leur professionnalisme et en particulier à :

Jean Michel LAUNAY, professeur et responsable de l'équipe SIMPA au sein de l'Institut de Physique de Rennes, de m'avoir accueilli dans son équipe et d'avoir su me guider à me poser les vraies questions physiques

Franck THIBAULT, maître de conférence à l'université de Rennes 1, de ses propositions d'améliorations et de ses explications quant au fonctionnement des revues scientifiques

Alexandra VIEL, chargée de recherche à l'Institut de Physique de Rennes, de sa patience à l'égard de mes (nombreuses) questions quant à l'environnement UNIX et au fonctionnement de la publication des recherches

Page 3: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Sommaire

CV .................................................................................................................................4Lettre de motivation ......................................................................................................51. Présentation du laboratoire ......................................................................6

1.1. Activités ............................................................................................................................61.2. Equipe ...............................................................................................................................61.3. Moyens informatiques .......................................................................................................81.4. Publications .......................................................................................................................91.5. Collaborations ...................................................................................................................9

2. Travail effectué : Modèle numérique de collision .................................102.1. Aspects théoriques du modèle ....................................................................102.2. Programmation sous MATLAB ................................................................12

2.2.1. Résolution de α et β  pour un puits de potentiel donné ...................................122.2.2. Application du Principe Fondamental de la Dynamique sur la particule .........142.2.3. Algorithme .......................................................................................................17

2.3. Confrontation du modèle avec la Physique ...............................................182.3.1. Champ magnétique seul  ...................................................................................182.3.2. Potentiel seul ....................................................................................................202.3.3. Champ magnétique plus potentiel ....................................................................212.3.4. Amélioration de la précision ............................................................................22

3. Conclusions et perspectives  ..................................................................27

4. Annexes  ................................................................................................294.1. Fonction collision ......................................................................................294.2. Fonction etape_collision   .........................................................................344.3. Fonction solve_potentiel   ......................................................................... 354.4. Fonction potentiel  .................................................................................... 364.5. Fonction graph_potentiel  ..........................................................................38

5. Bibliographie .........................................................................................40

Page 4: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Jérôme SUHARD23 Cité des Noyers53250 Javron les [email protected]­rennes1.fr21 ans

Expérience professionnelle 

Du 04/01/2005 au 23/08/2005 et vacances scolaires 2006/2007 : Lyreco , Mayenne Préparateur en fournitures de bureau

Du 03/11/2004 au 17/11/2004 :  Immunia (Paris), MayenneManoeuvres sur un chantier d’épuration

Du 18/10/2004 au 27/10/2004 : MPO , MayenneApprovisionneur dans une entreprise de conditionnement

Formation

2007/2008 : 3ième année de licence Physique, Rennes2004 : Bac S spécialité SVT, Mayenne

Compétences techniques

2007 : certificat du C2I ( Certificat Informatique et Internet ), Rennes

bonne connaissance des environnements Windows et Linux   codage régulier en PHP, HTML et java script, gestion de base de données  Quelques connaissances serveur Apache ( principalement htaccess )

4

Page 5: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

à Jean­Michel Launay <jean­michel.launay@univ­rennes1.fr>

Objet : Stage de Simulation du 28 avril au 21 juin 2008

Monsieur,

   Suite à la visite de votre laboratoire plus qu'intéressante, je sollicite auprès de vous un stage de simulation en Physique de 2 mois du 28 avril au 21 juin 2008 dans le cadre de ma 3ème année de licence .   En effet, mes diverses expériences tant professionnelles que personnelles m'ont amené à acquérir des compétences variées comme l'intégration à une équipe, le travail collectif, la rigueur . J'aimerais donc poursuivre ce chemin en y ajoutant mes passions complémentaires que sont la Physique et la Programmation pour enrichir mon parcours professionnel dans votre laboratoire .  Je vous remercie de l'attention que vous porterez a ma demande tout en restant à votre disposition, je vous prie d'agréer,Monsieur, mes salutations distinguées,

Jérôme SUHARD23 Cité des Noyers53250 Javron les Chapelles06.21.65.31.53

5

Page 6: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

1. Présentation du laboratoire

1.1. Activités

L'équipe de Simulation des Interactions entre Molécules, Photons et Atomes ( SIMPA ) de l'Institut de Physique de Rennes ( IPR ) s'intéresse à l'étude théorique et à la simulation numérique de processus élémentaires en Physique Atomique et Moléculaire .

Leurs domaines de recherche concernent la dynamique quantique des réactions moléculaires, les processus atomiques en champs laser intenses et les processus moléculaires à ultra­basse température .

Les applications concernent la physique des plasmas, l'astrophysique, la physico­chimie de l'atmosphère, la spectroscope moléculaire et la physique des condensats de Bose­Einstein .

1.2. Equipe

Personnel permanent : 

Bourhis Gilles, Ingénieur de rechercheDunseath Kevin, Chargé de rechercheDunseath­Terao Mariko, ProfesseurLaunay Jean­Michel, ProfesseurLebreton Yveline, AstronomeMagnier Sylvie, ProfesseurSimoni Andrea, Maître de conférenceThibault Franck, Maître de conférenceViel Alexandra, Chargée de recherche

Postdoctorants :

Lara Manuel

Leino Markku

Doctorants :

Zanchet Alexandre

Stagiaires :

Milcent Sylvain, M1 Physique­chimieLe Cam Cédric, L3 Physique

6

Page 7: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

De gauche à droite :Franck Thibault, Alexandra Viel, Jean­Michel Launay, Gilles Bourhis, Andrea Simoni, Alexandre Zanchet, Manuel Lara, Yveline Lebreton, Markku Leino, Mariko Dunseath­Terao, Kevin Dunseath

7

Page 8: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

1.3. Moyens informatiques

Le laboratoire est équipé d'un serveur de calcul appelé « SIMPATIX » ( en mémoire des anciens serveurs appelés Asterix, Obelix etc .. et du nom de l'équipe ) contenant :

25 noeuds  100 Go de RAM  7 To de stockage sur disque  850 GFlops ( 850 milliards d'opérations à virgule flottante – un entier n'est pas un nombre à 

virgule flottante – par seconde )  2 PC serveurs LINUX  1 PC serveur Windows  12 terminaux X

Nous nous connectons sur les terminaux X à l'aide d'un compte crée pour la durée du stage qui eux se connectent sur les serveurs LINUX . La puissance et la mémoire ­ tant vive ( RAM ) que disque – est donc partagée entre tous les utilisateurs du laboratoire, il convient donc de les utiliser avec parcimonie .

Arrière du Serveur SIMPATIX

8

Page 9: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

1.4. Publications

77 publications entre 2004 et 2007 dans les principales revues : European Physical Journal D Journal of Molecular Spectroscopy Journal of Physics B, Physical Review A Physical Review Letters Chemical Physics Letters Journal of Chemical Physics Journal of Physical Chemistry Physical Chemistry and Chemical Physics

1.5. Collaborations 

L'équipe est très tournée vers l'international en accueillant des chercheurs étrangers toute l'année comme le professeur K. Birgitta WHALEY ( de l'université de Berkeley )  durant mon stage .Elle a collaboré entre autre avec :

Chine, Department of Physics, Tsinghua University, Beijing (L. Li)  Allemagne, Technical University, Munich (W. Domcke) Espagne, Department of Chemical Physics, Universidad Complutense de Madrid (F.J. Aoiz, 

L. Banares) Etats­Unis, Department of Chemistry, University of Berkeley (K.B. Whaley)  Russie, Institute of Physics, University of Saint­Petersbourg (V. B. Sovkov)

Le laboratoire propose actuellement 3 thèses : Dynamique non­adiabatique de systèmes moléculaires Collisions ultra­froides dans les réseaux optiques Etude théorique de l’ionisation multiphotonique d’atomes en champ EUV de laser à 

électrons libres

9

Page 10: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

2. Travail effectué : Modèle numérique de collision

2.1. Aspects théoriques du modèle

L'objectif de ce stage est de simuler une collision dite « classique » entre un ion positif soumis à un champ de potentiel et à un champ magnétique .

Pour ce faire, nous prendrons pour l'ion ( qui sera un proton ) :

sa masse à 1,6524 E­27 kg ( 1836 * me kg) sa charge à 1,6 E­19 C ( 1 * (+e) C)

Il aura comme conditions initiales :

une vitesse initiale positive variable suivant l'axe y ( de l'ordre du mètre par seconde) , nulle pour les autres

une distance ion – centre du potentiel de 100  Å suivant l'axe des x négatifs, le centre du potentiel étant situé à l'origine

Il sera soumis à :

un champ magnétique de 1 Tesla suivant l'axe des z positifs un potentiel du type α / r 8 – β / r 4

Ce potentiel aura une « profondeur » D de 1,6 E­19 J à son minimum r0 de 2 Å .

Nous négligerons la force gravitationnelle dans cette simulation, en effet, à l'échelle de ce modèle ( ~100  Å ) , nous avons 

F gravitationnelle=G∗m²r²

≈ 10−48 N

Florentz = q∗v∗b = 1,6∗10−19∗1∗1≈ 10−19 N

F potentielle=8∗αr9 –

4∗βr5 ≈ 10−17 N

F potentielle≈ F lorentz ≫ F gravitationnelle

10

Page 11: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

L'élaboration du programme se fera en 3 temps :

1. Force de Lorentz Florentz =q∗v ∧ b

 2. Force potentielle 

           F potentielle =−dVdr∗e r = 8∗αr9

–4∗βr5 ∗e r

    3. Force de Lorentz et force potentielle    Appliquons le principe fondamental de la dynamique en présence des 2 forces :

m∗ r = q ∗ r∧b 8∗αr9 –4∗βr5 ∗er

m∗ x = q ∗ b ∗ y 8∗αr9 –4∗βr5 ∗ x

x2 +y2 +z2

m∗ y =−q ∗ b ∗ x 8∗αr9 –4∗βr5 ∗ y

x2 +y2+z2

m∗ z = 8∗αr9 –4∗βr5 ∗ z

x 2+y2+z2

11

Page 12: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

2.2. Programmation sous MATLAB

Version utilisée tout au long de ce stage : 7.0.4.352 (R14) Service Pack 2 tournant sous Linux .Bien que notre problème est bien défini dès le départ ( masse, charge fixées ; choix du potentiel ..), je m'efforcerais de coder des fonctions les plus générales possibles ( passage en paramètre de la masse, charge, champ magnétique, forme du potentiel..) pour accroître leurs potentiels d'action  . En effet, on peux remarquer que d'autres potentiels très utilisés comme le potentiel de Lennard­Jones sont de la même forme que celui étudié :

V r = 4V0∗ r012

r12 −r06

r6 = α

r puissancealpha− β

r puissancebeta

      2.2.1.  Résolution de α et β  pour un puits de potentiel donné

Connaissant la profondeur du puits D et la distance r0 associée, nous pouvons déterminer α  et β .

V r = αr8 −

βr4

dVdr=− 8∗α

r9 4∗βr5

à r = r0 , le potentiel est à son minimum : 

dVdr r=r 0= 0

8∗αr0

9 = 4∗βr0

5

α = 48

r09−5 ∗β

V r0 = D=4r 0

9−5−8 −8r0−4

8∗β

β= 8D

4r 09−5−8 −8r0

−4

( D est inférieur à 0 Joule et r en mètres )

12

Page 13: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : SOLVE_POTENTIEL%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 04/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% Solve_potentiel calcule alpha et beta pour un potentiel de type % alpha / r^puissance_alpha ­ beta / r^puissance_beta% grâce à la distance r où il y a un minimum de potentiel ainsi que cette% valeur minimum d'énergie rentrées en paramètres%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * distance r qui correspond au potentiel minimum (réel positif) [ m ],% * profondeur du puit (réel négatif) [ J ],% * puissance pour le 'r' du terme alpha / r ( réel ),% * puissance pour le 'r' du terme beta / r ( réel ),%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sorties : % * [alpha,beta] : renvoie les valeurs de alpha et beta calculées% ou % * vide : renvoie un graphique représentant le potentiel avec alpha et% beta calculés%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % solve_potentiel(2E­10,­1.6E­19,8,4)% [alpha,beta]=solve_potentiel(2E­10,­1.6E­19,8,4)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite la fonction graph_potentiel pour fonctionner en mode graphique%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

( Voir annexe 3 )

>> [alpha,beta]=solve_potentiel(2E­10,­1.6E­19,8,4)

alpha =

   4.0960e­97

beta =

   5.1200e­58

Grâce à la commande solve_potentiel(2E­10,­1.6E­19,8,4) utilisant la fonction graph_potentiel ( Voir annexe 5 ), nous obtenons : 

13

Page 14: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Figure 1 : potentiel en fonction de la distance r séparant la particule du « centre » du potentiel 

  2.2.2. Application du Principe Fondamental de la Dynamique ( PFD ) sur la particule

m∗ x= q ∗ y bz−by z 8∗αr9–

4∗βr5 ∗ x

x2 +y2+z2

m∗ y = q ∗ z bx−bz x 8∗αr9 –4∗βr5 ∗ y

x2 +y2+z2

m∗ z = q∗ x by−bx y 8∗αr9 –4∗β

r5 ∗ z

x 2+y2+z 2

Toute équation du n­ième ordre peux se mettre sous la forme de n équations du premier ordre

14

Page 15: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

m ∗ x = q∗ y bz−by z 8∗αr9–

4∗βr5 ∗ x

x2 +y2+z2

devient:du 1

dt= u 4

du 4 dt= q ∗ u 5 bz−b yu 6 8∗αr9 –

4∗βr5 ∗ u 1

u 1 2 +u 2 2+u 3 2

avec u = xyzxyz et

dudt= u 4 u 5

u 6 xyz

Il en est de même pour les équations du second ordre pour y et z . Cette étape est nécessaire pour pouvoir résoudre numériquement ces équations à l'aide de la routine ode45 basée sur la méthode de Runge­Kutta à pas adaptatif .Ce « PFD à l'instant t » est modélisé par la fonction etape_collision

%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : ETAPE_COLLISION%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 05/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% etape_collision simule la position et la vitesse de la% particule en fonction de la position et vitesse antèrieures% pour un instant t donné%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * instant t,% * vecteur collonne y représentant [x; y; z; vx; vy; vz],%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sortie : % * vecteur collonne ypoint représentant les nouvelles positions et vitesses% après la simulation du PFD sur la particule%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % ypoint=etape_collision(0,[­100E­10; 0; 0; 0; 5; 0])%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite que les variables m,b,alpha,beta,cte_lorentz,% global_puissance_alpha et global_puissance_beta soient déclarées !!% A utiliser de préférence en tant que sous­routine%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

( Voir annexe 2 )Il sera utilisé avec la routine ode45 de la façon suivante :

[t,y]=ode45(@etape_collision,[0 temps_simulation],[­100E­10; 0; 0; 0; vy; 0]);

15

Page 16: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

sorties : vecteur colonne t contenant les différents instants t et vecteur colonne y contenant pour chaque point, un vecteur ligne [x y z vx vy vz]

tous ces points simulés seront traités par la fonction collision :%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : COLLISION%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 10/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% collision simule pour un temps donné les interactions entre une particule% et un potentiel le tout placé dans un champ magnétique%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * masse (réel positif) [ kg ],% * charge (réel) [ C ], % * champ magnétique ( vecteur [Bx By Bz] réel) [ T ],% * distance r qui correspond au potentiel minimum (réel positif) [ m ],% * profondeur du puit (réel positif) [ J ],% * "rayon" de la sphère virtuelle représentant le potentiel (réel positif) [ m ],% * puissance pour le 'r' du terme alpha / r ( réel ),% * puissance pour le 'r' du terme beta / r ( réel ),% * temps maximum (réel positif) [ s ],% * position et vitesse initiales ( vecteur [ x_initial y_initial z_initial vx_initial% vy_initial] vz_initial ) [ m & m/s ]%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sorties : % * nb_collisions : renvoie le nombre de collisions dans l'intervalle de% simulation% ou % * vide : renvoie un graphique représentant :%               %                ** la trajectoire de la particule%                ** le moment cinétique en fonction du temps%                ** les énergies (cinétique, potentielle et totale) en%                fonction du temps%                ** le potentiel et l'énergie totale en fonction de la%                distance séparant la particule du potentiel% %­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % collision(1836*0.9E­30,1.6E­19,[0 0 1],2E­10,1.6E­19,3E­10,8,4,5E­9,[­100E­10 0 0 0 5 0])%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite les fonctions solve_potentiel, etape_collision, potentiel et% graph_potentiel%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Quelques résultats :% * collision(1836*0.9E­30,1.6E­19,[0 0 1],2E­10,1.6E­19,3E­10,8,4,10E­9,[­100E­10 0 0 0 7.015 0])% => 5 'pétales' : trajectoire fermée%­­­­  B > 10 T ­­­­­­­% * collision(1836*0.9E­30,1.6E­19,[0 0 10],2E­10,1.6E­19,3E­10,8,4,50E­9,[­100E­10 0 0 0 18.06 0])%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

16

Page 17: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Passage en paramètre des données

Résolution de alpha et bêta pour avoir la forme du potentiel 

Simulation de la vitesse et de la position de la particule en appliquant 

le PFD à chaque instant

Début boucle traitement de tous les points obtenus

Calcul de l'Energie Cinétique à l'instant t

Calcul de l'Energie Potentielle à l'instant t

Calcul de l'Energie Totale à l'instant t

Vérification s'il y a collision ou pas

Fin boucle traitement des points

Affichage des différentes données simulées ou calculées

Figure 2 : Algorithme de la simulation de la trajectoire de la particule17

Page 18: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

2.3. Confrontation du modèle avec la conservation de l'Energie totale 

Maintenant que nos fonctions sont crées et qu'il n'y a plus de bug informatique (plus aucun message d'erreur...), nous allons tester la fonction 'collision' du point de vue 'physique' à savoir dans un premier temps en présence d'un champ magnétique seul puis dans un deuxième uniquement en présence du potentiel pour finalement simuler cette trajectoire en présence de ces 2 forces .

2.3.1. Champ magnétique seul

Nous prendrons pour cette simulation un champ de 1 Tesla suivant l'axe des z, une profondeur D du puits de potentiel égale à 0 Joule et une vitesse initiale selon l'axe y égale à 7 m/s (Ec = 4.04838E­26 J):>> collision(1836*0.9E­30,1.6E­19,[0 0 1],2E­10,0,3E­10,8,4,75E­9,[­100E­10 0 0 0 7 0])

( Voir Figure 2 )

Nous pouvons voir ­ malgré le fait que l'image de la trajectoire est étirée – que la particule suit un mouvement circulaire de rayon 700 Å et que son énergie cinétique ­ donc totale ­ bien que non constante (sic!) est égale à l'Ec théorique pour un temps proche de 0 .

18

Page 19: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Figure 3 : Simulation de la trajectoire de la particule en présence d'un champ magnétique seul

19

Page 20: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

2.3.2. Potentiel seul

Figure 4 : Simulation de la trajectoire de la particule en présence du potentiel 

( Le point vert symbolise le point de départ contrairement au rouge, le dernier point simulé )Obtenue grâce à la commande :>> collision(1836*0.9E­30,1.6E­19,[0 0 0],2E­10,1.6E­19,3E­10,8,4,5E­9,[­100E­10 0 0 0 7 0])

Nous pouvons voir que la particule subit une collision qui l'éjecte hors de portée du potentiel lui conférant une vitesse supérieure à sa vitesse initiale

20

Page 21: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

2.3.3 Champ magnétique plus potentiel

Figure 5 :  Trajectoire de la particule en présence du champ magnétique plus potentiel 

21

Page 22: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Nous pouvons voir sur ce graphique que l'énergie se conserve mais est­ce totalement vrai ?

Figure 6 : Zoom sur l'énergie totale au niveau de la collision  

Au fur et à mesure que nous centrons le graphique sur la collision, des irrégularités apparaissent . Comme nous pouvons le voir sur la figure 6, l'énergie potentielle est devenu positive d'où une énergie totale elle aussi positive ( signifiant une trajectoire non fermée ) et de surcroît non constante au cours du temps engendrant un gain d'énergie à chaque collision .

2.3.4. Amélioration de la précisionJ'ai de suite pensé à une erreur de programmation dans mon code de par sa taille – il faisait déjà 5 pages – mais après quelques jours de remaniement et de tests en tout genres et le fait que je n'avais toujours pas trouvé la cause de cette erreur, mon maître de stage M. Launay m'orienta vers la précision intrinsèque de la routine ode45 utilisée dans mon programme .Pour ce faire, il me conseilla de simuler un problème simple ­ dont le résultat est parfaitement connu ­ avec cette même routine .Il s'agissait de l'oscillateur harmonique :

m∗ x k ∗ x = 0

avec ω = km

et T = 2πω

22

Page 23: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

En posant   = 1 rad/s , nous devrions trouver T = 6.283 s et x ω max = x (t=0) .Pour ce faire, nous créons une routine appelée 'test.m' contenant : 

y 1 = y 2 y 2 =− ²ω ∗ y 1 où y 1 = xet y 2 = xet ω= 1

Elle est appelée avec :

[t,y]=ode45(@test,[0 9],[7 0]);subplot(2,1,1);hold onplot(t(:),y(:,1),'bs')subplot(2,1,2);for i=1:length(y)    cine(i) = 1/2*1836*0.9E­30*y(i,2)^2;    pot(i) = 1/2*1836*0.9E­30*y(i,1)^2;    tot(i) = cine(i) + pot(i);endplot(t,tot,'rs')Ce qui nous rend :

Figure 7 : courbe du haut : abscisse x en fonction du temps de l'oscillateur harmoniquecourbe du bas : énergie mécanique en fonction du temps 

23

Page 24: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

La période simulée est donc correcte mais l'énergie totale n'est pas conservée or le programme cette fois ci est des plus simples, le soucis vient donc de ode45 comme M. Launay m'avait conseillé de regarder dès les débuts .Après quelques petites recherches dans l'aide de MatLab, il s'avère que ode45 a la meilleure précision parmi toutes les  routines ode de résolution d'équations différentielles et que l'on peux agir sur cette précision . Cette précision est définie selon 3 paramètres :

Refine : divise à chaque étape en n plus petits intervalles(4 par défaut pour ode45) AbsTol : erreur absolue, c'est elle qui détermine la précision lorsque le point est proche de 

l'origine RelTol : erreur relative, elle détermine le nombre de chiffres après la virgule

Nous réessayons donc en jouant sur ces paramètres de précision :options = odeset('AbsTol',1E­20,'RelTol',1E­15);[t,y]=ode45(@test,[0 9],[7 0],options);subplot(2,1,1);hold onplot(t(:),y(:,1),'b')subplot(2,1,2);for i=1:length(y)    cine(i) = 1/2*1836*0.9E­30*y(i,2)^2;    pot(i) = 1/2*1836*0.9E­30*y(i,1)^2;    tot(i) = cine(i) + pot(i);endplot(t,tot,'r')

Figure 8 : courbe du haut : abscisse x en fonction du temps de l'oscillateur harmoniquecourbe du bas : énergie mécanique en fonction du temps ces 2 courbes sont obtenues avec une meilleur précision 

24

Page 25: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

MatLab zoom automatiquement  ce qui signifie que la courbe du bas est une droite signifiant la conservation de l'énergie totale au cours du temps . Maintenant, nous pouvons revenir à notre fonction 'collision' pour lui appliquer ces nouveaux paramètres .

>>collision(1836*0.9E­30,1.6E­19,[0 0 1],2E­10,1.6E­19,3E­10,8,4,15E­9,[­100E­10 0 0 0 7 0])

Figure 9 : Trajectoire de la particule soumis à un champ de potentiel et à un champ magnétique25

Page 26: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

  

Figure 10 : agrandissement de l'énergie totale 

L'erreur numérique est donc acceptable pour un nombre de collisions très faible ( si l'on suppose que l'on gagne uniformément 1.4% de l'énergie totale à l'origine à chaque collision, on gagne 14% de l'énergie totale à l'origine au bout de 10 collisions )

Notre système champ magnétique ( constant au cours du temps ) – potentiel est un système isolé signifiant donc la conservation exacte de l'Energie totale au cours du temps . Bien que non constante sur la figure 10, nous avons réduit l'erreur relative par 60 entre la figure 6 et la figure 10 ( représentant la même simulation, seule la précision a été modifiée ) .Cette non constance au cours du temps de l'Energie totale peux encore être réduite en augmentant la précision de la routine ode45 entraînant un temps de calcul proportionnel 

26

Page 27: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

3. Conclusions et perspectives

Lors de ce stage, j'ai découvert la démarche scientifique du métier de chercheur . La difficulté principale a été de créer un modèle informatique en se basant uniquement sur l'application du Principe Fondamental de la Dynamique tout en ne connaissant pas le résultat final . En effet, le travail de recherche n'est que remise en question des résultats acquis antérieurement, ce que j'ai découvert avec les soucis liés à la précision de la routine de simulation de Runge­Kutta . L'apparente satisfaction de mes premières trajectoires ne fut que de courte durée puisqu'une analyse plus approfondie a mis en évidence des discordances entre ma simulation informatique et la réalité physique ( non conservation de l'Energie totale ) ce que je me suis forcé d'améliorer tout au long du stage .Dans cette optique, il aurait été intéressant d'améliorer ce modèle pour mieux rendre compte de la réalité physique pour un proton soumis à un champ magnétique et à un potentiel . Pour ce faire, il aurait fallu vérifier la conservation du moment cinétique au cours du temps et de prendre en considération la force centrifuge, mais par manque de temps je n'ai pu ajouté cela à mon code informatique .

L = m∗r ×vd Ldt= m∗v × v m∗r × dv

dtd Ldt=r ×

−dUdr

er q∗v × B

L = Cte− q∗r 2

2∗B

E = 12

m R2Ueff

Ueff =Λ2

2∗m∗R2 q2∗B 2∗R 2

8∗mU R − q× B

2∗m

avec Λ = mR2 Θ qBR2

2

Θ= 1

mR 2 Λ −qBR2

2

J'ai aussi le regret de ne pas avoir amélioré le programme en tant que tel, bien qu'il n'y a à rentrer les paramètres qu'une seule fois, l'usage en ligne de commande n'est pas aisée pour un novice . Il aurait été préférable de passer par une interface ( appelé GUI sous MatLab ) claire munie de boutons et de cases pré­remplies parfaitement adapté pour une utilisation en tant que démonstration pour des étudiants par exemple .Paradoxalement, le programme actuel n'est pas destiné à une utilisation plus poussée par un programme externe, en effet, aucun mode de sortie n'est prévu rendu l'exploitation des points simulés impossible par un programme externe comme VMD ( Visual Molecular Dynamics, http://www.ks.uiuc.edu/Research/vmd/ ) .

27

Page 28: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Toutefois, je garderais de cette expérience de très bons souvenirs, en effet, mon maître de stage m'a toujours placé dans le cas d'un client me confiant une mission en totale autonomie, aucune indication au sujet de la méthode à suivre, je ne connaissais que les conditions initiales ( choix du potentiel , méthode Runge­Kutta ..) et l'objectif ( afficher la trajectoire, vérifier la constance de l'énergie totale ) . Je devais donc analyser le problème, trouver le moyen de le coder puis vérifier si les objectifs étaient atteints tout en développant une vision « physique » du problème me confirmant mon choix de poursuivre mes études dans la simulation physique .

28

Page 29: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Annexes

Annexe 1 : Fonction collision

function [nb_collisions] = collision(masse,charge,champ,r_min_pot,profondeur_puit,rayon_potentiel,puissance_alpha,puissance_beta,t,x,vmin_y,vmax_y,prec_vitesse_y);%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : COLLISION%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 10/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% collision simule pour un temps donné les interactions entre une particule% et un potentiel le tout placé dans un champ magnétique%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * masse (réel positif) [ kg ],% * charge (réel) [ C ], % * champ magnétique ( vecteur [Bx By Bz] réel) [ T ],% * distance r qui correspond au potentiel minimum (réel positif) [ m ],% * profondeur du puit (réel positif) [ J ],% * "rayon" de la sphère virtuelle représentant le potentiel (réel positif) [ m ],% * puissance pour le 'r' du terme alpha / r ( réel ),% * puissance pour le 'r' du terme beta / r ( réel ),% * temps maximum (réel positif) [ s ],% * position et vitesse initiales ( vecteur [ x_initial y_initial z_initial vx_initial% vy_initial] vz_initial ) [ m & m/s ]%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sorties : % * nb_collisions : renvoie le nombre de collisions dans l'intervalle de% simulation% ou % * vide : renvoie un graphique représentant :%               %                ** la trajectoire de la particule%                ** le moment cinétique en fonction du temps%                ** les énergies (cinétique, potentielle et totale) en%                fonction du temps%                ** le potentiel et l'énergie totale en fonction de la%                distance séparant la particule du potentiel% %­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % collision(1836*0.9E­30,1.6E­19,[0 0 1],2E­10,1.6E­19,3E­10,8,4,5E­9,[­100E­10 0 0 0 5 0])%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite les fonctions solve_potentiel, etape_collision, potentiel et% graph_potentiel%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­                                                                                     29

Page 30: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

% Quelques résultats :% * collision(1836*0.9E­30,1.6E­19,[0 0 1],2E­10,1.6E­19,3E­10,8,4,10E­9,[­100E­10 0 0 0 7.015 0])% => 5 'pétales' : trajectoire fermée%­­­­  B > 10 T ­­­­­­­% * collision(1836*0.9E­30,1.6E­19,[0 0 10],2E­10,1.6E­19,3E­10,8,4,50E­9,[­100E­10 0 0 0 18.06 0])%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  global m;global q;global b;global alpha;global beta;global cte_lorentz;global global_puissance_alpha;global global_puissance_beta;% FIN de définition des constantes globales%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% vérification des variables entrées en paramètre(masse et temps positifs par ex)m = abs(masse);q = charge;b = champ;cte_lorentz = q/m;r_min_pot = abs(r_min_pot);profondeur_puit = abs(profondeur_puit); % D est mis positif puis sera multiplié par ­1 pour la recherche de alpha et betatemps_simulation = abs(t);rayon_potentiel = r_min_pot;% FIN vérification variables%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­global_puissance_alpha = puissance_alpha;global_puissance_beta = puissance_beta;%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Initialisation variables pour bouclescollision = 0; % pas de collision au départnb_collisions = 0;energie_cinetique = [];distance_minimum_pot = rayon_potentiel;liste_points_collision = [0 0 0 0 0 0 0];l = []; % def du moment cinétiquetaille_liste_collision = 0;% FIN init. variables pour boucles%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ [alpha,beta]=solve_potentiel(r_min_pot,­1*profondeur_puit,puissance_alpha,puissance_beta); % calcul de alpha et beta vis à vis des conditions du potentiel if ( alpha ~= 0 | beta ~= 0 ) % si potentiel (attractif, répulsif ou les deux)    rayon_potentiel = abs(rayon_potentiel);else     rayon_potentiel = 0; % pas de potentiel = pas de collision = sphère representant le potentiel n'existe pas end options = odeset('Refine',8,'AbsTol',1E­20,'RelTol',1E­9); % modification du nombre de point pour un 'pas' élémentaire de ode45%options = odeset('Refine',8);% AbsTol définit la précision globale et RelTol définit la précision% lorsque la particule est proche de l'origine, RelTol ne doit pas Ãªtre < à% 1E­11 => temps de calcul très long[t,y]=ode45(@etape_collision,[0 temps_simulation],x,options); % simulation de tous les points pour t=0 jusqu'au temps de simulation maximum rentré en paramètre                                                                                                                    30

Page 31: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

 if alpha == 0 & beta == 0 % ­­ début si pas de potentiel    nb_tour = 0;    rayon = [];    diametre = 0;    chemin = 0;    for i= 2:length(y) % ­­ début boucle sur les éléments du vecteur y            pas = ( ( y(i,1)­y(i­1,1) )^(2) + ( y(i,2)­y(i­1,2) )^(2) )^(1/2); % 'pas' élémentaire entre 2 points, approximation d'une droite         chemin = chemin + pas; % on ajoute au fur et à mesure la distance parcourue        corde = ( ( y(1,1)­y(i,1) )^(2) + ( y(1,2)­y(i,2) )^(2) )^(1/2); % longueur ( 'corde' ) entre le point de départ et le point courant        if corde>diametre % si cette corde est maximum, on la garde en mémoire            diametre = corde; % il suffit d'avoir un demi­cercle pour connaitre la corde maximum : le diamètre        end    end % ­­ fin boucle sur les éléments du vecteur y        nb_tour = floor( chemin / (pi * diametre ) ); % on ne garde que l'entier du nombre de tours     rayon = diametre / 2;    if nb_tour > 0 % ­­ s'il y a plus d'un tour complet        titre = ['Nombre de tours complets : ',num2str(nb_tour),' | Rotation sens horaire | Rayon moyen : ',num2str(rayon),' | '];    elseif nb_tour < ­1 % ­­ s'il y a plus d'un tour complet mais dans l'autre sens        titre = ['Nombre de tours complets : ',num2str(abs(nb_tour)),' | Rotation sens anti­horaire | Rayon moyen : ',num2str(rayon),' | '];    else % sinon graphiquement, on verra le sens de rotation        titre = ['Rayon moyen : ',num2str(rayon),' | '];    end % ­­ fin condition plus d'un tour complet else titre = '';end % ­­ fin condition potentiel for i=1:length(y)    %l(i) = m * (( y(i,2)*y(i,6) ­ y(i,5)*y(i,3) )^(2) + ( y(i,3)*y(i,4) ­ y(i,6)*y(i,1) )^(2) + ( y(i,1)*y(i,5) ­ y(i,4)*y(i,2) )^(2) )^(1/2) ; % calcul du moment cinétique pour chaque élément de y    vecteur_position = [y(i,1) y(i,2) y(i,3)];    vecteur_vitesse = [y(i,4) y(i,5) y(i,6)];    l(i) = m*norm(cross(vecteur_position,vecteur_vitesse)); % calcul du moment cinétique pour chaque élément de y    l(i) = l(i) + norm(vecteur_position)^(2)/2*q*norm(b);       %l(i) = norm(vecteur_position)^(2)/2*q*norm(b);    energie_cinetique(i) = 1/2*m*norm([y(i,4) y(i,5) y(i,6)])^(2);    distance_potentiel(i) =  (y(i,1)^(2) + y(i,2)^(2) + y(i,3)^(2))^(1/2);    energie_potentielle(i) = potentiel(alpha,beta,distance_potentiel(i));    energie_totale(i) = energie_cinetique(i) + energie_potentielle(i);            if distance_potentiel(i) < rayon_potentiel & collision == 0    % si la particule est dans la 'sphère' représentant le potentiel et qu'il n'y a pas eu de collision        collision = 1; % on spécifie qu'il y a collision        nb_collisions = nb_collisions +1;    elseif distance_potentiel < distance_minimum_pot & nargout ==0    %elseif distance_potentiel(i) < (rayon_potentiel/9) & nargout ==0       % si la distance au potentiel est inférieure à la moitié du rayon de la sphère et que les graphiques soient demandés            distance_minimum_pot = distance_potentiel(i);            taille_liste_collision = size(liste_points_collision); % = [nb_lignes nb_colonnes]            taille_liste_collision = taille_liste_collision(1)+1; % = nombre de lignes + 1            liste_points_collision(taille_liste_collision,1) = y(i,1); % = x            liste_points_collision(taille_liste_collision,2) = y(i,2); % = y                                                                               31

Page 32: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

            liste_points_collision(taille_liste_collision,3) = y(i,3); % = z            liste_points_collision(taille_liste_collision,4) = y(i,4); % = Vx            liste_points_collision(taille_liste_collision,5) = y(i,5); % = Vy            liste_points_collision(taille_liste_collision,6) = y(i,6); % = Vz            liste_points_collision(taille_liste_collision,7) = t(i);   % = t            elseif distance_potentiel(i) > rayon_potentiel & collision ==1    % si la particule est en dehors de la sphère et qu'il y a eu collision        collision = 0; % on spécifie qu'on est sorti de la sphère        distance_minimum_pot = rayon_potentiel;    end    end  %­­­­­­­­ Graphique ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­if  nargout == 0  % ­­ si pas de variables de sorties = graphique demandé         hold on     axis('equal') % les axes sont orthonormés maintenant    clf % on efface le graphique     if x(3) == 0 | x(6) ==0                   % cercle représentant la 'largeur'du potentiel        rayon_cercle = rayon_potentiel;        cercle_t=0:0.3:6.5;        cercle_x = rayon_cercle*cos(cercle_t);        cercle_y = rayon_cercle*sin(cercle_t);        plot(cercle_x,cercle_y,'k­­');                hold on        plot(0,0,'ks') % affichage du centre du potentiel        plot(y(:,1),y(:,2),'w')        axis('equal')        comet(y(:,1),y(:,2));    else        comet3(y(:,1),y(:,2),y(:,3),0.2); % on affiche l'animation de la trajectoire    end        %­­­­­­­­­­ 1er graph ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­    subplot(2,2,1); % 1er graphique représentant la trajectoire    hold on            if alpha ~= 0 | beta ~= 0 % si potentiel    plot3(0,0,0,'ks') % affichage du centre du potentiel       % cercle représentant la 'largeur'du potentiel    rayon_cercle = rayon_potentiel;    cercle_t=0:0.3:6.5;    cercle_x = rayon_cercle*cos(cercle_t);    cercle_y = rayon_cercle*sin(cercle_t);    cercle_z = 0.*cercle_t;    plot3(cercle_x,cercle_y,cercle_z,'k­­');    %axis('equal')    end     plot3(y(:,1),y(:,2),y(:,3)) % on affiche le tracé de la particule                                                                                       32

Page 33: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

    plot3(y(1,1),y(1,2),y(1,3),'gs') % affichage du point de départ    text(y(1,1),y(1,2),y(1,3),['\rightarrow ( ',num2str(y(1,1)),' | ',num2str(y(1,2)),' | ',num2str(y(1,3)),' )'],'HorizontalAlignment','left')    plot3(y(length(y),1),y(length(y),2),y(length(y),3),'rs') % affichage de la dernière position    text(y(length(y),1),y(length(y),2),y(length(y),3),['\rightarrow ( ',num2str(y(length(y),1)),' | ',num2str(y(length(y),2)),' | ',num2str(y(length(y),3)),' )'],'HorizontalAlignment','left')    for i=2:taille_liste_collision % BUG : 1ère ligne vide        plot3(liste_points_collision(i,1),liste_points_collision(i,2),liste_points_collision(i,3),'ks');    end     xlabel('Axe des X');    ylabel('Axe des Y');    zlabel('Axe des Z');    grid('on');        titre = [titre,'Nombre de collisions : ',num2str(nb_collisions)];    title(titre);     %­­­­­­­­­­ 2ième graph ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­    subplot(2,2,2); % 2ième graphique représentant le moment cinétique        plot(t,l,'g')    title('Moment Cinétique en fonction du temps');    xlabel('Temps (s) ');    ylabel(['Moments Cinétiques (',texlabel('kg.m^2.s^­1'),') ']);    %comptage_collisions(vmin_y,vmax_y,temps_simulation,prec_vitesse_y);    %liste_vitesse = vmin_y:prec_vitesse_y:vmax_y;     %for i=1:length(liste_vitesse)     %  liste_nb_collisions(i) = collision(m,q,b,r_min_pot,profondeur_puit,rayon_potentiel,puissance_alpha,puissance_beta,temps_simulation,[x(1) x(2) x(3) x(4) liste_vitesse(i) x(6)]);    %end     %bar(liste_vitesse,liste_nb_collisions,'r');    %title('Nombre de collisions par vitesses');    %xlabel('Vitesse initiale suivant l axe y (m/s)');    %ylabel('Nombre de collisions');        %­­­­­­­­­­ 3ième graph ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­    subplot(2,2,3) % 3ième graphique représentant l'énergie cinétique en fonction du temps    hold on        if alpha ~= 0 | beta ~= 0 % si potentiel    plot(t,energie_cinetique,'k') % k = couleur noire, Ec différente de l'énergie totale    plot(t,energie_potentielle,'b')    end    plot(t,energie_totale,'r')        for i=2:taille_liste_collision % BUG : 1ère ligne vide        energie_cine = 1/2*m*(  liste_points_collision(i,4)^(2) + liste_points_collision(i,5)^(2) + liste_points_collision(i,6)^(2) );        plot(liste_points_collision(i,7),energie_cine,'ks');    end    title('Energies en fonction du temps');    xlabel('Temps (s) ');    ylabel('Energie (J) ');    if alpha ~= 0 | beta ~= 0 % si potentiel        legend('Energie Cinétique','Energie Potentielle','Energie Totale');    else                                                                   33

Page 34: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

        legend('Energie Cinétique');    end     %­­­­­­­­­­ 4ième graph ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­    subplot(2,2,4); % 4ième graphique représentant le potentiel selon r     hold on    graph_potentiel(alpha,beta,puissance_alpha,puissance_beta,3/4*r_min_pot,6/4*r_min_pot,r_min_pot); % potentiel     plot(distance_potentiel,energie_totale,'r'); % affiche l'énergie totale     for i=2:taille_liste_collision % BUG : 1ère ligne vide        energie_cine = 1/2*m*(  liste_points_collision(i,4)^(2) + liste_points_collision(i,5)^(2) + liste_points_collision(i,6)^(2) );        distance_collisions = (  liste_points_collision(i,1)^(2) + liste_points_collision(i,2)^(2) + liste_points_collision(i,3)^(2) )^(1/2);        energie_tot = energie_cine + potentiel(alpha,beta,distance_collisions);        plot(distance_collisions,energie_tot,'ks');    end     end % ­­ fin condition graphiqe ou non%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  

Annexe 2 : Fonction etape_collision ( sous­routine pour la fonction collision )

function ypoint = etape_collision(t,y)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : ETAPE_COLLISION%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 05/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% etape_collision simule la position et la vitesse de la% particule en fonction de la position et vitesse antérieures% pour un instant t donné%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * instant t,% * vecteur colonne y représentant [x; y; z; vx; vy; vz],%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sortie : % * vecteur colonne ypoint représentant les nouvelles positions et vitesses% après la simulation du PFD sur la particule%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % ypoint=etape_collision(0,[­100E­10; 0; 0; 0; 5; 0])%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite que les variables m,b,alpha,beta,cte_lorentz,% global_puissance_alpha et global_puissance_beta soient déclarées !!% A utiliser de préférence en tant que sous­routine%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­global m;global q;      34

Page 35: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

global b;global alpha;global beta;global cte_lorentz; % q/mglobal global_puissance_alpha;global global_puissance_beta;% fin de récupération des variables globales (ie : spécifiées par la% fonction parent ) puissance_alpha = global_puissance_alpha;puissance_beta = global_puissance_beta;r = norm([y(1) y(2) y(3)]); % = norme du vecteur rvectoriel = cross([y(4) y(5) y(6)],b); % = produit vectoriel de v et b ypoint(1) = y(4); % = xypoint(2) = y(5); % = yypoint(3) = y(6); % = z ypoint(4) = cte_lorentz*( vectoriel(1) ) + ( puissance_alpha *alpha*(r)^(­(  puissance_alpha +1)) ­ puissance_beta *beta*(r)^(­(  puissance_beta +1)))*y(1)/(r*m); % = vxypoint(5) = cte_lorentz*( vectoriel(2) ) + ( puissance_alpha *alpha*(r)^(­(  puissance_alpha +1)) ­ puissance_beta *beta*(r)^(­(  puissance_beta +1)))*y(2)/(r*m) ; % = vyypoint(6) = cte_lorentz*( vectoriel(3) ) + ( puissance_alpha *alpha*(r)^(­(  puissance_alpha +1)) ­ puissance_beta *beta*(r)^(­(  puissance_beta +1)))*y(3)/(r*m) ; % = vz % à cet instant : ypoint = [x y z vx vy vz] ­ vecteur ligneypoint = ypoint'; % ode45 ne prend en paramètre qu'un vecteur collonne% maintenant : ypoint = [x; y; z; vx; vy; vz] ­ vecteur collonne 

Annexe 3 : Fonction solve_potentiel

function [alpha,beta] = solve_potentiel(r0,d,puissance_alpha,puissance_beta)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : SOLVE_POTENTIEL%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 04/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% Solve_potentiel calcule alpha et beta pour un potentiel de type % alpha / r^puissance_alpha ­ beta / r^puissance_beta% grâce à la distance r où il y a un minimum de potentiel ainsi que cette% valeur minimum d'énergie rentrées en paramètres%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * distance r qui correspond au potentiel minimum (réel positif) [ m ],% * profondeur du puit (réel négatif) [ J ],% * puissance pour le 'r' du terme alpha / r ( réel ),% * puissance pour le 'r' du terme beta / r ( réel ),%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sorties : % * [alpha,beta] : renvoie les valeurs de alpha et beta calculées% ou % * vide : renvoie un graphique représentant le potentiel avec alpha et       35

Page 36: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

% beta calculés%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % solve_potentiel(2E­10,­1.6E­19,8,4)% [alpha,beta]=solve_potentiel(2E­10,­1.6E­19,8,4)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite la fonction graph_potentiel pour fonctionner en mode graphique%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ beta = puissance_alpha * d / ( puissance_beta*r0^(­1*puissance_beta) ­ puissance_alpha*r0^(­1*puissance_beta));alpha = puissance_beta / puissance_alpha *r0^(puissance_alpha ­ puissance_beta) * beta; if ~(nargout > 0) % si pas de variable demandée en sortie = graphique demandé    % avec les valeurs de alpha et beta calculés    graph_potentiel(alpha,beta,puissance_alpha,puissance_beta,3/4*r0,2*r0,r0); end

Annexe 4 : Fonction potentiel 

function v = potentiel(varargin)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : POTENTIEL%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 05/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% potentiel calcule le potentiel de type % alpha / r^puissance_alpha ­ beta / r^puissance_beta%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées ( voir Usage ) :% * alpha calculé grâce à solve_potentiel,% * beta calculé grâce à solve_potentiel,% * puissance pour le 'r' du terme alpha / r ( réel ),% * puissance pour le 'r' du terme beta / r ( réel ),% * distance r à laquelle le potentiel doit Ãªtre calculé%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sortie : % * v : potentiel à la distance r%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % * v = potentiel(alpha,beta,puissance_alpha,puissance_beta,r)% * v = potentiel(alpha,puissance_alpha,puissance_beta,r)%     = potentiel(alpha,0,puissance_alpha,puissance_beta,r)% * v = potentiel(alpha,beta,r)%     = potentiel(alpha,beta,8,4,r)% * v = potentiel(alpha,r)%     = potentiel(alpha,0,8,4,r)        36

Page 37: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

% * v = potentiel(une_seule_variable)%     = potentiel(0,0,puissance_alpha,puissance_beta,r)%     = 0%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  if  nargin >= 5 % si 5 variables ou plus sont passées en paramètres    % potentiel(alpha,beta,puissance_alpha,puissance_beta,r)    alpha = varargin{1};    beta = varargin{2};    puissance_alpha = varargin{3};    puissance_beta = varargin{4};    r = varargin{5};    % on ignore les variables en plus ( 6ième, 7ième..)elseif nargin == 4 % si 4 variables passées en paramètres    % potentiel(alpha,puissance_alpha,puissance_beta,r)    % équivaut à potentiel(alpha,0,puissance_alpha,puissance_beta,r)    alpha = varargin{1};    beta = 0;    puissance_alpha = varargin{2};    puissance_beta = varargin{3};    r = varargin{4};elseif  nargin == 3 % si 3 variables passées en paramètres    % potentiel(alpha,beta,r)    % équivaut à potentiel(alpha,beta,8,4,r)    alpha = varargin{1};    beta = varargin{2};    puissance_alpha = 8;    puissance_beta = 4;    r = varargin{3};elseif  nargin == 2 % si 2 variables passées en paramètres    % potentiel(alpha,r)    alpha = varargin{1};    beta = 0;    puissance_alpha = 8;    puissance_beta = 4;    r = varargin{2};else % si une seule variable est entrée en paramètre : pas de potentiel    alpha = 0;    beta = 0;    puissance_alpha = 8;    puissance_beta = 4;    r = 0;end     v = alpha/(r^(puissance_alpha)) – beta/(r^(puissance_beta));

37

Page 38: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Annexe 5 : Fonction graph_potentiel

function minimum = graph_potentiel(alpha,beta,puissance_alpha,puissance_beta,xmin,xmax,r_minimum)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­%   FONCTION : GRAPH_POTENTIEL%   AUTEUR : SUHARD Jérôme%   DATE de dernière mise à jour : 09/06/08%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Objectif :% Graph_potentiel affiche le potentiel de type % alpha / r^puissance_alpha ­ beta / r^puissance_beta% ainsi que les 2 membres séparement%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Entrées :% * alpha calculé grâce à solve_potentiel,% * beta calculé grâce à solve_potentiel,% * puissance pour le 'r' du terme alpha / r ( réel ),% * puissance pour le 'r' du terme beta / r ( réel ),% * r minimum à afficher ( réel ),% * r maximum à afficher ( réel ),% Optionnelle :% * distance r pour laquelle le potentiel est minimum ( sinon calculé )%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ % Sortie : % * minimum : renvoie la distance où le potentiel est minimum% ( elle sera égal à r_minimum s'il est renseigné ) % * graphique représentant le potentiel%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Usage : % graph_potentiel(alpha,beta,8,4,1E­10,3E­10,2E­10)% minimum=graph_potentiel(alpha,beta,8,4,1E­10,3E­10)%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­% Nécessite la fonction potentiel%­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  hold on % permet d'afficher plusieurs graphiques sur la même fenêtre if nargin > 6 % si le minimum est donné en paramètre, on ne le calcule pas    minimum = r_minimum;else    minimum = fminbnd(@(x)potentiel(alpha,beta,puissance_alpha,puissance_beta,x),xmin,xmax);end potentiel_minimum = potentiel(alpha,beta,puissance_alpha,puissance_beta,minimum); y_pot_min = 1.5*potentiel_minimum; % permet de ne pas afficher le texte r0% sur la courbe mais un peu au dessus  % alphafplot(@(x)potentiel(alpha,0,puissance_alpha,puissance_beta,x),[xmin xmax],'r',1E­5) % rouge % ­ betafplot(@(x)potentiel(0,beta,puissance_alpha,puissance_beta,x),[xmin xmax],'g',1E­5) % vert                                         38

Page 39: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

 % alpha ­ betafplot(@(x)potentiel(alpha,beta,puissance_alpha,puissance_beta,x),[xmin xmax],'b',1E­5) % bleu  fplot(@(x) potentiel_minimum,[5/6*minimum minimum*7/6],'k') % affiche en noir un trait signifiant la tangente horizontale en r0  text(minimum,y_pot_min,'\uparrow r0','HorizontalAlignment','left') title({['Minimum r0 : ',num2str(minimum),' | V0 = ',num2str(potentiel_minimum)];['\alpha = ',num2str(alpha),' & \beta = ',num2str(beta)]}) xlabel('Distance r entre la particule et le potentiel (m)'); ylabel('Energie (J)'); legend(texlabel(['alpha / r^',num2str(puissance_alpha)]),texlabel(['­ beta / r^',num2str(puissance_beta)]),texlabel(['alpha / r^',num2str(puissance_alpha),' ­ beta / r^',num2str(puissance_beta)])); fplot(@(x) 0,[xmin xmax],'k') % affiche en noir V=0 

39

Page 40: Par SUHARD Jérômesuhard.fr/stage2008.pdf · Jérôme SUHARD 23 Cité des Noyers 53250 Javron les Chapelles 06.21.65.31.53 jerome.suhard@etudiant.univrennes1.fr 21 ans Expérience

Bibliographie

Classical Mechanics, Goldstein, Poole & Safko

Springer Handboox of Atomic, Molecular and Optical Physics

Mécanique, Landau et Lifchitz

Atom­Molecule collision theory, Bernstein

Webographie

http://www.nucleaire­info.com/maple/trajectoire_maple_1.html

http://www.ipr.univ­rennes1.fr

http://www.ks.uiuc.edu/Research/vmd/