Apprendre Maple Caractérisation de coniques

 
  Page d'accueilPage d'accueil   RechercherRechercher   Forum de discussionForum de discussion   ContactContact   SommaireSommaire 
  Cours MapleCours Maple   Travaux dirigésTravaux dirigés   Thèmes d'activitésThèmes d'activités   Thèmes d'activitésMaplets
Ecran MapleEcran Maple  TéléchargementTéléchargement  BibliographieBibliographie  LiensLiens  

 

 

Page d'accueil   Thèmes d'activités   << Thème précédent   Thème suivant >>

 

>   

restart:
with(linalg): with(plots):

Warning, the protected names norm and trace have been redefined and unprotected

Warning, the name changecoords has been redefined
 

Méthode utilisée

Soit dans un repère orthonormal (o, i , j) du plan affine euclidien, une conique C définie par son équation :
f (
x , y ) = A*x^2+2*B*x*y+C*y^2+D*x+E*y+F = 0

les coefficients A, B, C, D, E, F étant réels. On repère alors la forme quadratique de IR² associée:
 q ( x , y ) = A*x^2+2*B*x*y+C*y^2  .

La matrice de q  dans la base canonique ( i, j ) en vecteurs s'ecrit M = matrix([[A, B], [B, C]])  . M est une matrice symétrique qui est diagonalisable et il existe donc une base orthonormale B' = ( e[1], e[2]  ) de IR² formée de vecteurs propres de M .

On peut donc diagonaliser la matrice dans une base orthonormale directe de vecteurs propres. On note P la matrice de passage de ( i, j ) à ( e[1], e[2]  ) et lambdaet mules deux valeurs propres de la matrice M .

La matrice M  est donc semblable à D = matrix([[lambda, 0], [0, mu]])et q (X*e[1]+Ye[2] ) = lambda*X^2+mu*Y^2  .
B' étant orthonormale et une base
q -orthogonale.

Dans cette nouvelle base, on n'a donc plus de termes en xy.

On se ramène ensuite à des formes canoniques connues

-  Soit on trouve des coniques propres: paraboles, hyperboles et des ellipses (ou des cercles)

-  Soit on trouve des coniques dégénérées : couple de droites, droite, point, ensemble vide.

 

Premier cas : si 0 n'est pas valeur propre de M

Dans ce cas, det(M) = ac - b² = lambda*mu <> 0 . Alors la conique C admet un centre de symétrie Omega(x[0],y[0])dans (O, i , j)

où ( x[0], y[0]) vérifie le système : Diff(f,x)*(x[0], y[0])= 0 et  Diff(f,y)*(x[0], y[0])= 0

En effet, les formules X = x-x[0]et Y = y-y[0]permettent d'obtenir l'équation de la conique C dans ( Omega, i, j )
sous la forme : C :
A*x^2+2*B*x*y+C*y^2= a .  Les termes en x et y disparaissent.

Ainsi C : q( OmegaM) = a ,  s'écrit sous la forme C :  lambda*X^2+mu*Y^2= a  dans le repère ( Omega, e[1], e[2]).

Sous cas 1

Si a = 0 alors C est la réunion de 2 droites  si lambdamu  <0

             ou     C = { Omega}                            si lambdamu  >0

Sous cas 2

Si a <> 0  alors C : X^2/a*lambda+Y^2/a*mu = 1  . Distinguons alors 2 cas :

Sous cas i

Si lambdamu  > 0 , C =  vide

                 ou C : X^2/(a^2)+Y^2/(b^2) = 1 , C est donc une ellipse de centre Omega  (on a alors B² - AC < 0)

Sous cas ii

Si lambdamu  < 0 , C : X^2/(a^2)-Y^2/(b^2) = 1 , C est donc une hyperbole de centre Omega  (on a alors B² - AC > 0)

Second cas : si 0 est valeur propre de M

Dans ce cas det(M) = ac - b² = lambda*mu = 0 .

Si par exemple lambda <> 0et mu = 0, alors q ( X*e[1]+Ye[2]) =lambda*X^2

Dans le repère (O, e[1], e[2]) l'équation de la conique C est de la forme lambda*X^2+D[1]*X+E[1]*Y+F[1] = 0  que l'on peut mettre
dans le repère  (O,
e[1], e[2]) sous la forme C :
(X+a)^2+beta*(Y+gamma) = 0

 

Sous cas 1

Si beta = 0 , alors C : X = - a  est une droite

Sous cas 2

Si beta <> 0 , alors C : X^2 = 2*p*Y  dans un repère (O', e[1], e[2]). C est une parabole et on a B² - AC = 0.

 

Procédure Quadratique
Une expression expr est une forme quadratique en les variables X=[ x[1], x[2] ... x[n] ] si les 3 conditions sont vérifiées:

expr  vaut 0 au point [0,0,...,0].

Pour tout i , diff(expr,x[i])  vaut 0 au point [0,0,...,0], c'est à dire que la différentielle de expr  est nulle au point [0,0,...,0].

Pour tout ( i,j ),   diff(expr,x[j],x[i])  est une constante.
 

>   

Quadratique:=proc(expr,X)
local d,d1,d2,i,j;
d:=subs(seq(X[i]=0,i=1..nops(X)),expr);
if d<>0 then return false fi;
for j to nops(X) do
  d1:=diff(expr,X[j]):
  d:=subs(seq(X[i]=0,i=1..nops(X)),d1);
  if d<>0 then return false fi;
od;
for i to nops(X) do
 for j to nops(X) do
   d2:=diff(expr,X[i],X[j]):
   if not type(d2,constant) then return false fi;
 od
od;
true
end proc:
 

>   

q:=5*x^2+5*y^2+6*x*y: Quadratique(q,[x,y]);

true

Procédure ExtraireFormeQuad
Procédure d'extraction de la partie quadratique d'une expression
expr  en X
:
 

>   

ExtraireFormeQuad:=proc(expr,X)
local e,q;
q:=0:
for e in expr do
  if Quadratique(e,X) then q:=q+e fi
end do:
q
end proc:
 

>   

f:=5*x^2+5*y^2+6*x*y-4*x+4*y;

f := 5*x^2+5*y^2+6*x*y-4*x+4*y

>   

q:=ExtraireFormeQuad(f,[x,y]);

q := 5*x^2+5*y^2+6*x*y

Procédure de calcul du centre de la conique
 

>   

centre:=proc(expr,X)
local k,sys,c,s;
sys:={seq(diff(expr,X[i]),i=1..nops(X))};
s:=solve(sys,convert(X,set)):
c:=array(1..nops(X)):
for k to nops(s) do
  if lhs(s[k])=X[1] then c[1]:=rhs(s[k])
  elif lhs(s[k])=X[2] then c[2]:=rhs(s[k])
  else c[3]:=rhs(s[k]) fi
od:
convert(c,list)
end proc:
 

>   

centre(f,[x,y]);

[1, -1]

Procédure nouvelle_equation

Cette procédure effectue un changement de repère: connaissant l'équation f  dans l'ancien repère, la nouvelle origine pt ,
la matrice de passage
P  de l'ancienne à la nouvelle base, et les variables var
, elle retourne l'équation  dans le nouveau repère.
 

>   

nouvelle_equation:=proc(f,pt,P,var)
local k,X,Y,Z,x,y,nx,s;
nx:=[X,Y,Z]:
x:=matrix([seq([nx[i]],i=1..nops(var))]);
y:=evalm(P&*x);
s:=seq(var[k]=y[k,1]+pt[k],k=1..nops(var)); unapply(simplify(expand(subs(s,f))),op(1..nops(var),nx));
end proc:
 

>   

nouvelle_equation(f,[1,-1],matrix([[1/2*2^(1/2), 1/2*2^(1/2)], [-1/2*2^(1/2), 1/2*2^(1/2)]]),[x,y]);

proc (X, Y) options operator, arrow; 2*X^2+8*Y^2-4 end proc

Procédure coord
coord
 donne les valeurs numériques des coordonnées dans l'ancien repère (o,i,j) d'un point de coordonnées var  dans le nouveau

repère ( pt ,I,J). P  est la matrice de passage de l'ancienne à la nouvelle base.
Cette procédure servira pour tracer la conique dans le repère initial (o,i,j).
 

>   

coord:=proc(var,pt,P)
local x,y;
x:=matrix([seq([var[i]],i=1..nops(var))]);
y:=evalm(P&*x);
seq(evalf(y[k,1]+pt[k]),k=1..nops(var))
end proc:
 

>   

coord([sqrt(2),0],[1,-1],matrix([[1/2*2^(1/2), 1/2*2^(1/2)], [-1/2*2^(1/2), 1/2*2^(1/2)]]));

2., -2.

Procédure parabole

Cette procédure traite le cas det(D)=0 ( 0 est valeur propre) qui va donner la parabole comme seule conique propre.
 

>   

parabole:=proc(eq,P,xmin,xmax,ymin,ymax)
local a,b,c,delta,e,s;
e:=eq:
if coeff(e,X,2)<>0 then e:=simplify(e/coeff(e,X,2))
elif coeff(e,Y,2)<>0 then e:=simplify(e/coeff(e,Y,2)) fi:
c:=subs(X=0,Y=0,e):
if coeff(e,X,2)=1 then
  a:=coeff(e,X,1): b:=coeff(e,Y,1):
  if b=0 then print(`Conique dégénérée:`):
     delta:=a^2-4*c:
     if delta<0 then print(`Ensemble vide`)
     elif delta=0 then print(`Droite d'équation:`):print(X=-a/2)
     else
      print(`réunion des 2 droites d'équation:`):                                    print(X=simplify((-a-sqrt(delta))/2),X=simplify((-a+sqrt(delta))/2))
     fi;
  else
     e:=(X+a/2)^2+b*(Y+(c-a^2/4)/b):
     print(`Parabole d'équation:`):print(e=0):
     s:=[-a/2,-(c-a^2/4)/b]:
     print(`de sommet: s`=s);  
     print(`Equation dans (s,I,J):`);
     e:=X^2+b*Y : print(e=0): return elements_car_parabole(e,s,P,xmin,xmax,ymin,ymax)
  fi
else
if coeff(e,Y,2)=1 then
  a:=coeff(e,Y,1): b:=coeff(e,X,1):
  if b=0 then print(`Conique dégénérée:`):
     delta:=a^2-4*c:
     if delta<0 then print(`Ensemble vide`)
     elif delta=0 then print(`Droite d'équation:`):print(Y=-a/2)
     else
       print(`réunion des 2 droites d'équation:`):                                           print(Y=simplify((-a-sqrt(delta))/2),Y=simplify((-a+sqrt(delta))/2))
     fi;
  else
     e:=(Y+a/2)^2+b*(X+(c-a^2/4)/b):
     print(`Parabole d'équation:`):print(e=0):
     s:=[-(c-a^2/4)/b,-a/2]:
     print(`de sommet: s`=s);
     print(`Equation dans (s,I,J):`);
     e:=Y^2+b*X: print(e=0): return elements_car_parabole(e,s,P,xmin,xmax,ymin,ymax)    
  fi
fi
fi;
e=0
end:
 

Procédure elements_car_parabole

Cette procédure donne les éléments caractéristiques de la parabole:
 

>   

elements_car_parabole:=proc(eq,pt,P,xmin,xmax,ymin,ymax)
local p,axe1,axe2,courbe,points,dir;
print(`Elements caractéristiques dans (s,I,J):`);
if coeff(eq,Y,2)=1 then p:=simplify(-1/2*coeff(eq,X,1)):print(`axe focal: `=(s,I))
  else p:=simplify(-1/2*coeff(eq,Y,1)):print(`axe focal: `=(s,J)) fi:
axe1:=plot([pt[1]+t*P[1,1],pt[2]+t*P[2,1],t=-15..15],linestyle=DOT):
axe2:=plot([pt[1]+t*P[1,2],pt[2]+t*P[2,2],t=-15..15],linestyle=DOT):
print(`paramètre:  p`=p);
print(`excentricité:  e`=1);
points:=pt;
print(`foyer:`);
if coeff(eq,Y,2)=1 then print(F(p/2,0)):points:=points,[coord([p/2,0],pt,P)]
else print(F(0,p/2)):points:=points,[coord([0,p/2],pt,P)] fi:
points:=pointplot([points],symbol=CROSS);
print(`directrice:`);
if coeff(eq,Y,2)=1 then print(X=-p/2):dir:=plot([coord([-p/2,t],pt,P),t=-15..15],color=blue) else print(Y=-p/2):dir:=plot([coord([t,-p/2],pt,P),t=-15..15],color=blue) fi:
if coeff(eq,Y,2)=1 then courbe:=plot([coord([t^2/(2*p),t],pt,P),t=-15..15]) else
courbe:=plot([coord([t,t^2/(2*p)],pt,P),t=-15..15]) fi;
display({courbe,axe1,axe2,points,dir},scaling=constrained,view=[xmin..xmax,ymin..ymax])
end proc:
 

Procédure elements_car_ellipse

Cette procédure donne les éléments caractéristiques de l'ellipse:
 

>   

elements_car_ellipse:=proc(a,b,pt,P,xmin,xmax,ymin,ymax)
local c1,e,axe1,axe2,courbe,points,dirs;
print(`Elements caractéristiques dans (c,I,J):`);
if evalf(a)<>evalf(b) then
 if evalf(a)>evalf(b) then c1:=sqrt(a^2-b^2): e:=c1/a
 else c1:=sqrt(b^2-a^2): e:=c1/b fi:
 print(` a`=simplify(a),` b`=simplify(b), ` c`=simplify(c1));
 if evalf(a)>evalf(b) then print(`grand axe (ou axe focal): `=(c,I))
 else print(`grand axe (ou axe focal): `=(c,J)) fi:
fi;
axe1:=plot([pt[1]+t*P[1,1],pt[2]+t*P[2,1],t=-15..15],linestyle=DOT):
axe2:=plot([pt[1]+t*P[1,2],pt[2]+t*P[2,2],t=-15..15],linestyle=DOT):
if evalf(a)<>evalf(b) then
  print(`excentricité (0<e<1)  e`=simplify(e));
  print(`sommets:`);
  print(A1(-a,0),A2(a,0),B1(0,-b),B2(0,b));
  print(`foyers:`);
  if evalf(a)>evalf(b) then print(F1(-c1,0),F2(c1,0)) else print(F1(0,-c1),F2(0,c1)) fi;
  points:=[coord([-a,0],pt,P)],[coord([a,0],pt,P)],[coord([0,-b],pt,P)],[coord([0,b],pt,P)]:
  if evalf(a)>evalf(b) then points:=points,[coord([-c1,0],pt,P)],[coord([c1,0],pt,P)]
  else points:=points,[coord([0,-c1],pt,P)],[coord([0,c1],pt,P)] fi:
  points:=pointplot([points],symbol=CROSS);
  print(`directrices:`);
  if evalf(a)>evalf(b) then
    print(X=simplify(-a^2/c1),X=simplify(a^2/c1)):       dirs:=plot([coord([-a^2/c1,t],pt,P),t=-15..15],color=blue),plot([coord([a^2/c1,t],pt,P),t=-15..15],color=blue)
  else print(simplify(Y=-b^2/c1),simplify(X=b^2/c1)):
dirs:=plot([coord([t,-b^2/c1],pt,P),t=-15..15],color=blue),plot([coord([t,b^2/c1],pt,P),t=-15..15],color=blue):
  fi;
fi:
courbe:=plot([coord([a*cos(t),b*sin(t)],pt,P),t=0..2*Pi]);
if evalf(a)<>evalf(b) then
  display({courbe,axe1,axe2,points,dirs},scaling=constrained,view=[xmin..xmax,ymin..ymax])
else display(courbe,pointplot([[coord([0,0],pt,P)]],symbol=CROSS),scaling=constrained,view=[xmin..xmax,ymin..ymax])
fi
end proc:
 

Procédure elements_car_hyperbole

Cette procédure donne les éléments caractéristiques de l'hyperbole:
 

>   

elements_car_hyperbole:=proc(a,b,s,pt,P,xmin,xmax,ymin,ymax)
local e,c1,axe1,axe2,courbe,points,dirs,asys;
print(`Elements caractéristiques dans (c,I,J):`);
c1:=sqrt(a^2+b^2):
if s=1 then e:=c1/a else e:=c1/b fi:
print(` a`=simplify(a),` b`=simplify(b), ` c`=simplify(c1));
if s=1 then print(`axe focal (ou transverse): `=(c,I))
else print(`axe focal (ou transverse): `=(c,J)) fi:
axe1:=plot([pt[1]+t*P[1,1],pt[2]+t*P[2,1],t=-15..15],linestyle=DOT):
axe2:=plot([pt[1]+t*P[1,2],pt[2]+t*P[2,2],t=-15..15],linestyle=DOT):
print(`excentricité (e>1)  e`=simplify(e));
print(`sommets:`);
if s=1 then print(A1(-a,0),A2(a,0)):points:=[coord([-a,0],pt,P)],[coord([a,0],pt,P)]
else print(B1(0,-b),B2(0,b)): points:=[coord([0,-b],pt,P)],[coord([0,b],pt,P)]: fi;
print(`foyers:`);
if s=1 then print(F1(-c1,0),F2(c1,0)):points:=points,[coord([-c1,0],pt,P)],[coord([c1,0],pt,P)]
else print(F1(0,-c1),F2(0,c1)):points:=points,[coord([0,-c1],pt,P)],[coord([0,c1],pt,P)] fi;
points:=pointplot([points],symbol=CROSS);
print(`directrices:`);
if s=1 then print(X=simplify(-a^2/c1),X=simplify(a^2/c1)):
dirs:=plot([coord([-a^2/c1,t],pt,P),t=-15..15],color=blue),plot([coord([a^2/c1,t],pt,P),t=-15..15],color=blue) else print(simplify(Y=-b^2/c1),simplify(X=b^2/c1)):
dirs:=plot([coord([t,-b^2/c1],pt,P),t=-15..15],color=blue),plot([coord([t,b^2/c1],pt,P),t=-15..15],color=blue): fi;
print(`asymptotes:`);
print(Y=-b/a*X,Y=b/a*X);
asys:=plot([coord([t,-b/a*t],pt,P),t=-15..15],color=black,linestyle=DOT),plot([coord([t,b/a*t],pt,P),t=-15..15],color=black,linestyle=DOT):
if s=1 then
courbe:=plot([coord([a*cosh(t),b*sinh(t)],pt,P),t=-5..5]),plot([coord([-a*cosh(t),b*sinh(t)],pt,P),t=-5..5])
else courbe:=plot([coord([a*sinh(t),b*cosh(t)],pt,P),t=-5..5]),plot([coord([a*sinh(t),-b*cosh(t)],pt,P),t=-5..5]) fi;
display({courbe,axe1,axe2,points,dirs,asys},scaling=constrained,view=[xmin..xmax,ymin..ymax])
end proc:
 

Procédure conique

C'est la procédure principale de la feuille. Elle reçoit en paramètres:

-  une expression expr des variables var .
-  quatre réels xmin ,  xmax , ymin ,  ymax .  
 
Elle extrait la forme quadratique q  associée à expr , réduit sa matrice, calcule une base [I,J] de IR² orthonormale et qui est aussi q -orthogonale,
analyse la nature de la conique et donne ses éléments caractéristiques ainsi que sa représentation graphique dans la fenêtre [
xmin ,  xmax , ymin ,  ymax ].
 

>   

conique:=proc(expr,var,xmin,xmax,ymin,ymax)
local e,k,q,v,A,D,G,P,c,eq,sm,vp,alpha,beta,gamma,a,b;
q:=ExtraireFormeQuad(expr,var);
for k in expr-q do
  if not type(k,constant) then
    for v in var do
      if not type(diff(k,v),constant) then error
"Cette expression ne correspond pas à la forme attendue: Ax²+2Bxy+Cy²+Dx+Ey+F" fi
    od
  fi
od;
if q=0 then error "Forme quadratique associée nulle" fi:
print(`Forme quadratique associée:  q`=q);
print(`Matrice de la forme quadratique associée:`);
A:=matrix([seq([seq(diff(q,var[i],var[j])/2,j=1..2)],i=1..2)]);
print(`A `=evalm(A));
vp:=sort([eigenvals(A)]):
print(`Valeur propres de A `=vp);
D:=jordan(A,'P1');
print(`Matrice diagonale semblable à A:   D`=evalm(D));
G:=map(normalize, GramSchmidt([col(P1,1..2)]));
P:=map(simplify,concat(op(G)));
print(`Matrice de passage orthogonale:   P`=evalm(P));
print(`Directions principales de la conique:`);
print(`I `=col(P,1),` J `=col(P,2));
if det(D)<>0 then
  c:=centre(expr,var): print(`Conique à centre:   c`=c):
  print(`Equation dans (c,I,J): `):
  eq:=nouvelle_equation(f,c,P,var):
  alpha:=-eq(0,0);
  print(collect(eq(X,Y),[X,Y])=0):  
  if alpha=0 then
    print(`Conique dégénérée`);
    if det(D)>0 then
      print(`réduite au centre:   c`={c})
    else print(`réunion des 2 droites d'équation:`);
      print(Y=sqrt(-vp[1]/vp[2])*X, Y=-sqrt(-vp[1]/vp[2])*X)
    fi
  else # alpha<>0
      if evalf(det(D))>0 then
         if evalf(alpha/vp[1])<0 and evalf(alpha/vp[2])<0 then print(eq(X,Y)=0):       
         print(`Conique dégénérée: ensemble vide`)
      else a:=sqrt(alpha/vp[1]): b:=sqrt(alpha/vp[2]):
         print(X^2/a^2+Y^2/b^2=1):         
         if evalf(a)<>evalf(b) then print(`Ellipse de centre c`) else
          print(`cercle de centre c, rayon`=a) fi:
         elements_car_ellipse(a,b,c,P,xmin,xmax,ymin,ymax):
      fi
    else # det(D)<0
      if evalf(alpha/vp[1])>0 and evalf(alpha/vp[2])<0 then
        a:=sqrt(alpha/vp[1]): b:=sqrt(-alpha/vp[2]): sm:=1:
        print(X^2/a^2-Y^2/b^2=1):
      else
         a:=sqrt(-alpha/vp[1]): b:=sqrt(alpha/vp[2]): sm:=-1:
         print(X^2/a^2-Y^2/b^2=-1):
      fi:
      print(`Hyperbole de centre c`):
      elements_car_hyperbole(a,b,sm,c,P,xmin,xmax,ymin,ymax):
    fi    
  fi
else # det(D)=0
  print(`Equation dans (o,I,J): `):
  eq:=nouvelle_equation(f,[0,0],P,var):
  print(eq(X,Y)=0);
  parabole(eq(X,Y),P,xmin,xmax,ymin,ymax);
  fi:
end:
 

Exemple 1 : Affichage d'un message d'erreur
 

>   

f:=5*x^2+5*y^2+6*x*y-4*x+4*y-12*x^2*y^2; conique(f,[x,y],-10,10,-10,10);

f := 5*x^2+5*y^2+6*x*y-4*x+4*y-12*x^2*y^2

Error, (in conique) Cette expression ne correspond pas à la forme attendue: Ax²+2Bxy+Cy²+Dx+Ey+F
 

Exemple 2 : Etude d'une ellipse
 

>   

f:=5*x^2+5*y^2+6*x*y-4*x+4*y; conique(f,[x,y],-1,3,-3,1);

f := 5*x^2+5*y^2+6*x*y-4*x+4*y

`Forme quadratique associée:  q` = 5*x^2+5*y^2+6*x*y

`Matrice de la forme quadratique associée:`

`A ` = matrix([[5, 3], [3, 5]])

`Valeur propres de A ` = [2, 8]

`Matrice diagonale semblable à A:   D` = matrix([[2, 0], [0, 8]])

`Matrice de passage orthogonale:   P` = matrix([[1/2*2^(1/2), 1/2*2^(1/2)], [-1/2*2^(1/2), 1/2*2^(1/2)]])

`Directions principales de la conique:`

`I ` = vector([1/2*2^(1/2), -1/2*2^(1/2)]), ` J ` = vector([1/2*2^(1/2), 1/2*2^(1/2)])

`Conique à centre:   c` = [1, -1]

`Equation dans (c,I,J): `

2*X^2+8*Y^2-4 = 0

1/2*X^2+2*Y^2 = 1

`Ellipse de centre c`

`Elements caractéristiques dans (c,I,J):`

` a` = 2^(1/2), ` b` = 1/2*2^(1/2), ` c` = 1/2*6^(1/2)

`grand axe (ou axe focal): ` = (c, I)

`excentricité (0<e<1)  e` = 1/2*3^(1/2)

`sommets:`

A1(-2^(1/2),0), A2(2^(1/2),0), B1(0,-1/2*2^(1/2)), B2(0,1/2*2^(1/2))

`foyers:`

F1(-1/2*6^(1/2),0), F2(1/2*6^(1/2),0)

`directrices:`

X = -2/3*6^(1/2), X = 2/3*6^(1/2)

[Maple Plot]

Exemple 3 : Etude d'un cercle
 

>   

f:=16*x^2+16*y^2+30*x-34*y-169; conique(f,[x,y],-5,4,-4,6);

f := 16*x^2+16*y^2+30*x-34*y-169

`Forme quadratique associée:  q` = 16*y^2+16*x^2

`Matrice de la forme quadratique associée:`

`A ` = matrix([[16, 0], [0, 16]])

`Valeur propres de A ` = [16, 16]

`Matrice diagonale semblable à A:   D` = matrix([[16, 0], [0, 16]])

`Matrice de passage orthogonale:   P` = matrix([[1/2*2^(1/2), -1/2*2^(1/2)], [1/2*2^(1/2), 1/2*2^(1/2)]])

`Directions principales de la conique:`

`I ` = vector([1/2*2^(1/2), 1/2*2^(1/2)]), ` J ` = vector([-1/2*2^(1/2), 1/2*2^(1/2)])

`Conique à centre:   c` = [-15/16, 17/16]

`Equation dans (c,I,J): `

16*X^2+16*Y^2-1609/8 = 0

128/1609*X^2+128/1609*Y^2 = 1

`cercle de centre c, rayon` = 1/16*3218^(1/2)

`Elements caractéristiques dans (c,I,J):`

[Maple Plot]

Exemple 4 : Etude d'une hyperbole
 

>   

f:=x^2+4*x*y+y^2-8*x+4*y-1; conique(f,[x,y],-15,10,-10,15);

f := x^2+4*x*y+y^2-8*x+4*y-1

`Forme quadratique associée:  q` = y^2+4*x*y+x^2

`Matrice de la forme quadratique associée:`

`A ` = matrix([[1, 2], [2, 1]])

`Valeur propres de A ` = [-1, 3]

`Matrice diagonale semblable à A:   D` = matrix([[-1, 0], [0, 3]])

`Matrice de passage orthogonale:   P` = matrix([[1/2*2^(1/2), 1/2*2^(1/2)], [-1/2*2^(1/2), 1/2*2^(1/2)]])

`Directions principales de la conique:`

`I ` = vector([1/2*2^(1/2), -1/2*2^(1/2)]), ` J ` = vector([1/2*2^(1/2), 1/2*2^(1/2)])

`Conique à centre:   c` = [-8/3, 10/3]

`Equation dans (c,I,J): `

-X^2+3*Y^2+49/3 = 0

3/49*X^2-9/49*Y^2 = 1

`Hyperbole de centre c`

`Elements caractéristiques dans (c,I,J):`

` a` = 7/3*3^(1/2), ` b` = 7/3, ` c` = 14/3

`axe focal (ou transverse): ` = (c, I)

`excentricité (e>1)  e` = 2/3*3^(1/2)

`sommets:`

A1(-7/3*3^(1/2),0), A2(7/3*3^(1/2),0)

`foyers:`

F1(-14/3,0), F2(14/3,0)

`directrices:`

X = -7/2, X = 7/2

`asymptotes:`

Y = -1/3*3^(1/2)*X, Y = 1/3*3^(1/2)*X

[Maple Plot]

Exemple 5 : Etude d'une parabole
 

>  

f:=4*x^2+4*x*y+y^2-8*x+16*y-17; conique(f,[x,y],-8,8,-10,6);

f := 4*x^2+4*x*y+y^2-8*x+16*y-17

`Forme quadratique associée:  q` = y^2+4*x*y+4*x^2

`Matrice de la forme quadratique associée:`

`A ` = matrix([[4, 2], [2, 1]])

`Valeur propres de A ` = [0, 5]

`Matrice diagonale semblable à A:   D` = matrix([[0, 0], [0, 5]])

`Matrice de passage orthogonale:   P` = matrix([[1/5*5^(1/2), 2/5*5^(1/2)], [-2/5*5^(1/2), 1/5*5^(1/2)]])

`Directions principales de la conique:`

`I ` = vector([1/5*5^(1/2), -2/5*5^(1/2)]), ` J ` = vector([2/5*5^(1/2), 1/5*5^(1/2)])

`Equation dans (o,I,J): `

5*Y^2-8*5^(1/2)*X-17 = 0

`Parabole d'équation:`

Y^2-8/5*5^(1/2)*(X+17/40*5^(1/2)) = 0

`de sommet: s` = [-17/40*5^(1/2), 0]

`Equation dans (s,I,J):`

Y^2-8/5*5^(1/2)*X = 0

`Elements caractéristiques dans (s,I,J):`

`axe focal: ` = (s, I)

`paramètre:  p` = 4/5*5^(1/2)

`excentricité:  e` = 1

`foyer:`

F(2/5*5^(1/2),0)

`directrice:`

X = -2/5*5^(1/2)

[Maple Plot]

Exemple 6 : Un cas de dégénérescence
 

>   

f:=expand(4*(x-1)^2+(y-x)^2+5); conique(f,[x,y],-5,5,-5,5);

f := 5*x^2-8*x+9+y^2-2*x*y

`Forme quadratique associée:  q` = -2*x*y+y^2+5*x^2

`Matrice de la forme quadratique associée:`

`A ` = matrix([[5, -1], [-1, 1]])

`Valeur propres de A ` = [3-5^(1/2), 3+5^(1/2)]

`Matrice diagonale semblable à A:   D` = matrix([[3-5^(1/2), 0], [0, 3+5^(1/2)]])

`Matrice de passage orthogonale:   P` = matrix([[-(2*5^(1/2)-5)/(50-20*5^(1/2))^(1/2), -1/2*(-4*5^(1/2)+10)^(1/2)/(2*5^(1/2)-5)], [5^(1/2)/(50-20*5^(1/2))^(1/2), -1/10*(-4*5^(1/2)+10)^(1/2)*5^(1/2)]])

`Directions principales de la conique:`

`I ` = vector([-(2*5^(1/2)-5)/(50-20*5^(1/2))^(1/2), 5^(1/2)/(50-20*5^(1/2))^(1/2)]), ` J ` = vector([-1/2*(-4*5^(1/2)+10)^(1/2)/(2*5^(1/2)-5), -1/10*(-4*5^(1/2)+10)^(1/2)*5^(1/2)])

`Conique à centre:   c` = [1, 1]

`Equation dans (c,I,J): `

(-25+11*5^(1/2))/(2*5^(1/2)-5)*X^2+(-5+5^(1/2))/(2*5^(1/2)-5)*Y^2+(-25+10*5^(1/2))/(2*5^(1/2)-5) = 0

(-5*Y^2+Y^2*5^(1/2)+10*5^(1/2)+11*5^(1/2)*X^2-25*X^2-25)/(2*5^(1/2)-5) = 0

`Conique dégénérée: ensemble vide`
 

 

haut de cette page


©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.