J'ai besoin de tracer en 3D des lignes de champ magnétique avec Mathematica, puis d'en extraire les coordonnées cartésiennes des points sur les courbes obtenues. J'ai les composantes cartésiennes analytiques du champ : Bfx(x, y, z), Bfy(x, y, z) et Bfz(x, y, z). Je peut tracer quelques lignes de champ avec la fonction NDSolve, mais c'est pas commode, car mon code (voir plus bas) frappe souvent la singularité centrale (en gros, le champ est celui d'un dipôle déformé). Et j'aimerais tracer plusieurs lignes régulièrement espacées, en tenant compte de l'intensité du champ (le nombre de lignes par unité de surface, ou flux du champ, doit dépendre du module du vecteur)
Quelqu'un de gentil peut-il m'aider ?
Voici mon code de Mathematica capable de tracer une ligne de champ à l'aide de conditions initiales x0, y0, z0 (des nombres réels arbitraires). Au besoin, je peut fournir les équations complètes (qui sont intéressantes) et même le fichier de Mathematica :
Code : Tout sélectionner
FieldCurve = NDSolve[{
x'[t] == Bfx[ x[t], y[t], z[t] ],
y'[t] == Bfy[ x[t], y[t], z[t] ],
z'[t] == Bfz[ x[t], y[t], z[t] ],
x[0] == x0,
y[0] == y0,
z[0] == z0
}, {x, y, z}, {t, 0, 100}, MaxSteps -> 10000]
Graph = ParametricPlot3D[ Evaluate[{x[t], y[t], z[t]}/. FieldCurve], {t, 0, 100}, PlotPoints -> 1000]