Les quadriques

# Chapitre 17 Les quadriques

## 17.1 Équation d’une quadrique

Une forme quadratique de 4 variables X,Y,Z,T peut s’interpréter dans l’espace projectif Oxyz comme le premier membre de l’équation d’une quadrique.
Par exemple soit :
q(x,y,z):=4*x2+y2+z2-4*x*y+4*x*z-2*y*z+8*x-4*y+4*z+2
q(x,y,z)=0 est l’équation d’une quadrique.
On associe à q la forme quadradique Q :
Q(x,y,z,t):=normal(t`^`2*normal(q(x/t,y/t,z/t)))
et la matrice carrée A d’ordre 4 :
A:=q2a(Q(x,y,z,t),[x,y,z,t])
On obtient :
A:=[[4,-2,2,4],[-2,1,-1,-2],[2,-1,1,2],[4,-2,2,2]]
on retrouve la forme Q à partir de A si :
v:=[x,y,z,t]
la forme quadratique est :
Q(op(v)):=normal((v*A*tran(v))[0]) ou plus simplement :
Q(op(v)):=normal(v*A*v)
on retrouve la forme Q à partir de A si :
v1:=[x,y,z,1]
q(op(v1)):=normal(v1*A*v1)
et Q(v)=0 représente une quadrique Q de l’espace projectif.
Les points doubles de Q vérifie A*tran(v)=[0,0,0,0] ie tran(v) est un élément du noyau de A.
Discussion selon le rang r de A : r:=rank(A)

- Si r=4, Q est une quadrique propre ou non dégénérée sans point double.
- Si r=3, Q est un cône et a un point double S qui est le sommet du cône.
- Si r=2, q est le produit de 2 formes linéaires indépendantes et Q est formée de 2 plans distincts et secants selon la droite lieu des points doubles de Q.
- Si r=1, q est le carré d’une forme linéaire non nulle et Q est un plan de points doubles.

## 17.2 Équation reduite d’une quadrique

Pour réaliser la réduction de l’équation d’une quadrique, on pose :
B:=A[0..2,0..2];
C:=A[0..2,3];
d:=A[3,3];
Les directions propres de B sont les directions principales de la quadrique Q.
Comme une matrice symétrique réelle est diagonalisable dans un repère orthonormé, il existe un repère orthonormé (O,u,v,w) dans lequel la quadrique a comme équation :
s1*x12+s2*y12+s3*z12+2c1*x1+2*c2*y1+2*c3*z1+d1=0
où s1,s2,s3 sont les valeurs propres de B et u,v,w sont les vecteurs propres associés, choisis normés et orthogonaux.
Remarques

- Si les 3 valeurs propres de B sont différentes : les vecteurs propres sont orthogonaux et il suffira de les normer.
- Si il y a une valeur propre double non nulle il faudra rendre les vecteurs propres orthogonaux et les normer.
- Si il y a une valeur propre double nulle il faut rendre les vecteurs propres orthogonaux et les normer.

Voici les différents cas :

- 1ier cas s1*s2*s3!=0 supposons que signe(s1)=signe(s2)
  l’équation s’écrit :
  s1*(x1+c1/s1)2+s2*(y1+c2/s2)2+s3*(z1+c3/s3)2+d2=0
  en faisant un changement d’origine O1 avec :
  OO1=−c1/s1*u−c2/s2*v−c3/s3*w
  l’équation s’écrit :
  s1*X2+s2*Y2+s3*Z2+d2=0
  quitte a multiplier par -1 on obtient une équation de la forme :
  X2/a2+Y2/b2+s*Z2/c2+d3=0
  avec s=1 ou s=−1 et d3=1 ou d3=−1 ou d3=0.
  La quadrique est donc de révolution et est engendrée par la rotation autour de l’axe des Z de la conique d’équation Y=0,X2/a2+s*Z2/c2+d3=0.
  On a donc:
  - s=1,d3=1 on a un ellipsoïde imaginaire,
  - s=1,d3=0 on a un cône imaginaire,
  - s=1,d3=−1 on a un ellipsoïde réelle,
  - s=−1,d3=1 on a un hyperboloïde a 2 nappes, engendré par la rotation d’une hyperbole autour de son axe transverse (c’est l’axe focal, celui qui coupe l’hyperbole),
  - s=−1,d3=0 on a un cône réel,
  - s=−1,d3=−1 on a un hyperboloïde a 1 nappe, engendré par la rotation d’une hyperbole autour de son axe non transverse (celui qui ne coupe pas l’hyperbole),
  O1 est centre de symétrie et les plans (resp les axes) de coordonnées du repère (01,u,v,w) sont des plans (resp des axes) de symétrie pour Q.
- 2ième cas s1*s2!=0 et s3=0
  l’équation s’écrit :
  s1*(x1+c1/s1)2+s2*(y1+c2/s2)2+2*c3*z1+d2=0
  - Si c3!=0 l’équation s’écrit :
    s1*(x1+c1/s1)2+s2*(y1+c2/s2)2+2*c3*(z1+d2/(2*c3))=0
    en faisant un changement d’origine O1 avec :
    OO1=−c1/s1*u−c2/s2*v−d2/(2*c3)*w
    selon le signe de s1*s2 l’équation s’écrit :
    si s1*s2>0 l’équation s’écrit :
    X2/a2+Y2/b2−2*s*Z=0 avec s=1 ou s=−1
    on a un paraboloïde elliptique
    si s1*s2<0
    l’équation s’écrit : X2/a2−Y2/b2−2*s*Z=0 avec s=1 ou s=−1
    on a un paraboloïde hyperbolique
  - Si c3==0 l’équation s’écrit :
    s1*(x1+c1/s1)2+s2*(y1+c2/s2)2+d2=0
    en faisant un changement d’origine O1 avec :
    OO1=−c1/s1*u−c2/s2*v on obtient
    s1*X2+s2*Y2+d2=0
    La quadrique Q est soit, un cylindre de génératrices parallèles à w, soit, formée de 2 plans parallèles :
    si s1>0,s2>0,d2>0 on a un cylindre elliptique imaginaire de génératrices parallèles à w,
    si s1>0,s2>0,d2<0 on a un cylindre elliptique réel de génératrices parallèles à w,
    si s1>0,s2<0,d2<0 on a un cylindre hyperbolique de génératrices parallèles à w,
    si s1>0,s2>0,d2=0 on a 2 plans imaginaires conjugués non parallèles qui se coupent selon la droite réelle X=0,Y=0 i.e. selon un cylindre réel ayant comme base un point et de génératrices parallèles à w.
    si s1>0,s2<0,d2=0 on a 2 plans réels non parallèles.
- 3ième cas s1=!0, s2=0 et s3=0
  l’équation s’écrit :
  s1*(x1+c1/s1)2+2*c2*y1+2*c3*z1+d2=0
  Si c2!=0 ou c3!=0 :
  soit v1 le vecteur unitaire de la droite du plan x1=0 definie par :
  c2*y1+c3*z1=0, v1=[0,c3,−c2]/√c22+c32 et soit w1 le vecteur unitaire de la droite du plan x1=0 definies par :
  c3*y1−c2*z1=0, w1=[0,c2,c3]/√c22+c32
  Y*v1+Z*w1=[0,Y*c3+Z*c2,−Y*c2+Z*c3]/√c22+c32
  y1=(Y*c3+Z*c2)/√c22+c32
  z1=(−Y*c2+Z*c3)/√c22+c32 donc
  c2*y1+c3*z1=Z*√(c22+c32)
  Si on ne norme pas v1 et w1 on a v1=[0,c3,−c2], w1=[0,c2,c3], Y*v1+Z*w1=[0,Y*c3+Z*c2, −Y*c2+Z*c3], y1=(Y*c3+Z*c2), z1=(−Y*c2+Z*c3) et c2*y1+c3*z1=Z donc le nouveau c3==1.
  Ainsi, 2*(c2*y1+c3*z1)= 2*Z*√c22+c32
  en faisant un changement d’origine O1 avec :
  OO1=−c1/s1*u
  Dans le repère (O1,u,v1,w1) l’équation s’écrit :
  s1*X12+2*c4*Z1+d2=0 avec c4=√c22+c32!=0
  en faisant un changement d’origine O2 avec :
  OO2=−d2/(2*c4)*w1
  l’équation s’écrit :
  s1*X2+2/c4*Z=0
  Q est un cylindre parabolique dont les génératrices sont parallèles à u1.
  Si c2=0 et c3=0 l’équation s’écrit :
  s1*(x1+c1/s1)2+d2=0
  on a alors deux plans parallèles imaginaires conjugués (s1*d2>0) deux plans parallèles réels (s1*d2<0) ou deux plans confondus (d2=0).

Pour faciliter l’étude des différents cas le programme jortho va renvoyer 6 valeurs :
les 3 valeurs propres (en regroupant les valeurs propres égales et non nulles au début et en mettant les valeurs propres nulles à la fin) et les 3 vecteurs propres seront normés et orthogonaux sauf pour les vecteurs propres associés à 0.
Soit les trois valeurs propres sont : s1,s2,s3 et les trois vecteurs propres associés sont : u,v,w.
On a soit les zeros déjà à la fin et les valeurs égales non nulles déjà regroupées au début, soit on peut avoir 8 cas ( a!=0,b!=0,a!=b) :
(0,a,b) ou (0,a,a) ou (0,a,0) ou (b,a,a) ou (a,b,a) ou (0,0,a) ou (a,0,b) ou (a,0,a).
Pour les quatre premiers cas : Si (s1==0 ou s2==s3) et s2!=0) on renvoie s2,s3,s1 et v,w,u .
Ainsi on a maintenant :
(a,b,0) ou (a,a,0) ou (a,0,0) ou (a,a,b) ou (a,b,a) ou (0,0,a) ou (a,0,b) ou (a,0,a).
Pour les quatre derniers cas, on a :
(s2==0 ou s1==s3) et s3!=0) on renvoie s3,s1,s2 et w,u,v.
Il faut rendre u,v othogonaux lorsque s1==s2 si v*u!=0
v1:=-(v*u)*u+(u*u)*v ainsi v1*u=0 il faut rendre v,w othogonaux lorsque s3==s2==0 si v*w!=0
puis on norme u,v,w.
Voici les programmes :
jortho renvoie les valeurs propres et les vecteurs propres orthonormés.
quadrique renvoie la nouvelle origine la matrice de passage et la forme reduite ainsi que la verification.

    jortho(A):={
    local P,J,u,v,w,s1,s2,s3,a,b;
    (P,J):=jordan(A);
    u:=P[0..2,0];
    v:=P[0..2,1];
    w:=P[0..2,2];
    s1:=J[0,0];
    s2:=J[1,1];
    s3:=J[2,2];
    if ((s1==0 || s2==s3) && s2!=0){
    b:=u;
    u:=v;
    v:=w;
    w:=b;
    a:=s1;
    s1:=s2;
    s2:=s3;
    s3:=a;
    }
    if ((s2==0|| s1==s3)&& s3!=0){
    b:=w;
    w:=v;
    v:=u;
    u:=b;
    a:=s3;
    s3:=s2;
    s2:=s1;
    s1:=a;
    }
    //si s1==s2 et si v*u!=0
    a:=normal(u*u);
    b:=normal(v*u);
    if (b!=0) {
    v:=-b*u+a*v;
    }
    //on norme u
    u:=u/sqrt(a);
    //si s3==s2==0 et si v*w!=0
    a:=normal(v*v);
    b:=normal(v*w);
    if (b!=0) {
    w:=-b*v+a*w;
    }
    //on norme w et v
    w:=w/sqrt(normal(w*w));
    v:=v/sqrt(a);
    return (s1,s2,s3,u,v,w);
    };

Le programme Quadrique renvoie le repere (la nouvelle origine et la matrice de passage) et l’équation réduite dans ce repère :

    //q0(x,y,z):=4*x^2+y^2+z^2-4*x*y+4*x*z-2*y*z+8*x-4*y+4*z+2
    //           (s2=s3=0,c2=c3=0)
    //q1(x,y,z):=x^2+3*y^2-3*z^2-8*y*z+2*z*x-4*x*y-1
    //           (s3=0,c3=0)
    //q2(x,y,z):=5*x^2+y^2+z^2-2*x*y+2*x*z-6*y*z+2*x+4*y-6*z+1
    //           (s1,s2,s3!=0)
    //Quadrique(q2)=[(-1)/2,-1,1/2],[[0,2/(sqrt(6)),
    //-(1/(sqrt(3)))],[1/(sqrt(2)),-(1/(sqrt(6))),-(1/(sqrt(3)))],
    //[1/(sqrt(2)),1/(sqrt(6)),1/(sqrt(3))]],
    //-2*X^2+6*Y^2+3*Z^2-3
    //q3(x,y,z):=2*x^2+2*y^2+z^2+2*x*z-2*y*z+4*x-2*y-z+3
    //           (s3=0,c3!=0)
    //q4(x,y,z):=4*x^2+y^2+z^2-4*x*y+4*x*z-2*y*z+8*x-
    //           6*y+4*z+2
    //           (((s2=s3=0,c2!=0||c3!=0))
    //q5(x,y,z):=x^2+2*y^2-z^2-4*x*y+4*x*z+4*y*z+6*x-
    //           4*y+2*z+1
    //           (root of)
    //q6(x,y,z):=(x+y)*(y-z)+3*x-5*y
    //             (s3=0,c3!=0)
    //q7(x,y,z):=7*x^2+4*y^2+4*z^2+4*x*y-4*x*z-2*y*z-
    //             4*x+5*y+4*z-18
    //           (s1,s2,s3!=0)
    //q8(x,y,z):=-x^2-3*z^2-4*x*y+4*x*z+4*y*z+6*x-4*y+2*z+1
    //q9(x,y,z):=x^2-3*x*y+y^2+x-y-z^2/2+sqrt(10)/5*z
    //q est une fct de 3 variables de degre 2
    //Quadrique renvoie la nouvelle origine,
    // la matrice de passage,
    //la forme reduite avec le vecteur de variables et
    //la verification par ex pour q4
    //B:=[[4,-2,2],[-2,1,-1],[2,-1,1]];C:=[4,-3,2];
    Quadrique(q):={
    local Q,A,B,C,d,J,r,P,O1,c,c1,c2,c3,c4,s1,s2,
          s3,u,v,w,v1,w1,N,k;
    Q(x,y,z,t):=normal(t^2*normal(q(x/t,y/t,z/t)));
    A:=q2a(Q(x,y,z,t),[x,y,z,t]);
    r:=rank(A);
    B:=A[0..2,0..2];
    C:=A[0..2,3];
    d:=A[3,3];
    //on rend P orthogonale sauf si il y a des val propres =0
    (s1,s2,s3,u,v,w):=jortho(B);
    P:=tran([u,v,w]);
    //c:=normal(diff(C*P*[x,y,z],[x,y,z]));
    c:=normal(C*P);
    //les vp nulles sont a la fin
    c1:=c[0];
    c2:=c[1];
    c3:=c[2];
    if (s1*s2*s3!=0) {
    O1:=normal(-c1/s1*u-c2/s2*v-c3/s3*w);
    //O1:=solve(B*[x,y,z]+C,[x,y,z])[0];
    d:=q(O1[0],O1[1],O1[2]);
    return (O1,P,s1*X^2+s2*Y^2+s3*Z^2+d,[X,Y,Z],r,
            normal(q(op(O1+P*[X,Y,Z]))));
    }
    if (s1*s2!=0) {
    if (c3!=0) {
    O1:=normal(-c1/s1*u-c2/s2*v);
    d:=q(O1[0],O1[1],O1[2]);
    O1:=normal(-c1/s1*u-c2/s2*v-d/(2*c3)*w);
    return (O1,P,s1*X^2+s2*Y^2+2*c3*Z,[X,Y,Z],r,
               normal(q(op(O1+P*[X,Y,Z]))));
    }
    if (c3==0) {
    O1:=normal(P*[-c1/s1,-c2/s2,0]);
    d:=q(O1[0],O1[1],O1[2]);
    return (O1,P,s1*X^2+s2*Y^2+d,[X,Y,Z],r,
               normal(q(normal(op(O1+P*[X,Y,Z])))));
    }
    }
    if (s1!=0) {
    if (c2 !=0 or c3 !=0) {
    c4:=sqrt(c2^2+c3^2);
    v1:=normal(P*[0,c3,-c2]/c4);
    w1:=normal(P*[0,c2,c3]/c4);
    O1:=normal(P*[-c1/s1,0,0]);
    d:=q(O1[0],O1[1],O1[2]);
    P:=P[0..2,0..0];
    P:=border(P,v1);
    P:=border(P,w1);
    //en fait le nouveau c3 ci dessous ==c4 mais
    //ca ne marche pas avec c4 mystere (corrige?)
    //c:=normal(diff(C*P*[x,y,z],[x,y,z]));
    //c3:=c[2];
    //O1:=O1+normal(P*[0,0,-d/(2*c3)]);
    O1:=O1+normal(P*[0,0,-d/(2*c4)]);
    d:=q(O1[0],O1[1],O1[2]);
    return (O1,P,s1*X^2+2*c3*Z+d,[X,Y,Z],r,
            normal(q(normal(op(O1+P*[X,Y,Z])))));
    //return (O1,P,s1*X^2+2*c4*Z+d,[X,Y,Z],r,
    //          normal(q(op(O1+P*[X,Y,Z]))));
    }
    if (c2==0 && c3==0) {

    //on rend P orthogonale
    k:=normal(v*v);
    w:=normal(-(w*v)*v+k*w);
    w:=normal(w/sqrt(normal(w*w)));
    v:=normal(v/sqrt(k));
    P:=tran([u,v,w]);
    O1:=normal(P*[-c1/s1,0,0]);
    d:=q(O1[0],O1[1],O1[2]);

    return (O1,P,s1*X^2+d,[X,Y,Z],r,
             normal(q(op(O1+P*[X,Y,Z]))));
    }
    }
    }

On tape :
q0(x,y,z):=4*x`^`2+y`^`2+z`^`2-4*x*y+4*x*z-2*y*z+8*x-4*y+4*z+2
Quadrique(q0)
On obtient :
[(-2)/3,1/3,(-1)/3],[[2/(sqrt(6)),(sqrt(5))/5,(sqrt(30))/15],
[-(1/(sqrt(6))),0,(sqrt(30))/6],[1/(sqrt(6)),(-2*sqrt(5))/5,
(sqrt(30))/30]],6*X`^`2-2,[X,Y,Z],2,6*X`^`2-2
On tape :
q1(x,y,z):=x`^`2+3*y`^`2-3*z`^`2-8*y*z+2*z*x-4*x*y-1
Quadrique(q1)
On obtient :
[0,0,0],[[0,1/(sqrt(6)),5*(-(1/(sqrt(30))))],[1/(sqrt(5)),
2*(-(1/(sqrt(6)))),2*(-(1/(sqrt(30))))],[2/(sqrt(5)),
1/(sqrt(6)),1/(sqrt(30))]],-5*X`^`2+6*Y`^`2-1,[X,Y,Z],3,
6*Y`^`2-5*X`^`2-1
On tape :
q2(x,y,z):=5*x`^`2+y`^`2+z`^`2-2*x*y+2*x*z-6*y*z+2*x+4*y-6*z+1
Quadrique(q2)
On obtient :
[(-1)/2,-1,1/2],[[0,2/(sqrt(6)),-(1/(sqrt(3)))],[1/(sqrt(2)),
-(1/(sqrt(6))),-(1/(sqrt(3)))],
[1/(sqrt(2)),1/(sqrt(6)),1/(sqrt(3))]],
-2*X`^`2+6*Y`^`2+3*Z`^`2-3,[X,Y,Z],4
3*Z`^`2+6*Y`^`2-2*X`^`2-3
On tape :
q3(x,y,z):=2*x`^`2+2*y`^`2+z`^`2+2*x*z-2*y*z+4*x-2*y-z+3
Quadrique(q3)
On obtient :
[(-113)/144,41/144,17/72],
[[1/(sqrt(3)),-(1/(sqrt(2))),1/(sqrt(6))],
[-(1/(sqrt(3))),-(1/(sqrt(2))),
-(1/(sqrt(6)))],[1/(sqrt(3)),
0,2*(-(1/(sqrt(6))))]],
3*X`^`2+2*Y`^`2+(2*2*sqrt(6)*Z)/3,
[X,Y,Z],4,3*X`^`2+(4*sqrt(6)*Z)/3+2*Y`^`2
On tape :
q4(x,y,z):=4*x`^`2+y`^`2+z`^`2-4*x*y+4*x*z-2*y*z+8*x-6*y+4*z+2
Quadrique(q4)
On obtient :
[(-227)/180,(-71)/72,(-227)/360],
[[2/(sqrt(6)),(-(sqrt(5)))/5,(-(sqrt(30)))/15],
[-(1/(sqrt(6))),0,(-(sqrt(30)))/6],
[1/(sqrt(6)),(2*sqrt(5))/5,(-(sqrt(30)))/30]],
6*X`^`2+(2*sqrt(30)*Z)/6,[X,Y,Z],3,
(48*sqrt(30)*Z)/144+6*X`^`2
On tape :
q5(x,y,z):=x`^`2+2*y`^`2-z`^`2-4*x*y+4*x*z+4*y*z+6*x-4*y+2*z+1
Quadrique(q5)
On obtient :
[(-15)/13,5/13,(-7)/13],[[(-2)/3,(-sqrt(13)+1)/(sqrt(-8*sqrt(13)+52)),
(sqrt(13)+1)/(sqrt(8*sqrt(13)+52))],[(-1)/3,4/(sqrt(-8*sqrt(13)+52)),
4/(sqrt(8*sqrt(13)+52))],[(-2)/3,(sqrt(13)-3)/(sqrt(-8*sqrt(13)+52)),
(-sqrt(13)-3)/(sqrt(8*sqrt(13)+52))]],
2*X`^`2+sqrt(13)*Y`^`2+(-(sqrt(13)))*Z`^`2+(-49)/13,[X,Y,Z],4,
((-2*sqrt(13))*Z`^`2)/2+(2*sqrt(13)*Y`^`2)/2+2*X`^`2+(-49)/13
On tape :
q6(x,y,z):=(x+y)*(y-z)+3*x-5*y
Quadrique(q6)
On obtient :
[16/9,8/9,11/9],[[1/(sqrt(2)),1/(sqrt(6)),-(1/(sqrt(3)))],
[0,2/(sqrt(6)),1/(sqrt(3))],[1/(sqrt(2)),-(1/(sqrt(6))),
1/(sqrt(3))]],(X`^`2)/-2+(3*Y`^`2)/2+(2*(-4*sqrt(3))*Z)/3,
[X,Y,Z],4,-(X`^`2)/2-(8*sqrt(3)*Z)/3-(-3*Y`^`2)/2
On tape :
q7(x,y,z):=7*x`^`2+4*y`^`2+4*z`^`2+4*x*y-4*x*z-2*y*z-4*x+5*y+4*z-18
Quadrique(q7)
On obtient :
[11/27,(-26)/27,(-29)/54],[[1/(sqrt(5)),54*(-(1/(sqrt(30)*27))),
2/(sqrt(6))],[0,5/(sqrt(30)),1/(sqrt(6))],[2/(sqrt(5)),1/(sqrt(30)),
-(1/(sqrt(6)))]],3*X`^`2+3*Y`^`2+9*Z`^`2+(-602)/27,
[X,Y,Z],4,3*Y`^`2+3*X`^`2+9*Z`^`2+(-602)/27
On tape :
q8(x,y,z):=-x`^`2-3*z`^`2-4*x*y+4*x*z+4*y*z+6*x-4*y+2*z+1
Quadrique(q8)
On obtient (c’est tres long!):
[(-11)/54,223/108,61/54],[[(-sqrt(13)+1)/(sqrt(-8*sqrt(13)+52)),
(sqrt(13)+1)/(sqrt(8*sqrt(13)+52)),(-2)/3],[4/(sqrt(-8*sqrt(13)+52)),
4/(sqrt(8*sqrt(13)+52)),(-1)/3],[(sqrt(13)-3)/(sqrt(-8*sqrt(13)+52)),
(-sqrt(13)-3)/(sqrt(8*sqrt(13)+52)),(-2)/3]],
(sqrt(13)-2)*X`^`2+(-sqrt(13)-2)*Y`^`2-4*Z,[X,Y,Z],4,
((-4+2*sqrt(13))*X`^`2)/2+((-4-2*sqrt(13))*Y`^`2)/2-4*Z
On tape :
q9(x,y,z):=x`^`2-3*x*y+y`^`2+x-y-z`^`2/2+sqrt(10)/5*z
Quadrique(q9)
On obtient un cône car r=3 :
[-1/5,1/5,(sqrt(10))/5],[[1/(sqrt(2)),1/(sqrt(2)),0],[-(1/(sqrt(2))),
1/(sqrt(2)),0],[0,0,1]],(5*X`^`2)/2+(Y`^`2)/(-2)+(Z`^`2)/(-2),[X,Y,Z],3,
5/2*X`^`2+(-1)/2*Y`^`2+(-1)/2*Z`^`2
On tape :
q10(x,y,z):=x`^`2-3*x*y+y`^`2-x-y-z`^`2/2+sqrt(10)/5*z
Quadrique(q10)
On obtient :
[-1,-1,(sqrt(10))/5],[[1/(sqrt(2)),1/(sqrt(2)),0],
[-(1/(sqrt(2))),1/(sqrt(2)),0],[0,0,1]],
(5*X`^`2)/2+(Y`^`2)/(-2)+(Z`^`2)/(-2)+6/5,[X,Y,Z],4,
5/2*X`^`2+(-1)/2*Y`^`2+(-1)/2*Z`^`2+6/5