Álgebra I Israel Lopes Amaral Universidade Federal de Minas Gerais 19 de novembro de 2007
Lagange Lema Fatora polinômios em Z[x], utilizando uma idéia bastante simples. Esse método não é muito eficiente. Se n 0, n 1,..., n d são inteiros distintos e s 0, s 1,..., s d são inteiros arbitrários então existe um único q(x) Q[x] de grau menor ou igual a d tal que q(n i ) = s i para todo i.
Suponhamos que o polinômio h(x) seja um fator de f (x). f (x) = h(x)h (x) f (n i ) = h(n i )h (n i )
Suponhamos que o polinômio h(x) seja um fator de f (x). f (x) = h(x)h (x) f (n i ) = h(n i )h (n i ) Escolhemos os inteiros n 0, n 1,..., n d e calculamos f (n i ) para cada i. Sabemos que h(n i ) divide f (n i ) e por isso temos um número finito de possibilidades para h(n i ). Agora testamos todas as combinações possíveis!
Berlenkamp Fatora polinômios em Z p [x], p primo.
Berlenkamp Fatora polinômios em Z p [x], p primo. Todo polinômio em Z p [x] pode ser fatorado em um número finito de passos, porque existe um número finito de polinômios de grau menor ou igual a d.
Berlenkamp Fatora polinômios em Z p [x], p primo. Todo polinômio em Z p [x] pode ser fatorado em um número finito de passos, porque existe um número finito de polinômios de grau menor ou igual a d. Testar um a um: não é eficiente.
Berlenkamp Fatora polinômios em Z p [x], p primo. Todo polinômio em Z p [x] pode ser fatorado em um número finito de passos, porque existe um número finito de polinômios de grau menor ou igual a d. Testar um a um: não é eficiente. O método de fatora o polinômio traduzindo o problema para a resolução de um sistema linear e alguns mdc s.
Dado f (x) Z p [x], queremos encontrar g(x) Z p [x] tal que f divida g p g e deg(g) d 1.
Dado f (x) Z p [x], queremos encontrar g(x) Z p [x] tal que f divida g p g e deg(g) d 1. Se isso for possível, estamos bem! PEQUENO TEOREMA DE FERMAT: Para todo a Z e todo p Z primo temos a p = a (mod p).
Dado f (x) Z p [x], queremos encontrar g(x) Z p [x] tal que f divida g p g e deg(g) d 1. Se isso for possível, estamos bem! PEQUENO TEOREMA DE FERMAT: Para todo a Z e todo p Z primo temos a p = a (mod p). O polinômio h(x) = x p x tem p raízes distintas em Z p [x]. h(x) = x(x 1)... (x (p 1)).
Se g existir... Temos então g(x) p g(x) = g(x)[g(x) 1]... [g(x) (p 1)].
Se g existir... Temos então g(x) p g(x) = g(x)[g(x) 1]... [g(x) (p 1)]. Como f g p g temos que mdc(f, g p g) = f.
Se g existir... Temos então g(x) p g(x) = g(x)[g(x) 1]... [g(x) (p 1)]. Como f g p g temos que mdc(f, g p g) = f. Usando o fato de que se mdc(a, b) = 1 então mdc(f, ab) = mdc(f, a)mdc(f, b) temos: f (x) = p 1 k=0 mdc(f (x), g(x) k).
...fatoramos f! TEOREMA 1: Seja f (x) Z p [x] de grau d e g(x) Z p de grau menor ou igual a d 1 tal que f (x) g(x) p g(x). Então f (x) = p 1 k=0 mdc(f (x), g(x) k) é uma fatoração não trivial de f (x).
Como encontrar g? É possível obter g? SIM!
Como encontrar g? É possível obter g? SIM! Como encontrar g? Resolvendo um sistema de equações lineares!
Como encontrar g? É possível obter g? SIM! Como encontrar g? Resolvendo um sistema de equações lineares! Ax = 0 As soluções serão os coeficientes de g.
... Suponhamos g(x) = b 0 + b 1 x +... + b d 1 x d 1
... Suponhamos g(x) = b 0 + b 1 x +... + b d 1 x d 1 Como Z p é um corpo de característica p: g p (x) = b p 0 + bp 1 x p +... + b p d 1 x p(d 1) = b 0 + b 1 x p +... + b d 1 x p(d 1) (1)
... Suponhamos g(x) = b 0 + b 1 x +... + b d 1 x d 1 Como Z p é um corpo de característica p: g p (x) = b p 0 + bp 1 x p +... + b p d 1 x p(d 1) = b 0 + b 1 x p +... + b d 1 x p(d 1) (1) Algoritmo da divisão: x ip = f (x)q i (x) + R i (x) (2) R i (x) = R i0 + R i1 x 1 +... + R i(d 1) x d 1
... Substituindo (2) em (1) e subtraindo g de ambos os termos temos: g(x) p g(x) = b 0 R 0 (x) +... + b d 1 R d 1 g(x) + }{{} grau d 1 f (x)(b 0 q 0 (x) +... + b d 1 q d 1 (x))
... Substituindo (2) em (1) e subtraindo g de ambos os termos temos: g(x) p g(x) = b 0 R 0 (x) +... + b d 1 R d 1 g(x) + }{{} grau d 1 f (x)(b 0 q 0 (x) +... + b d 1 q d 1 (x)) Como f g p g, b 0 R 0 (x) +... + b d 1 R d 1 g(x) = 0.
Coeficientes de g Colecionando os termos b 0 R 00 + b 1 R 10 +... + b d 1 R (d 1)0 b 0 = 0 b 0 R 01 + b 1 R 11 +... + b d 1 R (d 1)1 b 1 = 0 b 0 R 0(d 1) + b 1 R 1(d 1) +... + b d 1 R (d 1)(d 1) b d 1 = 0 (Q I ) b 0 b 1. b d 1. = 0 0. 0..
Sistema linear Q = (Q I ) b 0 b 1. b d 1 = 0 0. 0. R 00 R 10 R (d 1)0 R 01 R 11 R (d 1)1...... R 0(d 1) R 1(d 1) R (d 1)(d 1)
Teorema 2 Para encontrar g tal que f g p g, devemos resolver o sistema linear b 0 0 b 1 0 (Q I ). b d 1 =. 0. Se encontarmos uma solução com deg(g) 1, então g(x) s e f (x) têm um fator comum de grau maior ou igual a um.
Vamos fatorar f (x) = 1 + x 3 + x 4 + x 5 + x 6 Z 2 [x]. Aqui temos d = 6.
Vamos fatorar f (x) = 1 + x 3 + x 4 + x 5 + x 6 Z 2 [x]. Aqui temos d = 6. PRIMEIRO PASSO: Dividir x 2i por f, i = 0, 1,..., 5. x 0 = 0.f (x) + 1 = R 0 = 1 x 2 = 0.f (x) + x 2 = R 1 = x 2 x 4 = 0.f (x) + x 4 = R 2 = x 4 x 6 = 1.f (x)+x 5 +x 4 +x 3 +1 = R 3 = x 5 +x 4 +x 3 +1 x 8 = (x 2 + x).f (x) + x 4 + x 2 + x = R 4 = x 4 + x 2 + x x 10 = (x 4 + x 3 + 1).f (x) + x 5 + 1 = R 5 = x 5 + 1
SEGUNDO PASSO: Resoluçaõ do sistema linear. 1 0 0 1 0 1 0 0 0 0 1 0 Q = 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 (Q I ) b 0 b 1. b d 1 = 0 0. 0.
Resolução do sistema: b 3 + b 5 = 0 b 1 + b 4 = 0 b 1 + b 2 + b 4 = 0 b 3 + b 5 = 0 b 2 + b 3 = 0 b 3 = 0 g(x) = x 4 + x
Resolução do sistema: b 3 + b 5 = 0 b 1 + b 4 = 0 b 1 + b 2 + b 4 = 0 b 3 + b 5 = 0 b 2 + b 3 = 0 b 3 = 0 g(x) = x 4 + x TERCEIRO PASSO: Cálculo dos mdc s. f (x) = mdc(f, x 4 +x)(f, x 4 +x+1) = (x 2 +x+1)(x 4 +x+1).
Resolução do sistema: b 3 + b 5 = 0 b 1 + b 4 = 0 b 1 + b 2 + b 4 = 0 b 3 + b 5 = 0 b 2 + b 3 = 0 b 3 = 0 g(x) = x 4 + x TERCEIRO PASSO: Cálculo dos mdc s. f (x) = mdc(f, x 4 +x)(f, x 4 +x+1) = (x 2 +x+1)(x 4 +x+1). O algoritmo utiliza O(pd 3 ) operações.
para fatoração em Z[x] Desde o desenvolvimento do algoritmo de Berlekamp para fatoração em Z p [x], os algoritmos de fatoração em Z[x] se baseiam no seguinte procedimento:
para fatoração em Z[x] Desde o desenvolvimento do algoritmo de Berlekamp para fatoração em Z p [x], os algoritmos de fatoração em Z[x] se baseiam no seguinte procedimento: 1 Reduzir ao caso em que o polinômio f não possui potências.
para fatoração em Z[x] Desde o desenvolvimento do algoritmo de Berlekamp para fatoração em Z p [x], os algoritmos de fatoração em Z[x] se baseiam no seguinte procedimento: 1 Reduzir ao caso em que o polinômio f não possui potências. 2 Escolher um primo p adequado e fatorar f p = f mod p em Z p [x].
para fatoração em Z[x] Desde o desenvolvimento do algoritmo de Berlekamp para fatoração em Z p [x], os algoritmos de fatoração em Z[x] se baseiam no seguinte procedimento: 1 Reduzir ao caso em que o polinômio f não possui potências. 2 Escolher um primo p adequado e fatorar f p = f mod p em Z p [x]. 3 Refinar a fatoração de f mod p em uma fatoração de f mod p n para um n suficientemente grande.
para fatoração em Z[x] Desde o desenvolvimento do algoritmo de Berlekamp para fatoração em Z p [x], os algoritmos de fatoração em Z[x] se baseiam no seguinte procedimento: 1 Reduzir ao caso em que o polinômio f não possui potências. 2 Escolher um primo p adequado e fatorar f p = f mod p em Z p [x]. 3 Refinar a fatoração de f mod p em uma fatoração de f mod p n para um n suficientemente grande. 4 Checar se essa fatoração resulta em um fator de f em Z[x].
para fatoração em Z[x] Desde o desenvolvimento do algoritmo de Berlekamp para fatoração em Z p [x], os algoritmos de fatoração em Z[x] se baseiam no seguinte procedimento: 1 Reduzir ao caso em que o polinômio f não possui potências. 2 Escolher um primo p adequado e fatorar f p = f mod p em Z p [x]. 3 Refinar a fatoração de f mod p em uma fatoração de f mod p n para um n suficientemente grande. 4 Checar se essa fatoração resulta em um fator de f em Z[x]. O algoritmo utiliza O(log(d) 2 d 4 ) operações.
Daniela Paula Faria, inteiros e polinômios: métodos computacionais, Monografia de Especialização em Matemática orientada pela professora Cristina Maria Marques. Maurice Mignotte, Mathematics for Computer Algebra, Springer-Verlag.