Mise sous forme implicite de courbes et de surfaces paramétrages rationnels

Publié par

Mise sous forme implicite de courbes et de surfaces à paramétrages rationnels Enfin un texte ne demandant pas de programmation. L'exemple de la courbe On commence par traiter l'exemple simple de la courbe dont les deux équations paramétrées sont > EqParamx:=t^4-t+1-x; EqParamy:=t^3+t+1-y; := EqParamx ? + ?t4 t 1 x := EqParamy + + ?t3 t 1 y Par un calcul de résultant on élimine t . > EqImp:=resultant(EqParamx,EqParamy,t); := EqImp ? ? + + ? + ? + ?23 18 x 34 y 22 y2 13 x y 7 y3 5 x2 4 x y2 y4 x3 On obtient un polynôme en ,x y qui, lorsqu'il est nul, indique que les deux équations paramétrées ont une ou plusieurs solutions communes en t . Expliquer comment il peut y en avoir plusieurs. Cette équation implicite étant irréductible > factor(EqImp); ? ? + + ? + ? + ?23 18 x 34 y 22 y2 13 x y 7 y3 5 x2 4 x y2 y4 x3 il n'y a pas de terme parasite . Un remarque : pour le graphique le système paramétré est meilleur > plot([t^4-t+1,t^3+t+1,t=-2.

  • z2 y2

  • y2 x2

  • courbe

  • équation implicite

  • paramétrages rationnels

  • eqparamx ?

  • rxzt

  • carré venant de rxzt

  • construction de la matrice de sylvester

  • équation sans le carré


Publié le : mardi 19 juin 2012
Lecture(s) : 60
Tags :
Source : math.unice.fr
Nombre de pages : 5
Voir plus Voir moins
Mise sous forme implicite de courbes et de surfaces à
paramétrages rationnels
Enfin un texte ne demandant pas de programmation.
L’exemple de la courbe
On commence par traiter l’exemple simple de la courbe dont les deux équations paramétrées
sont
>
EqParamx:=t^4-t+1-x; EqParamy:=t^3+t+1-y;
:=
EqParamx
- +
-
t
4
t
1
x
:=
EqParamy
+ +
-
t
3
t
1
y
Par un calcul de résultant on élimine
t
.
>
EqImp:=resultant(EqParamx,EqParamy,t);
:=
EqImp
-
-
+
+
-
+
-
+
-
23
18
x
34
y
22
y
2
13
x y
7
y
3
5
x
2
4
x y
2
y
4
x
3
On obtient un polynôme en
,
x y
qui, lorsqu’il est nul, indique que les deux équations
paramétrées ont une ou plusieurs solutions communes en
t
.
Expliquer comment il peut y en avoir plusieurs.
Cette équation implicite étant irréductible
>
factor(EqImp);
-
-
+
+
-
+
-
+
-
23
18
x
34
y
22
y
2
13
x y
7
y
3
5
x
2
4
x y
2
y
4
x
3
il n’y a pas de
terme parasite
.
Un remarque : pour le graphique le système paramétré est meilleur
>
plot([t^4-t+1,t^3+t+1,t=-2..2]);
–5
0
5
10
2
4
6
8
10
12
14
16
18
La fonction pour tracer la courbe donnée par l’équation implicite est dans la bibliothèque plots.
>
with(plots):
>
implicitplot(EqImp,x=0..18,y=-9..11);
–5
0
5
10
y
2
4
6
8
10
12
14
16
18
x
Maple a la tremblote. Par défaut une grille de 25x25 carreaux est utilisé. On peut améliorer le
graphique en raffinant ce découpage.
>
implicitplot(EqImp,x=0..18,y=-9..11,grid=[100,100]);
–5
0
5
10
y
2
4
6
8
10
12
14
16
18
x
C’est mieux, mais le problème est beaucoup plus compliqué que le tracé d’une courbe
paramétrée (commenter).
A quoi l’équation implicite peut-elle donc servir ? A calculer un certain nombre d’objets
algébriques comme les fonctions polynomiales sur cette courbe : k[x,y]/(EqImp(x,y)) ou plus
simplement à tester si le point (x,y) appartient à la courbe d’équation EqImp(x,y)=0.
L’exemple de la surface par les résultants : le problème
Les équations paramétrées de la surface sont des fractions rationnelles en
,
t s
. Pour pouvoir
calculer des résultants en
,
t s
il faut se ramener à des polynômes (ce que le texte ne dit pas).
>
EqParamx:=t^2-2*s*t-1-(t^2+1)*x;EqParamy:=2*t+s*t^2+s-(t^2+1)
*y;EqParamz:=s-z;
:=
EqParamx
-
-
-
t
2
2
s t
1
(
)
+
t
2
1
x
:=
EqParamy
+
+
-
2
t
s t
2
s
(
)
+
t
2
1
y
:=
EqParamz
-
s
z
Il y a une
erreur dans le texte
. Prions pour que cela ne vous arrive pas. Ce texte est ancien, je
pense qu’ils sont actuellement mieux formatés et mieux contrôlés.
Si l’on suit les éliminations indiqués on ne trouve pas le résultat donné dans le texte.
On commence par éliminer
t
entre l’équation de
x
et de
y
>
Rxyt:=resultant(EqParamx,EqParamy,t);
:=
Rxyt
-
+
-
+
-
+
+
+
-
4
s
2
8
s y
4
y
2
8
s
2
x
4
s
4
8
s
3
y
8
s y x
4
s
2
y
2
4
x
2
4
puis entre l’équation de
x
et de
z
.
>
Rxzt:=resultant(EqParamx,EqParamz,t);
:=
Rxzt
(
)
-
s
z
2
Remarquons que l’équation de
z
ne contient pas
t
, donc est une constante pour ce résultant.
On élimine maintenant
s
entre les deux résultants.
>
EqImp:=resultant(Rxyt,Rxzt,s);
:=
EqImp
(
)
- +
+
-
+
+
-
+
-
+
4
4
y
2
4
x
2
8
z y
8
z y x
4
z
2
8
z
2
x
4
z
2
y
2
8
z
3
y
4
z
4
2
Le carré venant de Rxzt.
On récupère la partie primitive de cette équation sans le carré.
>
EqImp:=primpart(-4+4*y^2+4*x^2-8*z*y+8*z*x*y+4*z^2-8*z^2*x+4*
z^2*y^2-8*z^3*y+4*z^4);
:=
EqImp
- +
+
-
+
+
-
+
-
+
1
y
2
x
2
2
z y
2
z y x
z
2
2
z
2
x
z
2
y
2
2
z
3
y
z
4
>
factor(EqImp);
- +
+
-
+
+
-
+
-
+
1
y
2
x
2
2
z y
2
z y x
z
2
2
z
2
x
z
2
y
2
2
z
3
y
z
4
Elle est irréductible.
Prenons le problème dans l’autre sens.
On commence par éliminer
s
entre l’équation de
x
et de
y
>
Rxys:=resultant(EqParamx,EqParamy,s);
:=
Rxys
-
+
+
-
+
+
+
+
4
t
2
2
y t
3
2
t y
t
4
1
x t
4
2
x t
2
x
puis entre l’équation de
x
et de
z
.
>
Rxzs:=resultant(EqParamx,EqParamz,s);
:=
Rxzs
-
+
+
+
+
t
2
1
x t
2
x
2
t z
On élimine maintenant
t
entre les deux résultants.
>
EqImp:=resultant(Rxys,Rxzs,t);
EqImp
16
32
z y
32
z x
3
y
32
z y x
2
16
y
2
x
2
z
2
32
z
3
x
2
y
32
z y x
16
y
2
+
+
-
+
-
-
-
:=
32
x
2
16
z
2
32
z
2
x
16
z
2
y
2
32
z
3
y
16
z
4
16
z
2
x
2
16
x
4
16
y
2
x
2
32
z
2
x
3
-
-
+
-
+
-
+
+
+
-
16
z
4
x
2
+
On décompose cette équation
>
factor(EqImp);
16 (
)
+
x
1 (
)
- +
1
x
(
)
- +
+
-
+
+
-
+
-
+
1
y
2
x
2
2
z y
2
z y x
z
2
2
z
2
x
z
2
y
2
2
z
3
y
z
4
et voilà, on a des termes parasites.
Première remarque : le résultat dépend de l’ordre des éliminations, ce qui est génant.
On va essayer de comprendre l’origine des termes parasites.
On présente les deux premiers résultants comme des polynômes en
t
.
>
sort(Rxys,t);
-
+
-
+
+
+
+
x t
4
t
4
2
y t
3
4
t
2
2
x t
2
2
y t
1
x
Remarquons que sort modifie son premier argument :
>
Rxys;
-
+
-
+
+
+
+
x t
4
t
4
2
y t
3
4
t
2
2
x t
2
2
y t
1
x
On voudrait rassembler les termes de même degré en
t
.
>
Rxys:=collect(Rxys,t);
:=
Rxys
+
+
+
+
+
(
)
- +
1
x t
4
2
y t
3
(
)
-
2
x
4
t
2
2
y t
x
1
collect ne modifie pas son argument.
Même travail sur l’autre résultant.
>
sort(Rxzs,t);
-
+
+
+
+
t
2
x t
2
2
z t
1
x
>
Rxzs:=collect(Rxzs,t);
:=
Rxzs
+
+
+
(
)
- +
1
x t
2
2
z t
x
1
Les deux résultants ont
-
x
1
comme coefficient principal d’où son apparition en facteur de leur
résultant.
Le résultant calculé n’est pas correct si
=
-
x
1
0
.
On a le même problème avec
+
x
1
terme constant des deux résultants.
Les matrices de Sylvester
La construction de la matrice de Sylvester existe dans les deux librairies d’algèbre linéaire :
>
with(linalg):
>
sylvester(Rxys,Rxzs,t);
-
x
1
2
y
- +
4
2
x
2
y
+
1
x
0
0
-
x
1
2
y
- +
4
2
x
2
y
+
1
x
-
x
1
2
z
+
1
x
0
0
0
0
-
x
1
2
z
+
1
x
0
0
0
0
-
x
1
2
z
+
1
x
0
0
0
0
-
x
1
2
z
+
1
x
ou bien
>
with(LinearAlgebra):
>
SylvesterMatrix(Rxys,Rxzs,t);
-
x
1
2
y
- +
4
2
x
2
y
+
1
x
0
0
-
x
1
2
y
- +
4
2
x
2
y
+
1
x
-
x
1
2
z
+
1
x
0
0
0
0
-
x
1
2
z
+
1
x
0
0
0
0
-
x
1
2
z
+
1
x
0
0
0
0
-
x
1
2
z
+
1
x
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.