Une commande pour calculer la torsion avec Mathematica


Pour calculer la torsion, appelée ici tau, d'une courbe dans R3 décrite par une RPR x : t |-> x(t), on peut utiliser les commandes suivantes :
norme[vecteur_]:=Sqrt[Simplify[PowerExpand[vecteur.vecteur]]]
tau[x_][t_] := 1/norme[Cross[x'[t],x''[t]]]^2 (x'[t] . Cross[x''[t],x'''[t]])//PowerExpand//Simplify
Il se peut qu'on doive encore forcer Mathematica à simplifier d'avantage...
Comme bien souvent, on a avantage à créer, dans son répertoire personnel, un fichier contenant ces commandes et pouvant être chargé comme on charge une librairie.
Je vous propose
tau.m
comme nom qui décrit le contenu du fichier sans avoir à le lire.
Il suffira alors de taper :
<<tau.m
Par exemple, une fois la commande tau chargée, si l'on a la courbe :
cercle[t_]:= {x0 + r Cos[t],y0 + r Sin[t],0}
il suffira de taper :
tau[cercle][t]
Pour trouver que la courbure d'un cercle est nulle, ce cercle étant une courbe plane.

Voici un exemple d'un courbe gauche avec une torsion constante non nulle :
helice[t_]:= {x0 + r Cos[t],y0 + r Sin[t],a t} (* a constante non nulle*)
tau[helice][t]

Pour "protéger" les symboles d'une possible collision à l'intérieur d'une session de Mathematica, il est préférable d'en faire une capsule :
Pour éviter les ennuis, je l'appelle ici taubis et je l'ajoute à mon fichier tau.m :
taubis[x_][t_]:= Module[{u,der1,der2,der3,res,norme},
     der1 = D[x[u],u];
     der2 = D[der1,u];
    der3 = D[der2,u];
     norme[v_]:= Sqrt[v . v];
    pm = Det[{der1,der2,der3}];
    res = pm/norme[Cross[der1,der2]]^2 /. u->t
    ]
Comme plus haut, il se peut qu'on doive encore simplifier la réponse.

Retour à ma page personnelle



©jmt : création le 001002 - dernière modification le 001006