17 Dependência algébrica de polinômios
Neste projeto vamos estudar uma aplicação simples das bases de Groebner.
17.1 Dependência algêbrica
Assuma que \(f_1,\ldots,f_k\) são polinômios em um anel \(\mathbb F[x_1,\ldots,x_n]\) de polinômios sobre um corpo \(\mathbb F\). Dizemos que \(f_1,\ldots,f_k\) são algebricamente dependentes se existir um polinômio \(h\in\mathbb F[t_1,\ldots,t_k]\) tal que \[ h(f_1,\ldots,f_k)=0. \] Um polinômio \(f\in\mathbb F[x_1,\ldots,x_n]\) pertence à álgebra \(\mathbb F[f_1,\ldots,f_k]\) gerada por \(f_1,\ldots,f_k\) se existir um polinômio \(h\in\mathbb F[t_1,\ldots,t_k]\) tal que \[ f=h(f_1,\ldots,f_k). \] Note que \(f\in\mathbb F[f_1,\ldots,f_k]\) implica que \(f,f_1,\ldots,f_k\) são algebricamente dependentes.
17.2 Exploração interativa
Considere por exemplo os seguintes polinômios em \(\mathbb Q[y_0,y_1,y_2,y_3]\): \[\begin{align*} f_1&=y_0;\\ f_2&=2y_0y_2-y_1^2;\\ f_3&=3y_0^2y_3-3y_0y_1y_2+y_1^3\\ f_4&=-3y_1^2y_2^2+8y_0y_2^3+6y_1^3y_3-18y_0y_1y_2y_3+9y_0^2y_3^2. \end{align*}\]
Vamos verificar que estes polinômios são algebricamente dependentes. Primeiro, vamos construir a álgebra de polinômios.
gap> y0 := Indeterminate( Rationals, "y0" );
y0
gap> y1 := Indeterminate( Rationals, "y1" );
y1
gap> y2 := Indeterminate( Rationals, "y2" );
y2
gap> y3 := Indeterminate( Rationals, "y3" );
y3
gap> P := PolynomialRing( Rationals, [y0,y1,y2,y3] );
Rationals[y0,y1,y2,y3]
Ora, vamos construir os polinômios.
gap> f1 := y0;
y0
gap> f2 := 2*y0*y2-y1^2;
2*y0*y2-y1^2
gap> f3 := 3*y0^2*y3-3*y0*y1*y2+y1^3;
3*y0^2*y3-3*y0*y1*y2+y1^3
gap> f4 := -3*y1^2*y2^2+8*y0*y2^3+6*y1^3*y3-18*y0*y1*y2*y3+9*y0^2*y3^2;
9*y0^2*y3^2-18*y0*y1*y2*y3+8*y0*y2^3+6*y1^3*y3-3*y1^2*y2^2
O truque é introduzir novas variáveis, \(t_1\), \(t_2\), \(t_3\), \(t_4\) (uma para cada polinômio no sistema) e computar uma base de Groebner para o ideal \[ (t_1-f_1,t_2-f_2,t_3-f_3,t_4-f_4). \]
gap> t1 := Indeterminate( Rationals, "t1" );
t1
gap> t2 := Indeterminate( Rationals, "t2" );
t2
gap> t3 := Indeterminate( Rationals, "t3" );
t3
gap> t4 := Indeterminate( Rationals, "t4" );
t4
gap> P1 := PolynomialRing( Rationals, [y0,y1,y2,y3,t1,t2,t3,t4] );
Rationals[y0,y1,y2,y3,t1,t2,t3,t4]
gap> I := Ideal( P1, [t1-f1,t2-f2,t3-f3,t4-f4] );
<two-sided ideal in Rationals[y0,y1,y2,y3,t1,t2,t3,t4], (4 generators)>
gap> G := GroebnerBasis( I, MonomialLexOrdering );
t1^2*t4-t2^3-t3^2, y2^3*t2^3-9/2*y3^2*t1*t2^3+y2^3*t3^2+3/2*y2^2*t1*t2*t4-9/2*y3^2*t1*t3^2+3*y3*t1*t3*t4-1/2*t1*t4^2, y2^3*t1-9/2*y3^2*t1^2+3/2*y2^2*t2+3*y3*t3-1/2*t4,
[ y1*y3*t2^3-2/3*y2^2*t2^3+y1*y3*t3^2-2/3*y2^2*t3^2-1/3*y2*t1*t2*t4-1/3*y1*t3*t4+1/3*t2^2*t4, y1*y3*t1^2-2/3*y2^2*t1^2-1/3*y2*t1*t2-1/3*y1*t3+1/3*t2^2,
3*y1*y3*t1*t2-2*y2^2*t1*t2+y1*y2*t3-y2*t2^2-3*y3*t1*t3+t1*t4, y1*y2*t2^2-3*y1*y3*t1*t3+2*y2^2*t1*t3-3*y3*t1*t2^2+y1*t1*t4+y2*t2*t3, y1*y2*t1-3*y3*t1^2+y1*t2+t3,
y1*y2^2*t2-3*y2*y3*t1*t2+3*y1*y3*t3-2*y2^2*t3+3*y3*t2^2-y1*t4, y1^2-2*y2*t1+t2, y0-t1 ]
Note que G[1]
é um polinômio nas variáveis \(t_1,t_2,t_3,t_4\) apenas. Este polinômio expressa a dependência algébrica entre \(f_1,f_2,f_3,f_4\).
gap> h := G[1];
t1^2*t4-t2^3-t3^2
gap> Value( h, [t1,t2,t3,t4], [f1,f2,f3,f4] );
0
Quando a base de Groebner tem muitos polinômios, conseguimos achar o polinômio certo usando a seguinte instrução:
gap> Filtered( G, x-> DegreeIndeterminate( x, y0 ) = 0 and DegreeIndeterminate( x, y1 ) = 0 and DegreeIndeterminate( x, y2 ) = 0 and DegreeIndeterminate( x, y3 ) = 0 );
t1^2*t4-t2^3-t3^2 ] [
17.3 A teoria atrás da computação anterior
A computação anterior está baseada no seguinte teorema.
Teorema 17.1 Usando a notação da Seção 17.1, seja \(\mathcal G\) uma base de Groebner do ideal \[ I=(t_1-f_1,\ldots,t_k-f_k) \] relativa a uma ordem monomial na qual \(x_1>x_2\cdots>x_n>t_1>\cdots>t_k\). As seguintes afirmações são verdadeiras.
- \(f_1,\ldots,f_k\) são algebricamente dependentes se e somente se existe \(h\in\mathcal G\cap \mathbb F[t_1,\ldots,t_k]\). Neste caso, \(h(f_1,\ldots,f_k)=0\).
- \(f_1\in\mathbb F[f_2,\ldots,f_k]\) se e somente se \(\mathcal G\) possui um elemento na forma \(h=t_1-h_1\) onde \(h_1\in \mathbb F[t_2,\ldots,t_k]\). Neste caso, \(f=h_1(f_2,\ldots,f_k)\).
A demonstração do Teorema não é muito difícil, ela dependa da Fórmula de Taylor para polinômios multivariáveis sobre anel arbitrário.
17.4 Tarefa 1
- Sejam \(f_1\), \(f_2\), \(f_3\) como na Seção 17.2, e seja agora \[ f_4=2y_0y_4-2y_1y_3+y_2^2 \] e \[ f_5=2y_2^3-6y_1y_2y_3+9y_0y_3^2+6y_1^2y_4-12y_0y_2y_4. \] Ache uma dependência algébrica entre \(f_1,f_2,f_3,f_4,f_5\).
- Verifique se o polinômio \[ f=-3y_0^2y_3+2y_0^2y_4+3y_0y_1y_2-2y_0y_1y_3+y_0y_2^2-y_1^3 \] está contido na subálgebra \(\mathbb Q[f_1,f_2,f_3,f_4]\). Se sim escreva \(f\) na forma \(h(f_1,f_2,f_3,f_4)\).
Se a computação demorar moito tempo, pode parar com Ctrl-C
e expermimentar com MonomialGrlexOrdering
em vez de MonomialLexOrdering
.
17.5 Tarefa 2
- Escreva uma função
is_alg_dependent( list )
que devolve um polinômioh
tal que \(h(f_1,\ldots,f_k)=0\) com \(f_1,\ldots,f_k\) sendo os elmenentos na listalist
. Se os polinômios da lista são algebricamente dependentes, a função deve devolver um polinômio não nulo. Caso contrário, a função deve devolver o polinômio nulo. - Escreva uma função
is_member_of_subalgebra( f, list )
que decide se \(f\) é membro da subálgebra gerada pelos polinômios emlist
. Caso afirmativo, a função deve devolver um polinômio \(h\) tal que \(f=h(f_1,\ldots,f_k)\) onde \(f_1,\ldots,f_k\) são os elementos delist
. Caso contrário, a função deve devolverfail
.