{ALGB QUAD}
. Pour effectuer des calculs plus rapidement,
on peut désarmer le flag 15.
L'utilitaire principal est GAUSS
qui réduit une forme quadratique
q en somme et différence de carrés de formes linéaires indépendantes.
Au niveau 1 de la pile, on place la matrice A de la forme quadratique q,
le programme renvoie au niveau 2 la diagonale de la matrice D de la
forme quadratique réduite et au niveau 1 la matrice P des formes
linéaires (écrite en ligne). On a l'égalité:
de sorte que
est somme des carrés des formes linéaires ayant pour coordonnées
celles de PX affectées des coefficients correspondants de D.
Pour trouver une base orthogonale de q, il suffit d'inverser la
matrice P, les colonnes de P-1 sont alors les coordonnées d'une
base orthogonale. Si l'on s'intéresse plutôt à l'aspect décomposition
en sommes de carrés, on donne l'expression symbolique comme argument
de GAUSS
qui renvoie alors D, P, A, la liste des variables,
et un symbolique (cf. les exemples plus bas)
Exemple|
Considérons q(x,y)=4x2+2xy-3y2, la matrice de q est:
(pour trouver la matrice de q à partir de l'expression algébrique
'4*X^2+2*X*Y-3*Y^2'
entrez encore la liste des variables
{ X Y}
puis tapez SYMXA
).
On appelle GAUSS
qui renvoie:
2: { '1/4' '-13/4' } 1: { { 4 1 } { 0 1 } }ce qui signifie que:
Au niveau des formes quadratiques, on a:
égalité que l'on peut obtenir directement en appelant GAUSS
avec comme argument la forme algébrique de q au lieu de sa représentation
matricielle.
Pour obtenir une base orthogonale de q, on inverse P, ce qui donne
(en tapant L
A
puis 1/x)
donc les vecteurs et forment une base orthogonale pour q (on a bien et , on retrouve les coefficients diagonaux de D).
Exemples
'X^2+4*X*Y-2*X*Z+4*Y^2+6*Y*Z+7*Z^2' GAUSS 5: { 1 '-25/6' '1/6' } 4: { { 1 2 -1 } { 0 1 0 } { 0 5 6 } } 3: { { 1 2 -1 } { 2 4 3 } { -1 3 7 } } 2: { X Y Z } 1: '1/6*(6*Z+5*Y)^2+ -25/6*Y^2+(-Z+2*Y+X)^2' Le meme exemple avec les variables dans un ordre specifie: 'X^2+4*X*Y-2*X*Z+4*Y^2+6*Y*Z+7*Z^2' { Z Y X } GAUSS 5: { '1/7' '7/19' '-25/19' } 4: { { 7 3 -1 } { 0 '19/7' '17/7' } { 0 0 1 } } 3: { { 7 3 -1 } { 3 4 2 } { -1 2 1 } } 2: { Z Y X } 1: '-25/19*X^2+7/19*(17/7*X+19/7*Y)^2+1/7*(-X+3*Y+7*Z)^2 orthogonalisation avec parametres: 'X^2+2*A*X*Y' { Y X } GAUSS 5: { '-A^2' 1 } 4: { { 1 0 } { A 1 } } 3: { { 0 A } { A 1 } } 2: { Y X } 1: '(X+A*Y)^2-A^2*Y^2'
Ce répertoire contient aussi 2 utilitaires de conversion:
AXQ
et QXA
qui effectuent la conversion
de la représentation matricielle à la représentation algébrique
d'une forme quadratique q (array symbolic).