Calcul des symboles de Christoffel de deuxième espèce

Dans une autre page, nous avons exprimé les symboles de Christoffel (gijk ) en fonction des coefficients de la première forme fondamentale et de leurs dérivées sans chercher à calculer explicitement leur valeur en fonction des paramètres du morceau du surface considéré.
Nous procédons à ce calcul dans cette page-ci, en nous basant sur les expressions trouvées alors avec Mathematica.
Comme d'habitude, on on utilisera avec profit la commande ci-dessous, qu'on pourra sauvegarder dans un fichier (je suggère christo.m) de son répertoire personnel.
Le résultat de la commande est mis sous forme d'un tableau à trois lignes et deux colonnes, désignée par la lettre m, facile à utiliser pour d'autres calculs.
Tous les autres symboles sont localisés, pour éviter de possibles collisions .
On l'aura deviné, le symbole disc représente le discriminant de la première forme fondamentale.
Contenu du fichier christo.m :
(*-- calcul des symboles de Christoffel de 2ieme espece---*)
(*-- pour un morceau de surface mds ---*)
calcgam[mds_][u_,v_]:= Module[{x, a, b, der1, der2, EE, FF, GG, disc, EEu, EEv, FFu, FFv, GGu, GGv, c11, c12, c22},
    x[a_,b_]:= mds[a,b];
    der1 = D[x[a,b],a];
    der2 = D[x[a,b],b];
    EE= der1 . der1;
    FF= der1 . der2;
    GG= der2 . der2;
    disc = EE GG -FF^2;
    EEu = D[EE,a];
    EEv = D[EE,b];
    FFu = D[FF,a];
    FFv = D[FF,b];
    GGu = D[GG,a];
    GGv = D[GG,b];
    c11 =1/( 2 disc) {EEv*FF - 2*FF*FFu + EEu*GG,-EE*EEv - EEu*FF + 2*EE*FFu};
    c12 =1/( 2 disc) {EEv*GG - FF*GGu,-EEv*FF + EE*GGu};
    c22 =1/( 2 disc){2*FFv*GG - GG*GGu - FF*GGv, -2*FF*FFv + FF*GGu + EE*GGv};
    m = {{c11[[1]],c11[[2]]},{c12[[1]],c12[[2]]},{c22[[1]],c22[[2]]}} /. Thread[Rule[{a,b},{u,v}]]
    ]
Il faudra encore simplifier au besoin …
Il est bon de tester sa commande sur quelques exemples :
x[u_,v_] := {u,v,u+v}

y[u_,v_] := {u,v,u^2 + v^2}

z[r_,s_]:= {r,s,r^2 - s^2}

Essai sur l'ellipsoïde général :

ell[u_,v_]:= {a Cos[u] Sin[v],b Sin[u] Sin[v],c Cos[v]}
calcgam[ell][u,v]
gamell = Simplify[%]

En particulier la sphère de rayon R :

gamell /. Thread[Rule[{a,b,c},{R,R,R}]]

gamsphere = Simplify[%]

Essai sur le graphe d'une fonction f de deux variables :
(à comparer au résultat du problème 10.1 page 215)
monge[u_,v_]:= {u,v,f[u,v]}
gammonge= calcgam[monge][u,v]
subst = Thread[Rule[{Derivative[1,0][f][u,v],Derivative[0,1][f][u,v], Derivative[2,0][f][u,v],Derivative[1,1][f][u,v], Derivative[0,2][f][u,v]},{p,q,r,s,t}]]
gammonge /. subst
Simplify[%]

Retour à ma page personnelle



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