Bonjour!
J'ai besoin de modéliser une onde de pression (onde sonore) en 3 dimensions. Pour 1 seule dimension, j'y arrive parfaitement : je découpe une longueur en n pas, et après application de la méthode d'Euler, je calcule à chaque nouveau temps le profil de pression grace à l'équation :
P(x,t+k) = (2- r^2)*P(x,t) + r^2*(P(x+h,t) + P(x-h,t) ) - P(x,t-k)
avec k : pas de temps
h : pas d'espace
r= ck/h (qui doit être égal à 1 si on veut une simulation "sans bruit")
Ca marche parfaitement, j'ai une belle propagation avec une reflexion itou itou ... Maintenant pour la modélisation 3D c'est un peu plus dur. J'essaie déjà de commencer par un truc 2D, je me dis qu'une fois que j'aurais le 2D (qui en plus est plus simple à représenter!), j'aurais facilement le 3D.
Mon problème est lors de l'écriture du début de la méthode d'Euler. En effet, en 1D, c'est simple, on a :
P(x+h,t)= P(x,t) + h*dP/dx(x,t) + h²*d²P/dx²(x,t)
Apres on fait pareil avec P(x-h,t), on somme et apres quelques manips (on utilise l'équation de d'Alembert), on obtient la formule ci dessus.
Mais maintenant, x et h ne sont plus des scalaires mais des vecteurs. J'ai tenté d'appliquer la même technique en remplaçant la dérivée par un gardient, mais j'obtiens un résultat qui me surprend : j'ai exactement la même formule que précédemment ! En réflechissant un petit peu, je me suis rendu que cela revenait à dire que je pouvais prendre h=(1,0) comme vecteur 'pas' pour calculer ma solution. Mais physiquement, je me rend compte que ca ne peut pas marcher!
Qui pourrait m'aiguiller?
Partager