Algèbre T1
Les produits scalaire et vectoriel de deux vecteurs q 1 et q 2 s’obtiennent respectivement par DotProduct(q1,q2,conjugate=false) et CrossProduct(q1,q2) (l’option conjugate=false est nécessaire car Maple travaille par défaut avec des
espaces hermitiens).
La norme u s’obtient par VectorNorm(u,2,conjugate=false).
Utilisant la syntaxe concise de la librairie LinearAlgebra, on peut définir le
vecteur
x
y
z
par. Un quaternion q = r +xi+yj +zk sera donc représenté
sous Maple par la liste q:=[r,].
☞ Remarques concernant la simplification des expressions sous Maple : la
fonction normal permet de comparer deux expressions symboliques en les indéterminées x 1 , . . . , x r via la « représentation normale des expressions rationnelles ». Lorsque f ∈ Q(x 1 , . . . , x r ), la commande normal(f) renvoie un quotient de deux polynômes premiers entre eux (on divise par le pgcd dans l’anneau
factoriel Q[x 1 , . . . , x r ]) et trie les monômes selon un ordre spécifique. L’ordre de
Maple est un peu surprenant au premier abord ; on peut demander l’ordre du
degré lexicographique en appliquant par la suite la commande ord). Pour simplifier les coefficients d’une matrice M (ou d’un vecteur, ou d’une liste de vecteurs,
etc.), on est amené à combiner cette fonction avec l’opérateur Map comme suit :
Map(normal,M). Maple met alors chaque coefficient sous forme normale, ce qui
permet la comparaison. Parfois, on a recours à Map(simplify,M), mais il est
difficile de voir clair dans les multiples règles de simplification appliquées par
Maple. S’il s’agit uniquement de simplifier des racines carrées, on peut appliquer
Map(simplify[sqrt],M) qui est une commande moins obscure.
La commande simplify(expr,trig) fait appel à la règle de simplification
trig (consulter au besoin l’aide en ligne) afin de simplifier l’expression expr.
Tester également la commande combine(expr,trig).
Enfin, il peut être utile de remplacer dans une expression expr une sousexpression expr1 par expr2 : on utilise pour cela subs(expr1=expr2,expr)
ou la commande plus élaborée algsubs(expr1=expr2,expr). Par exemple,
subs({x=0,y=1},x^2+y^2+z^2) ou encore algsubs(a+b=1,a-b). Noter, sur le
second exemple, qu’on a le choix entre 2a − 1 ou −2b + 1 et Maple donne aléatoirement l’une ou l’autre de ces réponses. Si l’on spécifie algsubs(a+b=1,a-b,[a]),
Maple effectue la division euclidienne de a−b par a+b dans Q(b)[a] et en renvoie
le reste, en l’occurence −2b + 1.
260
Les produits scalaire et vectoriel de deux vecteurs q 1 et q 2 s’obtiennent respectivement par DotProduct(q1,q2,conjugate=false) et CrossProduct(q1,q2) (l’option conjugate=false est nécessaire car Maple travaille par défaut avec des
espaces hermitiens).
La norme u s’obtient par VectorNorm(u,2,conjugate=false).
Utilisant la syntaxe concise de la librairie LinearAlgebra, on peut définir le
vecteur
x
y
z
par
sous Maple par la liste q:=[r,
☞ Remarques concernant la simplification des expressions sous Maple : la
fonction normal permet de comparer deux expressions symboliques en les indéterminées x 1 , . . . , x r via la « représentation normale des expressions rationnelles ». Lorsque f ∈ Q(x 1 , . . . , x r ), la commande normal(f) renvoie un quotient de deux polynômes premiers entre eux (on divise par le pgcd dans l’anneau
factoriel Q[x 1 , . . . , x r ]) et trie les monômes selon un ordre spécifique. L’ordre de
Maple est un peu surprenant au premier abord ; on peut demander l’ordre du
degré lexicographique en appliquant par la suite la commande ord). Pour simplifier les coefficients d’une matrice M (ou d’un vecteur, ou d’une liste de vecteurs,
etc.), on est amené à combiner cette fonction avec l’opérateur Map comme suit :
Map(normal,M). Maple met alors chaque coefficient sous forme normale, ce qui
permet la comparaison. Parfois, on a recours à Map(simplify,M), mais il est
difficile de voir clair dans les multiples règles de simplification appliquées par
Maple. S’il s’agit uniquement de simplifier des racines carrées, on peut appliquer
Map(simplify[sqrt],M) qui est une commande moins obscure.
La commande simplify(expr,trig) fait appel à la règle de simplification
trig (consulter au besoin l’aide en ligne) afin de simplifier l’expression expr.
Tester également la commande combine(expr,trig).
Enfin, il peut être utile de remplacer dans une expression expr une sousexpression expr1 par expr2 : on utilise pour cela subs(expr1=expr2,expr)
ou la commande plus élaborée algsubs(expr1=expr2,expr). Par exemple,
subs({x=0,y=1},x^2+y^2+z^2) ou encore algsubs(a+b=1,a-b). Noter, sur le
second exemple, qu’on a le choix entre 2a − 1 ou −2b + 1 et Maple donne aléatoirement l’une ou l’autre de ces réponses. Si l’on spécifie algsubs(a+b=1,a-b,[a]),
Maple effectue la division euclidienne de a−b par a+b dans Q(b)[a] et en renvoie
le reste, en l’occurence −2b + 1.
260
