Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 47 sur 47

Mouvement de particules



  1. #31
    domlefebvre

    Re : Mouvement de particules


    ------

    Bonjour,
    Juste un détail. Les méthodes RK2 ne sont pas spécialement réputées pour leur convergence. Si tu veux boucler sur un grand nombre de pas, je te suggère au moins une RK4, voire mieux une RK adaptative.
    Un très bon bouquin sur ces méthodes : "Numerical Methods for Physics" de A.L Garcia, avec des prog en C++ et Matlab

    -----

  2. Publicité
  3. #32
    yat

    Re : Mouvement de particules

    Citation Envoyé par domlefebvre
    Juste un détail. Les méthodes RK2 ne sont pas spécialement réputées pour leur convergence.
    Merci du conseil.
    Néanmoins, je ne suis pour l'instant pas excessivement exigeant en termes de stabilité, surtout que j'appliquais jusqu'à présent du Heuler de base...
    Je garde tes références sous le coude pour une éventuelle amélioration ultérieure.

    A force de tâtonnements j'ai quand même fini par trouver comment passer à la dérivée seconde, les résultats me conviennent tout à fait : au bout de 32000 itérations et 180 révolutions, ma particule a à peine dévié de sa trajectoire. Je suis content

    Pour ceux que ça intéresse, une petite modif à la méthode de Heun trouvé dans le code de Zoup1 :

    Avec la position et la vitesse à l'instant t0, je calcule avec Euler une position temporaire pour t1. En fonction de cette nouvelle position, je calcule l'accélération. Je calcule ensuite ma vitesse en t1 en ajoutant à celle de t0 la moyenne entre l'accélération calculée en t0 et celle calculée à la position temporaire pour t1, puis je calcule la véritable position en t1 en ajoutant à celle de t0 la moyenne entre la vitesse en t0 et la vitesse que je viens de calculer.

    Dans le case 2, au lieu de
    Code:
    nv = v + accel(t,x,v) * dt;
    nx = x + (nv + v)*dt/2.0;
    break;
    , j'aurai donc :
    Code:
    nx= x + v * dt;
    nv= v + (accel(t,x,v) + accel(t,nx,v)) * dt / 2.0; /*je laisse t et v, mais dans
    ma simulation ils n'interviennent pas pour le calcul de l'accélération*/
    nx= x + (v + nv) * dt;
    break;
    Pour ma simulation de gravitation, ça marche beaucoup mieux. Evidemment, le code ci-dessus reste dans un contexte à une seule dimension, moi j'ai fait mes tests en 2d.

    Maintenant, une dernière question se pose : Avec Euler, ça n'entrait pas en compte, puisque seule la situation à l'instant t0 était nécessaire pour calculer la situation en t1... maintenant il faut faire une anticipation de l'accélération en t1 avant de pouvoir obtenir une valeur définitive...

    Du coup, quand j'ai ma position virtuelle en t1 et que je veux calculer l'accélération (virtuelle) à ce moment là... il va falloir calculer en même temps les positions virtuelles de mes 19 999 autres particules ?

  4. #33
    yat

    Re : Mouvement de particules

    Citation Envoyé par yat
    nx= x + (v + nv) * dt;
    Ca marchera mieux avec
    Code:
    nx= x + (v + nv) * dt / 2.0;

  5. #34
    progfou

    Re : Mouvement de particules

    Je suis bloqué, car je n'arrive pas, pour la force considérée (force de coulomb entre deux particules) à calculer l'équation différentielle (enfin, les) de chaque coordonnée dans l'espace. Comment exprimer x (ou y, ou z) en fonction de sa dérivée première et sa dérivée seconde en connaissant F12x=1/(4*PI*epsilon0)*(q1*q2)/r^2 (x2-x1)
    avec x2 la position de la seconde particule (et x1 la première) ?
    En supposant que c'est bien la bonne expression (la force a la direction du vecteur P1P2, si P1 et P2 sont les particules consédérées, et ça s'exprime comme cela, non ?)...

  6. #35
    domlefebvre

    Re : Mouvement de particules

    Bonjour,
    Tu dois choisir un référentiel pour ta simulation et projeter les composantes de tes ED vectorielles sur la base pour obtenir des ED scalaires que tu résoudras sur chaque axe de ta base. Donc, une ED vectorielle = 3 ED scalaires....

  7. #36
    progfou

    Re : Mouvement de particules

    Je comprends bien ça, mais je ne vois pas trop comment le faire, enfin, je n'arrive pas à trouver les ED...
    Et je ne trouve pas un cours avec ce calcul, précisément...

  8. Publicité
  9. #37
    Coincoin

    Re : Mouvement de particules

    Il faut juste appliquer la relation fondamentale de la dynamique (la somme des forces est égale à la masse que multiplie l'accélération). Tu obtiens donc trois relations (une pour chaque composante).
    Encore une victoire de Canard !

  10. #38
    progfou

    Re : Mouvement de particules

    C'est justement mon problème !
    F=m.a =>
    Fx=m.ax
    Fy=m.ay
    Fz=m.az

    Puis, trouver l'équation du second ordre, connaissant Fx.
    Fx=Force de coulomb suivant x
    Fy=Force de coulomb suivant y
    Fz=Force de coulomb suivant z

    Le problème est alors de calculer la valeur suivant chaque axe de cette force, et comme elle dépend de la direction entre les deux particules...
    Bref, je bloque, je ne trouve pas une équation de la forme :
    d²x/dt+a(t)dx/dt+b(t)x(t)=c(t)

  11. #39
    Chup

    Re : Mouvement de particules

    Citation Envoyé par progfou
    F12x=1/(4*PI*epsilon0)*(q1*q2)/r^2 (x2-x1)
    c'est plutôt

  12. #40
    progfou

    Re : Mouvement de particules

    C'est justement mon problème !
    F=m.a =>
    Fx=m.ax
    Fy=m.ay
    Fz=m.az

    Puis, trouver l'équation du second ordre, connaissant Fx.
    Fx=Force de coulomb suivant x
    Fy=Force de coulomb suivant y
    Fz=Force de coulomb suivant z

    Le problème est alors de calculer la valeur suivant chaque axe de cette force, et comme elle dépend de la direction entre les deux particules...
    Bref, je bloque, je ne trouve pas une équation de la forme :
    d²x/dt+a(t)dx/dt+b(t)x(t)=c(t)

  13. #41
    progfou

    Re : Mouvement de particules

    Merci Chup !
    Je comprends mieux avec le r^3.
    Ceci dit, je ne trouve pas l'équa diff

  14. #42
    yat

    Re : Mouvement de particules

    Citation Envoyé par progfou
    Ceci dit, je ne trouve pas l'équa diff
    L'équation de Chup ne te convient pas ? Qu'est-ce qui te manque ?

  15. Publicité
  16. #43
    Chup

    Re : Mouvement de particules

    Avec l'expression de la force qui est la force qu'exerce 1 sur 2, on a pour la particule 2, une equation
    .
    Même chose pour les deux autres coordonnées puis pour la particule 1.

  17. #44
    progfou

    Re : Mouvement de particules

    La dérivée première de x (la vitesse) n'intervient pas ?

  18. #45
    Chup

    Re : Mouvement de particules

    Non, elle n'intervient pas si la seule force est l'interaction coulombienne.

  19. #46
    progfou

    Re : Mouvement de particules

    Quelle force la fait (la ferait) intervenir ?

  20. #47
    Chup

    Re : Mouvement de particules

    Une force de frottement visqueux, ou une force de Lorentz...

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. particules d'air qui freine des particules d'hélium
    Par lucy22 dans le forum Physique
    Réponses: 0
    Dernier message: 13/09/2007, 11h26
  2. Particules
    Par Rann dans le forum Physique
    Réponses: 2
    Dernier message: 26/05/2007, 18h38
  3. Réponses: 5
    Dernier message: 05/10/2006, 22h14
  4. Mouvement de particules
    Par warp dans le forum Mathématiques du supérieur
    Réponses: 19
    Dernier message: 10/09/2004, 13h36
  5. [Divers] Particules et médecine
    Par Rincevent dans le forum Biologie
    Réponses: 2
    Dernier message: 16/11/2003, 18h50