Fatoração polinomial
Na matemática e na álgebra computacional, a fatoração de polinômios ou fatoração polinomial expressa um polinômio com coeficientes em um determinado corpo ou nos inteiros como o produto de fatores irredutíveis com coeficientes no mesmo domínio. A fatoração de polinômios é um dos componentes fundamentais dos sistemas de álgebra computacional.
O primeiro algoritmo de fatoração polinomial foi publicado por Theodor von Schubert em 1793.[1] Leopold Kronecker redescobriu o algoritmo de Schubert em 1882 e o estendeu para polinômios multivariados e coeficientes em uma extensão algébrica. Mas a maior parte do conhecimento sobre esse tópico não é mais antiga que a década de 1960 e os primeiros sistemas de álgebra computacional:[2]
Quando os algoritmos de etapas finitas há muito conhecidos foram colocados pela primeira vez em computadores, eles se mostraram altamente ineficientes. O fato de que quase qualquer polinômio uni ou multivariado de grau até 100 e com coeficientes de tamanho moderado (até 100 bits) pode ser fatorado por algoritmos modernos em poucos minutos de tempo de computador indica com que sucesso esse problema foi atacado durante os últimos quinze anos. (Erich Kaltofen, 1982)
Algoritmos e computadores modernos podem fatorar rapidamente polinômios univariados de grau superior a 1000 com coeficientes de milhares de dígitos.[3] Para esse propósito, mesmo para fatoração sobre os números racionais e corpos de números, uma etapa fundamental é a fatoração de um polinômio sobre um corpo finito.
Formulação da questão
Anéis de polinômios sobre os inteiros ou sobre um corpo são domínios de fatoração única. Isso significa que cada elemento desses anéis é o produto de uma constante e um produto de polinômios irredutíveis (aqueles que não são o produto de dois polinômios não constantes). Além disso, essa decomposição é única a menos da multiplicação dos fatores por constantes invertíveis.
A fatoração depende do corpo base. Por exemplo, o teorema fundamental da álgebra, que afirma que todo polinômio com coeficientes complexos tem raízes complexas, implica que um polinômio com coeficientes inteiros pode ser fatorado (com algoritmos de busca de raízes) em fatores lineares sobre o corpo complexo C. Da mesma forma, sobre o corpo dos reais, os fatores irredutíveis têm grau no máximo dois, enquanto existem polinômios de qualquer grau que são irredutíveis sobre o corpo dos racionais Q.
A questão da fatoração polinomial só faz sentido para coeficientes em um corpo computável cujo cada elemento pode ser representado em um computador e para o qual existem algoritmos para as operações aritméticas. No entanto, essa não é uma condição suficiente: Fröhlich e Shepherdson dão exemplos de tais corpos para os quais nenhum algoritmo de fatoração pode existir.[4]
Os corpos de coeficientes para os quais algoritmos de fatoração são conhecidos incluem corpos primos (ou seja, o corpo dos números racionais e os corpos dos inteiros módulo um número primo) e suas extensões de corpo finitamente geradas. Coeficientes inteiros também são tratáveis. O método clássico de Kronecker é interessante apenas de um ponto de vista histórico; os algoritmos modernos procedem por uma sucessão de:
- Fatoração livre de quadrados
- Fatoração sobre corpos finitos
e reduções:
- Do caso multivariado para o caso univariado.
- De coeficientes em uma extensão puramente transcendental para o caso multivariado sobre o corpo base (veja abaixo).
- De coeficientes em uma extensão algébrica para coeficientes no corpo base (veja abaixo).
- De coeficientes racionais para coeficientes inteiros (veja abaixo).
- De coeficientes inteiros para coeficientes em um corpo primo com p elementos, para um p bem escolhido (veja abaixo).
== Fatoração parte primitiva-conteúdo ==
Nesta seção, mostramos que fatorar sobre Q (os números racionais) e sobre Z (os inteiros) é essencialmente o mesmo problema.
O conteúdo de um polinômio p ∈ Z[X], denotado "cont(p)", é, a menos de seu sinal, o máximo divisor comum de seus coeficientes. A parte primitiva de p é primpart(p) = p/cont(p), que é um polinômio primitivo com coeficientes inteiros. Isso define uma fatoração de p no produto de um inteiro e um polinômio primitivo. Essa fatoração é única a menos do sinal do conteúdo. É uma convenção usual escolher o sinal do conteúdo de forma que o coeficiente principal da parte primitiva seja positivo.
Por exemplo,
é uma fatoração em conteúdo e parte primitiva.
Todo polinômio q com coeficientes racionais pode ser escrito
onde p ∈ Z[X] e c ∈ Z: é suficiente tomar para c um múltiplo de todos os denominadores dos coeficientes de q (por exemplo, seu produto) e p = cq. O conteúdo de q é definido como:
e a parte primitiva de q é a de p. Como para os polinômios com coeficientes inteiros, isso define uma fatoração em um número racional e um polinômio primitivo com coeficientes inteiros. Essa fatoração também é única a menos da escolha de um sinal.
Por exemplo,
é uma fatoração em conteúdo e parte primitiva.
Gauss provou que o produto de dois polinômios primitivos também é primitivo (lema de Gauss). Isso implica que um polinômio primitivo é irredutível sobre os racionais se e somente se for irredutível sobre os inteiros. Isso implica também que a fatoração sobre os racionais de um polinômio com coeficientes racionais é a mesma que a fatoração sobre os inteiros de sua parte primitiva. Da mesma forma, a fatoração sobre os inteiros de um polinômio com coeficientes inteiros é o produto da fatoração de sua parte primitiva pela fatoração de seu conteúdo.
Em outras palavras, um cálculo de MDC de inteiros reduz a fatoração de um polinômio sobre os racionais à fatoração de um polinômio primitivo com coeficientes inteiros, e a fatoração sobre os inteiros à fatoração de um inteiro e um polinômio primitivo.
Tudo o que precede permanece verdadeiro se Z for substituído por um anel de polinômios sobre um corpo F e Q for substituído por um corpo de funções racionais sobre F nas mesmas variáveis, com a única diferença de que "a menos de um sinal" deve ser substituído por "a menos da multiplicação por uma constante invertível em F". Isso reduz a fatoração sobre uma extensão de corpo puramente transcendental de F à fatoração de polinômios multivariados sobre F.
Fatoração livre de quadrados
Se dois ou mais fatores de um polinômio são idênticos, então o polinômio é um múltiplo do quadrado desse fator. O fator múltiplo também é um fator da derivada formal do polinômio (em relação a qualquer uma das variáveis, se houver várias).
Para polinômios univariados, fatores múltiplos são equivalentes a raízes múltiplas (sobre um corpo de extensão adequado). Para polinômios univariados sobre os racionais (ou mais geralmente sobre um corpo de característica zero), o algoritmo de Yun explora isso para fatorar eficientemente o polinômio em fatores livres de quadrados, ou seja, fatores que não são um múltiplo de um quadrado, realizando uma sequência de cálculos de MDC começando com mdc(f(x), f '(x)). Para fatorar o polinômio inicial, basta fatorar cada fator livre de quadrados. A fatoração livre de quadrados é, portanto, o primeiro passo na maioria dos algoritmos de fatoração polinomial.
O algoritmo de Yun estende isso ao caso multivariado, considerando um polinômio multivariado como um polinômio univariado sobre um anel de polinômios.
No caso de um polinômio sobre um corpo finito, o algoritmo de Yun se aplica apenas se o grau for menor que a característica, porque, de outra forma, a derivada de um polinômio não nulo pode ser zero (sobre o corpo com p elementos, a derivada de um polinômio em xp é sempre zero). No entanto, uma sucessão de cálculos de MDC, partindo do polinômio e de sua derivada, permite calcular a decomposição livre de quadrados.
Métodos clássicos
Esta seção descreve os métodos dos livros didáticos que podem ser convenientes ao calcular manualmente. Esses métodos não são usados para cálculos de máquina porque usam fatoração de inteiros, que atualmente é mais lenta que a fatoração polinomial.
Os dois métodos a seguir partem de um polinômio univariado com coeficientes inteiros para encontrar fatores que também são polinômios com coeficientes inteiros.
Obtendo fatores lineares
Todos os fatores lineares com coeficientes racionais podem ser encontrados usando o teste das raízes racionais. Se o polinômio a ser fatorado é , então todos os possíveis fatores lineares são da forma , onde é um fator inteiro de e é um fator inteiro de . Todas as combinações possíveis de fatores inteiros podem ser testadas quanto à validade, e cada combinação válida pode ser fatorada usando divisão polinomial. Se o polinômio original for o produto de fatores, dos quais pelo menos dois são de grau 2 ou superior, esta técnica fornece apenas uma fatoração parcial; caso contrário a fatoração é completa. Em particular, se houver exatamente um fator não linear, ele será o polinômio que sobrar depois que todos os fatores lineares tiverem sido fatorados. No caso de um polinômio cúbico, se o cúbico for fatorável de todo, o teste da raiz racional dá uma fatoração completa, seja num fator linear e um fator quadrático irredutível, ou em três fatores lineares.
Método de Kronecker
O método de Kronecker tem como objetivo fatorar polinômios univariados com coeficientes inteiros em polinômios com coeficientes inteiros.
O método usa o fato de que avaliar polinômios inteiros em valores inteiros deve produzir inteiros. Isto é, se é um polinômio com coeficientes inteiros, então é um inteiro assim que a é um inteiro. Existe apenas um número finito de possíveis valores inteiros para um fator de a. Portanto, se é um fator de o valor de deve ser um dos fatores de
Se procurarmos todos os fatores de um dado grau d, podemos considerar valores, para a, que dão um número finito de possibilidades para a tupla Cada tem um número finito de divisores , e cada -tupla onde a entrada é um divisor de , isto é, uma tupla da forma , produz um polinômio único de grau no máximo , que pode ser calculado por interpolação polinomial. Cada um desses polinômios pode ser testado para ser um fator por divisão polinomial. Como havia finitamente muitos e cada tem finitamente muitos divisores, existem finitamente muitas dessas tuplas. Assim, uma busca exaustiva permite encontrar todos os fatores de grau no máximo d.
Por exemplo, considere
- .
Se este polinômio for fatorado sobre Z, então pelo menos um de seus fatores deve ser de grau dois ou menor, então é singularmente determinado por três valores. Assim, calculamos três valores , e . Se um desses valores for 0, temos um fator linear. Se os valores forem diferentes de zero, podemos listar as fatorações possíveis para cada um. Agora, 2 só pode ser fatorado como
- 1×2, 2×1, (−1)×(−2), ou (−2)×(−1).
Portanto, se um fator polinomial inteiro de segundo grau existir, ele deve assumir um dos valores
- p(0) = 1, 2, −1, ou −2
e da mesma forma para p(−1). Existem oito fatorações de 6 (quatro cada para 1×6 e 2×3), perfazendo um total de 4×4×8 = 128 possíveis triplos (p(0), p(1), p(−1)), das quais a metade pode ser descartada como as negativas da outra metade. Assim, devemos verificar 64 polinômios inteiros explícitos como possíveis fatores de . Testá-los exaustivamente revela que
construído a partir de (g(0), g(1), g(−1)) = (1,3,1) fatora .
Dividindo f(x) por p(x) dá o outro fator , de modo que . Agora pode-se testar recursivamente para encontrar fatores de p(x) e q(x), neste caso usando o teste das raízes racionais. Acontece que ambos são irredutíveis, então a fatoração irredutível de f(x) é:[5]
Métodos modernos
Fatorando polinômios univariados sobre os inteiros
Se é um polinômio univariado sobre os inteiros, suposto ser livre de conteúdo e livre de quadrados, começa-se calculando um limite de tal modo que qualquer fator tenha coeficientes de valor absoluto limitados por . Desta forma, se for um inteiro maior que , e se for conhecido módulo , então pode ser reconstruído a partir da sua imagem mod .
O algoritmo de Zassenhaus procede da seguinte forma. Em primeiro lugar, escolhe-se um número primo de tal modo que a imagem de permaneça livre de quadrados, e com o mesmo grau que . Uma escolha aleatória quase sempre satisfará estas restrições, uma vez que apenas um número finito de números primos não as satisfazem, nomeadamente os divisores primos do produto do discriminante e do coeficiente principal do polinómio. Então fatora-se . Isto produz os polinômios inteiros cujo produto corresponde a . Em seguida, aplica-se a elevação de Hensel; esta atualiza os de tal forma que o seu produto corresponde a , onde é grande o suficiente para que exceda : assim cada corresponde a um polinômio inteiro bem definido. Módulo , o polinômio tem fatores (a menos de unidades): os produtos de todos os subconjuntos de . Estes fatores módulo não têm de corresponder aos "verdadeiros" fatores de em , mas podemos testá-los facilmente por divisão em . Desta forma, todos os fatores verdadeiros irredutíveis podem ser encontrados testando no máximo casos, reduzidos para casos saltando os complementos. Se é redutível, o número de casos reduz-se ainda mais, retirando os que aparecem num fator verdadeiro já encontrado. O algoritmo de Zassenhaus processa cada caso (cada subconjunto) rapidamente, no entanto, no pior caso, ele considera um número exponencial de casos.
O primeiro algoritmo de tempo polinomial para fatorar polinômios racionais foi descoberto por Lenstra, Lenstra e Lovász e é uma aplicação do algoritmo de redução de base de reticulado Lenstra–Lenstra–Lovász (LLL).[6]
Uma versão simplificada do algoritmo de fatoração LLL é a seguinte: calcule uma raiz complexa (ou p-ádica) α do polinômio com alta precisão e, em seguida, use o algoritmo de redução de base de reticulado Lenstra–Lenstra–Lovász para encontrar uma relação linear aproximada entre 1, α, α2, α3, ... com coeficientes inteiros, que pode ser uma relação linear exata e um fator polinomial de . Pode-se determinar um limite para a precisão que garanta que esse método produza um fator ou uma prova de irredutibilidade. Embora este método termine em tempo polinomial, ele não é usado na prática porque a matriz tem uma dimensão alta e entradas enormes, o que torna o cálculo lento.
A complexidade exponencial no algoritmo de Zassenhaus vem de um problema combinatório: como selecionar os subconjuntos certos de . As implementações de fatoração modernas funcionam de maneira semelhante a Zassenhaus, exceto que o problema combinatório é traduzido em um problema de reticulado que é então resolvido por LLL.[7] Nesta abordagem, o LLL não é usado para computar coeficientes de fatores, mas sim para computar vetores com entradas em {0,1} que codificam os subconjuntos de correspondentes aos verdadeiros fatores irredutíveis.
Fatoração sobre extensões algébricas (método de Trager)
Podemos fatorar um polinômio , onde o corpo é uma extensão finita de . Primeiro, usando a fatoração livre de quadrados, podemos supor que o polinômio seja livre de quadrados. Em seguida, definimos o anel quociente de grau ; isto não é um corpo a menos que seja irredutível, mas é um anel reduzido uma vez que é livre de quadrados. De fato, se
for a fatoração desejada de p(x), o anel decompõe-se unicamente em corpos como:
Encontraremos esta decomposição sem conhecer a fatoração. Primeiro, escrevemos L explicitamente como uma álgebra sobre : escolhemos um elemento aleatório , que gera sobre com alta probabilidade pelo teorema do elemento primitivo. Se for este o caso, podemos calcular o polinômio mínimo de sobre , encontrando uma relação -linear entre 1, α, ... , αn. Usando um algoritmo de fatoração para polinômios racionais, fatoramos em polinômios irredutíveis em :
Assim temos:
onde corresponde a . Isso deve ser isomorfo à decomposição anterior de .
Os geradores de L são x juntamente com os geradores de sobre ; escrevendo-os como polinômios em , podemos determinar os mergulhos de e em cada componente . Encontrando o polinômio mínimo de em , calculamos e assim fatoramos sobre
Polinômios ao quadrado
Fatorando um polinômio ao quadrado nas suas raízes quadradas
Em geral, a maioria dos polinômios não tem raízes quadradas. No entanto, algumas aplicações, como a função de engenheiros elétricos para a obtenção dos parâmetros Y de uma impedância do ponto de acionamento de uma rede de duas portas,[8] utilizam polinômios quadrados que devem ser fatorados em dois polinômios de raiz quadrada idênticos. O algoritmo abaixo irá fatorar um polinômio quadrado, , em duas raízes polinomiais idênticas, , usando um exemplo do Mathematics Stack Exchange.[9][10]
Passos:
Passo 1: Calcule a raiz quadrada do termo principal, , e coloque-o, , no termo principal da linha de solução do polinômio R no topo e coloque o termo na linha 1 logo abaixo do polinômio a ser fatorado, como mostrado.
Passo 2: Subtraia o recém-colocado do polinômio a ser fatorado e baixe os dois termos seguintes para a linha 2.
Passo 3: Duplique o estado atual da solução do polinômio R, adicione um novo termo, Q, de modo que R(2Q+R) negue o termo principal da linha 2, e coloque o negativo de R(2Q+R) no espaço inferior da linha 2.
Passo 4: Subtraia os dois números da linha 2, coloque o resultado na linha 3 e traga para baixo os próximos dois termos da linha 1 para a linha 3.
Passo 5: Repita para todas as linhas e colunas restantes até completar.
Quando concluído, a solução do polinômio R aparecerá na coluna R da tabela do lado esquerdo e na linha R da tabela do lado direito.
Solução geral da raiz quadrada de polinômio
O algoritmo de raiz quadrada de polinômio acima pode ser resumido e generalizado em sintaxe matemática padrão para uso na extração de raízes quadradas de polinômios ao quadrado de qualquer tamanho, e é facilmente traduzido para linguagens de computador para uso em computações rápidas. Se o termo de maior ordem do polinômio ao quadrado não for 1, o polinômio deve primeiro ser pré-processado pela sua divisão com o valor do termo de maior ordem e, em seguida, os fatores polinomiais extraídos devem ser pós-processados multiplicando-os com a raiz quadrada desse mesmo valor. O resumo matemático generalizado é:
.
Note que assim que for calculado para , o polinômio R terá sido concluído e os seguintes cálculos de e poderão ser negligenciados, visto que os resultados já não são utilizados a partir desse ponto. No entanto, se executados, os resultados podem ser utilizados como uma verificação de validade para garantir que o polinômio S é um polinômio quadrático e que o algoritmo foi executado corretamente garantindo que os valores finais dos vetores T e D são idênticos, como se vê na tabela.
Fatoração numérica
A "fatoração numérica" se refere comumente à fatoração de polinômios com coeficientes reais ou complexos, cujos coeficientes são apenas aproximadamente conhecidos, geralmente porque são representados como números de ponto flutuante.
Para polinômios univariados com coeficientes complexos, a fatoração pode facilmente ser reduzida à computação numérica de raízes polinomiais e multiplicidades.
No caso multivariado, uma perturbação infinitesimal aleatória dos coeficientes produz com probabilidade um um polinômio irredutível, mesmo quando se parte de um polinômio com muitos fatores. Portanto, o próprio significado de fatoração numérica precisa ser esclarecido com precisão.
Seja um polinômio com coeficientes complexos com uma fatoração irredutível
onde e os fatores são polinômios irredutíveis com coeficientes complexos. Suponha que seja aproximado através de um polinômio cujos coeficientes estão próximos aos de . A fatoração exata de não tem sentido, pois é geralmente irredutível. Existem várias definições possíveis do que pode ser chamado de fatoração numérica de
Se e os 's são conhecidos, uma fatoração aproximada consiste em encontrar um polinômio próximo a que seja fatorado como acima. Se o esquema de fatoração não for conhecido, identificar torna-se necessário. Por exemplo, o número de fatores irredutíveis de um polinômio é a nulidade da sua matriz de Ruppert.[11] Assim, as multiplicidades podem ser identificadas por uma fatoração livre de quadrados via computação de MDC numérico e revelação de posto em matrizes de Ruppert.
Vários algoritmos foram desenvolvidos e implementados para a fatoração numérica, sendo este um tema de investigação contínua.[12][13]
Fator Comum
Colocar o termo em evidência é a fatoração que consiste em destacar o termo comum e colocar os outros em evidência (entre parênteses).
Agrupamento
Agrupamento é a fatoração em que agrupa-se de forma conveniente os fatores comuns, primeiramente relacionando-os em evidência e depois colocando a especificidade da multiplicação polinomial.
Trinômio quadrado perfeito
Trinômio quadrado perfeito é quando forma um polinômio com três termos e o 1° tanto como o 3° termo devem ser quadrados perfeitos, ou seja, conter uma raiz quadrada exata, formando um quadrado. O segundo termo deve ser par (por ser um múltiplo de 2).
Diferença de quadrados
Pelo produto notável: Produto de uma soma indicada pela diferença indicada, os dois termos devem ser quadrados (raiz quadrada exata). Dessa forma, haverá a multiplicação indireta dos resultados das raízes.
Soma de dois cubos
A soma de dois cubos é quando realiza a adição por um trinômio formado gerando triângulos perfeitos (números que contém a raiz cúbica exata).
Diferença de dois cubos
A diferença de dois cubos é o inverso do resultado da multiplicação direta à multiplicação indireta, gerada um binômio a um trinômio quadrado perfeito.
Sucessividade
A sucessividade polinomial (ou fatoração sucessivas de evidências) é o ato de fatorar o polinômio quadrado da diferença indicada após fatorar o termo em evidência e formar ainda, termos comuns.
Cálculo de MMC
Fatoração pelo cálculo MMC (ou ainda, cálculo algébrico polinomial do minímo múltiplo comum) é denominar o MMC dos coeficientes de um termo e depois pelo outro e dividir a parte literal.
Equação-produto
Equação-produto é denominar o resultado da multiplicação por 0.
Ver também
- Fatoração (polinômios), para métodos heurísticos elementares e fórmulas explícitas
- Polinômios de Swinnerton-Dyer, uma família de polinômios tendo o pior tempo de execução para o método Zassenhaus
Referências
- ↑ FT Schubert: De Inventione Divisorum Nova Acta Academiae Scientiarum Petropolitanae v.11, pp. 172–182(1793)
- ↑ Kaltofen (1982)
- ↑ Um exemplo de grau 2401, levando 7,35 segundos, é encontrado na Seção 4 em: Hart, van Hoeij, Novocin: Practical Polynomial Factoring in Polynomial Time ISSAC'2011 Proceedings, pp. 163–170 (2011).
- ↑ Fröhlich, A.; Shepherdson, J. C. (1955). «On the factorisation of polynomials in a finite number of steps». Mathematische Zeitschrift. 62 (1): 331–334. ISSN 0025-5874. doi:10.1007/bf01180640 Verifique o valor de
|url-access=subscription(ajuda) - ↑ Van der Waerden, Sections 5.4 and 5.6
- ↑ Lenstra, A. K.; Lenstra, H. W.; Lovász, László (1982). «Factoring polynomials with rational coefficients». Mathematische Annalen. 261 (4): 515–534. CiteSeerX 10.1.1.310.318
. ISSN 0025-5831. MR 682664. doi:10.1007/BF01457454 - ↑ M. van Hoeij: Factoring polynomials and the knapsack problem. Journal of Number Theory, 95, 167–189, (2002).
- ↑ Kinayman, Noyan; Aksun, M. I. (2005). Modern Microwave Circuits. 685 Canton Street, Norwood, MA, US: Artech House. pp. 130–131, 510. ISBN 1-58053-725-1
- ↑ Steven Alexis Gregory (https://math.stackexchange.com/users/75410/steven-alexis-gregory), Algorithm for finding the square root of a polynomial..., URL (version: 2018-07-10): https://math.stackexchange.com/q/1854191
- ↑ Steven Alexis Gregory (https://math.stackexchange.com/users/75410/steven-alexis-gregory), How to find the Square Root of a Polynomial, URL (version: 2021-05-21): https://math.stackexchange.com/q/4146459
- ↑ Ruppert, W. (1999). «Reducibility of polynomials f(x,y)». J. Number Theory. 77: 62–70. arXiv:math/9808021
. doi:10.1006/jnth.1999.2381Shaker, H. (2009). «Topology and factorization of polynomials». Math. Scand. 104: 51–59. arXiv:0704.3363
. doi:10.7146/math.scand.a-15084 - ↑ Para exemplo: W. Wu and Z. Zeng (2017). «The numerical factorization of polynomials». Foundations of Computational Mathematics. 17: 259–286. arXiv:2103.04888
. doi:10.1007/s10208-015-9289-1 - ↑ E. Kaltofen, J.P. May, Z. Yang and L. Zhi (2008). «Approximate factorization of multivariate polynomials using singular value decomposition». J. Symbolic Comput. 43 (5): 359–376. doi:10.1016/j.jsc.2007.11.005

Bibliografia
- Fröhlich, A.; Shepherson, J. C. (1955), «On the factorisation of polynomials in a finite number of steps», Mathematische Zeitschrift, ISSN 0025-5874, 62 (1): 331–334, doi:10.1007/BF01180640
- Trager, B.M. (1976). «Algebraic factoring and rational function integration». Proceedings of the third ACM symposium on Symbolic and algebraic computation - SYMSAC '76. [S.l.: s.n.] pp. 219–226. ISBN 9781450377904. doi:10.1145/800205.806338
- Bernard Beauzamy, Per Enflo, Paul Wang (Outubro de 1994). «Quantitative Estimates for Polynomials in One or Several Variables: From Analysis and Number Theory to Symbolic and Massively Parallel Computation». Mathematics Magazine. 67 (4): 243–257. JSTOR 2690843. doi:10.2307/2690843 (acessível para leitores com graduação em matemática)
- Cohen, Henri (1993). A course in computational algebraic number theory. Col: Graduate Texts in Mathematics. 138. Berlin, New York: Springer-Verlag. ISBN 978-3-540-55640-4. MR 1228206
- Kaltofen, Erich (1982), «Factorization of polynomials», in: B. Buchberger; R. Loos; G. Collins, Computer Algebra, Springer Verlag, pp. 95–113, CiteSeerX 10.1.1.39.7916

- Knuth, Donald E (1997). «4.6.2 Factorization of Polynomials». Seminumerical Algorithms. Col: The Art of Computer Programming. 2 Terceira ed. Reading, Massachusetts: Addison-Wesley. pp. 439–461, 678–691. ISBN 978-0-201-89684-8
- Van der Waerden, Algebra (1970), trans. Blum and Schulenberger, Frederick Ungar.
Leitura adicional
- Kaltofen, Erich (1990), «Polynomial Factorization 1982-1986», in: D. V. Chudnovsky; R. D. Jenks, Computers in Mathematics, Lecture Notes in Pure and Applied Mathematics, 125, Marcel Dekker, Inc., CiteSeerX 10.1.1.68.7461

- Kaltofen, Erich (1992), «Polynomial Factorization 1987–1991» (PDF), Proceedings of Latin '92, Springer Lect. Notes Comput. Sci., 583, Springer, consultado em 14 de outubro de 2012
- Ivanyos, Gabor; Marek, Karpinski; Saxena, Nitin (2009). «Schemes for deterministic polynomial factoring». Proceedings of the 2009 international symposium on Symbolic and algebraic computation. [S.l.: s.n.] pp. 191–198. ISBN 9781605586090. arXiv:0804.1974
. doi:10.1145/1576702.1576730