Calcul formel : Mode d'emploi - Exemples en Maple
Claude Gomez, Bruno Salvy, Paul Zimmermann
Masson, 1995
Chapitre V, section 1.4, exercice 2, page 125.
Philippe.Dumas@inria.fr
http://algo.inria.fr/dumas/Maple/
|
|
Nous définissons deux matrices symétriques et nous écrivons le système qui exprime qu'elles commutent. Ensuite nous appelons solve.
> A:=array(1..2,1..2,symmetric):
A[1,1]:=R:
A[2,2]:=T:
A[2,1]:=S:
> print(A);
> a:=array(1..2,1..2,symmetric):
a[1,1]:=r:
a[2,2]:=t:
a[2,1]:=s:
> print(a);
> Aa:=evalm(A&*a);
> aA:=evalm(a&*A);
> sys:={seq(seq(Aa[i,j]=aA[i,j],i=1..j),j=1..2)};
> inc:={r,s,t,R,S,T};
> sol:=[solve(sys,inc)];
Nous voyons apparaître trois cas. De plus le premier demande une discussion si nous voyons les coefficients comme des nombres et non comme des indéterminées. Comme souvent l'utilisation de solve amène plus de problèmes qu'elle n'en résout. Il vaut mieux procéder comme suit.
> Delta:=evalm(a&*A-A&*a);
La condition nécessaire et suffisante cherchée apparaît tout naturellement. Avec les notations que nous avons employées, elle s'écrit .