• Aucun résultat trouvé

Systèmes triangulaires unitaires omportant autant d'équations que d'in onnues 68

x

2,

−1

2 , 1



.

On en déduitque modulo l'idéal

A= (p)

on a

1

x =

x

On retrouvela relationbien onnue :

1

2 =

2

2 ·

5.2 Systèmes triangulaires unitaires omportant autant

d'équations que d'in onnues

Il s'agit du as où

R = K[x1, . . . , xn]

et

A = {f1, . . . , fn}

est un système triangulaire unitaire tel que

ld pi = xi

. Par  unitaire  on entend que les éléments de

A

ont tous

1

pour oe ientinitial. I i,l'idéal

A= (A)

. Unsystème triangulaire etunitaireest une base de Gröbner de l'idéal qu'il engendre. La notion de forme normale que nous allons établir

oïn ide ave elle des bases de Gröbner.

5.2.1 Dénition de la forme normale

Dénition 4 Onappelleformenormaled'unpolynme

f

parun système

A

tout polynme

p

équivalent à

f

modulo

A

et tel que

deg(p, xi) < deg(fi, xi)

pour tous

1≤ i ≤ n

. Le lemme lefest lesuivant.

Lemme 2 Si

p

est un polynme de l'idéal

A

tel que

deg(p, xi) < deg(fi, xi)

pour tous

Preuve Notons

dk = deg(fk, xk)

. On suppose

p ∈ A

et

deg(p, xk) < dk

pour

1≤ k ≤ n

et on her he à on lure que

p = 0

. Comme

p∈ A

on aune formule

p = λ1f1+· · · + λkfk

.Si

k = 0

alors

p = 0

et le lemme est prouvé. Supposons don qu'on ait aaire à une formule de longueur

k > 0

ave

λk 6= 0

, notons

fk = xdk

k + gk

et substituons

xdk

k → fk − gk

dans

λ1, . . . , λk−1

.On obtientune nouvelleformule

p = µ1f1+· · · + µkfk

qu'on peut réarranger detellesorteque

deg(µi, xk) < dk

pour

1≤ i < k

.Comme

deg(p, xk) < dk

et

deg(fi, xk) = 0

pour

1 ≤ i < k

on on lut que

µk = 0

. On a don obtenu pour

p

, une nouvelle formulede longueurstri tementinférieureà

k

.En ontinuantdepro he enpro he, ondéduitque

p = 0

.

Proposition 12 La forme normale d'un polynme

f

par un système

A

est unique. Deux polynmes équivalents modulo

A

ont même forme normale.

Preuve Il sut de montrer que deux polynmes

f

et

f′

équivalents modulo

A

ont même formenormale.Soient

g

une formenormalede

f

et

g′

uneformenormalede

f′

.Lepolynme

g− g′

est une formenormaleet appartient à l'idéal.Il doit don être nul.

Proposition 13 La dénition de la forme normale est algorithmique.

Preuve Le polynme suivant onstitue une formenormaledu polynme

f

.

NF(f, A) = rem(f, A) = rem(. . . rem(rem(f, fn, xn), fn−1, xn−1) . . . , f1, x1).

5.2.2 Dé ider de la nullité et de l'inversibilité

Proposition 14 Dé ider si

f = 0

dans

R/A

revient à dé ider si

rem(f, A) = 0

. Plus généralement, dé ider si

f ∈ K

dans

R/A

revient à dé ider si

rem(f, A)∈ K

.

Intéressonsnous maintenant autest d'inversibilitédans

R/A

.

On dispose d'une généralisationnaturellede l'algorithme d'Eu lide étendu. Soient

a

et

b

deux polynmes d'indéterminée prin ipale

xk

. Notons

Rk−1 = K[x1, . . . , xk−1]

. On voit les polynmes

a

et

b

omme polynmes en

xk

et à oe ients pris modulo

A

'estàdire ommedesélémentsde

(Rk−1/(A∩Rk−1))[xk]

eton her he à al uleruneidentitéde Bézout

u1a + u2b = u3

dans et anneau.

On her he don àgénéraliserEu lide_étenduen unalgorithmed'entêteEu lide_étendu

(a, b, xk, A)

.Lesdeuxpremièresinstru tionsd'Eu lide_étendun'ontpasbesoind'être han-gées. On peut dé ider de l'égalité àzéro modulo

A

( f. les propositions idessus). On peut don déterminerle degré d'un polynme à oe ients modulo

A

et en parti ulier réaliserle test

v3 6= 0

.Le al uldel'inversed'unélémentde

Rk−1/(A∩Rk−1)

resteladernièreopération non évidente à réaliser : on la trouve expli itement à la n de la bou le et impli itement

fon tion inverse_algébrique

(a, A)

début si

a ∈ K

alors si

a6= 0

alors 1/a sinon

le al uld'inverse é houe (division par zéro)

n si

sinon

soit

xi

l'indéterminéeprin ipale de

a

(u1, u2, u3)

:=Eu lide_étendu

(a, fi, xi, A)

si

u3 6= 1

alors

le al uld'inverse é houe (inversion d'un diviseur de zéro)

sinon

u1

n si

n si

n

Voi il'algorithme Eu lide_étendu généralisé.

fon tion Eu lide_étendu

(a, b, xi, A)

début

U

:=

(1, 0, a)

V

:=

(0, 1, b)

tant que

v3 6= 0

faire

q

:=le quotient de la division eu lidiennede

u3

par

v3

T

:=

V

V

:=

U − q V

U

:=

T

fait

c

:= le oe ient de

xdeg u3

i

dans

u3

retourner inverse_algébrique

(c, A) U

n

Terminaison. Les fon tions inverse_algébrique et Eu lide_étendu s'appellent

ré ursive-mentl'unel'autre.Les al ulsterminentdanstousles aspar equel'indéterminéeprin ipale

xi

dé roîtstri tement à haque appelà Eu lide_étendu.

Corre tion.Point lef:lesinvariantsdebou ledelaversiongénéraliséedeEu lide_étendu

sont lesmêmes que eux de la versiontraditionnelle.Pré isément,

2. dans

(Rk−1/(A∩ Rk−1))[xk]

, l'ensemble des diviseurs ommuns de

a

etde

b

est égal à l'ensembledes diviseurs ommuns de

u3

etde

v3

.

Noter quelapreuvedu deuxièmeinvariantne faitintervenirquedes opérationsd'anneau. Il

n'est pas né essaire de supposer l'anneau fa toriel. Ces invariantsont deux orollaires.

1. si la fon tion inverse_algébrique termine normalement son exé ution, l'élément

re-tourné

u1

est un inverse de

a

dans

Rk−1/(A∩ Rk−1)

eta fortiori dans

R/A

, 2. si

u3 6= 1

alors

u3

est un fa teur non trivialde

fi

dans

(Rk−1/(A∩ Rk−1))[xk]

.

Il est normal que le al ul puisse é houer puisque

R/A

n'est pas né essairement intègre. Cela n'implique pas d'ailleursque

a

soitun diviseur de zéro puisque la fon tion est amenée à tester l'inversibilité d'éléments autres que

a

. En as d'é he , une fa torisation d'un

fi ∈

A

est exhibée. Cette fa torisation

fi = g h

(les fa teurs s'obtiennent par simple division eu lidienne)permetdes inderlesystème

A

endeuxsystèmestriangulairesunitaires,obtenus en remplaçant

fi

par l'un oul'autrede ses fa teurs. Pour résumer,

Proposition 15 La fon tion inverse_algébrique, appliquée à un polynme

f

et à

A

, soit prouve que

f

est inversible dans

R/A

soit permet de s inder lesystème

A

en deux systèmes plus simples.

Sionne s'intéressequ'autest d'inversibilitéetnon au al ulde l'inverse, onpeututiliser

une version non étendue de l'algorithme d'Eu lide. La version non étendue est nettement

moins oûteuse :lepg dde deux polynmesestpetit(ilvaut souvent

1

)maisles oe ients desidentitésdeBézoutsontgros.Lafon tioninverse_algébriquenefournitqu'unalgorithme

de semidé ision.On peut la ompléterpourobtenir un algorithmede dé isionmais 'estlà

àmon avis un problème peu intéressanten pratique. Considéronspar exemple lesystème

A

formédes deux équations suivantes :

x22+ x1− 2 = 0, x2

1− 1 = 0.

La fon tion inverse_algébrique, appliquée au polynme

3 x2

, retourne son inverse

(x2x1 +

2 x2)/9

. Lafon tion inverse_algébrique,appliquée aupolynme

x1+ x2

é houe. Elleexhibe lafa torisation

x2

1−1 = (x1−1)(x1+1)

quipermetde s inderlesystème

A

en deuxsystèmes plus simples :

x22− 1 = 0, x1− 1 = 0

ou

x22 − 3 = 0, x1+ 1 = 0.

Pour paraphraserMi helDemazure [26, page 42℄, les idéaux dé rits par des systèmes

trian-gulaires admettant autant d'équations que d'in onnues sont des  idéaux premiers à usage

ommer ial  : e sont des idéaux qui se omportent omme des idéaux premiers jusqu'à

e qu'on dé ouvre qu'ils ne le sont pas. Dans le domaine du al ul formel, ette idée est

onnue souslenom de prin ipe

D5

du nomdes auteursde [35℄:Jean DellaDora,Claire

Di res enzo et Dominique Duval.

Le programme C suivant montre omment e mé anisme est implanté dans les

sont lus et ae tés au tableau de polynmes

T

. Une bou le al ule leur inverse algébrique et imprime soit l'inverse soit le diviseur de zéro exhibé. En BLAD, les tableaux sont des

stru tures à trois hamps : un hamp allo ontenant le nombre d'éléments alloués au

ta-bleau, un hamp size ontenant le nombre d'éléments utilisés dans le tableau et un hamp

tab qui pointesur les éléments. Comme il est normalement rarissimequ'un al ul d'inverse

algébriqueé houe, lafon tionbad_invert_polynom_mod_reg hainestprogramméepour

le-ver une ex eption lorsque et événement se produit. Il s'agit d'une variante du mé anisme

présenté au hapitrepré édent quipermet àla fon tionqui lèvel'ex eption de retourner un

objet (i i lediviseur de zéro exhibé)à la fon tion quitraite l'ex eption. Lediviseur de zéro

est retourné viala variable ddz.

/* File inverse_algebrique. */ #in lude "bad.h" int main () { bav_Iordering r; stru t bad_reg hain C; stru t bap_produ t_mpz U, G; stru t bap_tableof_polynom_mpz T; bap_polynom_mpz ddz;

stru t ba0_ex eption_ ode ode;

stru t ba0_mark M;

int i;

bad_restart (0, 0);

ba0_re ord (&M);

ba0_ss anf2 ("ordering (derivations = [℄, blo ks = [x2, x1℄)",

"%ordering", &r);

bav_R_push_ordering (r);

bad_init_reg hain (&C);

ba0_ss anf2 ("reg hain ([x2^2 + x1 - 2, x1^2 - 1℄, [℄)", "%reg hain", &C);

ba0_init_table ((ba0_table)&T);

bap_init_produ t_mpz (&U);

bap_init_produ t_mpz (&G);

ba0_ss anf2 ("[3*x2, x1 + x2℄", "%t[%Az℄", &T);

for (i = 0; i < T.size; i++)

{ BA0_PUSH_EXCEPTION ( ode);

if (ba0_ex eption_is_raised ( ode))

{ ba0_printf ("Inversion of %Az failed. ", T.tab [i℄);

ba0_printf ("Zero divisor found : %Az\n", ddz);

} else

{ bad_invert_polynom_mod_reg hain (&U, &G, T.tab [i℄, &C, &ddz);

ba0_pull_ex eption ( ode);

("%Pz * %Az = %Pz modulo %reg hain\n", &U, T.tab [i℄, &G, &C); } } ba0_restore (&M); bad_terminate (ba0_init_level); return 0; }

Voi il'a hage obtenuà l'exé ution.

Inversion of 3*x2 su eeded

x2*(x1 + 2) * 3*x2 = 9 modulo reg hain ([x1^2 - 1, x2^2 + x1 - 2℄, [℄)

Inversion of x2 + x1 failed. Zero divisor found : x1 - 1

Les bibliothèques BLAD orent aussi une fon tion nommée

bad_ he k_regularity_poly-nom_mod_reg hain quivérie qu'unpolynme passéen paramètreestinversible(mais sans

al ulerl'inverse) etqui lèveune ex eptionsinon.