next up previous contents
Next: Les utilitaires de la Up: 1. Previous: Arithmétique.

Forme quadratiques.

  Ces programmes se trouvent dans le répertoire {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é:

displaymath2021

de sorte que

displaymath2022

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:

displaymath2023

(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:

displaymath2024

Au niveau des formes quadratiques, on a:

displaymath2025

é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 tex2html_wrap_inline1389 A puis 1/x)

displaymath2026

donc les vecteurs tex2html_wrap_inline2075 et tex2html_wrap_inline2077 forment une base orthogonale pour q (on a bien tex2html_wrap_inline2081 tex2html_wrap_inline2083 et tex2html_wrap_inline2085 , 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 tex2html_wrap_inline2091 symbolic).

  rem646


next up previous contents
Next: Les utilitaires de la Up: 1. Previous: Arithmétique.