Calcul de la 2ème forme fondamentale et de ses coefficients


Comme la première forme fondamentale, cette forme joue un rôle fondamental dans l'étude des surfaces dans R3.
Si la surface est donnée localement par une représentation paramétrique
x : (u,v) |-> x(u,v),
sa 2ème forme fondamentale est par définition le produit scalaire de la différentielle dx de la fonction vectorielle x avec la différentielle d(nu) du champ de vecteurs normaux unitaires nu (la lettre grecque nu), <dx,d(nu)>, donc un polynôme homogène de degré 2 dans les différentielles du et dv :
II(u,v;du,dv) = L(u,v) du2 + 2 M(u,v) du dv + N(u,v) dv2

Le calcul de cette forme fondamentale et de ses coefficients se résument à des dérivations et des produits scalaires.
Voici comment faire ces calculs avec Mathematica, qu'on va mettre dans une capsule.
Pour une fonction vectorielle x, on charge donc la capsule ci-dessous, qu'on aura au préalable sauvegardé dans un fichier (je suggère fofo2.m) pour utilisation ultérieure.
Contenu du fichier fofo2.m :

(*-- calcul de la deuxieme forme fondamentale et de ses coefficients ---*)
(*-- pour un morceau de surface mds[u,v] ---*)

fofo2[mds_][u_,v_][du_,dv_]:= Module[{x,a,b,xa,xb,nu,nor,res1,sub1,res2,sub2,res3,sub3},
    x[a_,b_]:= mds[a,b];
    xa = D[x[a,b],a];
    xb = D[x[a,b],b];
    norme[p_List /; Length[p]==3]:= Sqrt[p . p] //Simplify;
    nu =(1/norme[Cross[xa,xb]]) Cross[xa,xb];
    nor[a_,b_]:= Evaluate[nu];
    res1 = - Dt[x[a,b]] . Dt[nor[a,b]]//Expand //Simplify;
    sub1 = Thread[Rule[{Dt[a],Dt[b]},{da,db}]];
    res2 = res1 /. sub1;
    sub2 = Thread[Rule[{a,b},{u,v}]];
    res3 = res2 /. sub2;
    sub3 = Thread[Rule[{da,db},{du,dv}]];
    res4 = res3 /. sub3
    ]
Il faudra encore simplifier le résultat au besoin …

Exemples:
1) Une sphère de rayon r
x[u_,v_]:= {r Cos[u] Sin[v],r Sin[u] Sin[v],r Cos[v]}
fofo2[x][u,v][du,dv]
2) Un ellipsoïde
y[u_,v_]:= {2 Cos[u] Sin[v],3 Sin[u] Sin[v],4 Cos[v]}
fofo2[y][u,v][du,dv]
Pour cet ellipsoïde, calculer la 2ème forme fondamentale au point y[.1,.2] par exemple, revient à l'exécution de la commande
fofo2[y][.1,.2][du,dv]
On trouve :
0.153613 du2 - 2.77556 10-17 du dv + 3.89194 dv2
ou encore, après avoir tué le bruit algorithmique avec Chop
Chop[%]
0.153613 du 2 + 3.89194 dv2

Retour à ma page personnelle



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