Université de Tours “François Rabelais”
Faculté de Sciences et Techniques Licence de Physique 2009–2010
UE404PModélisation, Simulations, Outils Informatiques
TD1 : Le problème à deux corps : Quelques indications
On cherche à résoudre l’équation pour la séparation à l’équilibre,
ρ4−ρ3 −εL= 0
en exprimant la fonction ρ(εL) comme une série en puissances dans le paramètre εL ≡(L2/(2ml2))/(kl2/2),
ρ(εL) = X∞ n=0
anεnL
En employant les relations de l’énoncé on trouve immédiatement la relation
−εL+
∞
X
n=0
εnL Xn
k=0
an−k
³
a(3)k −a(2)k ´
= 0
qui doit être une identité en εL–le coefficient de chaque puissance de εL doit s’annuler. La constante, coefficient de ε0L, donne la condition suivante
a0(a(3)0 −a(2)0 ) = 0⇔a0(a30−a20) = 0
dont les racines sont 0 et 1. Pout des raisons qui sont l’objet de l’exercice, seule la racinea0 = 1 est acceptable. Le coefficient de ε1L est
−1 + X1
k=0
a1−k(a(3)k −a(2)k ) = 0 =−1 +a1(a(3)0 −a(2)0 ) +a0(a(3)1 −a(2)1 )
Le résultat a0 = 1 implique que cette relation prend la forme
−1 +a(3)1 −a(2)1 = 0 Maintenant on note que
a(2)1 = X1
k=0
aka1−k =a0a1+a1a0 = 2a1a0 = 2a1
et
a(3)1 = X1
k=0
a(2)k a1−k=a(2)0 a1+a(2)1 a0 =a20a1+ 2a1a0 = 3a1
Par conséquent on obtient
−1 = 3a1−2a1 = 0 =−1 +a1 ⇔a1 = 1 Ces résultats impliquent, déjà, que
ρ(εL)≈1 +εL+O(ε2L)
c.à.d. la séparation d’équilibre, ρ = 1 ⇔ r = l, qui correspond à la longueur d’équilibre du ressort, devient plus grande : l’effet de la rotation est de pousser les deux masses plus loin l’une de l’autre.
On cherche à calculer les corrections à ce résultat, lorsque la rotation devient encore plus importante.
A cette fin on cherche à exprimer le coefficientanen termes des coefficientsan−1, an−2, . . . , a0. Le coefficient de εnL, ; lorsquen >1, est
Xn
k=0
an−k(a(3)k −a(2)k )
On cherche à “isoler” dans cette expression an. On note que an ne peut se trouver que dans deux termes de cette somme : dans le terme k= 0 et le termek =n. Regardons chacun de plus près :
Le terme k= 0 : Il est égal à
an(a(3)0 −a(2)0 ) = 0 puisque a(3)0 =a30 = 1 et a(2)0 =a20 = 1.
Le terme k=n :Il est égal à
a0(a(3)n −a(2)n ) = Xn
l=0
a(2)l an−l− Xn
l=0
alan−l = Xn
l=0
an−l(a(2)l −al) = Xn
l=0
an−l
à l X
m=0
amal−m−al
!
C’est, donc, dans la somme sur l que l’on doit poursuivre nos recherches : Xn
l=0
an−l
à l X
m=0
amal−m−al
!
=an(a20−a0)
| {z }
=0
+
n−1
X
l=1
an−l
à l X
m=0
amal−m−al
! +
Xn
m=0
aman−m−an =
n−1
X
l=1
an−l
à l X
m=0
amal−m−al
!
+a0an+
n−1
X
m=1
aman−m+ana0−an =
n−1
X
l=1
an−l
à l X
m=0
amal−m−al
! +
n−1
X
m=1
aman−m+an
Finalement le coefficient de εnL est égal à
n−1
X
k=1
an−k(a(3)k −a(2)k ) +
n−1
X
l=1
an−l
à l X
m=0
amal−m−al
! +
n−1
X
m=1
aman−m+an
et, par conséquent, l’expression pour le coefficientanen termes des coeffcientsan−1, an−2, . . . , a1, a0
est la suivante an=−
n−1
X
k=1
an−k(a(3)k −a(2)k )−
n−1
X
l=1
an−l
à l X
m=0
amal−m−al
!
−
n−1
X
m=1
aman−m
avec a0 = 1 et a1 = 1.
Se pose, alors, la question de la programmation du calcul. On note que l’expression suivante apparaît souvent
Sj1,j2,J ≡
j2
X
j=j1
ajaJ−j
Cette combinaison s’appelle une convolution et pour des grandes valeurs de j2 et deJ on doit, en pratique, employer la transformée de Fourier rapide–mais pour les besoins de l’exercice on peut la calculer “directement” :
double S(int j1, int j2, int J){
double temp=0.0;
int j;
for(j=j1;j<=j2;j++){
temp = temp + A[j]*A[J-j];
}
return(temp);
}
Ainsi on peut exprimer les différents termes qui entrent dans le calcul de an en employant cette fonction :
a(2)k ≡ Xk
j=0
ajak−j =S0,k,k
a(3)k ≡ Xk
j=0
a(2)j ak−j = Xk
j=0
ak−j
Xj
l=0
alaj−l = Xk
j=0
ak−jS0,j,j
n−1
X
l=1
an−l
Xl
m=0
amal−m =
n−1
X
l=1
an−lS0,l,l
n−1
X
l=1
an−lal =S1,n−1,n
et l’on a à calculer l’expression an =−
n−1
X
k=1
an−k
à k X
j=0
ak−jS0,j,j
!
+S1,n−1,n−S1,n−1,n
Bien entendu, en réfléchissant un peu plus, on pourra améliorer l’efficacité du calcul.