Une commande pour calculer la courbure avec Mathematica


Pour calculer la courbure, appelée ici kappa3, 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]]]
kappa3[x_][t_]:= 1/norme[x'[t]]^3(norme[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
kappa3.m
comme nom qui décrit le contenu du fichier sans avoir à le lire.
Il suffira alors de taper :
<<kappa3.m
Par exemple, une fois la commande kappa3 chargée, si l'on a la courbe :
cercle[t_]:= {x0 + r Cos[t],y0 + r Sin[t],0}
il suffira de taper :
kappa3[cercle][t]
Pour trouver que la courbure d'un cercle est l'inverse du rayon.
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 kappa3bis et je l'ajoute à mon fichier kappa3.m :
kappa3bis[x_][t_]:= Module[{u,der1,der2,res,norme},
der1 = D[x[u],u];
der2 = D[der1,u];
norme[v_]:= Sqrt[v . v];
res = norme[Cross[der1,der2]]/norme[der1]^3 /. u->t;
res = Simplify[PowerExpand[res]]
]

Comme plus haut, il se peut qu'on doive encore simplifier la réponse.

Retour à ma page personnelle



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