Preprint typeset in JHEP style - HYPER VERSION
Projets de simulation en C++
Licence 3 de Physique:
Mécanique Classique: Étude d’oscillations
P.A Harraud, J. Salort, I. Schienbein
E-mail:
[email protected],
[email protected],
[email protected]Abstract: Proposition des projets de simulation pour les TP de C++ en Licence 3 de
Physique
Contents
1. Oscillation harmonique avec des frottements 1
1.1 Problème 1
1.2 Méthode numerique 2
1.3 Programmation 2
1.4 Exercices/Analyses 2
2. Oscillation anharmonique libre et forcée 3
2.1 Problème 3
2.2 Méthode numerique 3
2.3 Programmation 3
2.4 Exercices/Analyses 3
3. Oscillations harmoniques couplées 4
3.1 Problème 4
3.2 Méthode numerique 4
3.3 Programmation 5
3.4 Exercices/Analyses 5
1. Oscillation harmonique avec des frottements
1.1 Problème
Mouvement horizontal d’un point matériel sous l’influence d’une force d’un ressort et des
frottements.
• Système: Point matériel, masse M = 1 kg, mouvement 1-D
• Forces:
– Ressort avec une raideur A = 3N/m: F 1 = −Ax
dx/dt
– Frottement dynamique: F2 = −B |dx/dt| , B = 0.5 N (F2 = 0 si dx/dt = 0).
– Frottement statique: F3 ≤ C, C = 1 N si le point ne bouge pas
• L’équation différentielle:
.
.. x . dx
−M x − Ax − B . + Cδx0
. = 0, x≡ (1.1)
|x| dt
.
Quand x = 0 il faut que A|x| > C, sinon le point matériel s’arrêt.
–1–
1.2 Méthode numerique
Transformation de l’équation différentielle:
L’équation de mouvement a la forme
.. .
x = f (x, x, t) (1.2)
c.a.d, il s’agit d’une équation différentielle du 2nd ordre à une dimension. Pour utiliser la
méthode dÉuler on transforme (1.2) dans un système d’équations différentielles couplées
de 1er ordre. En utilisant
y1 (t) := x(t) , (1.3)
.
y2 (t) := x(t) (1.4)
on trouve
dy1
= y2 , (1.5)
dt
dy2
= f (y1 , y2 , t) , (1.6)
dt
avec
(
C
0 : y2 (t) = 0 et |y1 (t)| ≤ A
f (y1 (t), y2 (t), t) = A B y2 (t)
(1.7)
−M y1 (t) − M |y2 (t)| : sinon
Finalement, pour la méthode de Euler on fait l’identification:
f1 (y1 (t), y2 (t), t) = y2 (t) , (1.8)
f2 (y1 (t), y2 (t), t) = f (y1 (t), y2 (t)) . (1.9)
1.3 Programmation
• Ajouter la méthode Euler à la classe DynamicalSystem
• Programmer la classe MonSystem
1.4 Exercices/Analyses
• Vérifier la stabilité de la méthode de solution en modifiant la largeur incrémentielle
h. Dans quel domaine est-ce qu’on trouve une solution stable? Qu’est-ce qui se passe
si on choisit h trop grand?
• Calculer x(t) en fonction du temps pour des conditions initiales différentes. Graphes
avec gnuplot et root!
• Déterminer la période T . Comparer avec la période sans frottements.
–2–
2. Oscillation anharmonique libre et forcée
2.1 Problème
Mouvement horizontal d’un point matériel dans un potentiel anharmonique V (x) (sans
frottements):
|x|B+1
V (x) = A . (2.1)
B+1
• Système: Point matériel, masse M = 1 kg, mouvement 1-D
• Forces:
x d
– K(x) = −A|x|B |x| = − dx V (x)
– Force extérieur harmonique: C cos ωt
• L’équation différentielle:
.. x
−M x − A|x|B + C cos ωt = 0 (2.2)
|x|
Remarques:
Pour B → 0 on a des plans penchés pour x > 0 ou bien x < 0. Avec C = 0 un traitement
analytique est possible. B = 1 est le cas harmonique. Il est bien connu que pour C = 0 la
période ne depend pas de l’amplitude. B 1 is the case of hard reflecting walls. In this
case the oscillation period is decreasing with increasing amplitude.
2.2 Méthode numerique
• La méthode de Euler améliorée (utile?)
• La méthode de Runge-Kutta
Système de l’équations differentielles
f1 (y1 (t), y2 (t), t) = y2 (t) , (2.3)
A y1 (t) C
f2 (y1 (t), y2 (t), t) = − |y1 (t)|B + cos ωt (2.4)
M |y1 (t)| M
2.3 Programmation
• Ajouter la méthode euler2 (améliorée) à la classe DynamicalSystem
• Programmer la classe MonSystem
2.4 Exercices/Analyses
• Éprouver la précision de la méthode de Runge-Kutta pour le cas d’une oscillation
harmonique et libre (B = 1, C = 0) et pour le cas d’une oscillation très anharmonique
(B = 5, C = 0).
• Comparer les courbes de solution pour B = 0.00001, 1, 2, 10 (toujours C = 0).
• Activer la force extérieure (C 6= 0) et analyser les effets de résonance pour différentes
valeurs de B.
–3–
3. Oscillations harmoniques couplées
3.1 Problème
L’oscillation harmonique couplée de deux points matériels (sans frottements).
• Système: Deux points matériels, masses: M 1 = 1 kg, M2 = 1 kg, mouvement 1-D
• Forces:
– ’Ressort 1’: −C1 x1
– ’Ressort 2’: −C2 x2 (où x1 , x2 sont relatifs à la position de repos)
– Ressort de couplage entre les points matériels: Raideur C
• Les équations différentielles:
..
−M1 x1 − C1 x1 + C(x2 − x1 ) = 0 (3.1)
..
−M2 x2 − C2 x2 + C(x1 − x2 ) = 0 (3.2)
Avec les définitions
A11 = −(C1 + C)/M , A12 = C/M (3.3)
A21 = C/M , A22 = −(C2 + C)/M (3.4)
on trouve la forme générale
.. ..
x1 = A11 x1 + A12 x2 , x2 = A21 x1 + A22 x2 . (3.5)
Remarques:
• La généralisation à m points s’écrit:
m
.. X
xi = Aij xj , i = 1, . . . , m . (3.6)
j=1
• Il est bien sûr possible d’inclure des forces de frottements et des forces motrices dans
l’équation (3.6).
3.2 Méthode numerique
Transformation dans un système couplé des équations linéaires:
Avec l’affectation
yi (t) = xi (t) , i = 1, . . . , m (3.7)
.
yi+m (t) = xi (t) , i = 1, . . . , m (3.8)
–4–
on obtient le système
.
yi = fi (y1 (t), . . . , y2m (t), t) , i = 1, . . . , 2m (3.9)
avec
fi = yi+m (t) , i = 1, . . . , m (3.10)
Xm
fi+m = Aij yj (t) , i = 1, . . . , m . (3.11)
j=1
• Solution de (3.9) avec la méthode de Runge-Kutta
3.3 Programmation
Pour notre exemple (3.4), (3.5) les fonctions f i sont données par
f1 = y3 (t) , (3.12)
f2 = y4 (t) , (3.13)
C1 C C
f3 = − + y1 (t) + y2 (t) , (3.14)
M M M
C C2 C
f4 = − y1 (t) − + y2 (t) . (3.15)
M M M
• Programmer la classe MonSystem
3.4 Exercices/Analyses
• Examiner le cas C1 = C2 pour une couplage faible C = C1 /10 et forte C = 10C1 .
• Examiner le cas C1 6= C2 avec une couplage C moyenne. Étudier la transmission de
l’énergie entre les deux points matériels. Est-ce qu’il y a des conditions initiales où
il n’y a pas de transmission de l’énergie?
–5–