Pour classer rapidement sa quadrique "personnelle"

Il s'agit ici de montrer,avec un exemple, comment on peut sauvegarder une commande ou une liste de commandes de Mathematica dans un fichier de son répertoire personnel pour utilisation ultérieure. Il suffira alors de charger ce fichier de la même manière qu'on charge une librairie au cours d'une session de Mathematica.

Reprenons donc la page sur la construction de l'équation d'une quadrique et rassemblons toutes les commandes utiles pour la classification, disons, de sa quadrique "personnelle". On aura :
---------------
<<LinearAlgebra`MatrixManipulation`
pol := coef = Table[Random[Integer,{-10,10}],{10}]
coeff:= If[coef[[1]] <= 0, (coef[[1]] = -coef[[1]] + 1;coef),coef]
m := {{coeff[[1]],coeff[[4]]/2,coeff[[5]]/2,coeff[[7]]/2}, {coeff[[4]]/2,coeff[[2]],coeff[[6]]/2,coeff[[8]]/2}, {coeff[[5]]/2,coeff[[6]]/2,coeff[[3]],coeff[[9]]/2}, {coeff[[7]]/2,coeff[[8]]/2,coeff[[9]]/2,coeff[[10]]}}
classquad[m_]:= Module[{mat, gd, pd, tr, sm, deg, class},
mat=m;gd=Det[mat];pd=Minors[mat,3][[1,1]];tr=Sum[mat[[k,k]],{k,3}];
sm=Sum[Minors[TakeMatrix[mat,{1,1},{3,3}],2][[k,k]],{k,3}];
deg=Sum[Minors[mat,3][[k,k]],{k,2,4}];inv={gd,pd,tr,sm,deg};
class=Which[TakeMatrix[mat, {1, 1}, {3, 3}] == {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}},"pas une quadrique!",
pd!=0 && gd>0 && pd*tr>0 && sm>0,"ellipsoide imaginaire",
pd!=0 && gd<0 && pd*tr>0 && sm>0,"ellipsoide",
pd!=0 && gd<0 && (pd*tr<=0||sm<=0),"hyperboloide a deux nappes",
pd!=0 && gd>0 && (pd*tr<=0||sm<0),"hyperboloide a une nappe",
pd!=0 && gd==0 && pd*tr>0 && sm>0,"cone imaginaire",
pd!=0 && gd==0 && (pd*tr<=0||sm<=0),"cone",
pd==0 && gd<0 && sm>0, "paraboloide elliptique",
pd==0 && gd>0 && sm<0,"paraboloide hyperbolique",
pd==0 && gd==0 && sm>0 && deg!=0,"cylindre elliptique",
pd==0 && gd==0 && sm<0 && deg!=0,"cylindre hyperbolique",
pd==0 && gd==0 && sm==0 && deg!=0,"cylindre parabolique",
pd==0 && gd==0 && sm==0 && deg==0,"paire de plans",1==1,
"pas une quadrique!"]]
classifquadpers[x_]:= (SeedRandom[ToString[x]];pol;coeff;m;classquad[m])
---------------

Dans Unix, on crée un fichier, disons classquadpers.m, dont le contenu sera une copie conforme des lignes entre les traits ------ ci-dessus, copie obtenue par la méthode copier/coller bien connue.
Une fois ce fichier sauvegardé, on pourra le charger au besoin dans sa session de Mathematica avec la commande :
<<classquadpers.m

Ceci fait, l'usager tintin pourra trouver le type de sa quadrique personnelle en exécutant la commande :
classifquadpers[tintin]
Il aura la réponse en moins d'un dixième de seconde, comme il pourra le mesurer s'il a chargé, auparavant, le fichier krono.m
A noter bien sûr que chacun peut choisir à sa guise l'argument de la commande classifquadpers !

Retour à ma page personnelle



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