sobre a integração indefinida de funções racionais ... · universidade federal do rio grande do...

176
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA PROGRAMA DE PÓS-GRADUAÇÃO EM MATEMÁTICA APLICADA E ESTATÍSTICA Daniel de Souza Grilo Sobre a Integração Indefinida de Funções Racionais Complexas: teoria e implementação de algoritmos racionais Natal 2015

Upload: buithuy

Post on 10-Nov-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTECENTRO DE CIÊNCIAS EXATAS E DA TERRA

PROGRAMA DE PÓS-GRADUAÇÃO EM MATEMÁTICAAPLICADA E ESTATÍSTICA

Daniel de Souza Grilo

Sobre a Integração Indefinida de FunçõesRacionais Complexas: teoria e

implementação de algoritmos racionais

Natal2015

Page 2: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica
Page 3: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Daniel de Souza Grilo

Sobre a Integração Indefinida de FunçõesRacionais Complexas: teoria e

implementação de algoritmos racionais

Dissertação apresentada ao Pro-grama de Pós-graduação em Ma-temática Aplicada e Estatísticada Universidade Federal do RioGrande do Norte, para a obtençãode Título de Mestre em MatemáticaAplicada, na Área de ComputaçãoAlgébrica.

Orientador: Nir Cohen

Natal2015

Page 4: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

ii

Grilo, Daniel de S.Sobre a Integração Indefinida de Funções Racionais

Complexas: teoria e implementação de algoritmos racio-nais

162 páginasDissertação (Mestrado) - Programa de Pós-

graduação em Matemática Aplicada e Estatística da Uni-versidade Federal do Rio Grande do Norte. Centro deCiências Exatas e da Terra. Departamento de Matemá-tica.

1. Integração indefinida

2. Funções racionais

3. Algoritmos

I. Universidade Federal do Rio Grande do Norte. Centrode Ciências Exatas e da Terra. Departamento de Ma-temática. Programa de Pós-graduação em MatemáticaAplicada e Estatística.

Comissão Julgadora:

Prof. Dr. Prof. Dr.Examinador Interno Examinador Externo

Prof. Dr. Nir CohenPresidente

Page 5: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

iii

Dedicado a minha família e, in memoriam, aManuel Eric Bronstein e

Petrus Thomas Ratajczyk.

Page 6: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

iv

Agradecimentos

À Alma Mater e ao PPgMAE/UFRN que me abençoaram e nutriram tantocom saber quanto com trabalho.

Em seguida, agradeço a todos os mestres que contribuíram para o meu co-nhecimento acadêmico, em especial aqueles que me influenciaram diretamente naelaboração deste trabalho. Nominalmente, os Professores Doutores Nir Cohen, Ed-gar Silva Pereira, Roberto Hugo Bielschowsky, Marcelo Ferreira Siqueira e VilmarTrevisan.

Agradeço ainda aos coordenadores e vice-coordenadores do PPgMAE/UFRNde todos os tempos, pela disposição nobre em cuidar de um programa de pós-graduação. Uma missão nada trivial. Em especial, agradeço às Professoras Dou-toras Carla Almeida Vivacqua e Elaine Gouvea Pimentel, por todo o suportedado.

Finalmente, agradeço a todos com quem convivo: meus colegas de curso, meusamigos, minha família e, acima de tudo, àqueles a quem dedico este trabalho,especialmente minha mãe Márcia Barros de Souza, meu pai José Arimatéia Pi-taguares Grilo, minha irmã Lara de Souza Barreto e minha amada noiva AnaHelena Almeida Libanio de Araújo.

Page 7: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

v

Resumo

Apresentamos algoritmos de integração indefinida de funções racionais sobresubcorpos dos complexos, a partir de uma abordagem algébrica. Estudamos oalgoritmo local de Bernoulli e algoritmos racionais de integração para a classe defunções em questão, a saber, os algoritmos de Hermite; Horowitz-Ostrogradsky;Rothstein-Trager e Lazard-Rioboo-Trager. Estudamos também o algoritmo de Ri-oboo para conversão de logaritmos envolvendo extensões complexas para funçõesarco tangente reais, quando estes logaritmos surgem da integração de funçõesracionais com coeficientes reais. Concluímos fornecendo pseudocódigos e códigospara implementação no software Maxima relativos aos algoritmos estudados nestetrabalho, e, além disso, a algoritmos para cálculo de mdc de polinômios; decompo-sição em frações parciais; fatoração livres de quadrados; cálculo de subresultantes,entre outros algoritmos acessórios ao trabalho. Será também apresentado noapêndice o algoritmo de Zeilberger-Almkvist para integração de funções hiperex-ponenciais, bem como seu pseudocódigo e código para Maxima. Como alternativaaos algoritmos de Rothstein-Trager e Lazard-Rioboo-Trager, apresentamos aindaum código para o algoritmo de Bernoulli para denominadores livres de quadrados;e outro para o algoritmo de Czichowski, ainda que este não seja estudado emdetalhes no trabalho, devido às bases teóricas necessárias para o seu entendimento,as quais se encontram fora do escopo deste trabalho.

Diversos exemplos são fornecidos de modo a demonstrar o o funcionamentodos algoritmos de integração deste trabalho.

Palavras-chave: Integração Indefinida; Funções Racionais; Algoritmos.

Page 8: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

vi

Abstract

We present indefinite integration algorithms for rational functions over sub-fields of the complex numbers, through an algebraic approach. We study the localalgorithm of Bernoulli and rational algorithms for the class of functions in concern,namely, the algorithms of Hermite; Horowitz-Ostrogradsky; Rothstein-Trager andLazard-Rioboo-Trager. We also study the algorithm of Rioboo for conversion oflogarithms involving complex extensions into real arctangent functions, whenthese logarithms arise from the integration of rational functions with real coef-ficients. We conclude presenting pseudocodes and codes for implementation inthe software Maxima concerning the algorithms studied in this work, as well asto algorithms for polynomial gcd computation; partial fraction decomposition;squarefree factorization; subresultant computation, among other side algorithmsfor the work. We also present the algorithm of Zeilberger-Almkvist for integrationof hyperexpontential functions, as well as its pseudocode and code for Maxima. Asan alternative for the algorithms of Rothstein-Trager and Lazard-Rioboo-Trager,we yet present a code for Benoulli’s algorithm for square-free denominators; andanother for Czichowski’s algorithm, although this one is not studied in detail inthe present work, due to the theoretical basis necessary to understand it, whichis beyond this work’s scope.

Several examples are provided in order to illustrate the working of the inte-gration algorithms in this text

Keywords: Indefinite Integration; Rational Functions; Algorithms.

Page 9: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Lista de Figuras

4.1 Gráfico de 𝑓 próximo do intervalo [−5/4,− 3/4]. . . . . . . . . . . 684.2 Gráfico da forma descontínua de ∫ 𝑓 = 𝐹1(𝑥). . . . . . . . . . . . 704.3 Gráfico de ∫ 𝑓 = 𝐹2(𝑥). . . . . . . . . . . . . . . . . . . . . . . . . 724.4 Comparação das formas contínua e descontínua de ∫ 𝑓 . . . . . . . 734.5 Comparação das formas contínua e descontínua de ∫ 𝑓 . . . . . . . 78

Page 10: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Lista de Figuras viii

Page 11: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Sumário

1 Introdução 11.1 Motivação e Objetivos do Trabalho . . . . . . . . . . . . . . . . . 11.2 Histórico do Problema Abordado . . . . . . . . . . . . . . . . . . 21.3 Visão Geral dos Capítulos e Seções . . . . . . . . . . . . . . . . . 61.4 Esclarecimentos Acerca do Presente Texto . . . . . . . . . . . . . 8

2 Noções Preliminares 112.1 Resultantes e Sequências de Restos Polinomiais . . . . . . . . . . 11

2.1.1 Resultantes e Subresultantes . . . . . . . . . . . . . . . . . 112.1.2 Sequências de Restos Polinomiais . . . . . . . . . . . . . . 15

2.2 Fatoração Livre de Quadrados . . . . . . . . . . . . . . . . . . . . 18

3 Integração Indefinida de Funções Racionais Complexas 253.1 O Algoritmo de Bernoulli . . . . . . . . . . . . . . . . . . . . . . 25

3.1.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.2 O Algoritmo de Hermite . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.1 Versão Original do Algoritmo de Hermite . . . . . . . . . . 293.2.2 Versão Quadrática do Algoritmo de Hermite . . . . . . . . 303.2.3 Versão Linear do Algoritmo de Hermite . . . . . . . . . . . 313.2.4 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3 O Algoritmo de Horowitz-Ostrogradsky . . . . . . . . . . . . . . . 363.3.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.4 O Algoritmo de Rothstein-Trager . . . . . . . . . . . . . . . . . . 393.4.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.5 O Algoritmo de Lazard-Rioboo-Trager . . . . . . . . . . . . . . . 50

Page 12: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Sumário x

3.5.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4 Integração Indefinida de Funções Racionais Reais 594.1 O Algoritmo de Rioboo para Funções Racionais Reais . . . . . . . 60

4.1.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5 Pseudocódigos e Códigos em Maxima 795.1 Funções para Manipulação de Polinômios . . . . . . . . . . . . . . 80

5.1.1 Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805.1.2 LC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.1.3 Mon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.1.4 Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.1.5 RPoly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.2 MDC de Polinômios e Resultantes . . . . . . . . . . . . . . . . . . 835.2.1 PDiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.2.2 PPsDiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.2.3 GCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.2.4 ExGCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.2.5 HExGCD . . . . . . . . . . . . . . . . . . . . . . . . . . . 875.2.6 HFExGCD . . . . . . . . . . . . . . . . . . . . . . . . . . 885.2.7 DioExGCD . . . . . . . . . . . . . . . . . . . . . . . . . . 885.2.8 DioHExGCD . . . . . . . . . . . . . . . . . . . . . . . . . 895.2.9 DioHFExGCD . . . . . . . . . . . . . . . . . . . . . . . . 905.2.10 SubRes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.2.11 Normalize . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.3 Fatorações e Frações Parciais . . . . . . . . . . . . . . . . . . . . 945.3.1 LFactor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945.3.2 SQFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945.3.3 PFrac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5.4 Hermite e Horowitz . . . . . . . . . . . . . . . . . . . . . . . . . . 975.4.1 HermO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975.4.2 HermQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985.4.3 HermL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Page 13: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

xi Sumário

5.4.4 HorOstro . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.5 Logaritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.5.1 Bern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025.5.2 RothTra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055.5.3 LaRiTra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065.5.4 Czi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

5.6 Conversão Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105.6.1 Classic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105.6.2 Rioboo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105.6.3 Rioboo2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

5.7 Manipuladores de Extensões Algébricas . . . . . . . . . . . . . . . 1125.7.1 NoSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125.7.2 DomSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135.7.3 LinSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135.7.4 QuadSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145.7.5 CubeSolve . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145.7.6 Solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.7.7 RHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175.7.8 SolveSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175.7.9 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.7.10 VerifyRatSols . . . . . . . . . . . . . . . . . . . . . . . . . 118

5.8 Montagem de Integrais de Funções Racionais . . . . . . . . . . . . 1195.8.1 RealLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.8.2 ComplLog . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215.8.3 InertLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.8.4 GenList . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245.8.5 IRF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

6 Considerações Finais 1316.1 A Integração de Funções Elementares . . . . . . . . . . . . . . . . 1316.2 O Cenário da Computação Algébrica . . . . . . . . . . . . . . . . 1326.3 Referências em Computação Algébrica . . . . . . . . . . . . . . . 1336.4 Acerca dos Códigos para Implementação em Maxima . . . . . . . 134

Page 14: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Sumário xii

A Integração de Funções Hiperexponenciais 143A.1 O Algoritmo de Almkvist-Zeilberger . . . . . . . . . . . . . . . . . 143

A.1.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 150A.2 Pseudocódigos e Códigos para o Algoritmo de Almkvist-Zeilberger 158

A.2.1 DenMult . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158A.2.2 IHF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Page 15: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 1

Introdução

1.1 Motivação e Objetivos do Trabalho

O problema da integração indefinida de funções é, como conhecemos, aquelede encontrar uma função cuja derivada seja precisamente aquela função quese integra. Por isto, este também é chamado de problema da antiderivação. Oprimeiro contato que se tem com este problema geralmente se dá durante os cursosde Cálculo. Nesta ocasião, o estudante, via de regra, é apresentado a diversastécnicas de integração que, na maior parte das vezes, necessitam de uma medida deintuição e heurística para que possam ser utilizadas de maneira apropriada. Nãoraro, o processo de integração acaba por depender fortemente de uma mudança devariável adequada, ou se resume à detecção de algum padrão do integrando queindique qual expressão dentro de uma tabela de integrais é a solução do problema.

Porém, quando queremos automatizar processos com eficiência através deimplementações em máquinas, apesar de podermos desenvolver códigos heurísticos,o mais desejável é que se busque por algoritmos de terminação finita que nãocontem com recursos que seriam próprios do uso da razão, e que possam ser bemdelimitados por um conjunto finito de tarefas sequenciadas.

Felizmente, o problema da integração de funções pode, de fato, ser automati-zado de maneira não heurística para certas classes de integrandos. Neste trabalho,mostraremos como isto pode ser feito para o caso simples em que o integrando éuma função racional complexa, isto é, a razão entre dois polinômios complexos.

Page 16: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 1. Introdução 2

A intenção é expor uma teoria introdutória sobre o problema (e resolução) daintegração indefinida de funções à luz da Computação Algébrica, utilizando algo-ritmos que são usados ainda hoje em diversos Sistemas de Computação Algébrica(doravante CAS — do inglês, Computer Algebra System). A resolução algorít-mica do problema da integração de funções racionais é o ponto de partida parase entender como buscar uma solução, nas mesmas condições, para o problemamais geral da integração de funções elementares — uma classe de funções queengloba o conjunto das funções racionais.

Os algoritmos abordados neste trabalho, com exceção do algoritmo de Ber-noulli, são classificados como algoritmos racionais, no sentido de que, no curso desua execução, não requerem fatorações completas do denominador do integrandoe evitam introduções de constantes algébricas desnecessárias à resolução do pro-blema, tanto na representação final da integral, quanto durante os cálculos. Alémdisso, a base de seu funcionamento são as operações de corpo, isto é, as quatrooperações aritméticas básicas aplicadas, neste contexto, a polinômios. Isto é per-cebido de maneira muito forte nos constantes cálculos de mdc entre polinômiosque serão realizados.

O desenvolvimento teórico do presente trabalho baseia-se em conceitos dateoria de Álgebra Abstrata. No que concerne a esta teoria, o que for omitido aquipoderá ser encontrado entre os capítulos de I a IV, VII e IX de [16].

1.2 Histórico do Problema Abordado

Segundo M. Ostrogradsky [26], tanto Newton quanto Leibniz tentaram desenvol-ver métodos de integração indefinida para funções racionais reais, sem obteremêxito completo. A abordagem utilizada por Leibniz consistia em fatorar o de-nominador do integrando sobre os reais, realizar a decomposição completa emfrações parciais e integrar parcela a parcela. Ele obteve sucesso em calcular aintegral de quaisquer termos com denominadores lineares (a menos de uma po-tência) na decomposição em frações parciais, mas não conseguiu o mesmo paraos denominadores quadráticos de maneira completa.

Continuando os esforços de Leibniz, J. Bernoulli consegue resolver o subpro-blema da integração de termos com denominadores quadráticos, publicando, no

Page 17: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

3 1.2. Histórico do Problema Abordado

Acta Eruditorum de 1703, o que se acredita ser o algoritmo de terminação finitamais antigo para a integração de funções racionais de que se tem registro [21, Cap.IX, p. 353], o qual é lecionado ainda hoje em grande parte dos cursos de Cálculo.

Infelizmente, este método, apesar de bastante simples, apresenta uma dificul-dade computacional proibitiva, que acaba por fazer com que, na prática, ele nãoseja utilizado com frequência. A dificuldade em questão é a necessidade de sesaber a fatoração completa do denominador do integrando sobre os reais (o que,não raro, pode recorrer a expressões envolvendo muitas extensões algébricas) edecompor o integrando em frações parciais completas com esta dada fatoração (oque requer muitas operações aritméticas envolvendo diversos termos algébricosdistintos). Por outro lado, além de uma importância histórica, este método possuiuma importância teórica que motiva o seu estudo. Ele é capaz de explicitar aintegral de uma função racional com coeficientes reais como sendo a soma en-tre uma parte racional real — uma função racional real que dispensa quaisquerextensões algébricas com unidade imaginária —, e outra parte transcendentalreal — formada por somas de logaritmos e arcos tangentes de polinômios comcoeficientes reais. Desse modo, a integral de uma função racional real obtida pelométodo de Bernoulli é ainda contínua no intervalo de definição do integrando, demodo que o Teorema Fundamental do Cálculo pode ser aplicado corretamentepara o cálculo da integral definida da função original, qualquer que seja o inter-valo de integração. O método possui ainda uma variante para funções racionaiscom coeficientes complexos em geral, em qual caso, a parte racional vem a serainda uma função racional complexa e a parte transcendental pode ser expressaapenas como uma combinação linear com coeficientes complexos de logaritmosde polinômios com coeficientes complexos.

Diante destas considerações, a pesquisa por métodos alternativos de integraçãode funções racionais prosseguiu, de modo que, no século XIX, este problema jáconsistia numa área de pesquisa ativa. Em 1845, M. Ostrogradsky [26] propôsum método de integração que dispensa qualquer tipo de fatoração (mais ainda,dispensa qualquer decomposição em frações parciais e introdução de númerosalgébricos durante os cálculos) e que é capaz de calcular completamente a parteracional da integral de uma função racional utilizando o corpo de constantes ori-ginal do integrando, deixando a parte transcendental inerte. Mais precisamente,

Page 18: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 1. Introdução 4

o método expressa a parte transcendental como sendo a integral não calculadade um novo integrando racional completamente determinado e cujo denominadoré livre de quadrados (dito de outro modo, todas as suas raízes possuem multipli-cidade 1). Este era o método ensinado nas escolas russas naquela época e estápresente em textos de Análise russos mais antigos [10, Cap. VIII, §2]. Foi redes-coberto por E. Horowitz no século XX, que também apresentou detalhadamenteum estudo sobre a sua complexidade [13], razão pela qual o método recebe, hoje,o nome de algoritmo de Horowitz-Ostrogradsky.

Porém, no restante do mundo, outros métodos foram descobertos e ensinados.Um método notável também descoberto no século XIX é o algoritmo de Hermite.Foi publicado em 1872 [12].

Essencialmente, tanto o método de Ostrogradsky quanto o método de Her-mite produzem os mesmos resultados. A diferença é que o primeiro condiciona oproblema da integração à resolução de um sistema linear para explicitar tanto aparte racional quanto o integrando da parte transcendental, enquanto o segundo,originalmente, utiliza fatorações livres de quadrados do denominador, decomposi-ção em frações parciais do integrando e a resolução de uma equação diofantinade polinômios para “retirar partes” do integrando a cada passo e construir aparte a parte racional sucessivamente, deixando aquilo que não pode ser “retirado”para formar o integrando da parte transcendental (este processo ocasiona suces-sivas reduções de potência do denominador de cada parcela das frações parciais,razão pela qual o método de Hermite é chamado de redução). O modo comocada algoritmo trabalha reflete apenas na forma final da expressão, mas não navalidade.

Duas melhorias podem ser feitas ao método de Hermite. A primeira dispensaa necessidade de se decompor o integrando em frações parciais e é conhecidacomo versão quadrática do método de Hermite. A segunda dispensa ainda anecessidade prévia de se conhecer a fatoração livre de quadrados do denominador

— esta é calculada a cada passo do processo —, sendo conhecida como versãolinear do mesmo método e foi proposta por D. Mack [22]. Tais nomenclaturasderivam da própria complexidade destas versões [2, Cap. 2, §2]. Mantêm, contudo,o caráter de redução.

Embora os métodos de Ostrogradsky e Hermite não contem com fatorações

Page 19: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

5 1.2. Histórico do Problema Abordado

completas do denominador e calculem de maneira satisfatória a parte racionalda integral utilizando somente operações de corpo (isto é, sem introduzir novasextensões algébricas no corpo de constantes, nem introduzindo funções transcen-dentais como logaritmos ou arcos tangentes), eles não são capazes de resolverdefinitivamente o problema da integração indefinida de funções racionais, umavez que só são capazes de fornecer a parte transcendental da integral em termosde um novo integrando racional. O problema da integração indefinida da partetranscendental sem fatoração completa permaneceria em aberto por mais de umséculo e só viria a ser resolvido recentemente. Em registro, o primeiro métodopara a integração da parte transcendental sem fazer uso de fatorações completasdo denominador do integrando foi descoberto de maneira independente por M.Rothstein [31] e B. Trager [34]. A proposta deste método é descobrir o menornúmero de extensões que deve ser feita ao corpo de constantes original do inte-grando, de modo que a integral possa ser expressa como uma combinação linearde logaritmos de polinômios cujos coeficientes (tanto da combinação quanto dospolinômios) pertencem à nova extensão. Uma vez descobertas as extensões neces-sárias (as quais são as raízes de um polinômio obtido por cálculo de resultantes),os polinômios que aparecem como argumentos dos logaritmos são determinadospor cálculos de mdc a partir das extensões.

Uma melhoria ao método de Rothstein-Trager foi descoberta e publicada porD. Lazard e R. Rioboo [17] e, de maneira independente, também por Trager,apesar de ele não tê-la publicado formalmente [11, Cap. 11, §5]. A ideia portrás desta melhoria — conhecida como algoritmo de Lazard-Rioboo-Trager — éutilizar subresultantes para calcular de modo quase direto os argumentos queaparecem nos logaritmos da parte transcendental, dispensando cálculos de mdcenvolvendo novas constantes algébricas.

Em 1995, uma alternativa aos métodos de Rothstein-Trager e Lazard-Rioboo-Trager utilizando bases de Gröbner seria proposta por Czichowski [9].

Apesar de os algoritmos de Hermite e Ostrogradsky, combinados com os al-goritmos de Rothstein-Trager, Lazard-Rioboo-Trager e Czichowski forneceremsoluções satisfatórias ao problema da integração indefinida de funções racionais,as fórmulas encontradas para as integrais nem sempre podem ser utilizadas paracalcular corretamente a integral definida de funções racionais reais. É o caso,

Page 20: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 1. Introdução 6

por exemplo, quando a integral possui extensões complexas. Felizmente, em con-formidade com o próprio algoritmo e Bernoulli, Rioboo mostrou em [28] ummétodo para expressar a integral de uma função racional com coeficientes reaiscomo sendo também uma função com coeficientes reais, utilizando, tanto quantopossível, somente operações de corpo e, se necessário, anexando minimamenteextensões reais ao corpo de constantes. Tanto quanto o método de Bernoulli, oprocesso não gera novas singularidades (denominadores polinomiais não constan-tes), o que significa que integral encontrada é, ainda, contínua no intervalo dedefinição do integrando original. A ideia é agrupar pares conjugados de logaritmoscomplexos que apareçam na expressão complexa da integral e convertê-los emuma combinação linear envolvendo um logaritmo e funções arcos tangentes, ondeos argumentos de cada parcela são polinômios e todos os coeficientes na expressãosão reais. Obtemos, novamente, uma função contínua no intervalo de definiçãodo integrando e, dessa forma, também é possível calcular a integral definida deuma função racional de maneira correta, sem recorrer a métodos aproximativos, esim utilizando de maneira direta o Teorema Fundamental do Cálculo, do mesmomodo que no algoritmo de Bernoulli.

O ponto importante de se combinar os algoritmos racionais mencionados éque, do mesmo modo como comparamos os algoritmos de Hermite e Horowitz, oresultado final é essencialmente o mesmo do algoritmo de Bernoulli, tanto no casode integração de funções com coeficientes complexos, quanto no caso de funçõescom coeficientes estritamente reais, porém a forma deste resultado costuma serconsideravelmente mais simples, se comparada àquela fornecida pelo método deBernoulli.

1.3 Visão Geral dos Capítulos e Seções

Como dissemos na seção 1.1, buscaremos desenvolver algoritmos de integraçãoindefinida para funções racionais à luz da Computação Algébrica. Com exceçãodo algoritmo de Bernoulli, todos os algoritmos que estudaremos procurarão se aterao máximo a operações racionais. Como já vimos na seção 1.2, isto quer dizer queevitaremos, tanto quanto pudermos, introduzir extensões algébricas desnecessáriasdurante a resolução dos problemas, e que, via de regra, nos limitaremos a trabalhar

Page 21: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

7 1.3. Visão Geral dos Capítulos e Seções

com operações de corpo para obter os resultados desejados. Além de estarmosinteressados em resultados mais simples, a razão para isto reside no fato dequerermos diminuir a complexidade dos algoritmos, mas isto não será tratado comdetalhes neste texto — nosso foco será demonstrar como os métodos funcionam,e não analisar seu desempenho.

No capítulo 2, estudaremos brevemente conceitos envolvendo resultantes, sequên-cias de restos de polinômios e fatorações livres de quadrados. Apesar destes conteú-dos estarem presentes em certos textos de Álgebra, não são comumente estudados,de modo que sua exposição é razoável no presente texto. São fundamentais paraembasar teoricamente os capítulos posteriores.

No capítulo 3 apresentaremos os algoritmos racionais e não heurísticos paraa integração de funções racionais. Como introdução, apresentaremos o algoritmode Bernoulli. Em seguida, estudaremos os algoritmos de Hermite; de Horowitz-Ostrogradsky; de Rothstein-Trager; e Lazard-Rioboo-Trager. Optamos por omitiruma apresentação detalhada do algoritmo de Czichowski devido à demanda teóricapara o seu entendimento.

Complementando o terceiro capítulo, o capítulo 4 será dedicado ao problemada integração definida de funções racionais com coeficientes reais, onde explicita-remos o algoritmo clássico e o algoritmo de Rioboo para conversão de logaritmoscomplexos em uma combinação de funções arco tangente envolvendo apenasextensões reais, conforme mencionado na seção 1.2.

Apresentaremos, no capítulo 5, códigos para implementação no software Ma-xima (software livre copyleft do CAS pioneiro Macsyma) que possibilitam aconstrução de um programa para integração de funções racionais sobre subcorposdos complexos. Os principais são baseados em pseudocódigos presentes em [2,Caps. 1, 2], os quais também são apresentados juntamente com seus respectivoscódigos no presente trabalho. Aqui, também apresentaremos um código para oalgoritmo de Czichowksi.

O capítulo 6 trará as considerações finais. Falaremos brevemente sobre ocampo da Computação Algébrica como um todo e do problema mais geral daintegração indefinida de funções elementares. Apresentaremos também referênciasde literatura acerca do problema da integração de funções em geral. Tambémserão feitos alguns comentários acerca do funcionamento dos códigos apresentados

Page 22: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 1. Introdução 8

no capítulo 5.Ao longo do trabalho serão apresentados exemplos que ilustram o funciona-

mento dos algoritmos de integração e dos códigos fornecidos no capítulo 5.No apêndice A, apresentaremos o algoritmo de Zeilberger-Almkvist para a

integração de funções hiperexponenciais. Trata-se de um algoritmo aplicado afunções cuja derivada logarítmica seja uma função racional e que é sempre capazde encontrar a integral de uma função dessa forma quando a mesma pode serexpressa como um múltiplo racional seu. Dentre outras classes de funções, podeser aplicado a funções racionais, mas diferente dos demais algoritmos estudados,este nem sempre é capaz de obter uma solução para esta classe de funções. Alémde apresentar este algoritmo, também forneceremos os pseudocódigos e os códigospara implementação em Maxima relativos ao mesmo.

1.4 Esclarecimentos Acerca do Presente Texto

Antes de prosseguirmos, alguns esclarecimentos são válidos.

1. A sigla “DFU” indica “domínio de fatoração única”. A função cont(𝑎) indicao conteúdo do polinômio 𝑎, isto é, o mdc de seus coeficientes, enquantoque pp(𝑎) indica a parte primitiva, definida como sendo 𝑎/ cont(𝑎). cl(𝑝)indica o coeficiente líder do polinômio 𝑝, isto é, o coeficiente (não nulo)do termo 𝑥grau(𝑝) em 𝑝. A função pquo(𝑎,𝑏) indica o pseudoquociente dapseudodivisão de 𝑎 por 𝑏, enquanto prem(𝑎,𝑏) indica o pseudo-resto damesma pseudodivisão, isto é, equivalem respectivamente ao quociente e restoda divisão de cl(𝑏)𝛿+1𝑎 por 𝑏, onde 𝛿 = max(−1, grau(𝑎) − grau(𝑏)). Noteque pquo(𝑎,𝑏) e prem(𝑎,𝑏) são polinômios cujo domínio de coeficientes é omesmo que o de 𝑎 e 𝑏 não sendo necessário recorrer a um corpo de frações,caso o domínio original não seja um. Subscritos 𝑥 como em pp𝑥, cl𝑥, cont𝑥

e prem𝑥 irão indicar que os argumentos destas funções serão tratados comopolinômios na variável 𝑥.

2. 𝐼 é a unidade imaginária, isto é, 𝐼2 = −1.

3. Dois mdc para um par de polinômios serão tratados como iguais a menos

Page 23: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

9 1.4. Esclarecimentos Acerca do Presente Texto

de uma multiplicação por elemento do corpo de coeficientes, ou seja, apenaso grau e a relação entre os coeficientes é importante. Isto quer dizer que aexpressão 𝑔 = mdc(𝑎,𝑏), por exemplo, indica que 𝑔 é um dos possíveis mdcpara 𝑎 e 𝑏.

4. Dados dois polinômios 𝑝 e 𝑞, estes são ditos primos entre si, relativa-mente primos, ou coprimos, se grau(mdc(𝑝,𝑞)) = 0. Uma fração redu-zida é aquela em que o numerador e o denominador são primos entre si.Uma fração própria é aquela em que o grau do numerador é menor que ograu do denominador.

5. Não estamos interessados nos valores dos logaritmos que aparecem duranteeste trabalho, mas nas suas propriedades algébricas. Isto quer dizer que,sempre que o leitor se deparar com um logaritmo complexo, poderá fixarqualquer valor para o mesmo, dentro do conceito de ramos de um logaritmocomplexo. Além disso, como a variável de integração será sempre complexa,não utilizaremos o valor absoluto sobre o argumento dos logaritmos naintegral, ficando implícita a existência de uma parte real e outra imagináriana fórmula da integral. Por outro lado, caso se deseje uma resposta parauma variável de integração real, supondo que o integrando seja uma funçãoracional com coeficientes reais, poderemos, da mesma forma, empregar osalgoritmos aqui estudados e simplesmente substituir os argumentos doslogaritmos pelos seus valores absolutos no final.

6. Quando quer que haja denominadores mônicos, estaremos supondo que o nu-merador e o denominador da fração tenha sido multiplicado pelo inverso docoeficiente líder do denominador para efeitos de simplificação dos cálculos.

7. Os exemplos apresentados seguirão a notação dos códigos e pseudocódigosapresentados no capítulo 5.

8. Está implícito que 𝑥 é a variável de integração de todas as integrais presentesneste trabalho, donde omitiremos o diferencial 𝑑𝑥. Sempre que não houverambiguidades, a variável 𝑥 também será omitida de expressões funcionais,isto é, a expressão 𝑓(𝑥) passará a ser representada por 𝑓 .

Page 24: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 1. Introdução 10

9. As imagens deste trabalho foram geradas com o apoio do CAS Maple. Jáos códigos foram elaborados no ambiente do CAS Maxima.

Page 25: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2

Noções Preliminares

2.1 Resultantes e Sequências de Restos Polino-miais

2.1.1 Resultantes e Subresultantes

Estudamos agora as resultantes e subresultantes. A resultante ente dois polinômiosé uma ferramenta que auxilia na detecção de seus fatores comuns, ou mesmo nadetecção de raízes comuns entre os mesmos que estejam no fecho algébrico docorpo de constantes dos polinômios. As subresultantes de um par de polinômios,por sua vez, possuem uma relação especial com qualquer sequência de restospolinomiais gerada por este par e possuem uma importante propriedade algébricaenvolvendo homomorfismos sobre anéis de polinômios induzidos a partir do anelde coeficientes em questão. Utilizaremos os conceitos de resultante e subresultanteao estudarmos os algoritmos de Rothstein-Trager e Lazard-Rioboo-Trager.

Definição 2.1.1. Seja 𝑅 um anel comutativo e 𝑝,𝑞 ∈ 𝑅[𝑥] ∖ {0}. Escrevamos𝑝 = 𝑎𝑚𝑥𝑚 + · · · 𝑎1𝑥 + 𝑎0 e 𝑞 = 𝑏𝑛𝑥𝑛 + · · · 𝑏1𝑥 + 𝑏0, onde 𝑎𝑚 = 0, 𝑏𝑛 = 0 e pelomenos um entre 𝑚 e 𝑛 é não nulo. A matriz de Sylvester de 𝑝 e 𝑞 é a matriz(𝑚 + 𝑛)× (𝑚 + 𝑛) definida por

Page 26: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 12

𝑆(𝑝,𝑞) =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

𝑎𝑚 · · · · · · · · · 𝑎1 𝑎0. . .

𝑎𝑚 · · · · · · · · · 𝑎1 𝑎0𝑏𝑛 · · · 𝑏1 𝑏0

. . .. . .

. . .𝑏𝑛 · · · 𝑏1 𝑏0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

⎫⎪⎪⎪⎬⎪⎪⎪⎭ n linhas

⎫⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎭m linhas

onde as 𝑝-linhas são repetidas 𝑛 vezes e as 𝑞-linhas são repetidas 𝑚 vezes. Aresultante entre 𝑝 e 𝑞 é o determinante de 𝑆(𝑝,𝑞) e é indicada por res(𝑝,𝑞).

A seguir, enunciamos alguma propriedades algébricas das resultantes.

Lema 2.1.1 ([11], Cap. 9, §5). Sejam 𝑅 um anel comutativo, 𝑝,𝑞 ∈ 𝑅[𝑥] polinô-mios de graus 𝑚 e 𝑛 respectivamente e 𝑐 ∈ 𝑅 não nulo.

1. res(𝑐,𝑞) = 𝑐𝑛;

2. res(𝑝,𝑝) = 0;

3. res(𝑝,𝑞) = (−1)𝑚𝑛 res(𝑞,𝑝);

4. res(𝑐𝑝,𝑞) = 𝑐𝑛 res(𝑞,𝑝);

5. res(𝑥𝑘𝑝,𝑞) = 𝑏𝑘0 res(𝑝,𝑞) para 𝑘 > 0, onde 𝑏0 é o termo independente de 𝑞;

Lema 2.1.2 ([15] Cap. IV §8, [11] Cap. 9 §5). Sejam 𝑅 um anel comutativo,𝛼1, . . . ,𝛼𝑚,𝛽1, . . . ,𝛽𝑛𝑎,𝑏 ∈ 𝑅 com 𝑎 = 0, 𝑏 = 0, e polinômios 𝑝 = 𝑎(𝑥−𝛼1) · · · (𝑥−𝛼𝑚) e 𝑞 = 𝑏(𝑥− 𝛽1) · · · (𝑥− 𝛽𝑛) em 𝑅[𝑥]. Então,

res(𝑝,𝑞) = 𝑎𝑛𝑏𝑚𝑚∏

𝑖=1

𝑛∏𝑗=1

(𝛼𝑖 − 𝛽𝑗) = 𝑎𝑛𝑚∏

𝑖=1𝑞(𝛼𝑖) = (−1)𝑚𝑛𝑏𝑚

𝑛∏𝑗=1

𝑝(𝛽𝑗).

Como consequência do Lema 2.1.2, podemos deduzir facilmente o corolárioabaixo, analisando as fatorações irredutíveis dos polinômios 𝑝 e 𝑞 abaixo, sobre ofecho algébrico destes polinômios.

Page 27: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

13 2.1. Resultantes e Sequências de Restos Polinomiais

Corolário 2.1.1 ([15] Cap. IV §8). Suponha que 𝐷 seja um domínio de integri-dade. Seja 𝐾 o corpo quociente de 𝐷 e 𝐾 o fecho algébrico de 𝐾. Então, dadosquaisquer 𝑝,𝑞 ∈ 𝐷[𝑥] ∖ {0},

res(𝑝,𝑞) = 0⇐⇒ ∃𝛾 ∈ 𝐾 tal que 𝑝(𝛾) = 𝑞(𝛾) = 0.

O Corolário 2.1.1 acima nos diz que dois polinômios em um domínio deintegridade 𝐷 possuem raízes comuns no fecho algébrico do corpo quociente de𝐷 se e só se a resultante entre eles é nula.

Proposição 2.1.1 ([15] Cap. IV §8). Seja 𝑅 um anel comutativo. Para quais-quer 𝑝,𝑞 ∈ 𝑅[𝑥] de grau positivo, existem 𝜎,𝜏 ∈ 𝑅[𝑥], com grau(𝜎) < grau(𝑞) egrau(𝜏) < grau(𝑝) tais que res(𝑝,𝑞) = 𝜎𝑝 + 𝜏𝑞.

Em outras palavras, o Proposição 2.1.1 nos diz que a resultante de dois po-linômios se encontra no ideal gerado por estes. Consequentemente, se 𝐷 é umDFU, então a resultante de dois polinômios em 𝐷 é nula se e só estes se possuemum fator comum não trivial. Formalmente temos o resultado abaixo.

Corolário 2.1.2 (Critério de Sylvester, [11] Cap. 7 §3, [2] Cap. 1 §4). Suponhaque 𝐷 seja um DFU. Então, dados quaisquer 𝑝,𝑞 ∈ 𝐷[𝑥]− {0},

res(𝑝,𝑞) = 0⇐⇒ grau(mdc(𝑝,𝑞)) > 0.

Apresentamos agora as subresultantes, que são polinômios obtidos a partir desubmatrizes da matriz de Sylvester. Sua definição formal segue abaixo.

Definição 2.1.2. Sejam 𝑅 um anel comutativo, 𝑝,𝑞 ∈ 𝑅[𝑥] ∖ {0}, 𝑚 = grau(𝑝),𝑛 = grau(𝑞), 𝑆 a matriz de Sylvester de 𝑝 e 𝑞, e 𝑗 um inteiro tal que 0 ≤ 𝑗 <

min(𝑚,𝑛). Seja 𝑗𝑆 a matriz 𝑚 + 𝑛− 2𝑗 por 𝑚 + 𝑛 obtida deletando-se de 𝑆:

1. as linhas de 𝑛− 𝑗 + 1 até 𝑛 (i.e. as 𝑗 últimas linhas correspondentes a 𝑝),

2. as linhas de 𝑛 + 𝑚− 𝑗 + 1 até 𝑛 + 𝑚 (i.e. as 𝑗 últimas linhas de 𝑞).

Além disso, para 0 ≤ 𝑖 ≤ 𝑗 seja 𝑗𝑆𝑖 a matriz quadrada obtida deletando-se ascolunas de 𝑚 + 𝑛− 2𝑗 a 𝑚 + 𝑛 (i.e. as 2𝑗 + 1 últimas colunas) de 𝑗𝑆, exceto pela

Page 28: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 14

coluna 𝑚 + 𝑛− 𝑖− 𝑗. A 𝑗-ésima subresultante de 𝑝 e 𝑞 é definida por

𝑆𝑗(𝑝,𝑞) =𝑗∑

𝑖=0det(𝑗𝑆𝑖)𝑥𝑖 ∈ 𝑅[𝑥].

É evidente que grau(𝑆𝑗(𝑝,𝑞)) ≤ 𝑗 para cada 𝑗. Quando 𝑆𝑗(𝑝,𝑞) < 𝑗 dizemosque 𝑆𝑗(𝑝,𝑞) é defectiva, e regular em caso contrário. Além disso, 0𝑆0 = 𝑆, donde𝑆0(𝑝,𝑞) = res(𝑝,𝑞).

Encerrando esta subseção, explicitamos o seguinte resultado a respeito das su-bresultantes (e, consequentemente, das resultantes), o qual revela uma importantepropriedade sobre as mesmas.

Proposição 2.1.2 ([23] §7.8). Sejam 𝑅 e 𝑆 anéis comutativos, 𝜎 : 𝑅 → 𝑆 umhomomorfismo de anéis, 𝜎 : 𝑅[𝑥]→ 𝑆[𝑥] o homomorfismo de anéis de polinômiosinduzido por 𝜎, isto é, satisfazendo

𝜎(∑

𝑎𝑗𝑥𝑗)

=∑

𝜎(𝑎𝑗)𝑥𝑗, (2.1)

e 𝑝,𝑞 ∈ 𝑅[𝑥] ∖ {0}. Se grau(𝜎(𝑝)) = grau(𝑞) então

𝜎(𝑆𝑗(𝑝,𝑞)) = 𝜎(cl(𝑝))grau(𝑞)−grau(𝜎(𝑞))𝑆𝑗(𝜎(𝑝),𝜎(𝑞))

para 0 ≤ 𝑗 < min(grau(𝑝), grau(𝜎(𝑞)).

Em outras palavas, a Proposição 2.1.2 nos fornece um modo de calcular𝑆𝑗(𝜎(𝑝), 𝜎(𝑞)) a partir de 𝑆𝑗(𝑝,𝑞), quando pelo menos um dos coeficientes lí-deres de 𝑝 ou 𝑞 não é levado em 0. Ainda, se o homomorfismo 𝜎 não diminuio grau de 𝑝 e de 𝑞, isto é, grau(𝜎(𝑝)) = grau(𝑝) e grau(𝜎(𝑞)) = grau(𝑞), ou seambos 𝑝 e 𝑞 são mônicos, então as subresultantes 𝑆𝑗(𝑝,𝑞), na verdade, comutamcom o homomorfismo 𝜎. Ou seja, passamos a ter:

𝜎(𝑆𝑗(𝑝,𝑞)) = 𝑆𝑗(𝜎(𝑝),𝜎(𝑞))

A Proposição 2.1.2 constitui a chave para se demonstrar o Teorema 3.5.1, o qual éa base do algoritmo de Lazard-Rioboo-Trager para o cálculo da parte logarítmicada integral de uma função racional. Durante a demonstração do Teorema 3.5.1,

Page 29: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

15 2.1. Resultantes e Sequências de Restos Polinomiais

teremos o homomorfismo 𝜎 : K[𝑧]→ K(𝛼) que é a identidade sobre K ⊆ C e leva𝑧 em 𝛼, e mostraremos que, para calcular as subresultantes 𝑆𝑗(𝑐,𝑎−𝛼𝑏) ∈ K(𝛼)[𝑥],onde 𝑎,𝑏,𝑐 ∈ K[𝑥] e 𝛼 é uma extensão algébrica sobre K, podemos simplesmentecalcular 𝑆𝑗(𝑐,𝑎− 𝑧𝑏) ∈ K[𝑧][𝑥] e utilizar

𝑆𝑗(𝑐,𝑎− 𝛼𝑏) = 𝑆𝑗(𝑐,𝑎− 𝜎(𝑧)𝑏) = 𝜎(𝑆𝑗(𝑐,𝑎− 𝑧𝑏)),

evitando, assim, cálculos sobre extensões algébricas do corpo de constantes Kpara se obter 𝑆𝑗(𝑐,𝑎− 𝛼𝑏).

2.1.2 Sequências de Restos Polinomiais

Nesta seção, estudamos as sequências de restos polinomiais, que generalizam oalgoritmo de Euclides para o cálculo de mdc. Nosso principal objetivo será de-senvolver um método eficiente para o cálculo de resultantes e subresultantes. Aolongo desta seção, 𝐷 será um domínio de integridade.

Definição 2.1.3. Sejam 𝑝,𝑞 ∈ 𝐷[𝑥] com 𝑞 = 0 e grau(𝑝) ≥ grau(𝑞). UmaSequência de Restos Polinomiais (SRP) para 𝑝 e 𝑞 é uma sequência (𝑟𝑖)𝑖≥0

em 𝐷[𝑥] satisfazendo

1. 𝑟0 = 𝑝, 𝑟1 = 𝑞,

2. Para 𝑖 ≥ 1,

𝛽𝑖𝑟𝑖+1 =

⎧⎪⎨⎪⎩0 se 𝑟𝑖 = 0

prem(𝑟𝑖−1,𝑟𝑖) se 𝑟𝑖 = 0

onde (𝛽𝑖)𝑖≥1 é uma sequência de elementos não nulos de 𝐷.

Pela definição de SRP, é evidente que 𝑟𝑖+1 = 0 ou grau(𝑟𝑖+1) < grau(𝑟𝑖) para𝑖 ≥ 1. Portanto, uma SRP sempre possui uma quantidade finita de elementos nãonulos, e se 𝑟𝑖 = 0, 𝑟𝑗 = 0, grau(𝑟𝑖) = grau(𝑟𝑗) e 𝑖,𝑗 ≥ 1, então 𝑖 = 𝑗. Em outraspalavras o grau é estritamente decrescente na sequência, de modo que só 𝑟0 e 𝑟1

podem ter o mesmo grau.

Page 30: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 16

A escolha de diferentes 𝛽𝑖 na Definição 2.1.3 origina tipos diferentes de SRP.A SRP euclidiana é obtida tomando-se 𝛽𝑖 = 1 para todo 𝑖, e é simplesmente asequência de pseudo-restos sucessivos de 𝑝 e 𝑞, obtidos de modo semelhante ao queteríamos no algoritmo de Euclides em um domínio euclidiano. Outro exemplo deSRP é a SRP primitiva, obtida quando definimos 𝛽𝑖 = cont(prem(𝑟𝑖−1,𝑟𝑖)) ∈ 𝐷.

Definição 2.1.4. Sejam 𝑝,𝑞 ∈ 𝐷[𝑥]. Dizemos que 𝑝 é semelhante a 𝑞 se existem𝛼,𝛽 ∈ 𝐷 ∖ {0} tais que 𝛼𝑝 = 𝛽𝑞.

A similaridade é uma relação de equivalência. O seguinte resultado apontapara o fato importante de que, se 𝐷 é um DFU, então o último elemento nãonulo de uma SRP do par 𝑝,𝑞 ∈ 𝐷[𝑥] é semelhante a mdc(𝑝,𝑞).

Proposição 2.1.3 ([2] Cap. 1 §5). Suponha que 𝐷 seja um DFU e sejam𝑝,𝑞 ∈ 𝐷[𝑥] com 𝑞 = 0 e grau(𝑝) ≥ grau(𝑞). Seja (𝑟0,𝑟1, . . . ,𝑟𝑘,0, . . . ) uma SRPqualquer de 𝑝 e 𝑞 com 𝑟𝑘 = 0. Então mdc(𝑟𝑖,𝑟𝑖+1) é semelhante a mdc(𝑟𝑗,𝑟𝑗+1)para quaisquer 0 ≤ 𝑖,𝑗 ≤ 𝑘. Em particular (fazendo 𝑖 = 0, 𝑗 = 𝑘), temos que 𝑟𝑘 ésemelhante a mdc(𝑝,𝑞).

Portanto, toda SRP de 𝑝 e 𝑞 contém mdc(𝑝,𝑞) (a menos de um elementomultiplicativo pertecente ao domínio de coeficientes).

Dada uma SRP qualquer de 𝑝 e 𝑞, o teorema abaixo mostra que toda su-bresultante não nula de 𝑝 e 𝑞 é semelhante a algum elemento da SRP e trazfórmulas explicitas para os coeficientes de similaridade, isto é, mostra como assubresultantes de 𝑝 e 𝑞 podem ser recuperadas a partir de qualquer SRP geradapor 𝑝 e 𝑞.

Teorema 2.1.1 (Teorema Fundamental das SRP, [11] Cap. 7 §3, [27]). Sejam𝑝 e 𝑞 = 0 polinômios em 𝐷[𝑥] com grau(𝑝) ≥ grau(𝑞), e seja (𝑟0,𝑟1, . . . ,𝑟𝑘,0 . . . )uma SRP de 𝑝 e 𝑞 com 𝑟𝑘 = 0. Para 𝑖 = 1, . . . ,𝑘, sejam 𝑛𝑖 = grau(𝑟𝑖) e 𝜌𝑖 ocoeficiente líder de 𝑟𝑖. Então, para qualquer 𝑗 em {0, . . . , grau(𝑞)− 1},

𝑆𝑗(𝑝,𝑞) =

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩𝜂𝑖𝑟𝑖 se 𝑗 = 𝑛𝑖−1 − 1,

𝜏𝑖𝑟𝑖 se 𝑗 = 𝑛𝑖,

0 caso contrário

Page 31: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

17 2.1. Resultantes e Sequências de Restos Polinomiais

onde

𝜂𝑖 = (−1)𝜑𝑖𝜌1−𝑛𝑖−1+𝑛𝑖

𝑖−1

𝑖−1∏𝑗=1

⎡⎢⎣⎛⎝ 𝛽𝑗

𝜌𝑙+𝑛𝑗−1−𝑛𝑗

𝑗

⎞⎠1+𝑛𝑗−𝑛𝑖−1

𝜌𝑛𝑗−1−𝑛𝑗+1𝑗

⎤⎥⎦𝜏𝑖 = (−1)𝜎𝑖𝜌

𝑛𝑖−1−𝑛𝑖−1𝑖

𝑖−1∏𝑗=1

⎡⎣⎛⎝ 𝛽𝑗

𝜌𝑙+𝑛𝑗−1−𝑛𝑗

𝑗

⎞⎠𝑛𝑗−𝑛𝑖

𝜌𝑛𝑗−1−𝑛𝑗+1𝑗

⎤⎦ (2.2)

e

𝜑𝑖 =𝑖−1∑𝑗=1

(𝑛𝑗 − 𝑛𝑖−1 + 1)(𝑛𝑗−1 − 𝑛𝑖−1 + 1), 𝜎𝑖 =𝑖−1∑𝑗=1

(𝑛𝑗−1 − 𝑛𝑖)(𝑛𝑗 − 𝑛𝑖). (2.3)

A SRP das subresultantes de 𝑝 e 𝑞 é uma SRP que satisfaz 𝜂𝑖 = 1 noteorema anterior. É obtida através das seguintes regras de recursão:

𝑟0 = 𝑝, 𝑟1 = 𝑞, 𝛿1 = −1, 𝛽1 = (−1)𝛾1+1

e ⎧⎨⎩ 𝛿𝑖+1 = (− cl(𝑟𝑖))𝛾𝑖𝛿1−𝛾𝑖𝑖

𝛽𝑖+1 = − cl(𝑟𝑖)𝛿𝛾𝑖+1𝑖+1

para 𝑖 ≥ 1, onde 𝛾𝑖 = grau(𝑟𝑖−1) − grau(𝑟𝑖). Sua propriedade principal é dadapelo seguinte resultado.

Teorema 2.1.2 ([4] §7, [7, 27]). Sejam 𝑝 e 𝑞 polinômios em 𝐷[𝑥] com grau(𝑝) ≥grau(𝑞) e (𝑟0,𝑟1, . . . ,𝑟𝑘,0, . . . ) a SRP das subresultantes de 𝑝 e 𝑞, com 𝑟𝑘 = 0 e𝑛𝑖 = grau(𝑟𝑖) para 𝑖 = 1, . . . ,𝑘. Então,

∀𝑗 ∈ {0, . . . , grau(𝑞)− 1}, 𝑆𝑗(𝑝,𝑞) =

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩𝑟𝑖 se 𝑗 = 𝑛𝑖−1 − 1

𝜏𝑖𝑟𝑖 se 𝑗 = 𝑛𝑖

0 caso contrário

onde 𝜏𝑖 é dado pela fórmula 2.2.

O algoritmo das subresultantes, capaz de calcular a resultante de doispolinômios 𝑝 e 𝑞 deriva do resultado acima. Se grau(𝑝) ≥ grau(𝑞) então, pordefinição, temos que res(𝑝,𝑞) = 𝑆0(𝑝,𝑞). Calculando a SRP das subresultantes

Page 32: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 18

de 𝑝 e 𝑞, temos que se grau(𝑟𝑘) > 0 então 𝑝 e 𝑞 possuem um fator comum, demodo que res(𝑝,𝑞) = 0. Senão, pelo Teorema 2.1.2 temos que 𝑆0(𝑝,𝑞) = 𝑟𝑘 segrau(𝑟𝑘−1) = 1, ou 𝑆0(𝑝,𝑞) = 𝜏𝑘𝑟𝑘, se grau(𝑟𝑘−1) > 1. No segundo caso, como𝜂𝑘 = 0, o cálculo de 𝜏𝑘 fica simplificado, pois 2.3 se torna

𝜎𝑘 =𝑘−1∑𝑗=1

𝑛𝑗−1𝑛𝑗

e, portanto,

(−1)𝜎𝑘 =𝑘−1∏𝑗=1

(−1)𝑛𝑗−1𝑛𝑗

No produto acima, um fator −1 so aparece se ambos 𝑛𝑗−1 e 𝑛𝑗 forem ímpares.Além disso, como grau(𝑟𝑘) = 0, 𝜌𝑘 = 𝑟𝑘 e a equação 2.2 se torna

𝜏𝑘 = (−1)𝜎𝑘𝑟𝑛𝑘−1−1𝑘

𝑘−1∏𝑗=1

⎡⎣⎛⎝ 𝛽𝑗

𝜌𝑙+𝑛𝑗−1−𝑛𝑗

𝑗

⎞⎠𝑛𝑗

𝜌𝑛𝑗−1−𝑛𝑗+1𝑗

⎤⎦ .

Por outro lado, se grau(𝑝) < grau(𝑞), podemos calcular a SRP de 𝑞 e 𝑝 e utilizara fórmula 3 do Lema 2.1.1: res(𝑝,𝑞) = (−1)grau(𝑝) grau(𝑞) res(𝑞,𝑝).

Na subseção 5.2.10, fornecemos um pseudocódigo, juntamente com um códigopara implementação no Maxima do algoritmo das subresultantes.

2.2 Fatoração Livre de Quadrados

A fatoração livre de quadrados é um tipo especial de fatoração capaz de agruparas raízes de um polinômio de acordo com a sua multiplicidade, mas de maneiraque não seja necessário saber quais são estas raízes (e nem mesmo a fatoraçãoirredutível do polinômio em questão). Isto é, o fator de potência 𝑘 em uma fatora-ção livre de quadrados contém todas as raízes (considerando o fecho algébrico dopolinômio) de multiplicidade 𝑘, mas este fator não se decompõe completamenteem termos de suas raízes (a menos que haja só uma raiz).

Este tipo de fatoração possui propriedades especiais de fundamental impor-tância, como veremos, para o algoritmo de Hermite e, de maneira indireta, paraalgoritmo e Horowitz-Ostrogradsky. O algoritmo de Lazard-Rioboo-Trager tam-

Page 33: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

19 2.2. Fatoração Livre de Quadrados

bém utiliza esta fatoração em certo ponto.

Definição 2.2.1. Sejam 𝑝 ∈ 𝐷[𝑥] e pp(𝑝) =𝑛∏

𝑖=1𝑝𝑒𝑖

𝑖 a fatoração em fatores

irredutíveis de sua parte primitiva, onde 𝑒𝑖 ≥ 1 para cada 𝑖. Definimos a partelivre de quadrados de 𝑝 como sendo

𝑝* =𝑛∏

𝑖=1𝑝𝑖

e para cada 𝑘 ∈ Z, 𝑘 ≥ 0, definimos a 𝑘-deflação (ou 𝑘-ésima deflação, e apenasdeflação quando 𝑘 = 1) de 𝑝 como sendo

𝑝−𝑘 =𝑛∏

𝑖=1𝑝

max(0,𝑒𝑖−𝑘)𝑖 =

𝑛∏𝑖|𝑒𝑖>𝑘

𝑝𝑒𝑖−𝑘𝑖 .

Em outras palavras a 𝑘-deflação diminui em 𝑘 unidades a multiplicidadede cada raiz, mas apenas enquanto a potência da respectiva raiz não se tornarnegativa. Observe que 𝑝−0 = pp(𝑝). Além disso, convencionamos 𝑝− = 𝑝−1 ouseja,

𝑝− =𝑛∏

𝑖=1𝑝𝑒𝑖−1

𝑖 .

Pela Definição 2.2.1, temos que 𝑝−𝑖+𝑗 = (𝑝−𝑖)−𝑗 , para quaisquer 𝑖,𝑗 ≥ 0, e, por-tanto,

𝑝−𝑘+1 = (𝑝−𝑘)−. (2.4)

Além disso,𝑝*𝑝− = pp(𝑝). (2.5)

As equações (2.4) e (2.5) combinadas fornecem

𝑝−𝑘+1 = 𝑝−𝑘

(𝑝−𝑘)* , para 𝑘 ≥ 0. (2.6)

Em 𝐷[𝑥], o cálculo da parte livre de quadrados e das deflações de um polinômio,apesar da definição, pode ser feito evitando-se a fatoração em fatores irredutíveis,bastando que recorramos cálculos de mdc (estamos em um DFU). O Teorema2.2.1 a seguir nos diz que qualquer fator primo de 𝑝 ∈ 𝐷[𝑥] divide mdc(𝑝,𝑑𝑝/𝑑𝑥)

Page 34: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 20

uma vez a menos. Além disso, a recíproca vale se 𝐷 tem característica 0, de modoque, se 𝑝 for primitivo, passamos a ter

𝑝− = mdc(

𝑝,𝑑𝑝

𝑑𝑥

)(2.7)

e, desta forma, 𝑝* pode ser calculado através de 2.5. As demais deflações de 𝑝

podem ser calculadas recursivamente através de 2.4.

Lema 2.2.1 ([2], Cap. 1, §6). Sejam 𝐷 um DFU, 𝑝,𝑞 ∈ 𝐷[𝑥] ∖ 𝐷 e 𝑛 > 0 uminteiro. Então,

1. 𝑝𝑛+1 | 𝑞 =⇒ 𝑝𝑛 | mdc(𝑞,𝑑𝑞/𝑑𝑥),

2. se 𝑝 é irredutível e 𝐷 tem característica 0, então 𝑝𝑛 | mdc(𝑞,𝑑𝑞/𝑑𝑥) =⇒𝑝𝑛+1 | 𝑞.

Sejam 𝐷 um DFU e 𝑥 uma indeterminada sobre 𝐷. As considerações anterioresnos permitem concluir que é mais fácil calcular partes livres de quadrados edeflações do que calcular a fatoração em fatores irredutíveis de um polinômio em𝐷[𝑥]. Isto nos motiva a definir um tipo especial de fatoração.

Definição 2.2.2. Um polinômio 𝑝 ∈ 𝐷[𝑥] é dito livre de quadrados, ou livrede fatores quadráticos se não existe 𝑞 ∈ 𝐷[𝑥] ∖𝐷 tal que 𝑞2 | 𝑝 em 𝐷[𝑥].

Ou seja, um polinômio é livre de quadrados quando sua fatoração em fatoresirredutíveis sobre 𝐷, ou sobre qualquer extensão de 𝐷 tem todos os expoentesiguais a 1.

Definição 2.2.3. Seja 𝑝 ∈ 𝐷[𝑥]. Uma fatoração livre de quadrados (flq)

de 𝑝 é uma fatoração da forma 𝑝 =𝑘∏

𝑖=1𝑝𝑖

𝑖 onde cada 𝑝𝑖 é livre de quadrados e

mdc(𝑝𝑖,𝑝𝑗) = 1 para 𝑖 = 𝑗.

Uma vez que os elementos de 𝐷, vistos como elementos de 𝐷[𝑥], são sempre

livres de quadrados por definição, e que 𝑝 = cont(𝑝) pp(𝑝), se pp(𝑝) =𝑘∏

𝑖=1𝑝𝑖

𝑖 é a

flq de pp(𝑝), então

𝑝 = (cont(𝑝)𝑝1)𝑘∏

𝑖=2𝑝𝑖

𝑖

Page 35: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

21 2.2. Fatoração Livre de Quadrados

é uma flq de 𝑝. Portanto, só precisamos nos preocupar em calcular a flq da parteprimitiva de um polinômio. Além disso, se 𝐷 possui característica 0, a flq de 𝑝

separa as suas raízes pelas multiplicidades, agrupando em 𝑝𝑖 aquelas com multi-plicidade 𝑖, pois qualquer raiz de 𝑝 deve ser raiz de exatamente um destes 𝑝𝑖 (os𝑝𝑖 são coprimos).

Proposição 2.2.1 ([2], Cap. 1, §7, [25]). Sejam 𝑝 ∈ 𝐷[𝑥]∖𝐷, pp(𝑝) =𝑛∏

𝑖=1𝑝𝑒𝑖

𝑖 uma

fatoração em fatores irredutíveis de pp(𝑝), 𝑚 = max(𝑒1, . . . ,𝑒𝑛) e 𝑞𝑖 =∏

𝑗|𝑒𝑗=𝑖

𝑝𝑗

para 1 ≤ 𝑖 ≤ 𝑚. Então,

1. 𝑝−𝑘 =𝑚∏

𝑖=𝑘+1𝑞𝑖−𝑘

𝑖 = 𝑞𝑘+1𝑞2𝑘+2 . . . 𝑞𝑚−𝑘

𝑚 para qualquer 𝑘 ≥ 0.

2.𝑞𝑖 = 𝑝−𝑖−1 *

𝑝−𝑖 * para 1 ≤ 𝑖 ≤ 𝑚. (2.8)

3. pp(𝑝) =𝑚∏

𝑖=1𝑞𝑖

𝑖 é uma fatoração livre de quadrados de pp(𝑝).

Temos, portanto, uma maneira de calcular os fatores de uma flq de um polinô-mio em termos de suas deflações e vice-versa. Além disso, se 𝐷 tem característica0, conseguimos o seguinte algoritmo para calcular a parte primitiva de um po-linômio: como vimos na subseção anterior, vale em 𝐷[𝑥] a equação (2.7), isto é,𝑝−1 = 𝑝− = mdc(𝑝,𝑑𝑝/𝑑𝑥), o que nos dá 𝑞1 = (𝑝−0)* = 𝑝* = pp(𝑝)/𝑝−. Indutiva-mente, se temos (𝑝−𝑘)* e 𝑝−𝑘+1 , então conseguimos calcular

mdc((𝑝−𝑘)*,𝑝−𝑘+1

)= mdc(𝑞𝑘+1 · · · 𝑞𝑚,𝑞𝑘+2𝑞

2𝑘+3 · · · 𝑞𝑚−𝑘−1

𝑚 ) = (𝑝−𝑘+1)*,

e 𝑞𝑘+1 e 𝑝−𝑘+2 podem ser obtidos respectivamente por 2.8 e 2.6. Seguimos atéencontrar o primeiro 𝑘 inteiro positivo tal que 𝑝−𝑘+1 ∈ 𝐷, em qual caso teremos 𝑝−𝑘

livre de quadrados, com 𝑘 = 𝑚−1 e 𝑞𝑚 = 𝑝−𝑘 . Ou seja, conseguimos o algoritmode Musser, que encontra uma flq para 𝑝 utilizando apenas operações racionaise cálculos de mdc em 𝐷[𝑥].

Há, porém, um algoritmo mais eficiente que o descrito acima, que atua atravésda redução de grau dos polinômios que aparecem nos mdc de cada iteração. É

Page 36: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 22

chamado algoritmo de Yun [36]. Mantendo a notação, a ideia é considerar aseguinte sequência de polinômios:

𝑌𝑘 =𝑚∑

𝑖=𝑘

(𝑖− 𝑘 + 1)𝑑𝑞𝑖

𝑑𝑥

(𝑝−𝑘−1)*

𝑞𝑖

=𝑚∑

𝑖=𝑘

(𝑖− 𝑘 + 1)𝑞𝑘 · · · 𝑞𝑖−1𝑑𝑞𝑖

𝑑𝑥𝑞𝑖+1 · · · 𝑞𝑚 para 𝑘 ≥ 1. (2.9)

O lema abaixo traz algumas propriedades desta sequência.

Proposição 2.2.2 ([2] Cap. 1, §7, [36]). Com a notação acima,

mdc((𝑝−𝑖−1)*,𝑌𝑖) ∈ 𝐷,

𝑑𝑝−𝑖−1/𝑑𝑥 = 𝑝−𝑖𝑌𝑖, (2.10)

e com 𝑞𝑖 como definido na Proposição 2.2.1,

𝑌𝑖 −𝑑(𝑝−𝑖−1)*

𝑑𝑥= 𝑞𝑖𝑌𝑖+1 (2.11)

para 1 ≤ 𝑖 ≤ 𝑚.

Temos que (𝑝−𝑖−1)* = 𝑞𝑖(𝑝−𝑖)* e mdc((𝑝−𝑖)*,𝑌𝑖+1) = 1, donde concluímos, por

(2.11) que

mdc(

(𝑝−𝑖−1)*,𝑌𝑖 −

𝑑(𝑝−𝑖−1)*

𝑑𝑥

)= 𝑞𝑖. (2.12)

Esta é a base para o algoritmo de Yun, o qual descrevemos a seguir.Novamente, suponha que 𝑝 é primitivo. Temos que 𝑝− = mdc(𝑝,𝑑𝑝/𝑑𝑥) e,

portanto,𝑝−0 * = 𝑝* = pp(𝑝)/𝑝− e 𝑌1 = 𝑑𝑝/𝑑𝑥

𝑝− por (2.10).

Indutivamente, se temos 𝑝−𝑘−1 * e 𝑌𝑘, 𝑞𝑘 pode ser calculado através de (2.12), e𝑌𝑘+1 e 𝑝−𝑘

* são obtidos respectivamente por (2.11) e (2.8). Seguimos até que𝑌𝑘 = 𝑑𝑝−𝑘−1 *

/𝑑𝑥, quando temos que 𝑝−𝑘−1 é livre de quadrados, com 𝑘 = 𝑚 e𝑞𝑘 = 𝑝−𝑘−1 = 𝑝−𝑘−1 *. Na subseção 5.3.2, fornecemos um pseudocódigo, juntamentecom um código para implementação no Maxima do algoritmo de Yun.

Observamos uma consequência da Proposição 2.2.1. Se o DFU 𝐷 possui

Page 37: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

23 2.2. Fatoração Livre de Quadrados

característica 0 e 𝑝 ∈ 𝐷[𝑥] ∖ 𝐷 é primitivo e livre de quadrados então, peloitem 1 da Proposição 2.2.1, mdc(𝑝,𝑑𝑝/𝑑𝑥) = 𝑝− = 1, pois, neste caso, 𝑚 = 1.Reciprocamente, se mdc(𝑝,𝑑𝑝/𝑑𝑥) = 1 então 𝑝 = 𝑝−0 é livre de quadrados. Ouseja,

Teorema 2.2.1 ([11], Cap. 8, §2). Sejam 𝐷 um DFU de característica 0 e 𝑝 ∈𝐷[𝑥] ∖𝐷 um polinômio primitivo. Então, 𝑝 é livre de quadrados se e só se

grau(

mdc(

𝑝,𝑑𝑝

𝑑𝑥

))= 0.

Evidentemente, se 𝑝 é um polinômio irredutível então grau(mdc(𝑝,𝑝′)) = 0,do contrário, 𝑝 possuiria divisor não trivial. Assim, todo polinômio irredutível élivre de quadrados.

Page 38: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 2. Noções Preliminares 24

Page 39: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3

Integração Indefinida de FunçõesRacionais Complexas

Apresentamos agora algoritmos de integração de funções racionais sobre um sub-corpo dos complexos (portanto, de característica 0). O primeiro algoritmo a serapresentado é o algoritmo de Bernoulli, que é comumente estudado nos cursosde Cálculo, mas não costuma ser o método utilizado pelos CAS da atualidade.Seguimos com o algoritmo de Hermite e suas variantes e o algoritmo de Horowitz-Ostrogradsky. Ambos são capazes de expressar a integral de uma função racionalcomo sendo a soma entre uma função racional e a integral de uma função racionalprópria cujo denominador é livre de quadrados. Finalizamos apresentando os algo-ritmos de Rothstein-Trager e de Lazard-Rioboo-Trager, que efetivamente calculama integral deixada pelos últimos algoritmos, expressando-a como uma combinaçãolinear de logaritmos com certas propriedades desejáveis, como veremos.

3.1 O Algoritmo de Bernoulli

Seja 𝑓 = 𝑝/𝑞 ∈ R(𝑥) uma função racional reduzida com coeficientes reais. Adivisão polinomial nos permite expressar 𝑓 = 𝑠 + 𝑟/𝑞, onde 𝑠,𝑟 ∈ R[𝑥], com 𝑟/𝑞

reduzida e própria. Seja

𝑞 =𝑛∏

𝑖=1(𝑥− 𝑎𝑖)𝑒𝑖

𝑚∏𝑗=1

(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)𝑓𝑗

Page 40: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 26

a fatoração em fatores irredutíveis de 𝑞 sobre os reais, com todos 𝑎𝑖,𝑏𝑗,𝑐𝑗 ∈ R e𝑒𝑖,𝑓𝑗 inteiros positivos. Decompondo 𝑓 em frações parciais completas, temos

𝑓 = 𝑠 +𝑛∑

𝑖=1

𝑒𝑖∑𝑘=1

𝐴𝑖𝑘

(𝑥− 𝑎𝑖)𝑘+

𝑚∑𝑗=1

𝑓𝑗∑𝑘=1

𝐵𝑗𝑘𝑥 + 𝐶𝑗𝑘

(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)𝑘(3.1)

onde todos 𝐴𝑖𝑘,𝐵𝑗𝑘,𝐶𝑗𝑘 ∈ R. Portanto, pela linearidade da integração, ∫ 𝑓 é asoma das integrais das parcelas do lado direito da equação (3.1). A integral de𝑠 ∈ R[𝑥] é fácil de ser calculada, pois 𝑠 é um polinômio. Para as outras parcelas,temos: ∫ 𝐴𝑖𝑘

(𝑥− 𝑎𝑖)𝑘=

⎧⎪⎨⎪⎩𝐴𝑖𝑘(𝑥− 𝑎𝑖)1−𝑘/(1− 𝑘) se 𝑘 > 1

𝐴1𝑘 log(𝑥− 𝑎𝑖) se 𝑘 = 1(3.2)

e, notando que 𝑏2𝑗 − 4𝑐𝑗 < 0, uma vez que 𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗 é irretdutível sobre os

reais,∫ 𝐵𝑗1𝑥 + 𝐶𝑗1

(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)=𝐵𝑗1

2 log(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)

+ 2𝐶𝑗1 − 𝑏𝑗𝐵𝑗1√4𝑐𝑗 − 𝑏2

𝑗

arctg⎛⎝ 2𝑥 + 𝑏𝑗√

4𝑐𝑗 − 𝑏2𝑗

⎞⎠e para 𝑘 > 1,

∫ 𝐵𝑗𝑘𝑥 + 𝐶𝑗𝑘

(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)𝑘= (2𝐶𝑗𝑘 − 𝑏𝑗𝐵𝑗𝑘)𝑥 + 𝑏𝑗𝐶𝑗𝑘 − 2𝑐𝑗𝐵𝑗𝑘

(𝑘 − 1)(4𝑐𝑗 − 𝑏2𝑗)(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)𝑘−1

+∫ (2𝑘 − 3)(2𝐶𝑗𝑘 − 𝑏𝑗𝐵𝑗𝑘)

(𝑘 − 1)(4𝑐𝑗 − 𝑏2𝑗)(𝑥2 + 𝑏𝑗𝑥 + 𝑐𝑗)𝑘−1 . (3.3)

A regra explicitada por (3.3) pode ser aplicada recursivamente sobre a integraldo lado direito desta equação, até que atinjamos 𝑘 = 1. Assim, completamos oalgoritmo de Bernoulli.

O método explicitado serve para funções racionais com coeficientes reais.Porém, uma variante pode ser obtida para funções cujos coeficientes estejamnum subcorpo K qualquer dos complexos. Mantendo a notação, suponhamos𝑓 = 𝑝/𝑞 ∈ K(𝑥) e consideremos a fatoração completa em termos lineares de 𝑞,

Page 41: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

27 3.1. O Algoritmo de Bernoulli

isto é 𝑞 =𝑛∏

𝑖=1(𝑥 − 𝑎𝑖)𝑒𝑖 , onde os 𝑎𝑖 pertencem ao fecho algébrico de K. Temos a

seguinte decomposição em frações parciais completas de 𝑓 :

𝑓 = 𝑠 +𝑛∑

𝑖=1

𝑒𝑖∑𝑘=1

𝐴𝑖𝑘

(𝑥− 𝑎𝑖)𝑘. (3.4)

Basta, então, aplicar (3.2) para cada termo cada termo próprio do lado direito.Esta abordagem é equivalente a expandir 𝑓 em sua série de Laurent em todos

os seus polos finitos, uma vez que, em 𝑥 = 𝑎𝑖, a série de Laurent é

𝑓 = 𝐴𝑖𝑒𝑖

(𝑥− 𝑎𝑖)𝑒𝑖+ · · ·+ 𝐴𝑖2

(𝑥− 𝑎𝑖)2 + 𝐴𝑖1

(𝑥− 𝑎𝑖)+ · · ·

onde os 𝐴𝑖𝑗 são os mesmos que em (3.4). Portanto, podemos perceber esta abor-dagem como a expansão do integrando em série em torno de seus polos (incluíndo∞), seguida de integração termo a termo da série e interpolação, através da somade todos os termos polares, obtendo, assim, a integral de (3.4).

Dada a natureza desta variante do método de Bernoulli de se basear em ex-pansão de séries, dizemos que sua abordagem é local. Em termos computacionais,a inconveniência deste método reside no fato de sermos levados a computar exten-sões de números algébricos sobre K que não necessariamente precisam aparecer naintegral, a saber, os coeficientes da série de Laurent, além de precisarmos realizarcálculos de frações parciais envolvendo estes números algébricos. No Exemplo3.1.2 a seguir, realizamos cálculos em Q(𝐼) e obtemos o resultado final a partirdeste corpo, mas existe uma integral que pode ser expressa inteiramente sobreQ(𝑥). Por outro lado, certas integrais não são possíveis de serem expressas sem aintrodução de novas extensões algébricas constantes, como ∫ 𝑑𝑥/(𝑥2 − 2), a qualnecessita da extensão

√2. Portanto, de maneira geral, é possivel que precisemos

introduzir novas extensões algébricas de K em algum momento.Nosso objetivo, portanto, é conseguir um método que nos possibilite efetuar o

máximo possível de cálculos permanecendo no corpo K(𝑥) do qual o integrando𝑓 faz parte e, caso seja necessário realizar extensões sobre o corpo de constantesK, queremos fazer isto o mínimo possível. É exatamente isto que vamos conseguirnas próximas seções.

Page 42: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 28

Na subseção 5.5.1, um código para implementação no Maxima do algoritmo deBernoulli aplicado a integrandos reduzidos, próprios e com denominadores livresde quadrados.

3.1.1 Exemplos

Exemplo 3.1.1 (extraído de [2], Cap 2, §1). Seja 𝑓 = 1/(𝑥2 + 1)2 ∈ Q(𝑥).Observe que o denominador já está fatorado em fatores irredutíveis sobre R, eportanto, 𝑓 já está decomposta em frações parciais. Portanto, nas fórmulas doalgoritmo de Bernoulli, com 𝑗 = 1, 𝑘 = 1, 𝑏1 = 𝐵12 = 0 e 𝑐1 = 𝐶12 = 1, temos

∫ 1(𝑥2 + 1)2 = 2𝑥

4(𝑥2 + 1) + 2𝑑𝑥

4(𝑥2 + 1) = 𝑥

2(𝑥2 + 1) + 12 arctg(𝑥).

Exemplo 3.1.2 (extraído de [2], Cap 2, §1). Seja 𝑓 = 1/(𝑥3 + 𝑥) ∈ Q(𝑥). Odenominador se fatora em fatores irredutíveis em R na forma 𝑥3 + 𝑥 = 𝑥(𝑥2 + 1).Portanto, temos a seguinte decomposição em frações parciais de 𝑓 :

1𝑥3 + 𝑥

= 1𝑥− 𝑥

𝑥2 + 1 .

Seguindo as fórmulas do algoritmo de Bernoulli temos∫ 1

𝑥3 + 𝑥= log(𝑥)− 1

2 log(𝑥2 + 1). (3.5)

Se tivéssemos escolhido fatorar 𝑓 sobre os complexos, a fatoração em fatoresirredutíveis do denominador ficaria 𝑥3 + 𝑥 = 𝑥(𝑥 + 𝐼)(𝑥− 𝐼), e a decomposiçãoem frações parciais seria

1𝑥3 + 𝑥

= 1𝑥− 1/2

𝑥 + 𝐼− 1/2

𝑥− 𝐼.

Portanto, uma representação alternativa para a integral de 𝑓 seria∫ 1

𝑥3 + 𝑥= log(𝑥)− 1

2 log(𝑥 + 𝐼)− 12 log(𝑥− 𝐼).

Observamos, portanto, que a última expressão introduz números algébricos des-

Page 43: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

29 3.2. O Algoritmo de Hermite

necessários na representação da integral de 𝑓 , enquanto que a representação (3.5)evita esta introdução. Isto motivará o algoritmo de Rothstein-Trager, a ser estu-dado mais adiante.

3.2 O Algoritmo de Hermite

Como vimos na seção 3.1, se 𝑓 ∈ K(𝑥), onde K é um subcorpo dos complexos,podemos expressar ∫

𝑓 = 𝑐

𝑑+

𝑚∑𝑖=1

𝛾𝑖 log(𝑣𝑖) (3.6)

onde 𝑐,𝑑,𝑣1, . . . ,𝑣𝑚 ∈ K[𝑥] e 𝛾1, . . . ,𝛾𝑚 ∈ K. No lado direito, a fração 𝑐/𝑑 ∈ K(𝑥)é chamada de parte racional da integral, sendo o restante a parte logarítmica outranscendental, como já mencionamos no Capítulo 1. O algoritmo de Hermitepermite encontrar completamente a parte racional da integral de 𝑓 , enquantoexpressa a parte logarítmica implicitamente por ∫ 𝑎/𝑏, onde 𝑎/𝑏 ∈ K(𝑥) é umafração reduzida, própria e de denominador livre de quadrados.

3.2.1 Versão Original do Algoritmo de Hermite

Novamente, seja 𝑓 = 𝑝/𝑞 ∈ K(𝑥) uma fração reduzida. Valendo-nos da divisãoeuclidiana, escrevamos 𝑓 = 𝑠 + 𝑟/𝑞, onde 𝑠,𝑟 ∈ R[𝑥], com 𝑟/𝑞 própria. Seja𝑞 = 𝑞1

1 · · · 𝑞𝑘𝑘 a flq de 𝑞. A decomposição em frações parciais em relação a esta

fatoração é

𝑓 = 𝑠 +𝑘∑

𝑖=1

𝑟𝑖

𝑞𝑖𝑖

onde cada 𝑟𝑖 ∈ K[𝑥] e vale 0, ou grau(𝑟𝑖) < grau(𝑞𝑖𝑖). Como no algoritmo de

Bernoulli, reduzimos o nosso problema a integrar cada uma das parcelas própriaspor vez no lado direito da equação acima. Observando ainda que, como cada𝑞𝑖 é livre de quadrados e, portanto, temos que mdc(𝑞𝑖,𝑞

′𝑖) = 1, se 𝑖 > 1 então

podemos utilizar o algoritmo de Euclides estendido (vide pseudocódigos e códigosdas subseções 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8 e 5.2.9 para cálculo de mdc)

Page 44: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 30

para encontrar 𝜎,𝜏 ∈ K[𝑥] tais que

𝑟𝑖

1− 𝑖= 𝜎𝑞′

𝑖 + 𝜏𝑞𝑖

com grau(𝜎) < grau(𝑞𝑖). Logo, grau(𝜎𝑞′𝑖) < grau(𝑞2

𝑖 ) ≤ grau(𝑞𝑖𝑖) e, portanto,

grau(𝜏) < grau(𝑞𝑖−1𝑖 ). Multiplicando ambos os lados por (1− 𝑖)/𝑞𝑖

𝑖, temos

𝑟𝑖

𝑞𝑖𝑖

= −(𝑖− 1)𝜎𝑞′𝑖

𝑞𝑖𝑖

+ (1− 𝑖)𝜏𝑞𝑖−1

𝑖

.

Adicionando e subtraindo 𝜎′/𝑞𝑖−1𝑖 no lado direito, temos

𝑟𝑖

𝑞𝑖𝑖

=(

𝜎′

𝑞𝑖−1𝑖

− (𝑖− 1)𝜎𝑞′𝑖

𝑞𝑖𝑖

)+ (1− 𝑖)𝜏 − 𝜎′

𝑞𝑖−1𝑖

.

Finalmente, integrando ambos os lados,

∫ 𝑟𝑖

𝑞𝑖𝑖

= 𝜎

𝑞𝑖−1𝑖

+∫ (1− 𝑖)𝜏 − 𝜎′

𝑞𝑖−1𝑖

. (3.7)

Uma vez que grau((1− 𝑖)𝜏 − 𝜎′) < grau(𝑞𝑖−1𝑖 ), o integrando à direita em (3.7) é

semelhante ao da esquerda, porém com a potência do denominador reduzida emuma unidade. De maneira semelhante ao algoritmo de Bernoulli, podemos repetiresta fórmula recursivamente à direita, até que a potência do denominador seja1. Quando atingimos esta condição, obtemos 𝑐𝑖,𝑑𝑖,𝑎𝑖 ∈ K[𝑥] tais que grau(𝑎𝑖) <

grau(𝑞𝑖) e 𝑟𝑖/𝑞𝑖𝑖 = (𝑐𝑖/𝑑𝑖)′ + 𝑎𝑖/𝑞𝑖, para cada 𝑖. Portanto, obtemos 𝑔,ℎ ∈ K(𝑥) tais

que 𝑓 = 𝑔′ + 𝑠 + ℎ, onde ℎ é uma fração própria cujo denominador é livre dequadrados (é o produto dos 𝑞𝑖) e, ∫ ℎ é a parte logarítmica da integral de 𝑓 . Aparte racional, portanto, é 𝑔 + ∫ 𝑠.

3.2.2 Versão Quadrática do Algoritmo de Hermite

Uma variante do algoritmo de Hermite nos permite chegar ao mesmo resultadosem a necessidade de se computar a decomposição em frações parciais de 𝑓 .Descrevemos esta variante a seguir.

Mantendo a notação, supondo que na flq de 𝑞 tenhamos 𝑘 ≥ 2 (caso contrário 𝑞

Page 45: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

31 3.2. O Algoritmo de Hermite

já seria livre de quadrados), definamos 𝑞 = 𝑞/𝑞𝑘𝑘 . Como mdc(𝑞𝑞′

𝑘,𝑞𝑘) = 1, podemosutilizar o algoritmo de Euclides estendido para calcular 𝜎,𝜏 ∈ K[𝑥] tais que

𝑝

1− 𝑘= 𝜎𝑞𝑞′

𝑘 + 𝜏𝑞𝑘

e grau(𝜎) < grau(𝑞𝑘). Multiplicando ambos os lados por (1− 𝑘)/(𝑞𝑞𝑘𝑘), temos

𝑝

𝑞𝑞𝑘𝑘

= (1− 𝑘)𝜎𝑞′𝑘

𝑞𝑘𝑘

+ (1− 𝑘)𝜏𝑞𝑞𝑘−1

𝑘

.

Logo, adicionando e subtraindo 𝜎′/𝑞𝑘−1𝑘 do lado direito, temos

𝑝

𝑞𝑞𝑘𝑘

=(

𝜎′

𝑞𝑘−1𝑘

− (𝑘 − 1)𝜎𝑞′𝑘

𝑞𝑘𝑘

)+ (1− 𝑘)𝜏 − 𝑞𝜎′

𝑞𝑞𝑘−1𝑘

.

Finalmente, integrando dos dois lados:

∫ 𝑝

𝑞𝑞𝑘𝑘

= 𝜎

𝑞𝑘−1𝑘

+∫ (1− 𝑘)𝜏 − 𝑞𝜎′

𝑞𝑞𝑘−1𝑘

.

Novamente, a integral à direita é similar à integral à esquerda, com a redução depotência em uma unidade no denominador. O processo segue recursivamente atéque se obtenha um denominador livre de quadrados.

Como o expoente dos fatores livres de quadrados é reduzido em uma unidadeem cada passo, no pior dos casos, o número de passos de redução e 1+2+· · ·+(𝑘−1),o que tem complexidade 𝑂(𝑘2) e, portanto, chamamos esta variante de versãoquadrática do método de Hermite.

3.2.3 Versão Linear do Algoritmo de Hermite

Uma última variante do algoritmo de Hermite é fornecida a seguir e é devida a D.Mack [22]. Nela, não precisamos calcular nem a decomposição em frações parciaisdo integrando, nem, a priori a fatoração livre de quadrados de seu denominador(esta última sendo computada ao longo do processo).

Como estamos trabalhando sobre um corpo K, podemos supor que o denomi-nador 𝑞 da função 𝑓 é um polinômio primitivo. Como nos algoritmos de fatoração

Page 46: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 32

livre de quadrados, calculamos 𝑞− = mdc(𝑞,𝑞′) e 𝑞* = 𝑞/𝑞−. Se grau(𝑞−) = 0,então 𝑞 é livre de quadrados, senão, como 𝑞− = 𝑞−*

𝑞−2 por 2.5, 𝑞−′ = 𝑞−2𝑌2 pelaProposição 2.2.2, onde 𝑌2 é dado por (2.9) e 𝑞1 = 𝑞*/𝑞−* pela Proposição 2.2.1,temos

𝑞*𝑞−′

𝑞− = 𝑞*𝑞−2𝑌2

𝑞− = 𝑞*𝑞−2𝑌2

𝑞−*𝑞−2= 𝑞*

𝑞−* 𝑌2 = 𝑞1𝑌2 ∈ K[𝑥]. (3.8)

Além disso, como consequência da Proposição 2.2.1, mdc(𝑞1,𝑞−) = 1, e mdc(𝑌2,𝑞

−*) =1 pela Proposição 2.2.2, o que implica que

mdc(

𝑞*𝑞−′

𝑞− ,𝑞−*)

= mdc(𝑞1𝑌2,𝑞−*) = 1.

Portanto, podemos utilizar o algoritmo de Euclides estendido para encontrar𝜎,𝜏 ∈ K[𝑥] tais que

𝑝 = 𝜎

(−𝑞*𝑞−′

𝑞−

)+ 𝜏𝑞−*

.

Dividindo-se ambos os lados por 𝑞 = 𝑞*𝑞− = 𝑞1𝑞−*

𝑞−, temos

𝑝

𝑞= −𝜎𝑞−′

𝑞−2 + 𝜏

𝑞1𝑞− .

Adicionando e subtraindo 𝜎′/𝑞− do lado direito, temos

𝑝

𝑞=(

𝜎′

𝑞− −𝜎𝑞−′

𝑞−2

)+ 𝜏 − 𝑞1𝜎

𝑞1𝑞− .

Finalmente, integrando ambos os lados, temos

∫ 𝑝

𝑞= 𝜎

𝑞− +∫ 𝜏 − 𝑞1𝜎

𝑞1𝑞− . (3.9)

Como 𝑞1𝑞− = (𝑞1𝑞2)𝑞2

3 · · · 𝑞𝑚−1𝑚 , o integrando foi reduzido a um cujo denominador

possui fatoração livre de quadrados com no máximo 𝑚−1 expoentes diferentes, aoinvés de 𝑚 como no início do processo. Aplicando recursivamente o método paraintegral do lado direito da fórmula (3.9), terminamos o processo em no máximo𝑚 − 1 passos, quando teremos um denominador livre de quadrados. Por causadesta complexidade linear, este método costuma ser chamado de versão linear

Page 47: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

33 3.2. O Algoritmo de Hermite

do algoritmo de Hermite.Notamos que uma melhoria pode ser feita à versão linear do método de Hermite.

Podemos calcular os parâmetros do próximo passo a partir dos atuais. Seja 𝑝/𝑞 ointegrando atual, com

𝑝 = 𝜏 − 𝑞1𝜎′ = 𝜏 − 𝑞*

𝑞−* 𝜎′

e𝑞 = 𝑞1𝑞

− = 𝑞1𝑞2𝑞23 · · · 𝑞𝑚−1

𝑚 .

Temos que𝑞* = 𝑞1𝑞

− = 𝑞1𝑞2𝑞3 · · · 𝑞𝑚 = 𝑞*,

ou seja 𝑞* permanece o mesmo ao longo da redução. Por outro lado,

𝑞− = 𝑞3𝑞24 · · · 𝑞𝑚−2

𝑚 = 𝑞−2 ,

o que, de maneira geral, significa que, no 𝑖-ésimo (caso todos os expoentes sejampositivos) 𝑞− é substituído por sua 𝑖-ésima deflação.

Finalmente, observamos que todas as variantes do algoritmo de Hermite podemser realizadas sobre um DFU, ao invés de um corpo, sendo o resultado expresso emseu corpo quociente. Neste caso, na variante linear, o denominador do integrandoobrigatoriamente deve ser primitivo, ao contrário das demais variantes.

Nas subseções 5.4.1, 5.4.2 e 5.4.3, fornecemos pseudocódigos, juntamente comcódigos para implementação no Maxima, respectivamente, das versões original,quadrática e linear do método de Hermite.

3.2.4 Exemplos

Aplicaremos as três versões do algoritmo de Hermite a uma mesma função.

Exemplo 3.2.1 (gerado com dados obtidos pelo código 5.4.1, versão original daredução de Hermite). Sejam 𝐴 = 3𝑥6−𝑥4−6 ∈ Q[𝑥], 𝐷 = 𝑥8−12𝑥6+48𝑥4−64𝑥2 ∈Q[𝑥] e 𝑓 = 𝐴/𝐷 ∈ Q(𝑥), isto é,

𝑓 = 3𝑥6 − 𝑥4 − 6𝑥8 − 12𝑥6 + 48𝑥4 − 64𝑥2 ∈ Q(𝑥).

Page 48: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 34

Temos que a fatoração em fatores irredutíveis do denominador é 𝐷 = 𝑥2(𝑥 −2)3(𝑥 + 2)3, enquanto que sua flq é 𝐷 = 𝑥2(𝑥2 − 4)3 = 𝐷2

2𝐷33. A decomposição

em frações parciais de 𝑓 sobre esta fatoração é

𝑓 = 332𝑥2 + 93𝑥4 + 4𝑥2 − 144

32(𝑥2 − 4)3 .

Aplicando a versão original do algoritmo de Hermite sobre 𝑓 , temos, nos termosda fórmula de recursão:

𝑖 𝑉 𝑗 𝐴𝑖 𝐵 𝐶

2 𝑥 1 3/32 −3/32 03 𝑥2 − 4 2 (93𝑥4 + 4𝑥2 − 144)/32 −85𝑥/82 −(93𝑥2 + 36)/643 𝑥2 − 4 1 (93𝑥2 + 121)/32 −493𝑥/256 121/128

Portanto,

∫ 3𝑥6 − 𝑥4 − 6𝑥8 − 12𝑥6 + 48𝑥4 − 64𝑥2 = − 493𝑥

256(𝑥2 − 4)−85𝑥

32(𝑥2 − 4)2−3

32𝑥+∫ 251

256(𝑥2 − 4) .

Exemplo 3.2.2 (gerado com dados obtidos pelo código 5.4.2, versão quadráticada redução de Hermite). Com a versão quadrática, temos a seguinte tabela para 𝑓 :

𝑖 𝑉 𝑈 𝑗 𝐵 𝐶 𝐴

2 𝑥 𝐷33 1 −3/32 −(93𝑥5 + 4𝑥3 − 144𝑥)/32 (93𝑥5 + 4𝑥3 − 144𝑥)/32

3 𝐷3 𝑥 2 −85𝑥/32 −(93𝑥3 + 36𝑥)/64 (93𝑥3 + 121𝑥)/323 𝐷3 𝑥 1 −493𝑥/256 121𝑥/128 251𝑥/256

Portanto,

∫ 3𝑥6 − 𝑥4 − 6𝑥8 − 12𝑥6 + 48𝑥4 − 64𝑥2 = − 493𝑥

256(𝑥2 − 4)−85𝑥

32(𝑥2 − 4)2−3

32𝑥+∫ 251

256(𝑥2 − 4) .

da mesma maneira que na versão linear, porém não necessitamos da decomposiçãoem frações parciais.

Page 49: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

35 3.2. O Algoritmo de Hermite

Exemplo 3.2.3 (gerado com dados obtidos pelo código 5.4.3, versão linear deMack da redução de Hermite). Mantendo a função 𝑓 , temos:

1. 𝑔 ← 0;

2. 𝐷− ← mdc(𝐷,𝑑𝐷/𝑑𝑥) = 𝑥5 − 8𝑥3 + 16𝑥;

3. 𝐷* ← 𝐷/𝐷− = 𝑥3 − 4𝑥;

4. Entramos no primeiro passo da redução:𝐷−2 ← mdc(𝑥5 − 8𝑥3 + 16𝑥,5𝑥4 − 24𝑥2 + 16) = 𝑥2 − 4;

5. 𝐷−* ← 𝐷−/𝐷−2 = 𝑥3 − 4𝑥;

6.

(𝐵,𝐶)← ExtendedEuclidean(−5𝑥2 + 4,𝑥3 − 4𝑥,𝐴)

=(−73𝑥2 + 48

32 ,96𝑥3 − 13𝑥

32

);

7. 𝐴← (96𝑥3 − 13𝑥)/32 + 146𝑥/32 = (96𝑥3 + 133𝑥)/32;

8.𝑔 ← 𝑔 + 𝐵

𝐷− = − 73𝑥2 + 4832(𝑥5 − 8𝑥3 + 16𝑥)

9. 𝐷− ← 𝐷−2 = 𝑥2 − 4

10. Entramos no segundo passo da redução:𝐷−2 ← mdc(𝑥2 + 2,2𝑥) = 1;

11. 𝐷−* ← 𝐷−/𝐷−2 = 𝑥2 − 4;

12. (𝐵,𝐶)← ExtendedEuclidean(−2𝑥2,𝑥2 − 4,(96𝑥3 + 133𝑥)/32) = (−517𝑥/256,

−133𝑥/128)

13.𝑔 ← 𝑔 + 𝐵

𝐷− = − 73𝑥2 + 4832(𝑥5 − 8𝑥3 + 16𝑥) −

−517𝑥

256(𝑥2 − 4)

14. 𝐷− ← 𝐷−2 = 1.

Page 50: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 36

Portanto,∫ 3𝑥6 − 𝑥4 − 6

𝑥8 − 12𝑥6 + 48𝑥4 − 64𝑥2 = − 73𝑥2 + 4832(𝑥5 − 8𝑥3 + 16𝑥) −

−517𝑥

256(𝑥2 − 4) +∫ 251𝑥

256(𝑥3 − 4𝑥)

o que equivale ao que obtivemos nas duas outras versões do algoritmo de Hermite,mas precisamos de apenas dois passos de redução, ao invés de três.

3.3 O Algoritmo de Horowitz-Ostrogradsky

O algoritmo de Hermite nos permite obter∫ 𝑝

𝑞= 𝑐

𝑑+∫ 𝑎

𝑏, (3.10)

com 𝑎,𝑏,𝑐,𝑑 ∈ K[𝑥], mdc(𝑐,𝑑) = mdc(𝑎,𝑏) = 1, 𝑎/𝑏 própria e 𝑏 livre de quadrados.O algoritmo de Horowitz-Ostrogradsky é uma alternativa ao método de

Hermite. Ao invés de uma redução, calcula diretamente os polinômios 𝑑 e 𝑏 naequação (3.10), e, a partir disso, obtém os polinômios 𝑎 e 𝑐 através da resoluçãode um sistema linear cujas incógnitas são os coeficientes destes dois últimospolinômios. Dispensa completamente os cálculos de frações parciais e fatoraçãolivre de quadrados.

Teorema 3.3.1 ([11], Cap. 11, §4). Seja 𝑓 = 𝑝/𝑞 ∈ K(𝑥) uma função racionalreduzida e própria. Sejam 𝑔 = 𝑐/𝑑 a parte racional de sua integral e ℎ = 𝑎/𝑏 ointegrando aparecendo na parte transcendental, como encontramos pelo algoritmode Hermite (note que 𝑠 = 0). Então

𝑑 = 𝑞− e 𝑏 = 𝑞*.

Além disso, grau(𝑎) < grau(𝑏) e grau(𝑐) < grau(𝑑).

Demonstração. Seja

𝑞 =𝑘∏

𝑖=1𝑞𝑖

𝑖

a fatoração livre de quadrados de 𝑞. A demonstração é bastante direta e consiste,basicamente, de observar a contribuição da integral de cada fração parcial do

Page 51: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

37 3.3. O Algoritmo de Horowitz-Ostrogradsky

integrando original para os denominadores da parte racional e do integrandoda parte transcendental no algoritmo de Hermite. Em suma, na equação (3.10),encontramos que

𝑏 =𝑘∏

𝑖=1𝑞𝑖, 𝑑 =

𝑘∏𝑖=2

𝑞𝑖−1𝑖 ,

com grau(𝑎) < grau(𝑏) e grau(𝑐) < grau(𝑑). Ou seja,

𝑑 = 𝑞− e 𝑏 = 𝑞*.

O resultado acima é a base para o algoritmo de Horowitz-Ostrogradsky. Dife-renciando a equação (3.10) aplicada à fração reduzida e própria 𝑝/𝑞, temos

𝑝

𝑞= 𝑑𝑐′ − 𝑐𝑑′

𝑑2 + 𝑎

𝑏.

Multiplicando a equação acima por 𝑞 = 𝑏𝑑, temos

𝑝 = 𝑏𝑐′ − 𝑐𝑏𝑑′

𝑑+ 𝑑𝑎. (3.11)

Seja 𝑞 =𝑘∏

𝑖=1𝑞𝑖

𝑖 a flq de 𝑞. Observe que

𝑏𝑑′ =(

𝑘∏𝑖=1

𝑞𝑖

)⎛⎝ 𝑘∑𝑖=2

(𝑖− 1)𝑞𝑖−2𝑖

𝑘∏𝑖 =𝑗≥2

𝑞𝑗−1𝑗

⎞⎠ = 𝑞1

𝑘∑𝑖=2

(𝑖− 1)𝑞𝑖−1𝑖

𝑘∏𝑖 =𝑗≥2

𝑞𝑗𝑗 .

Portanto, 𝑏𝑑′ é divisível por 𝑑, donde a equação (3.11) constitui uma identidadepolinomial. Definamos 𝑚 = grau(𝑏) e 𝑛 = grau(𝑑). Como os únicos polinômiosque não conhecemos nesta identidade são 𝑎 e 𝑐, e como os limites superiores deseus graus são, respectivamente, 𝑚− 1 = grau(𝑏)− 1 e 𝑛− 1 = grau(𝑑)− 1, estaidentidade polinomial origina um sistema linear cujas variáveis são os coeficientesdestes polinômios, os quais se escrevem, para efeitos de resolução deste sistema,

𝑎 = 𝑎𝑚−1𝑥𝑚−1 + ... + 𝑎1𝑥 + 𝑎0

Page 52: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 38

e𝑐 = 𝑐𝑛−1𝑥

𝑛−1 + ... + 𝑐1𝑥 + 𝑐0.

O grau do polinômio do lado esquerdo da equação (3.11) é

grau(𝑝) ≤ grau(𝑞)− 1 = grau(𝑏) + grau(𝑑)− 1 = 𝑚 + 𝑛− 1

enquanto no lado direito, o limitante para o grau é

max(𝑚 + 𝑛− 2,𝑚 + 𝑛− 2,𝑚 + 𝑛− 1) = 𝑚 + 𝑛− 1.

Portanto, igualando os coeficientes dos dois lados da equação (3.11), obtemos umsistema linear determinado de 𝑚 + 𝑛 linhas e 𝑚 + 𝑛 incógnitas sobre K.

Observe que este método é uma alternativa ao algoritmo de Hermite e nãorequer o cálculo da fatoração livre de quadrados de 𝑞 em momento algum.

Enquanto a complexidade deste método é muito boa para funções racionais,sua generalização não é tão simples quanto o método de Hermite para classesmaiores de funções, de modo que o algoritmo para funções elementares acaba porutilizar a versão linear do algoritmo de Hermite [2, p. 46].

Na subseção 5.4.4, fornecemos um pseudocódigo, juntamente com código paraimplementação no Maxima do algoritmo de Horowitz-Ostrogradsky.

3.3.1 Exemplos

Continuamos utilizando a função 𝑓 dos exemplos da seção anterior.

Exemplo 3.3.1 (gerado com dados obtidos pelo código 5.4.4, algoritmo de Ho-rowitz-Ostrogradsky). Seguindo os passos do algoritmo de Horowitz-Ostrogradsky,temos:𝐷− = 𝑥5 − 8𝑥3 + 16𝑥;𝐷* = 𝐷/𝐷− = 𝑥3 − 4𝑥;𝑚 = grau(𝐷*)− 1 = 2, 𝑛 = grau(𝐷−)− 1 = 4.Temos a identidade polinomial

Page 53: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

39 3.4. O Algoritmo de Rothstein-Trager

𝐻 ← 𝐴−𝐷*(

𝑛∑𝑖=0

𝑏𝑖𝑥𝑖

)′

+(

𝑛∑𝑖=0

𝑏𝑖𝑥𝑖

)𝑑*𝐷−′

𝐷− −𝐷−

⎛⎝ 𝑚∑𝑗=0

𝑐𝑗𝑥𝑗

⎞⎠= (−𝑐2)𝑥7 + (𝑏4 − 𝑐1 + 3)𝑥6 + (2𝑏3 − 𝑐0 + 8𝑐2)𝑥5

+ (3𝑏2 + 12𝑏4 + 8𝑐1 − 1)𝑥4 + 4(𝑏1 + 2𝑏3 + 2𝑐0 − 4𝑐2)𝑥3

+ (5𝑏0 + 4𝑏2 − 16𝑐1)𝑥2 + (−16𝑐0)𝑥 + (−4𝑏0 − 6)

Formamos o sistema onde cada coeficiente de 𝐻 equivale a 0. A solução é

(𝑏0,𝑏1,𝑏2,𝑏3,𝑏4,𝑐0,𝑐1,𝑐2) =(−3

2 ,0,37164 ,0,− 517

256 ,0,− 251256 ,0

).

Portanto,∫ 3𝑥6 − 𝑥4 − 6

𝑥8 − 12𝑥6 + 48𝑥4 − 64𝑥2 = − 73𝑥2 + 4832(𝑥5 − 8𝑥3 + 16𝑥) −

−517𝑥

256(𝑥2 − 4) +∫ 251𝑥

256(𝑥3 − 4𝑥)

o que é coerente com a resposta dada pelo algoritmo de Hermite.

3.4 O Algoritmo de Rothstein-Trager

Terminado o algoritmo de Hermite (ou Horowitz-Ostrogradsky), resta-nos calculara parte logarítmica da integral de 𝑓 = 𝑝/𝑞, a saber, ∫ ℎ = ∫ 𝑎/𝑏, onde, como vimos,𝑎/𝑏 é uma fração reduzida e própria, cujo denominador é livre de quadrados. Se

considerarmos K o fecho algébrico de K, e se 𝑏 =𝑛∏

𝑖=1(𝑥− 𝛼𝑖), temos que ℎ deve

ter a formaℎ =

𝑛∑𝑖=1

𝛾𝑖

𝑥− 𝛼𝑖

(3.12)

onde 𝛾1, . . . ,𝛾𝑛 ∈ K. Dessa forma,

∫ℎ =

𝑛∑𝑖=1

𝛾𝑖 log(𝑥− 𝛼𝑖). (3.13)

Uma vez que a soma de logaritmos é o logaritmo do produto de seus argumentos,quaisquer logaritmos sob um mesmo 𝛾𝑖 na expressão acima podem ser unificados

Page 54: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 40

num único logaritmo. Em outras palavras, queremos encontrar um método deencontrar os resíduos distintos entre os 𝛾𝑖 necessários para expressar

∫ℎ sem

fatorar 𝑏 completamente. Os 𝛾𝑖 são os resíduos de ℎ que aparecem na expansãode Laurent de desta função em torno de cada ponto 𝑥 = 𝛼𝑖, i.e.

ℎ = 𝛾𝑖

𝑥− 𝛼𝑖

+ 𝑐0 + 𝑐1(𝑥− 𝛼𝑖) + 𝑐2(𝑥− 𝛼𝑖)2 + · · · . (3.14)

Utilizando a equação (3.12), temos que

𝑎 =𝑛∑

𝑖=1𝛾𝑖

𝑏

𝑥− 𝛼𝑖

=𝑛∑

𝑖=1𝛾𝑖

𝑛∏𝑗 =𝑖

(𝑥− 𝛼𝑗).

Portanto, para cada polo 𝛼𝑖

𝑎(𝛼𝑖) = 𝛾𝑖

𝑛∏𝑗 =𝑖

(𝛼𝑖 − 𝛼𝑗) = 𝛾𝑖𝑏′(𝛼𝑖)

Assim, se 𝛼 é um polo de ℎ para calcularmos o resíduo 𝛾 deste polo, podemosusar a fórmula

𝛾 = 𝑎(𝛼)𝑏′(𝛼) . (3.15)

Logo, encontrar todos os resíduos distintos equivale a resolver em 𝛾 a equação(3.15) para cada polo 𝛼. Ou seja, equivale a resolver

𝑎(𝛼)− 𝛾𝑏′(𝛼) = 0 para todo 𝛼 | 𝑏(𝛼) = 0.

Isto é o mesmo que encontrar todas as raízes distintas do polinômio

𝑅(𝑧) =∏

𝛼|𝑏(𝛼)=0(𝑎(𝛼)− 𝑧𝑏′(𝛼))

o que, pelo Lema 2.1.2 equivale a

𝑅(𝑧) = res𝑥(𝑎(𝑥)− 𝑧𝑏′(𝑥),𝑏(𝑥)). (3.16)

Page 55: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

41 3.4. O Algoritmo de Rothstein-Trager

Qualquer raiz repetida em (3.16) implicará em redução no número de logaritmosaparecendo em (3.13). Portanto, podemos escrever

∫ℎ =

𝑘∑𝑖=1

𝑐𝑖 log(𝑣𝑖) (3.17)

onde os 𝑐𝑖 são as raízes distintas de (3.16) e os 𝑣𝑖 são mônicos, livres de quadradose dois a dois coprimos. O seguinte resultado mostra que as raízes 𝑐𝑖 são todasnecessárias e provê um mecanismo simples para calcular os 𝑣𝑖.

Teorema 3.4.1 (Algoritmo de Rothstein-Trager, [11], Cap. 11, §5, [31, 34]). Sejam𝑎,𝑏 ∈ K*[𝑥] tais que mdc(𝑎,𝑏) = 1, com 𝑏 livre de quadrados e 𝑎/𝑏 reduzida eprópria. Suponha que, para K*, seja possível escrever

∫ 𝑎

𝑏=

𝑛∑𝑖=1

𝑐𝑖 log(𝑣𝑖) (3.18)

onde os 𝑐𝑖 ∈ K* são constantes não nulas distintas e os 𝑣𝑖 ∈ K*[𝑥] são livres dequadrados e dois a dois coprimos de grau positivo. Então os 𝑐𝑖 são todas as raízesdistintas do polinômio

𝑅(𝑧) = res𝑥(𝑎− 𝑧𝑏′,𝑏) ∈ K*[𝑧]

e os 𝑣𝑖 são os polinômios

𝑣𝑖 = mdc(𝑎− 𝑐𝑖𝑏′,𝑏) ∈ K*[𝑥].

Demonstração. Diferenciando a equação (3.18), temos

𝑎

𝑏=

𝑛∑𝑖=1

𝑐𝑖𝑣′

𝑖

𝑣𝑖

. (3.19)

Seja𝑢𝑖 =

𝑛∏𝑗 =𝑖

𝑣𝑗, 1 ≤ 𝑖 ≤ 𝑛.

Page 56: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 42

Multiplicando ambos os lados de (3.19) por 𝑏𝑛∏

𝑗=1𝑣𝑗, temos

𝑎𝑛∏

𝑗=1𝑣𝑗 = 𝑏

𝑛∑𝑖=1

𝑐𝑖𝑣′𝑖𝑢𝑖. (3.20)

Mostraremos que, a menos de uma constante multiplicativa,

𝑏 =𝑛∏

𝑗=1𝑣𝑗. (3.21)

Observe que mdc(𝑎,𝑏) = 1, donde (3.20) 𝑏 |𝑛∏

𝑗=1𝑣𝑗. Por outro lado, para cada 𝑗,

temos de (3.20) que

𝑣𝑗 | 𝑏𝑛∑

𝑖=1𝑐𝑖𝑣

′𝑖𝑢𝑖.

Por definição, cada 𝑣𝑗 divide 𝑢𝑖 para 𝑗 = 𝑖. Isto quer dizer que

𝑣𝑗 | 𝑏𝑣′𝑗𝑢𝑖.

Como os 𝑣𝑖 são supostos livres de quadrados, temos que mdc(𝑣𝑗,𝑣′𝑗) = 1. Além

disso, mdc(𝑣𝑗,𝑢𝑗) = 1, pela definição de 𝑢𝑗 e pelo fato de que os 𝑣𝑖 são dois a dois

primos entre si. Resta, portanto, que 𝑣𝑗 | 𝑏 para 1 ≤ 𝑗 ≤ 𝑛. Portanto,𝑛∏

𝑗=1𝑣𝑗 | 𝑏,

donde verificamos (3.21).As equações (3.20) e (3.21) combinadas implicam

𝑎 =𝑛∑

𝑖=1𝑐𝑖𝑣

′𝑖𝑢𝑖.

A seguir, mostraremos que, para cada 𝑗,

𝑣𝑗 | (𝑎− 𝑐𝑗𝑏′). (3.22)

Page 57: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

43 3.4. O Algoritmo de Rothstein-Trager

Observe que, de (3.21), temos

𝑏′ =𝑛∑

𝑖=1𝑣′

𝑖𝑢𝑖.

Portanto,𝑎− 𝑐𝑗𝑏

′ =𝑛∑

𝑖=1𝑐𝑖𝑣

′𝑖𝑢𝑖 − 𝑐𝑗

𝑛∑𝑖=1

𝑣′𝑖𝑢𝑖 =

𝑛∑𝑖=1

(𝑐𝑖 − 𝑐𝑗)𝑣′𝑖𝑢𝑖. (3.23)

No último somatório, para cada termo com 𝑖 = 𝑗, temos que 𝑣𝑗 | 𝑢𝑖, enquanto quequando 𝑖 = 𝑗, o termo desaparece. Portanto, verificamos (3.22). De (3.21) e (3.22)temos que 𝑣𝑗 é um divisor comum de 𝑎− 𝑐𝑗𝑏

′ e 𝑏 para cada 𝑗. Mostraremos quese trata de um mdc. É suficiente mostrar que para 𝑘 = 𝑗, mdc(𝑎 − 𝑐𝑗𝑏

′,𝑣𝑘) = 1.Para isto, utilizando (3.23), temos que

mdc(𝑎− 𝑐𝑗𝑏′,𝑣𝑘) = mdc

(𝑛∑

𝑖=1(𝑐𝑖 − 𝑐𝑗)𝑣′

𝑖𝑢𝑖,𝑣𝑘

)

= mdc((𝑐𝑘 − 𝑐𝑗)𝑣′𝑘𝑢𝑘,𝑣𝑘). (3.24)

A última igualdade acima se verifica porque 𝑣𝑘 é um fator de cada 𝑢𝑖, para𝑖 = 𝑘. Porém, para 𝑘 = 𝑗, o mdc acima é 1, pois 𝑐𝑘 = 𝑐𝑗, mdc(𝑣𝑘,𝑣′

𝑘) = 1 emdc(𝑣𝑘,𝑢𝑘) = 1. Portanto, mostramos que

𝑣𝑗 = mdc(𝑎− 𝑐𝑗𝑏′,𝑏), 1 ≤ 𝑗 ≤ 𝑛.

Logo, temos que res𝑥(𝑎 − 𝑐𝑗𝑏′,𝑏) = 0, uma vez que 𝑣𝑗 é um fator comum não

trivial de 𝑎− 𝑐𝑗𝑏′ e 𝑏. Portanto, 𝑐𝑗 é uma raiz do polinômio 𝑅(𝑧). Reciprocamente,

se 𝑐 é uma raiz qualquer de 𝑅(𝑧), com 𝑐 ∈ K*𝑅 (K*

𝑅 é o corpo onde 𝑅 se fatoracompletamente), então res𝑥(𝑎− 𝑐𝑏′,𝑏) = 0. Portanto,

mdc(𝑎− 𝑐𝑏′,𝑏) = 𝐺

para algum 𝐺 com grau(𝐺) > 0. Seja 𝑔 um fator irredutível de 𝐺. Então, como

𝑔 | 𝑏 =𝑛∏

𝑗=1𝑣𝑗, existe apenas um 𝑣𝑗 para o qual 𝑔 | 𝑣𝑗. Agora, temos que

𝑔 | (𝑎− 𝑐𝑏′)

Page 58: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 44

implica, utilizando (3.23) que

𝑔 |𝑛∑

𝑖=1(𝑐𝑖 − 𝑐𝑗)𝑣′

𝑖𝑢𝑖.

Porém, 𝑔 | 𝑢𝑖 para cada 𝑖 = 𝑗, uma vez que 𝑔 | 𝑣𝑗. Portanto,

𝑔 | (𝑐𝑗 − 𝑐)𝑣′𝑗𝑢𝑗.

o que é verdade apenas se 𝑐𝑗−𝑐 = 0. Portanto, 𝑐 é uma das constantes aparecendoem 3.18. Mostramos, desta forma, que o polinômio 𝑅(𝑧) ∈ K*[𝑧] se fatora comple-tamente sobre K*, isto é, K*

𝑅 = K*, sendo os 𝑐𝑗 todas as suas raízes distintas.

Completando o resultado anterior, o seguinte nos diz que os 𝑐𝑖 e os 𝑣𝑖 queaparecem em (3.18) e que foram obtidos pelo método que encontramos pertencemà extensão de K(𝑥) que possui o menor corpo de constantes possível.

Teorema 3.4.2 ([11], Cap. 11, §5, [31, 34]). Sejam 𝑎,𝑏 ∈ K[𝑥] tais que 𝑏 é livrede quadrados, e 𝑎/𝑏 é reduzida e própria. Seja K* a menor extensão algébrica deK tal que podemos escrever

∫ 𝑎

𝑏=

𝑁∑𝑖=1

𝑐𝑖 log(𝑣𝑖) (3.25)

onde 𝑐𝑖 ∈ K*,𝑣𝑖 ∈ K*[𝑥]. Então

K* = K(𝑐1,. . . ,𝑐𝑛)

onde 𝑐𝑖, 1 ≤ 𝑖 ≤ 𝑛 são as raízes distintas do polinômio

𝑅(𝑧) = res𝑥(𝑎− 𝑧𝑏′,𝑏) ∈ K[𝑧].

Ou seja, K* é o corpo sobre o qual 𝑅(𝑧) ∈ K[𝑧] se fatora completamente.Além disso, o Teorema 3.4.1 pode ser usado para calcular a integral com umcorpo constante minimal.

Demonstração. Seja a integral expressa na forma (3.25). Se 𝑐𝑖 e 𝑣𝑖 não satisfazem

Page 59: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

45 3.4. O Algoritmo de Rothstein-Trager

às condições do Teorema 3.4.1, então podemos reescrever a fórmula (3.25) demodo que passem a satisfazer. Primeiro, se algum 𝑣𝑖 não é livre de quadrados,então seja a sua fatoração livre de quadrados expressa por

𝑣𝑖 =𝑘∏

𝑗=1𝑣𝑗

𝑗

e usemos algumas propriedades algébricas dos logaritmos para obter

log(𝑣𝑖) =𝑘∑

𝑗=1𝑗 log(𝑣𝑗).

Podemos realizar esta operação termo a termo até que todos os argumentos noslogaritmos sejam livres de quadrados. Desta forma, podemos assumir que os 𝑣𝑖

já são livres de quadrados e de grau positivo. Em seguida, se para algum para 𝑖,𝑗

temos mdc(𝑣𝑖,𝑣𝑗) = 𝑉 com grau(𝑉 ) > 1 então podemos escrever

log(𝑣𝑖) = log(𝑉 ) + log(

𝑣𝑖

𝑉

), log(𝑣𝑗) = log(𝑉 ) + log

(𝑣𝑗

𝑉

).

Observe que os argumentos dos logaritmos permanecem em K*. Utilizamos omesmo procedimento repetidas vezes de modo a agrupar em um único termotodos os argumentos idênticos dos logaritmos, até estes argumentos se tornemdois a dois relativamente primos. Os polinômios continuam livres de quadradose de graus positivos. Finalmente, se para algum 𝑖 = 𝑗 tivermos 𝑐𝑖 = 𝑐𝑗, entãopodemos escrever

𝑐𝑖 log(𝑣𝑖) + 𝑐𝑗 log(𝑣𝑗) = 𝑐𝑖 log(𝑣𝑖𝑣𝑗),

mais uma vez observando que as operações mantém a propriedade de que osargumentos dos logaritmos são livres de quadrados, dois a dois primos entre si ede grau positivo. Portanto mostramos que (3.25) pode ser reescrita em uma novaexpressão, de modo que as hipóteses do Teorema 3.4.1 são satisfeitas.

Por outro lado, o Teorema 3.4.1 nos diz que os 𝑐𝑖 são as raízes distintas dopolinômio resultante 𝑅(𝑧) e os 𝑣𝑖 são aqueles neste teorema. Segue que K* é ocorpo sobre o qual o polinômio 𝑅(𝑧) ∈ K[𝑧] se fatora completamente.

Page 60: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 46

Em resumo, o método de Rothstein-Trager simplifica o problema da integraçãoda parte logarítmica da seguinte forma. Para aplicarmos o método de Bernoulli aum integrando com denominador livre de quadrados, é preciso conhecer fatoraçãocompleta deste denominador, isto é, obter todas as suas raízes antes de integrar,o que implica conhecer um número de extensões maior do que o necessário parase resolver o problema. Além disso, realizamos os cálculos de frações parciaissobre a fatoração completa do denominador e integramos parcela a parcela. Emseguida, opcionalmente, pode-se agrupar logaritmos com coeficientes iguais, parafins de simplificação da resposta. No método de Rothstein-Trager, substituímosa necessidade de se conhecer todas as raízes do denominador pelo conhecimentoapenas das raízes distintas de 𝑅(𝑧), as quais ocorrem em número menor ou igualao das raízes do denominador do integrando original. Em seguida, como cadaraiz 𝑐𝑖 corresponde a um resíduo distinto na decomposição em frações parciais dointegrando, cada 𝑣𝑖 agrupa automaticamente e de maneira direta todas as raízesdo denominador que se encontram sob o mesmo resíduo 𝑐𝑖 através, unicamente,de operações de mdc.

Note que, conhecida a fatoração em fatores irredutíveis de 𝑅 = 𝑢 ·𝑅𝑒11 · · ·𝑅

𝑒𝑙𝑙 ,

cada raiz c só pode ser raiz de um de seus fatores, digamos, 𝑅𝑗. Calculamos,portanto, 𝐺𝑗(𝑧,𝑥) = mdc(𝑏,𝑎 − 𝑧𝑏′) em K(𝑧)[𝑥]/⟨𝑅𝑗(𝑧)⟩ e, então, encontramosque 𝑐 log(𝐺𝑗(𝑐,𝑥)) compõe a parte transcendental. Portanto, podemos dispensaro conhecimento explícito das raízes de 𝑅 na integral, obtendo, formalmente:

∫ℎ =

𝑙∑𝑖=1

∑𝑐|𝑅𝑗(𝑐)=0

𝑐 log(𝐺𝑗(𝑐,𝑥)).

Assim, ∫ ℎ é determinado univocamente através dos 𝐺𝑗 e dos 𝑅𝑗, sendo cada𝐺𝑗(𝑐,𝑥) equivalente a algum 𝑣𝑖(𝑥), se 𝑐 é raiz de 𝑅𝑗. Isto também mostra que sóprecisamos realizar os cálculos de mdc para cada fator irredutível de 𝑅, e nãopara cada raiz distinta, de modo que argumentos oriundos de raízes de um mesmofator serão, formalmente, resultados de um mesmo cálculo de mdc.

Na subseção 5.5.2, fornecemos um pseudocódigo, juntamente com código paraimplementação no Maxima do algoritmo de Rothstein-Trager.

Page 61: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

47 3.4. O Algoritmo de Rothstein-Trager

3.4.1 Exemplos

Exemplo 3.4.1 (extraído de [11], Cap. 11, §5). Retornemos à função 𝑓 = 𝑎/𝑏,com 𝑎 = 1 e 𝑏 = 𝑥3 + 𝑥. Como já vimos nos exemplos estudados na seção 3.1,referente ao algoritmo de Bernoulli, a integral desta função só possui parte loga-rítmica. Vimos duas possíveis representações para esta integral: uma que requeruma extensão do corpo constante Q para o corpo Q(𝐼), e outra que evita estaextensão. A segunda representação é aquela obtida pelo algoritmo de Rothstein-Trager, como veremos a seguir.Calculamos o resultante de Rothstein-Trager, fazendo 𝐴 = 𝑎 e 𝐷 = 𝑏:

𝑅(𝑧) = res𝑥(𝐴− 𝑧𝐷′,𝐷) = res𝑥((1− 𝑧)− (3𝑧)𝑥2,𝑥3 + 𝑥)

= det

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

−3𝑧 0 1− 𝑧 0 00 −3𝑧 0 1− 𝑧 00 0 −3𝑧 0 1− 𝑧

1 0 1 0 00 1 0 1 0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠= −4𝑧3 + 3𝑧 + 1 ∈ Q[𝑧].

Temos que 𝑅(𝑧) se fatora completamente como −4(𝑧 − 1)(𝑧 + 1/2)2 ∈ Q[𝑧].Portanto, não é necessário realizar extensões algébricas sobre o corpo constanteQ. As raízes distintas de 𝑅(𝑧) são 𝑎 = 1 e 𝑎 = −1/2. Os argumentos polinomiaisdos logaritmos aparecendo na integral de 𝑓 podem então ser calculados atravésde cálculos de mdc sobre Q[𝑥]:

𝑣1 = mdc(𝐴− 1𝐷′,𝐷) = 𝑥 ∈ Q[𝑥],

𝑣2 = mdc(𝐴− (−1/2)𝐷′,𝐷) = 𝑥2 + 1 ∈ Q[𝑥].

Logo, ∫ 1𝑥3 + 𝑥

= log(𝑥)− 12 log(𝑥2 + 1).

Ou seja, ∫ 𝑓 ∈ Q(𝑥, log(𝑥), log(𝑥2 + 1)), em conformidade com o algoritmo deBernoulli.

Exemplo 3.4.2 (gerado com dados obtidos pelo código 5.5.2, algoritmo deRothstein-Trager). Sejam 𝐴 = 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥 ∈ Q[𝑥], 𝐷 =

Page 62: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 48

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 ∈ Q[𝑥] e 𝑓 = 𝐴/𝐷, isto é

𝑓 = 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 ∈ Q(𝑥).

Observe que 𝐷 é livre de quadrados (além de ser irredutível sobre Q). Computa-mos a resultante de Rothstein-Trager:

𝑅(𝑧) = res𝑥(𝑥6+2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2,6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥−

𝑧(6𝑥5 + 10𝑥4 + 8𝑥3 − 6𝑥2 − 8𝑥)) = 203008(𝑧2 − 2𝑧 + 2)3 ∈ Q[𝑧].

Neste caso, 𝑅(𝑧) já se encontra fatorado em fatores irredutíveis sobre Q[𝑧], masnão de maneira completa, de modo que não somos capazes de encontrar as raízes de𝑅(𝑧) em Q. Precisamos adicionar números algébricos sobre o corpo de constantes.Mais precisamente, 𝑅(𝑧) se fatora completamente sobre Q(𝛼), onde 𝛼 é raiz de𝑧2− 2𝑧 + 2. Nesta extensão do corpo de constantes, a fatoração completa de 𝑅(𝑧)é

𝑅(𝑧) = (𝑧 − 𝛼)(𝑧 − (2− 𝛼)) ∈ Q(𝛼)[𝑧].

As raízes distintas de 𝑅(𝑧) são 𝑎 = 𝛼 e 𝑎 = 2− 𝛼. Computamos 𝑣1 através de

𝑣1 = mdc(𝐴− 𝛼𝐷′,𝐷) = −(8𝛼 + 19)𝑥3 − (35𝛼− 16)𝑥2 + 35𝛼− 16𝛼

= 𝑥3 + 𝛼𝑥2 − 𝛼 ∈ Q(𝛼)[𝑥]

e o cálculo de 𝑣2 é essencialmente o mesmo, uma vez que 𝑣2 é uma raiz conjugadade 𝑣1 sobre os racionais. Dessa forma, não precisamos repetir as contas, bastandorealizar uma substituição, de modo a obter 𝑣2 = 𝑥3 + (2−𝛼)𝑥2− 2 + 𝛼. Portanto,conseguimos expressar

∫ 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 = 𝛼 log(𝑥3 + 𝛼𝑥2 − 𝛼)

+ (2− 𝛼) log(𝑥3 + (2− 𝛼)𝑥2 − 2 + 𝛼)

donde ∫ 𝑓 ∈ Q(𝛼)(𝑥, log(𝑣1), log(𝑣2)). Caso não fosse possível representar o nú-

Page 63: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

49 3.4. O Algoritmo de Rothstein-Trager

mero algébrico 𝛼 em termos de radicais, então esta seria a melhor solução emforma fechada possível. Porém, neste exemplo, conseguimos uma representaçãode 𝛼 em termos de radicais. A saber,

𝛼 = 1 +√−1 = 1 + 𝐼.

Portanto,

∫ 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 = (1 + 𝐼) log(𝑥3 + (1 + 𝐼)𝑥2 − 1− 𝐼)

+ (1− 𝐼) log(𝑥3 + (1− 𝐼)𝑥2 − 1 + 𝐼)

Ou seja, ∫ 𝑓 ∈ Q(𝐼)(𝑥, log(𝑣1), log(𝑣2)), onde 𝑣1 = 𝑥3 + (1 + 𝐼)𝑥2 − 1 − 𝐼 e𝑣2 = 𝑥3 + (1− 𝐼)𝑥2 − 1 + 𝐼.

Exemplo 3.4.3 (extraído de [11]). O exemplo a seguir mostra um caso em que oalgoritmo de Bernoulli não é capaz de fornecer, sequer parcialmente, uma respostaexplícita uma vez que o denominador do integrando não pode ser fatorado nemmesmo sobre os reais de maneira explícita, isto é, não há raízes que possam serobtidas por fórmulas conhecidas. O problema foi proposto em [33], em 1967, parademonstrar a necessidade de se obter um algoritmo que calculasse o resultadofinal utilizando o menor número de extensões algébricas, e só viria a ser resolvidoapropriadamente com o algoritmo de Rothstein-Trager, na década seguinte.Sejam 𝐴 = 7𝑥13 +10𝑥8 +4𝑥7−7𝑥6−4𝑥3−4𝑥2 +3𝑥+3, 𝐷 = 𝑥14−2𝑥8−2𝑥7−2𝑥4−4𝑥3 − 𝑥2 + 𝑥 + 1 e 𝑓 = 𝐴/𝐷. Como 𝑓 é própria, reduzida e possui denominadorlivre de quadrados, temos apenas parte logarítmica. Temos a seguinte fatoraçãocompleta para a resultante 𝑅(𝑧) em Q[𝑧]:

𝑅(𝑧) = −23774396766245335552(𝑧2 − 𝑧 − 1/4)7.

Portanto, 𝑅(𝑧) possui raízes irracionais. Se 𝛼 é uma dessas raízes, a fatoraçãocompleta de 𝑅(𝑧) sobre Q(𝛼)[𝑧] fica:

𝑅(𝑧) = −23774396766245335552(𝑧 − 𝛼)7(𝑧 − (1− 𝛼))7.

Page 64: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 50

Assim, se 𝛼 é raiz de 𝑅1 = 𝑧2 − 𝑧 − 1/4, temos

𝐺1(𝛼,𝑥) = mdc(𝐷,𝐴− 𝛼𝐷′) = 𝑥7 + (1− 2𝛼)𝑥2 − 2𝛼𝑥− 1 ∈ Q(𝛼)[𝑥].

Uma das raízes de 𝑅1 é 𝛼 = (1 +√

2)/2. A outra é 1−𝛼 = (1−√

2)/2. Portanto,∫

𝑓 =∑

𝛼|𝑅1(𝛼)=0𝛼 log(𝑥7 + (1− 2𝛼)𝑥2 − 2𝛼𝑥− 1)

= 1 +√

22 log(𝑥7 −

√2𝑥2 − (1 +

√2)𝑥− 1)

+ 1−√

22 log(𝑥7 +

√2𝑥2 − (1−

√2)𝑥− 1).

Isso mostra a importância do algoritmo de Rothstein-Trager. Algumas vezes épossível utilizar o algoritmo de Bernoulli e realizar simplificações para se chegara uma resposta envolvendo o mínimo de extensões algébricas. Porém, isto não épossível neste exemplo: o algoritmo de Bernoulli requer que se conheça todas asextensões necessárias para se fatorar o denominador, pelo menos, sobre os reais,e este requerimento ocorre já na primeira etapa da integração, correspondenteao algoritmo de Hermite. O algoritmo de Rothstein-Trager, precedido pelo deHermite, obtém o resultado final de maneira direta, utilizando o mínimo deextensões algébricas, sem passar por cálculos que seriam realizados pelo algoritmode Bernoulli, os quais envolveriam mais extensões que o necessário para a formafinal mínima da integral.

3.5 O Algoritmo de Lazard-Rioboo-Trager

No método de Rothstein-Trager, além de ser necessário o conhecimento da fatora-ção em fatores irredutíveis de 𝑅(𝑧) = res𝑥(𝑏,𝑎− 𝑧𝑏′), os cálculos de mdc para seobter os polinômios 𝐺𝑗(𝑐,𝑥) = 𝑣𝑖, para algum par 𝑖,𝑗 e raiz 𝑐 de um fator irredu-tível 𝑅𝑗 de 𝑅, que aparecem em (3.18), são realizados sobre extensões K(𝑐). Emgeral, como consequência destas considerações temos um aumento significativode complexidade [11, p. 504].

O método adiante, conhecido como algoritmo de Lazard-Rioboo-Trager,

Page 65: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

51 3.5. O Algoritmo de Lazard-Rioboo-Trager

nos permite contornar este problema, evitando os cálculos de mdc realizados sobreextensões algébricas do corpo de coeficientes para determinação dos 𝐺𝑗(𝑐,𝑥),substituindo estes cálculos por computação de subresultantes. É baseado noseguinte resultado.

Teorema 3.5.1 ([2], Cap. 2, §6, [17, 24]). Seja K o fecho algébrico de K, 𝑧 umaindeterminada sobre K(𝑥) e 𝑎,𝑏,𝑐 ∈ K[𝑥] ∖ {0} tais que mdc(𝑎,𝑐) = mdc(𝑏,𝑐) = 1,grau(𝑎) < grau(𝑐) e 𝑐 livre de quadrados. Sejam

𝑅(𝑧) = res𝑥(𝑐,𝑎− 𝑧𝑏) ∈ K[𝑧]

e (𝑟0,𝑟1, . . . ,𝑟𝑘 = 0,0, . . . ) a SRP das subresultante com relação a 𝑥 de 𝑐 e 𝑎− 𝑧𝑏

se grau(𝑏) < grau(𝑐) ou 𝑎− 𝑧𝑏 e 𝑐 se grau(𝑏) ≥ grau(𝑐). Seja 𝛼 ∈ K uma raiz demultiplicidade 𝑛 > 0 de 𝑅(𝑧). Então uma das seguintes ocorre:

1. 𝑛 = grau(𝑐), em qual caso

mdc(𝑐,𝑎− 𝛼𝑏) = 𝑐 ∈ K(𝛼)[𝑥].

2. 𝑛 < grau(𝑐), em qual caso, existe um único 𝑚 ≥ 1 tal que grau𝑥(𝑟𝑚) = 𝑛 e

mdc(𝑐,𝑎− 𝛼𝑏) = pp𝑥(𝑟𝑚)(𝛼,𝑥) ∈ K(𝛼)[𝑥]

onde pp𝑥(𝑟𝑚) é a parte primitiva de 𝑟𝑚 com relação a 𝑥.

Demonstração. Sejam 𝑅 = res𝑥(𝑐,𝑎− 𝑧𝑏) e (𝑟0,𝑟1, . . . ,𝑟𝑘 = 0,0, . . . ) a SRP subres-tultante com respeito a 𝑥 (ou seja, em K[𝑧][𝑥]) de 𝑐 e 𝑎− 𝑧𝑏, se grau(𝑏) < grau(𝑐),ou 𝑎− 𝑧𝑏 e 𝑐, se grau(𝑏) ≥ grau(𝑐). Sejam ainda 𝑞 = grau(𝑐), 𝑝 = grau(𝑎− 𝑧𝑏) e

𝛾 ∈ K ∖ {0} o coeficiente líder de 𝑐 e 𝑐 = 𝛾𝑞∏

𝑖=1(𝑥− 𝛽𝑖) a fatoração completa de 𝑐

sobre K. (Note que os 𝛽𝑖 são distintos, pois 𝑐 é livre de quadrados). Temos, peloLema 2.1.2, que

𝑅 = 𝛾𝑝𝑞∏

𝑖=1(𝑎(𝛽𝑖)− 𝑧𝑏(𝛽𝑖)).

Logo, o coeficiente líder de 𝑅 é ±𝛾𝑝𝑞∏

𝑖=1𝑏(𝛽𝑖), o qual é não nulo, uma vez que

mdc(𝑏,𝑐) = 1. Portanto, 𝑅 = 0. Seja 𝛼 uma raiz de multiplicidade 𝑛 > 0 de

Page 66: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 52

𝑅. Observe que o termo de menor grau de 𝑅 é 𝛾𝑝𝑞∏

𝑖=1𝑎(𝛽𝑖), o qual é não nulo,

uma vez que mdc(𝑎,𝑐) = 1. Assim, 𝛼 = 0. Como 𝛼 possui multiplicidade 𝑛, háum subconjunto 𝐼𝛼 ⊆ {1, . . . 𝑞} de cardinalidade 𝑛 tal que 𝑎(𝛽𝑖) − 𝛼𝑏(𝛽𝑖) = 0se e só se 𝑖 ∈ 𝐼𝛼. Então, 𝑣𝛼 =

∏𝑖∈𝐼𝛼

(𝑥 − 𝛽𝑖) divide 𝑎 − 𝛼𝑏 em K[𝑥]. Por outro

lado, 𝑥− 𝛽𝑖 - 𝑎− 𝛼𝑏 para 𝑖 /∈ 𝐼𝛼, donde 𝑣𝛼 = mdc(𝑐,𝑎− 𝛼𝑏) ∈ K(𝛼)[𝑥]. Ou seja,grau𝑥(𝑣𝛼) = 𝑛 e, portanto, 𝑛 ≤ grau(𝑐). Assim,

1. se 𝑛 = grau(𝑐), então 𝑣𝛼 divide 𝑐 e tem o mesmo grau de 𝑐, donde 𝑣𝛼 = 𝑐;

2. se 𝑛 < grau(𝑐). Então 𝑎− 𝛼𝑏 = 0, caso contrário, teríamos 𝑣𝛼 = mdc(𝑐,𝑎−𝛼𝑏) = mdc(𝑐,0) = 𝑐, cujo grau é maior que 𝑛. Continuando, sejam 𝑆𝑛 ∈K[𝑧][𝑥] a 𝑛-ésima subresultante de 𝑐 e 𝑎−𝑧𝑏 com relação a 𝑥, 𝜎 : K[𝑧]→ K(𝛼)o homomorfismo de anéis que é a identidade sobre K e leva 𝑧 em 𝛼 e𝜎 : K[𝑧][𝑥]→ K(𝛼)[𝑥] induzido por 𝜎, isto é, 𝜎(Σ𝑎𝑗𝑥

𝑗) = Σ𝜎(𝑎𝑗)𝑥𝑗. Como𝑎,𝑏,𝑐 ∈ K[𝑥] (isto é, não envolvem 𝑧), temos que 𝜎(𝑐) = 𝑐 e 𝜎(𝑎−𝑧𝑏) = 𝑎−𝛼𝑏,donde grau(𝜎(𝑐)) = 𝑞, e a Proposição 2.1.2 nos permite escrever 𝜎(𝑆𝑛) =𝛾𝑟𝑆𝑛, onde 𝑟 é um inteiro não negativo e 𝑆𝑛 é a 𝑛-ésima subresultante de 𝑐 e𝑎−𝛼𝑏. Seja (𝑠0,𝑠1, . . . ,𝑠𝑙 = 0,0, . . . ) a SRP das subresultantes de 𝑐 e 𝑎− 𝑧𝑏

em K(𝛼)[𝑥], se grau(𝑏) < grau(𝑐), ou de 𝑎 − 𝛼𝑏 e 𝑐, se grau(𝑏) ≥ grau(𝑐).A Proposição 2.1.3 garante que 𝑠𝑙 = mdc(𝑐,𝑎 − 𝑧𝑏), donde grau𝑥(𝑠𝑙) =𝑛. Portanto, 𝜎(𝑆𝑛) é semelhante a 𝑠𝑙 pelo Teorema 2.1.1, o que significaque 𝜎(𝑆𝑛) = 0 e que também temos 𝜎(𝑆𝑛) = mdc(𝑐,𝑎 − 𝛼𝑏), portantograu(𝜎(𝑆𝑛)) = 𝑛. Como grau𝑥(𝑆𝑛) ≤ 𝑛 por definição e grau(𝜎(𝑆𝑛)) ≤grau𝑥(𝑆𝑛), temos que grau𝑥(𝑆𝑛) = 𝑛. Pelo Teorema 2.1.1, 𝑆𝑛 é similara algum 𝑟𝑚, para 𝑚 ≥ 0, o que significa que grau𝑥(𝑟𝑚) = 𝑛. Uma vezque grau(𝑟0) ≥ grau(𝑐) > 𝑛, temos que 𝑚 ≥ 1, o que implica que 𝑚 éúnico, pois grau(𝑟𝑖) > grau(𝑟𝑖+1) para 𝑖 ≥ 1 em qualquer SRP. Escrevamos𝜌1𝑆𝑛 = 𝜌2 pp𝑥(𝑟𝑚) com 𝜌1,𝜌2 ∈ K[𝑧] satisfazendo mdc(𝜌1,𝜌2) = 1. Então𝜎(𝜌1)𝜎(𝑆𝑛) = 𝜎(𝜌2)𝜎(pp𝑥(𝑟𝑚)). Observe que 𝜎(𝑆𝑛) = 0 e 𝜎(pp𝑥(𝑟𝑚)) = 0,uma vez que pp𝑥(𝑟𝑚) é primitivo. Além disso, não podemos ter 𝜎(𝜌1) =𝜎(𝜌2) = 0, já que mdc(𝜌1,𝜌2) = 1. Logo, 𝜎(𝜌1) = 0 e 𝜎(𝜌2) = 0, donde𝑣𝛼 = mdc(𝑐,𝑎− 𝛼𝑏) = 𝜎(pp𝑥(𝑟𝑚)) = pp𝑥(𝑟𝑚)(𝛼,𝑥).

Page 67: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

53 3.5. O Algoritmo de Lazard-Rioboo-Trager

Utilizamos o Teorema 3.5.1 para calcular de ∫ 𝑎/𝑏, substituindo 𝑐 por 𝑏 e 𝑏

por 𝑏′. Calculamos 𝑅(𝑧) através do algoritmo das subresultantes, como visto nasubseção 2.1.2, aplicado a 𝑏 e 𝑎− 𝑧𝑏′ (caso em que grau(𝑏) < grau(𝑐) no teoremaanterior). Se 𝑣𝛼 = mdc(𝑏,𝑎− 𝛼𝑏′), onde 𝛼 é uma raiz de 𝑅(𝑧), então 𝑣𝛼 = 𝑏 se amultiplicidade de 𝛼 for grau(𝑏), ou pp𝑥(𝑟𝑚), se a multiplicidade de 𝛼 for menorque grau(𝑏), em qual caso 𝑚 ≥ 1 é o único inteiro positivo tal que grau𝑥(𝑟𝑚)equivale à multiplicidade de 𝛼. Portanto, contornamos completamente o cálculode mdc sobre extensões do corpo de coeficientes. Cada argumento dos logaritmosé, na verdade, algum resto da SRP das subresultantes e a expressão da integral écolocada em termos de uma extensão minimal de K.

A seguir, alguns aspectos práticos do método. Ao implementarmos o algoritmo,calculamos a fatoração livre de quadrados de 𝑅 =

𝑛∏𝑖=1

𝑄𝑖𝑖, separando em 𝑄𝑖 as

raízes de multiplicidade 𝑖 de 𝑅. Avaliar pp𝑥(𝑟𝑚)(𝑧,𝑥), para 𝑧 = 𝛼, onde 𝛼 é umaraiz de 𝑄𝑖 é o mesmo que reduzir cada coeficiente em relação a 𝑥 de pp𝑥(𝑟𝑚)módulo 𝑄𝑖. Não é preciso calcular de fato pp𝑥(𝑟𝑚): em seu lugar, é necessário esuficiente que se tome algum polinômio similar a 𝑟𝑚 tal que não seja levado em0 pelo homomorfismo 𝜎 no Teorema 3.5.1. A fonte [24] traz possibilidades paraeste polinômio e compara a eficiência do algoritmo de Lazard-Rioboo-Trager emrelação à escolha. Na implementação deste algoritmo, no capítulo 5, utilizamos opolinômio 𝑆𝑖(𝑧,𝑥) = 𝑟𝑚/ gcd(cl(𝑟𝑚),𝑄𝑖). Seus coeficientes (em 𝑥) não costumamser tão pequenos quanto os de pp𝑥(𝑟𝑚), mas sua computação é mais rápida.Observe que este é, de fato, um polinômio válido, pois, se 𝛼 é raiz de 𝑄𝑖, alémde 𝑆𝑖 ser similar a 𝑟𝑚, é garantido que 𝜎(𝑆𝑖(𝑧,𝑥)) = 𝑆𝑖(𝛼,𝑥) = 0, uma vez que oresto da divisão de 𝑆𝑖 por 𝑄𝑖 é não nulo.

Uma normalização pode ser feita para simplificar a resposta, qual seja, mul-tiplicar o argumento dos logaritmos em 3.18 por uma constante arbitrária paratorná-los mônicos, uma vez que isto não alterará a derivada, o que requer umacomputação de elemento inverso em K[𝛼], mas não um cálculo de mdc em K[𝛼][𝑥].Como os 𝑄𝑖 não são necessariamente irredutíveis em K, o anel K[𝛼] pode terdivisores de 0, mas, devido às considerações do parágrafo anterior, os coeficienteslíderes dos 𝑆𝑖(𝛼,𝑥) (qualquer um válido que se escolha) são sempre invertíveis emK[𝛼], [2, p.51]. Para proceder com a computação de inverso sem gerar denomina-

Page 68: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 54

dores, podemos simplesmente aplicar o algoritmo de Euclides estendido sobre oanel euclideano K[𝑡], de modo a obter polinômios 𝜎,𝜏 ∈ K[𝑡]/⟨𝑄𝑖[𝑡]⟩ tais que:

𝜎 cl(𝑆𝑖) + 𝜏𝑄𝑖 = 1.

Isto significa que𝜎 cl(𝑆𝑖) ≡ 1− 𝜏𝑄𝑖 ≡ 1 mod 𝑄𝑖

Portanto, 𝜎(𝛼) é o inverso procurado em K[𝛼] para cl(𝑆𝑖)(𝛼). Detalhes acerca desteprocedimento de computação de inversos podem ser encontrados em [11, Cap. 5,§5], mais precisamente, no Teorema 5.6. O mesmo procedimento de normalizaçãopode ser aplicado ao algoritmo de Rothstein-Trager, com a respectiva fatoraçãoem fatores irredutíveis de 𝑅(𝑧).

Na subseção 5.5.3, fornecemos um pseudocódigo, juntamente com código paraimplementação no Maxima do algoritmo de Lazard-Rioboo-Trager.

3.5.1 Exemplos

Exemplo 3.5.1 (gerado com dados obtidos pelo código 5.5.3, algoritmo de La-zard-Rioboo-Trager). Continuamos a considerar a função 𝑓 = 𝑎/𝑏 do Exemplo3.4.2. A sequência das subresultantes para 𝑏 e 𝑎− 𝑧𝑏′ na indeterminada 𝑥 é

Page 69: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

55 3.5. O Algoritmo de Lazard-Rioboo-Trager

𝑖 𝑟𝑖

0 𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 21 (6− 6𝑧)𝑥5 + (12− 10𝑧)𝑥4 + (8− 8𝑧)𝑥3 + (6𝑧 − 12)𝑥2 + (8𝑧 − 8)𝑥2 (4𝑧2 − 24𝑧 + 24)𝑥4 + (52𝑧 − 52𝑧2)𝑥3+

(−84𝑧2 + 168𝑧 − 96)𝑥2 + (16𝑧2 − 16𝑧)𝑥 + 72𝑧2 − 144𝑧 + 723 (−568𝑧3 + 1240𝑧2 − 1216𝑧 + 512)𝑥3

(−808𝑧3 + 2032𝑧2 − 1888𝑧 + 576)𝑥2 + (208𝑧3 − 624𝑧2 + 832𝑧 − 416)𝑥+704𝑧3 − 1824𝑧2 + 1680𝑧 − 576

4 (−9456𝑧4 + 40032𝑧3 − 71648𝑧2 + 63232𝑧 − 20992)𝑥2+(−3392𝑧4 + 8896𝑧3 − 9856𝑧2 + 1920𝑧 + 2304)𝑥 + 10016𝑧4 − 39168𝑧3+

67776𝑧2 − 57216𝑧 + 189445 (−49024𝑧5 + 244608𝑧4 − 586240𝑧3 + 780288𝑧2 − 584192𝑧 + 194048)𝑥+

17728𝑧5 − 73216𝑧4 + 151040𝑧3 − 160256𝑧2 + 89344𝑧 − 92166 203008𝑧6 − 1218048𝑧5 + 3654144𝑧4 − 6496256𝑧3 + 7308288𝑧2−

4872192𝑧 + 1624064

Portanto:

1. 𝑅 = 𝑟6 na tabela acima.

2. flq de 𝑅: 𝑅 = 203008𝑄33 = 203008(𝑧2 − 2𝑧 + 2)3.

3. Dada a flq de 𝑅, o único resto da SRP que nos interessa é aquele que possuigrau 3 na variável 𝑥. A saber, 𝑅3 na tabela acima. Além disso, temos quemdc(cl𝑥(𝑟3),𝑄3) = mdc(−568𝑧3 + 1240𝑧2 − 1216𝑧 + 512,𝑧2 − 2𝑧 + 2) = 1.Portanto, 𝑆3 = 𝑟3 (𝑟3 é primitivo na variável 𝑥).

4. Se 𝑎 é raiz de 𝑄3, ou seja, se 𝑎2− 2𝑎 + 2 = 0, temos que, ao avaliar 𝑆3 para𝑎, algumas simplificações podem ser feitas nos coeficientes de 𝑆3, de modoque

𝑆3(𝑎,𝑥) = (128𝑎 + 304)𝑥3 + (560𝑎− 256)𝑥2 − 560𝑎 + 256.

5. A integral fica em termos das raízes de 𝑄3, isto é:∫ 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 =∑

𝑎|𝑄3(𝑎)=0𝑎 log((128𝑎 + 304)𝑥3+

(560𝑎− 256)𝑥2 − 560𝑎 + 256).

Page 70: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 56

6. Finalmente, podemos normalizar 𝑆3(𝑎,𝑥): o multiplicador procurado é (35−8𝑎)/12688 e, portanto,

𝑆3(𝑎,𝑥)← −8𝑎− 3512688 𝑆3(𝑎,𝑥)

= − 1793((64𝑎2 − 128𝑎− 665)𝑥3

+ (280𝑎2 − 1353𝑎 + 560)𝑥2)− (280𝑎2 − 1353𝑎 + 560)= 𝑥3 + 𝑎𝑥2 − 𝑎.

Ou seja,

∫ 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 =∑

𝑎|𝑄3(𝑎)=0𝑎 log(𝑥3 + 𝑎𝑥2 − 𝑎).

Observe que, pela separação do produto de logaritmos, a diferença entre o re-sultado normalizado e o resultado original é apenas uma constante aditiva, asaber, o logaritmo do multiplicador utilizado na normalização. Ambas as formasda integral são válidas, pois a derivada de uma constante é nula.

Exemplo 3.5.2 (extraído de [24]). Vejamos o que acontece ao se tomar direta-mente um 𝑆𝑖 = 𝑟𝑚 no algoritmo de Lazard-Rioboo-Trager, ao invés de realizar a al-teração [24]. Considere 𝐴 = 𝑥4+𝑥3+𝑥2+𝑥+1 e 𝐷 = 𝑥5+𝑥4+2𝑥3+2𝑥2+2𝑥−2+4𝛽,com 𝛽 =

√−1 +

√3. A SRP das subresultantes de 𝐷 e 𝐴 − 𝑧𝐷′ é 𝑟0 = 𝐷,

𝑟1 = 𝐴 − 𝑧𝐷′, 𝑟2 = 𝑆3(𝑧,𝑥), 𝑟3 = 𝑆1(𝑧,𝑥) e 𝑟4 = 𝑅(𝑧) = res𝑥(𝐷,𝐴 − 𝑧𝐷′), onde𝑆3 e 𝑆1 são os restos de grau 3 e 1, e

𝑆3(𝑧,𝑥) = (16𝑧2 − 8𝑧 + 1)𝑥3 + (24𝑧2 − 10𝑧 + 1)𝑥2 + (36𝑧2 − 12𝑧 + 1)𝑥+

+ (100𝛽 − 52)𝑧2 − (40𝛽 − 21)𝑧 + 4𝛽 − 2,

e

𝑆1(𝑧,𝑥) = ((320𝛽 − 288)𝑧3 − (224𝛽 − 184)𝑧2 + (52𝛽 − 40)𝑧 − 4𝛽 + 3)𝑥

− (224𝛽 − 96)𝑧3 + (104𝛽 − 32)𝑧2 − (12𝛽 + 2)𝑧 + 1.

Veja que 𝑅(𝑧) é livre de quadados e que 𝛼 = 1/4 é uma raiz (de multiplicidade

Page 71: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

57 3.5. O Algoritmo de Lazard-Rioboo-Trager

1) de 𝑅(𝑧), e o resto de grau 1 na SRP das subresultantes em questão é 𝑆1(𝑧,𝑥).Assim, o termo 1/4 log(𝑆1(1/4,𝑥)) deve aparecer na fórmula da integral. Porém, éfácil ver que 𝑆1(1/4,𝑥) = 0. Em outras palavras, temos um caso em que 𝜎(𝑆𝑖) = 0.Fazendo, porém, 𝑆1 = 𝑟3/ mdc(cl(𝑟3),𝑅) e tornando-o mônico, conseguimos

𝑆𝑖(𝑧,𝑥) = 𝑥 + 176090729(

− (3166362384896𝛽3 − 9589146863104𝛽2 + 5561008828160𝛽 + 25820852224)𝑧4

+ (2572043436032𝛽3 − 7559719452928𝛽2 + 4149998074624𝛽 + 152749784768)𝑧3

− (782864496864𝛽3 − 2219904899648𝛽2 + 1116206990848𝛽 + 94889180832)𝑧2

+ (105949632800𝛽3 − 288577921016𝛽2 + 128975650144𝛽 + 19331983176)𝑧

− 5377952768𝛽3 + 14063435544𝛽2 − 5525914060𝛽 − 1188274675).

Avaliando-o para 𝑧 = 1/4 temos 𝑆𝑖(1/4,𝑥) = 𝑥 + 𝛽.Convém observar que o algoritmo original de Lazard-Rioboo-Trager tomava di-retamente os restos da SRP das subresultantes, ao invés de assegurá-los comonão nulos sob o homomorfismo 𝜎. Esta versão original é apresentada tanto em [4]quanto [11], de acordo com [24]. Portanto deve-se tomar cuidado ao se implemen-tar o algoritmo a partir de uma dessas fontes.

Page 72: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 3. Integração Indefinida de Funções Racionais Complexas 58

Page 73: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4

Integração Indefinida de FunçõesRacionais Reais

Seja K um subcorpo dos reais. Como vimos nos algoritmos que estudamos, pelaequação (3.6), é possivel representar a integral de uma função racional de K(𝑥)como sendo a soma entre uma parte racional e outra logarítmica. É possível,ainda, que extensões algébricas novas sobre K sejam necessárias para representara combinação linear de logaritmos que aparece em (3.6). Entre as extensõespossíveis, estão números com unidade imaginária não nula, em qual caso, torna-senecessário realizar manipulações aritméticas sobre o corpo dos complexos para secalcular a integral definida da função racional em questão. Podemos, portanto, terproblemas na computação numérica ocasionados pelos ramos de logaritmos, umavez que os argumentos dos logaritmos podem possuir raízes complexas (lembremosque os argumentos são polinômios), enquanto o integrando inicial não possui polosno intervalo da integração. Neste caso, o Teorema Fundamental do Cálculo pode,eventualmente, fornecer um valor incorreto para a integral definida, caso sejaaplicado de maneira direta, uma vez que a antiderivada não é necessariamentecontínua no intervalo de integração.

O que queremos é obter uma integral indefinida que, no máximo, envolvacoeficientes reais sempre que o integrando for real, ou seja, queremos eliminarqualquer extensão envolvendo a unidade imaginária que apareça na representaçãoda integral. Para isto, temos o algoritmo de Rioboo, o qual será descrito neste

Page 74: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 60

capítulo. Este algoritmo expande a parte logarítmica da integral de uma função𝑓 ∈ R(𝑥) sem a introdução de novos polos reais.

Em suma, dada a parte logarítmica obtida pelos métodos de Rothstein-Tragerou Lazar-Rioboo-Trager, o método de Rioboo mantém os logaritmos reais originaise converte, aos pares de resíduos conjugados (raízes complexas de 𝑅(𝑧) ∈ R[𝑧]),os logaritmos complexos em uma soma de logaritmos e funções arco tangente,todos com argumento polinomial. Todos os coeficientes a aparecerem na formaconvertida são reais.

4.1 O Algoritmo de Rioboo para Funções Raci-onais Reais

Seja K ⊆ C um subcorpo dos complexos sobre o qual 𝑥2 + 1 é irredutível. Obser-vamos que, para quaisquer 𝑝,𝑞 ∈ K[𝑥], temos

𝑝2 + 𝑞2 = 0 =⇒ 𝑝 = 𝑞 = 0. (4.1)

Em seguida, enunciamos o seguinte resultado, que serve de base para o algoritmoclássico para conversão de pares conjugados de logaritmos complexos em funçõesarco tangente reais.

Lema 4.1.1 ([2], Cap. 2, §8). Seja 𝑢 ∈ K(𝑥) tal que 𝑢2 = 𝛼2, onde 𝑥2−𝛼2 ∈ K[𝑥].Então

𝛼𝑑

𝑑𝑥log

(𝑢 + 𝛼

𝑢− 𝛼

)= 2𝛼

𝑑

𝑑𝑥arctgh

(𝑢

𝛼

). (4.2)

Demonstração.

𝛼𝑑

𝑑𝑥log

(𝑢 + 𝛼

𝑢− 𝛼

)= 𝛼

(𝑢− 𝛼

𝑢 + 𝛼

)𝑑

𝑑𝑥

(𝑢 + 𝛼

𝑢− 𝛼

)= 𝛼

(𝑢− 𝛼

𝑢 + 𝛼

) (𝑢− 𝛼)− (𝑢 + 𝛼)(𝑢− 𝛼)2

𝑑𝑢

𝑑𝑥

= −2𝛼𝛼

𝑢2 − 𝛼2𝑑𝑢

𝑑𝑥= 2𝛼

𝑑

𝑑𝑥arctgh

(𝑢

𝛼

).

Page 75: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

61 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Corolário 4.1.1. Seja 𝑢 ∈ K(𝑥) tal que 𝑢2 = 1. Então

𝐼𝑑

𝑑𝑥log

(𝑢 + 𝐼

𝑢− 𝐼

)= 2 𝑑

𝑑𝑥arctg(𝑢). (4.3)

Demonstração. Basta notar que arctgh(𝑢/𝐼) = arctgh(−𝐼𝑢) = −𝐼 arctg(𝑢)

Através do Lema 4.1.1 e do Corolário 4.1.1, se K ⊆ R, é possível substituir paresde logaritmos que contenham argumentos conjugados na extensão 𝛼 por funçõesarco tangente hiperbólico ou simples com coeficientes reais. Mais precisamente,se 𝑝,𝑞 ∈ K[𝑥] e

𝐹1 = 𝛼 log(𝑝 + 𝛼𝑞)− 𝛼 log(𝑝− 𝛼𝑞), 𝐹2 = 2𝛼 arctgh(

𝑝

𝛼𝑞

),

temos que

𝑑𝐹1

𝑑𝑥= 𝛼

𝑑

𝑑𝑥[log(𝑝 + 𝛼𝑞)− log(𝑝− 𝛼𝑞)]

= 𝛼𝑑

𝑑𝑥log

(𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)= 𝛼

𝑑

𝑑𝑥log

(𝑝/𝑞 + 𝛼

𝑝/𝑞 − 𝛼

)

= 2𝛼𝑑

𝑑𝑥arctgh

(𝑝

𝛼𝑞

)= 𝑑𝐹2

𝑑𝑥. (4.4)

Por outro lado, note que 𝐹2 é descontínua nas raízes reais de 𝑞, de modo que,ainda que utilizemos o procedimento proposto por (4.4) para converter logaritmosconjugados em 𝛼 = 𝐼 na expressão da integral de uma função racional em funçõesarco tangente com coeficientes reais, ainda não seremos capazes de obter umaantiderivada contínua sobre a qual possamos aplicar corretamente o TeoremaFundamental do Cálculo para a integração contínua, devido aos polos reais geradospor cada função da forma 𝐹2 que encontrarmos com 𝛼 = 𝐼.

Para resolver este problema, o seguinte resultado pode ser utilizado sempreque o argumento da função arco tangente no Corolário 4.1.1 é um polinômio, aoinvés de uma fração.

Teorema 4.1.1 ([2], Cap. 2, §8,[28]). Sejam 𝑝,𝑞 ∈ K[𝑥]∖{0} tais que 𝑝2 + 𝑞2 = 0.

Page 76: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 62

Então,𝑑

𝑑𝑥log

(𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)= 𝑑

𝑑𝑥log

(𝛼2𝑞 + 𝛼𝑝

𝛼2𝑞 − 𝛼𝑝

)

e, para quaisquer 𝑟,𝑠 ∈ K[𝑥] tais que 𝑞𝑠− 𝑝𝑟 = mdc(𝑝,𝑞), 𝑟 = 0 e 𝑟2 + 𝑠2 = 0,

𝛼𝑑

𝑑𝑥log

(𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)= 2𝛼

𝑑

𝑑𝑥arctgh

(𝑝𝑠− 𝛼2𝑞𝑟

𝛼 mdc(𝑝,𝑞)

)+ 𝛼

𝑑

𝑑𝑥log

(𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

).

Demonstração. Temos que

𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞= 𝛼𝑝 + 𝛼2𝑞

𝛼𝑝− 𝛼2𝑞= −𝛼2𝑞 + 𝛼𝑝

𝛼2𝑞 − 𝛼𝑝.

tomando a derivada do logaritmo dos dois lados (lembrando que 𝑥 é uma variávelcomplexa), temos

𝑑

𝑑𝑥log

(𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)= 𝑑

𝑑𝑥log

(𝛼2𝑞 + 𝛼𝑝

𝛼2𝑞 − 𝛼𝑝

).

Agora, sejam 𝐺 = mdc(𝑝,𝑞) e 𝑟,𝑠 ∈ K[𝑥] tais que 𝑟 = 0, 𝑟2 + 𝑠2 = 0 e 𝑞𝑠− 𝑝𝑟 = 𝐺

Escrvamos 𝑢 = (𝑝𝑠 − 𝛼2𝑞𝑟)/𝐺. Observamos que 𝑢 ∈ K[𝑥], uma vez que 𝐺 | 𝑝,𝑞.Temos que

𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞=(

𝑠− 𝛼𝑟

𝑠 + 𝛼𝑟

𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

=(

𝑝𝑠− 𝛼2𝑞𝑟 + 𝛼(𝑞𝑠− 𝑝𝑟)𝑝𝑠− 𝛼2𝑞𝑟 − 𝛼(𝑞𝑠− 𝑝𝑟)

)𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

=(

𝑢 + 𝛼

𝑢− 𝛼

)(𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

).

Logo,

𝛼𝑑

𝑑𝑥log

(𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)= 𝛼

𝑑

𝑑𝑥log

(𝑢 + 𝛼

𝑢− 𝛼

)+ 𝛼

𝑑

𝑑𝑥log

(𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

).

Portanto, pelo Lema 4.1.1,

𝛼𝑑

𝑑𝑥log

(𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)= 2𝛼

𝑑

𝑑𝑥arctgh

(𝑢

𝛼

)+ 𝛼

𝑑

𝑑𝑥log

(𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

).

Page 77: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

63 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Observe que se K é um subcorpo dos reais então por (4.1), podemos sempreaplicar em K[𝑥] o Teorema 4.1.1. Além disso, este resultado nos permite escrever

𝑔 = 𝛼 log(

𝑝 + 𝛼𝑞

𝑝− 𝛼𝑞

)(4.5)

como uma soma de funções arco tangente hiperbólico com argumentos polinomiais:se 𝐺 = mdc(𝑝,𝑞), temos que grau(𝐺) ≤ grau(𝑞). Se grau(𝐺) = grau(𝑞), então 𝑞

divide 𝑝, donde 𝐺 = 𝑞, e, portanto, 𝑠 = 1 e 𝑟 = 0, logo 𝑢 = (𝑝𝑠 − 𝛼2𝑞𝑟)/𝐺 =𝑝/𝑞 ∈ K[𝑥] e

𝑑𝑔

𝑑𝑥= 2𝛼

𝑑

𝑑𝑥arctgh

(𝑢

𝛼

)pelo Lema 4.1.1. Se grau(𝑝) < grau(𝑞), então

𝑑𝑔

𝑑𝑥= 𝛼

𝑑

𝑑𝑥log

(𝛼2𝑞 + 𝛼𝑝

𝛼2𝑞 − 𝛼𝑝

)

pelo Teorema 4.1.1. Portanto, podemos supor que grau(𝑝) ≥ grau(𝑞) ≥ grau(𝐺).Utilizando o algoritmo de Euclides estendido, podemos encontrar 𝑟,𝑠 ∈ K[𝑥]tais que 𝑞𝑠 − 𝑝𝑟 = 𝐺 e grau(𝐺) ≤ grau(𝑝). Além disso, 𝑠 = 0, uma vez quegrau(𝑝) > grau(𝐺). Isto quer dizer que 𝑟 = 0, pois grau(𝑞) > grau(𝐺) e, portanto𝑟2 + 𝑠2 = 0, como vimos acima. Pelo Teorema 4.1.1, temos que

𝑔′ = 2𝛼𝑑

𝑑𝑥arctgh

(𝑝𝑠− 𝛼2𝑞𝑟

𝛼 mdc(𝑝,𝑞)

)+ 𝛼

𝑑

𝑑𝑥log

(𝑠 + 𝛼𝑟

𝑠− 𝛼𝑟

)

Podemos aplicar o algoritmo recursivamente sobre o logaritmo restante. A termina-ção finita é garantida pelo fato de que máx(grau(𝑟), grau(𝑠)) < máx(grau(𝑝), grau(𝑞)).

Conseguimos, portanto, o algoritmo de Rioboo que permite representaruma integral na forma (4.5) através de funções com coeficientes reais e sem polos.No caso em que 𝛼 = 𝐼, isto é possível pelo Corolário 4.1.1. Resta-nos incorporareste método ao algoritmo de integração de funções racionais que estudamos.

Observe que os algoritmos de Rothstein-Trager, Lazard-Rioboo-Trager e Czi-chowski (o qual será visto no capítulo 5) nos fornecem a parte transcendental

Page 78: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 64

(logarítmica) da integral na forma

ℎ =∑

𝜌|𝑅(𝜌)=0𝜌 log(𝑆(𝜌,𝑥)) (4.6)

onde 𝑅 =∑

𝑗

𝑟𝑗𝑧𝑗 ∈ K[𝑧] é livre de quadrados e 𝑆 =

∑𝑗,𝑘

𝑠𝑗𝑘𝑧𝑗𝑥𝑘 ∈ K[𝑧,𝑥]. O

que nos resta para completar o algoritmo de Rioboo é converter a soma acimanuma em que todos os termos conjugados em qualquer extensão 𝛼 conjugados naforma (4.5).

Para o caso em que 𝛼 = 𝐼, separamos ℎ em duas parcelas:

ℎ = 𝑔 +∑

𝜌/∈R|𝑅(𝜌)=0𝜌 log(𝑆(𝜌,𝑥)) (4.7)

com𝑔 =

∑𝜌∈R|𝑅(𝜌)=0

𝜌 log(𝑆(𝜌,𝑥)).

Em resumo, separamos ℎ em uma parte sobre as raízes reais e outra sobre asraízes contendo parte imaginária não nula. Observe que não ocorrem extensõescomplexas em 𝑔.

Sejam 𝑢,𝑣 indeterminadas sobre K(𝑥). Calculamos os polinômios 𝑃,𝑄 ∈ K[𝑢,𝑣]tais que

𝑅(𝑢 + 𝐼𝑣) =∑

𝑗

𝑟𝑗(𝑢 + 𝐼𝑣)𝑗 = 𝑃 (𝑢,𝑣) + 𝐼𝑄(𝑢,𝑣), (4.8)

e polinômios 𝐴,𝐵 ∈ K[𝑢,𝑣,𝑥] tais que

𝑆(𝑢 + 𝐼𝑣,𝑥) =∑𝑗,𝑘

𝑠𝑗𝑘(𝑢 + 𝐼𝑣)𝑗𝑥𝑘 = 𝐴(𝑢,𝑣,𝑥) + 𝐼𝐵(𝑢,𝑣,𝑥). (4.9)

Como C = R(𝐼) é um espaço vetorial de dimensão 2 sobre R com base (1,𝐼),dado 𝛼 ∈ R temos que 𝑅(𝛼) = 0 se e só se 𝑃 (𝑎,𝑏) = 𝑄(𝑎,𝑏) = 0, onde 𝛼 = 𝑎 + 𝐼𝑏.Além disso, 𝛼 /∈ R se e só se 𝑏 = 0. Portanto, podemos reescrever (4.7) como

ℎ = 𝑔 +∑

𝑎,𝑏∈R,��=0𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

(𝑎 + 𝐼𝑏) log(𝑆(𝑎 + 𝐼𝑏,𝑥)) (4.10)

Page 79: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

65 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Seja 𝜎 o automorfismo de conjugação complexa de C, isto é, 𝜎(𝑎 + 𝑏𝐼) = 𝑎− 𝑏𝐼,onde 𝑎,𝑏 ∈ R. Definimos 𝜎 : C[𝑥]→ C[𝑥] por

𝜎(∑

𝑎𝑗𝑥𝑗)

=∑

𝜎(𝑎𝑗)𝑥𝑗. (4.11)

Sejam 𝑎,𝑏 ∈ R. Aplicando 𝜎 a (4.9), temos

𝐴(𝑎,𝑏,𝑥)− 𝐼𝐵(𝑎,𝑏,𝑥) = 𝜎(𝐴(𝑎,𝑏,𝑥) + 𝐼𝐵(𝑎,𝑏,𝑥)) = 𝜎(𝑆(𝑎 + 𝐼𝑏,𝑥))

= 𝑆(𝜎(𝑎 + 𝐼𝑏),𝑥) = 𝑆(𝑎− 𝐼𝑏,𝑥).

Aplicando 𝜎 a (4.8), temos

𝑃 (𝑎,𝑏)− 𝐼𝑄(𝑎,𝑏) = 𝜎(𝑃 (𝑎,𝑏) + 𝐼𝑄(𝑎,𝑏))

= 𝜎(𝑅(𝑎 + 𝐼𝑏)) = 𝑅(𝜎(𝑎 + 𝐼𝑏)) = 𝑅(𝑎− 𝐼𝑏),

o que significa que 𝑅(𝑎+𝐼𝑏) = 0 se e só se 𝑅(𝑎−𝐼𝑏) = 0. Portanto, para qualquerlogaritmo correspondente ao par (𝑎,𝑏) aparecendo na soma (4.10) com 𝑏 = 0, otermo conjugado correspondente ao par (𝑎,− 𝑏) também deve aparecer, e é umpar diferente, de modo que podemos reescrever (4.10) como

ℎ = 𝑔 +∑

𝑎,𝑏∈R,𝑏>0𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

{(𝑎 + 𝐼𝑏) log(𝑆(𝑎 + 𝐼𝑏,𝑥)) + (𝑎− 𝐼𝑏) log(𝑆(𝑎− 𝐼𝑏,𝑥))}

= 𝑔+∑𝑎,𝑏∈R,𝑏>0

𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

{𝑎(log(𝐴(𝑎,𝑏,𝑥) + 𝐼𝐵(𝑎,𝑏,𝑥)) + log(𝐴(𝑎,𝑏,𝑥)− 𝐼𝐵(𝑎,𝑏,𝑥)))

+ 𝐼𝑏(log(𝐴(𝑎,𝑏,𝑥) + 𝐼𝐵(𝑎,𝑏,𝑥))− log(𝐴(𝑎,𝑏,𝑥)− 𝐼𝐵(𝑎,𝑏,𝑥)))}.

Portanto,

ℎ = 𝑔 + 𝐺 +∑

𝑎,𝑏∈R,𝑏>0𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

𝐼𝑏 log(

𝐴(𝑎,𝑏,𝑥) + 𝐼𝐵(𝑎,𝑏,𝑥)𝐴(𝑎,𝑏,𝑥)− 𝐼𝐵(𝑎,𝑏,𝑥)

)(4.12)

Page 80: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 66

onde𝐺 =

∑𝑎,𝑏∈R,𝑏>0

𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

𝑎 log(𝐴(𝑎,𝑏,𝑥)2 + 𝐵(𝑎,𝑏,𝑥)2)

é uma função real. Como os somandos complexos restantes em (4.12) estão naforma (4.5), podemos utilizar o Teorema 4.1.1 para convertê-los em funções reais.Observe que, uma vez que converter (4.5) em funções reais requer o cálculo domdc entre 𝐴 e 𝐵, devemos, em tese, utilizar o algoritmo relativo ao Teorema 4.1.1sobre uma extensão K(𝑎,𝑏) de K, onde 𝑃 (𝑎,𝑏) = 𝑄(𝑎,𝑏) = 0, o que siginfica quedevemos resolver este sistema algébrico não linear. Porém, o resultado a seguir,devido a Rioboo, mostra que, quando logaritmos complexos a serem convertidossurgem da integração de uma função racional real, não é necessário resolver estesistema.

Teorema 4.1.2 ([28]). Sejam K um subcorpo de R, 𝑟,𝑠 ∈ K[𝑥] com grau(𝑠) > 0,grau(𝑠) > grau(𝑟), 𝑠 livre de quadrados e mdc(𝑟,𝑠) = 1. Suponha que 𝑅 e 𝑆

de (4.6) sejam produzidos pelo algoritmo de Rothstein-Trager, Lazard-Rioboo-Trager ou Czichowski aplicado a 𝑟/𝑠 e sejam 𝑃,𝑄 dados por (4.8) e 𝐴,𝐵 da-dos por (4.9). Se 𝑎,𝑏 ∈ R satisfazem 𝑃 (𝑎,𝑏) = 𝑄(𝑎,𝑏) = 0 e 𝑏 = 0, entãomdc(𝐴(𝑎,𝑏,𝑥),𝐵(𝑎,𝑏,𝑥)) = 1 ∈ K(𝑎,𝑏)[𝑥].

Portanto, podemos realizar a conversão para arcos tangentes genericamente,isto é, aplicamos diretamente o algoritmo de Rioboo para a expressão

𝐼 log(

𝐴(𝑢,𝑣,𝑥) + 𝐼𝐵(𝑢,𝑣,𝑥)𝐴(𝑢,𝑣,𝑥)− 𝐼𝐵(𝑢,𝑣,𝑥)

)

onde 𝑢 e 𝑣 são indeterminadas independentes, obtendo uma função real 𝜑(𝑢,𝑣,𝑥)(a combinação de arcos tangentes com coeficientes reais). Podemos reescrever(4.12) como

ℎ = 𝑔 + 𝐺 +∑

𝑎,𝑏∈R,𝑏>0𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

𝑏𝜑(𝑎,𝑏,𝑥)

onde o Teorema 4.1.2 garante que 𝜑(𝑢,𝑣,𝑥) não possui divisões por zero quandosubstituímos 𝑢,𝑣 pelas várias soluções 𝑎 e 𝑏 > 0 em R para o sistema 𝑃 (𝑢,𝑣) =𝑄(𝑢,𝑣) = 0. Ao representarmos a resposta em termos das somas formais, nãoprecisamos de fato resolver este sistema, ou introduzir números algébricos. Porém,

Page 81: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

67 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

na prática, sempre que as raízes reais de 𝑃 (𝑢,𝑣) = 𝑄(𝑢,𝑣) = 0 podem ser compu-tadas de maneira eficiente (por exemplo, se forem todas números racionais), entãopode ser mais eficiente calcular primeiro as raízes e só depois evocar o algoritmodo Teorema 4.1.1, ao invés de realizar a redução com parâmetros genéricos [2, p.68].

Para o caso em que 𝛼 é uma extensão real, a mesma discussão pode ser aplicadapara a detecção de logaritmos que sejam conjugados em 𝛼, de modo que obtemos

ℎ = 𝑔 + 𝐺 +∑

𝑎,𝑏∈K𝛼,𝑏>0𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

𝛼𝑏 log(

𝐴(𝑎,𝑏,𝑥) + 𝛼𝐵(𝑎,𝑏,𝑥)𝐴(𝑎,𝑏,𝑥)− 𝛼𝐵(𝑎,𝑏,𝑥)

)(4.13)

onde𝐺 =

∑𝑎,𝑏∈K𝛼,𝑏>0

𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

𝑎 log(𝐴(𝑎,𝑏,𝑥)2 − 𝛼2𝐵(𝑎,𝑏,𝑥)2),

𝑔 é o restante da expressão da integral e K𝛼 ⊂ R é uma extensão de K quenão contém 𝛼. Todavia, não estamos interessados agora em retirar a extensãoalgébrica 𝛼 da expressão da integral, como no caso 𝛼 = 𝐼, mas em simplificar arepresentação dos logaritmos. Note que se 𝐴(𝑎,𝑏,𝑥) - 𝐵(𝑎,𝑏,𝑥) então o algoritmode Rioboo produzirá pelo menos dois termos. Assim, em geral, não se ganha muitoem relação à representação original da integral, uma vez que o par de logaritmosoriginais já possuía representação com coeficientes reais e contínua. Por outrolado, se 𝐴(𝑎,𝑏,𝑥) | 𝐵(𝑎,𝑏,𝑥), só precisamos utilizar o Lema 4.1.1 para transformaro par de logaritmos em uma única função arco tangente hiperbólico.

Nas subseções 5.6.2 e 5.8.2, fornecemos pseudocódigos, juntamente com códigospara implementação no Maxima do algoritmo de Rioboo e de um algoritmo paradetecção de logaritmos conjugados, conforme discutido nesta seção. Nas subseção5.6.1, fornecemos um código para implementação no Maxima do algoritmo clássicopara obtenção de arcos tangentes hiperbólicos e simples, conforme discutido nestaseção.

4.1.1 Exemplos

Exemplo 4.1.1 (gerado com dados obtidos pelos códigos 5.6.1 e 5.6.2, algoritmosclássico e de Rioboo para obtenção de arcos tangentes). Consideremos o problema

Page 82: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 68

de calcular ∫ −3/4

−5/4

6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 , (4.14)

onde o integrando 𝑓 pode ser provado como uma função contínua sobre os reais enegativa sobre o intervalo [−5/4,− 3/4], donde, portanto, a integral deve ser umnúmero real negativo neste intervalo (vide figura 4.1). Como vimos no Exemplo

Figura 4.1: Gráfico de 𝑓 próximo do intervalo [−5/4,− 3/4].

3.4.2, a integral indefinida de f é

∫ 6𝑥5 + 12𝑥4 + 8𝑥3 − 12𝑥2 − 8𝑥

𝑥6 + 2𝑥5 + 2𝑥4 − 2𝑥3 − 4𝑥2 + 2 = (1 + 𝐼) log(𝑥3 + (1 + 𝐼)𝑥2 − 1− 𝐼)

+ (1− 𝐼) log(𝑥3 + (1− 𝐼)𝑥2 − 1 + 𝐼) (4.15)

Page 83: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

69 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Aplicando o Teorema Fundamental do Cálculo (incorretamente) à equação 4.15para 𝑥 variando sobre [−5/4,− 3/4], temos

∫ −3/4

−5/4𝑓 = (1 + 𝐼) log

(−55− 28𝐼

64

)+ (1− 𝐼) log

(−55 + 28𝐼

64

)−(

(1 + 𝐼) log(−89− 36𝐼

64

)+ (1− 𝐼) log

(−89 + 36𝐼

64

))≈ 9,97.

o que é inconsistente com as condições do integrando. Portanto, procuramos poruma integral que possa ser expressa apenas com funções reais.Utilizando diretamente o Lema 4.1.1, reescrevemos abaixo os logaritmos complexosde ∫ 𝑓 com funções arcos tangentes. A seguir, escrevemos 𝑓 ∼ 𝑔 se 𝑑𝑓/𝑑𝑥 = 𝑑𝑔/𝑑𝑥:∫

𝑓 = (1 + 𝐼) log(𝑥3 + (1 + 𝐼)𝑥2 − 1− 𝐼) + (1− 𝐼) log(𝑥3 + (1− 𝐼)𝑥2 − 1 + 𝐼)

= log((𝑥3 + 𝑥2 − 1)2 + (𝑥2 − 1)2) + 𝐼 log(

𝑥3 + 𝑥2 − 1 + 𝐼(𝑥2 − 1)𝑥3 + 𝑥2 − 1− 𝐼(𝑥2 − 1)

)

∼ log((𝑥3 + 𝑥2 − 1)2 + (𝑥2 − 1)2) + 2 arctg(

𝑥3 + 𝑥2 − 1𝑥2 − 1

)= 𝐹1(𝑥). (4.16)

Portanto, conseguimos expressar ∫ 𝑓 através de uma função real. Todavia, aoaplicarmos o Teorema Fundamental do Cálculo sobre esta nova função no intervaloem questão, temos novamente um valor incorreto (aproximadamente 3.68). Istoporque, claramente, o novo integrando possui descontinuidades em ±1.Dessa forma, ao invés de fazermos uso direto do Lema 4.1.1, utilizamos o Teorema

4.1.1. Por (4.16), temos

∫𝑓 = log((𝑥3 + 𝑥2 − 1)2 + (𝑥2 − 1)2) + 𝐼 log

(𝑥3 + 𝑥2 − 1 + 𝐼(𝑥2 − 1)𝑥3 + 𝑥2 − 1− 𝐼(𝑥2 − 1)

).

Aplicando o algoritmo de Rioboo, relativo ao Teorema 4.1.1 ao par 𝐴 = 𝑥3 +𝑥2−1e 𝐵 = 𝑥2 − 1, temos

Page 84: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 70

Figura 4.2: Gráfico da forma descontínua de ∫ 𝑓 = 𝐹1(𝑥).

𝐴 𝐵 𝐶 𝐷 𝐺 (𝐴𝐷 + 𝐵𝐶)/𝐺

𝑥3 + 𝑥2 − 1 𝑥2 − 1 𝑥 𝑥2 + 𝑥 + 1 −1 −𝑥5 − 2𝑥4 − 3𝑥3 + 2𝑥 + 1𝑥2 + 𝑥 + 1 𝑥 1 𝑥 + 1 −1 −𝑥3 − 2𝑥2 − 3𝑥− 1

𝑥 + 1 1

e a integral se torna∫

𝑓 = log((𝑥3 + 𝑥2−1)2 + (𝑥2 − 1)2)− 2 arctg(𝑥5 + 2𝑥4 + 3𝑥3 − 2𝑥− 1)

− 2 arctg(𝑥3 + 2𝑥2 + 3𝑥 + 1) + 2 arctg(𝑥 + 1) = 𝐹2(𝑥).

Page 85: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

71 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Podemos, agora, calcular corretamente o valor de ∫ 𝑓 sobre [−5/4,− 3/4] atravésdo Teorema Fundamental do Cálculo:

∫ −3/4

−5/4𝑓 = log

(38094096

)+ 2 arctg

(3564

)+ 2 arctg

( 3791024

)+ 2 arctg

(14

)−(

log(9217

4096

)+ 2 arctg

(10164

)+ 2 arctg

(25891024

)− 2 arctg

(14

))≈ −2,59.

A figura 4.4 mostra comparação entre os gráficos de ∫ 𝑓 em forma descontínuae contínua. Observe que a diferença entre a integral indefinida fornecida peloLema 4.1.1 e a que acabamos de obter pelo Teorema 4.1.1 é apenas uma adiçãode constantes por intervalos as quais ocorrem nos pontos de descontinuidade daforma descontínua de ∫ 𝑓 e valem 2𝜋. De maneira geral, dado um par 𝐴(𝑎,𝑏,𝑥),𝐵(𝑎,𝑏,𝑥) a diferença por intervalos entre o arco tangente obtido pelo Lema 4.1.1e a combinação de arcos tangentes obtida pelo Teorema 4.1.1, se houver, é de 2𝜋

e ocorre em cada raiz real de 𝐵(𝑎,𝑏,𝑥). Na expressão final da integral, portanto,os polos de 𝐵(𝑎,𝑏,𝑥) geram uma diferença de 2𝑏𝜋 cada. (O exemplo 4.1.3 mostraum caso em que as duas formas da integral para um par 𝐴(𝑎,𝑏,𝑥),𝐵(𝑎,𝑏,𝑥) sãocontínuas).

Exemplo 4.1.2 (gerado com dados obtidos pelo código 5.8.2, identificação delogaritmos complexos com conversão para funções reais). Para a integral (4.15),temos que

𝑅(𝑧) = 𝑧2 − 2𝑧 + 2 ∈ Q[𝑧], 𝑆(𝑧,𝑥) = 𝑥3 + 𝑧𝑥2 − 𝑧 ∈ Q[𝑧,𝑥].

Além disso,

1. 𝑅(𝑢 + 𝐼𝑣) = (𝑢 + 𝐼𝑣)2− 2(𝑢 + 𝐼𝑣) + 2 = 𝑢2− 2𝑢 + 2− 𝑣2 + 𝐼(2𝑢𝑣− 2𝑣), demodo que 𝑃 = 𝑢2 − 2𝑢 + 2− 𝑣2 e 𝑄 = (2𝑢𝑣 − 2𝑣).

2. 𝑆(𝑢 + 𝐼𝑣,𝑥) = 𝑥3 + 2(𝑢 + 𝐼𝑣)𝑥2 − (𝑢 + 𝐼𝑣) = 𝑥3 + 𝑢𝑥2 − 𝑢 + 𝐼(𝑣𝑥2 − 𝑣), demodo que 𝐴 = 𝑥3 + 𝑢𝑥2 − 𝑢 e 𝐵 = 𝑣𝑥2 − 𝑣.

3. Encontrar as soluções (𝑎,𝑏) para 𝑃 (𝑎,𝑏) = 𝑄(𝑎,𝑏) = 0 é o mesmo que

Page 86: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 72

Figura 4.3: Gráfico de ∫ 𝑓 = 𝐹2(𝑥).

resolver 𝑅(𝑎 + 𝐼𝑏) = 0 para 𝑎,𝑏 > 0 ∈ R, isto é, encontrar as raízes de𝑅(𝑧) com parte imaginária positiva, donde sabemos que a única soluçãoé (𝑎,𝑏) = (1,1). De outro modo, podemos adotar o seguinte procedimento:calculamos 𝐻 = res𝑣(𝑃,𝑄) = 4(𝑢−1)2(𝑢2−2𝑢+2). Observe que, para cadaraiz 𝑎 de 𝐻, o sistema 𝑃 (𝑎,𝑣) = 𝑄(𝑎,𝑣) = 0 possui solução em 𝑣, pois, nessecaso, 𝐺 = mdc(𝑃 (𝑎,𝑣),𝑄(𝑎,𝑣)) é não trivial (resolver o sistema gerado pelaraiz 𝑎 é o mesmo que achar as raízes de 𝐺). Por outro lado, apenas as raízesreais de 𝐻 nos importam, sendo a única 𝑎 = 1. Dessa forma, 𝑃 (1,𝑣) = 𝑣2−1e 𝑄(1,𝑣) = 0, donde 𝐺 = mdc(𝑃 (1,𝑣),𝑄(1,𝑣)) = 𝑣2 − 1. As soluções reaisde 𝐺 são ±1, sendo 𝑏 = 1 a única relevante. Logo, a única solução para osistema é (𝑎,𝑏) = (1,1).

4. 𝐴(1,1,𝑥) = 𝑥3+𝑥2−1, 𝐵 = (1,1,𝑥) = 𝑥2−1 e LogToAtan(𝑥3+𝑥2−1,𝑥2−1)

Page 87: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

73 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Figura 4.4: Comparação das formas contínua e descontínua de ∫ 𝑓 .

devolve

−2 arctg(𝑥5 +2𝑥4 +3𝑥3−2𝑥−1)−2 arctg(𝑥3 +2𝑥2 +3𝑥+1)+2 arctg(𝑥+1)

como visto no Exemplo 4.1.1.

Poderíamos ter optado por obter uma solução formal, isto é, sem calcular efeti-vamente as soluções do sistema 𝑃 (𝑢,𝑣) = 𝑄(𝑢,𝑣) = 0, deixando a fórmula emtermos de destas soluções, as quais seriam obtidas no passo 3. Em outras palavras,chamaríamos diretamente LogToAtan(𝑥3 + 𝑢𝑥2 − 𝑢,𝑣𝑥2 − 𝑣), obtendo

𝜑(𝑢,𝑣,𝑥) = −2 arctg(

𝑥5

𝑣+ 2𝑢𝑥4

𝑣+ (𝑣2 + 𝑢2 + 1)𝑥3

𝑣− (𝑣2 + 𝑢2)𝑥

𝑣− 𝑢

𝑣

)

− 2 arctg(

𝑥3

𝑣+ 2𝑢𝑥2

𝑣+ (𝑣2 + 𝑢2 + 1)𝑥

𝑣+ 𝑢

𝑣

)+ 2 arctg

(𝑥

𝑣+ 𝑢

𝑣

)

Page 88: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 74

A integral seria retornada formalmente como∫

𝑓 =∑

𝑎,𝑏∈R,𝑏>0𝑎2−2𝑎+2−𝑏2=2𝑎𝑏−2𝑏=0

𝑎 log((𝑥3 + 𝑎𝑥2 − 𝑎)2 + (𝑏𝑥2 − 𝑏)2) + 𝑏𝜑(𝑎,𝑏,𝑥)

que é uma função com coeficientes reais. Fazendo a substituição 𝑎 = 1 e 𝑏 = 1 noresultado acima, temos a mesma integral que antes. Observe que a solução formaltende a ter uma representação maior que a solução explícita quando as soluçõesencontradas para o sistema 𝑃 = 𝑄 = 0 são todas racionais. Porém, se algumasolução envolve radicais, então o número de símbolos estranhos a Q envolvidos,tanto durante os cálculos, quanto na representação da solução final explícita, podeser maior do que se representarmos a solução formalmente, o que deve ser levadoem consideração ao se observar a eficiência do algoritmo em sua implementação.

Exemplo 4.1.3 (gerado com dados obtidos pelos códigos 5.6.1, 5.6.2 e 5.8.2).Mostramos agora um exemplo em que o algoritmo de Rioboo não fornece umasolução significativamente melhor para a integração definida que o algoritmoclássico.Considere a função

𝑓 = 𝑥4 + 3𝑥2

𝑥6 + 𝑥4 + 2𝑥2 + 1Integrando-se esta função utilizando os algoritmos de Rioboo e clássico temos,respectivamente,

∫𝑓 = − arctg(𝑥5 + 𝑥) + arctg(𝑥3) + arctg(𝑥) = arctg

(𝑥3

𝑥2 + 1

)

Observe que a resposta obtida pelo algoritmo clássico não possui polos nos reais.Deste modo, esta forma da integral também é contínua sobre os reais e pode sercorretamente utilizada para a integração definida através do Teorema Fundamen-tal do Cálculo.Este exemplo motiva a definir um critério para saber quando o algoritmo deRioboo se faz necessário. A saber, mantendo a notação, devemos utilizar estealgoritmo para a integração definida apenas para cada par 𝐴,𝐵 em que 𝐵(𝑎,𝑏,𝑥)possui raízes reais. Dessa forma, é vantajoso que se utilize um misto entre oalgoritmo de Rioboo e o clássico para o caso da integração definida.

Page 89: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

75 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

Exemplo 4.1.4 (gerado com dados obtidos pelos códigos 5.5.1, 5.6.1, 5.6.2 e 5.8.2).Este exemplo mostra o quanto é importante recorrer a alternativas diferentes do

método de Bernoulli para a integração de funções racionais.Considere 𝐴 = 𝑥2 − 2𝑥, 𝐷 = 𝑥4 + 𝑥2 − 2𝑥 + 1 e 𝑓 = 𝐴/𝐷. O conjunto das raízesde 𝐷 é

𝜌𝐷 ={−𝐼 −

√4𝐼 − 1

2 ,−𝐼 +

√4𝐼 − 1

2 ,𝐼 −√

4𝐼 − 12 ,

𝐼 +√

4𝐼 − 12

}

e sua fatoração em fatores irredutíveis sobre os reais é

𝐷 =⎛⎝𝑥2 +

√√17− 1√

2𝑥 +√

2√√

17 + 1 +√

17 + 14

⎞⎠ ·⎛⎝𝑥2 −

√√17− 1√

2𝑥−√

2√√

17 + 1−√

17− 14

⎞⎠= (𝑥2 + 𝑏𝑥 + 𝑐1)(𝑥2 − 𝑏𝑥 + 𝑐2).

A versão complexa do método de Bernoulli retorna, formalmente,

∫𝑓 =

∑𝛼∈𝜌𝐷

𝐴(𝛼)𝐷′(𝛼) log(𝑥− 𝛼),

donde obtemos a fórmula explícita para ∫ 𝑓 substituíndo 𝛼 pelos elementos de𝜌𝐷. Os algoritmos para a parte logarítmica que estudamos, porém, fornecem oseguinte resultado:

∫𝑓 = 𝐼

2 log(𝑥2 + 𝐼𝑥− 𝐼)− 𝐼

2 log(𝑥2 − 𝐼𝑥 + 𝐼).

Percebemos facilmente a relativa simplicidade deste resultado diante do resultadoexplícito que seria fornecido pelo método de Bernoulli.

Page 90: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 76

Agora, a versão real do método de Bernoulli retorna

∫𝑓 = 𝐵1

2 log(𝑥2 + 𝑏𝑥 + 𝑐1) + 2𝐶1 − 𝑏𝐵1√4𝑐1 − 𝑏2 arctg

(2𝑥 + 𝑏√4𝑐1 − 𝑏2

)

+ 𝐵2

2 log(𝑥2 − 𝑏𝑥 + 𝑐2) + 2𝐶2 + 𝑏𝐵2√4𝑐2 − 𝑏2 arctg

(2𝑥− 𝑏√4𝑐2 − 𝑏2

).

É possível mostrar que a parte logarítmica na expressão acima equivale a 0,sobrando apenas arcos tangentes. Todavia, a parte restante envolve extensões quesão obtidas a partir de fórmulas quárticas, enquanto que os algoritmos clássico ede Rioboo fornecem, respectivamente,

∫𝑓 = arctg

(𝑥2

𝑥− 1

)∼ − arctg(𝑥3 + 𝑥2 + 𝑥− 1) + arctg(𝑥 + 1)

Este ilustra que o algoritmo de Rioboo consegue conciliar simplicidade de fórmulacom continuidade. O método de Bernoulli costuma falhar no primeiro quesito,enquanto que o método clássico costuma falhar no segundo.

Exemplo 4.1.5 (gerado com dados obtidos pelos códigos 5.6.3 e 5.8.1). Umexemplo de conversão para arcos tangentes hiperbólicos. Considere o par 𝐴 =𝑥3 +𝑥2−1, 𝐵 = 𝑥2−1 e a extensão 𝛼 =

√2. O algoritmo de Rioboo generalizado

retorna

√2 log(𝑥3 + 𝑥2 − 1 +

√2(𝑥2 − 1))−

√2 log(𝑥3 + 𝑥2 − 1−

√2(𝑥2 − 1)) =

= −2√

2(

arctgh(

𝑥5 + 2𝑥4 + 𝑥− 1√2

)+ arctgh

(𝑥3 + 2𝑥2 + 1√

2

)− arctgh

(𝑥 + 1√

2

))

Observe que a forma deste resultado é idêntica àquela obtida pelo Exemplo 4.1.1, amenos da extensão algébrica em questão. Observe ainda que não houve ganho algumem termos de representação, pelo contrário: a tornamos maior e fizemos com que maispolinômios distintos surgissem.Por outro lado, se 𝐴 = (𝑥3− 1)2, 𝐵 = 𝑥2 + 𝑥 + 1 e 𝛼 =

√2, então 𝐵 | 𝐴 e, assim, temos

√2 log((𝑥3 − 1)2 +

√2(𝑥2 + 𝑥 + 1))−

√2 log((𝑥3 − 1)2 −

√2(𝑥2 + 𝑥 + 1)) =

= 2√

2 arctgh(

𝑥4 − 𝑥3 − 𝑥 + 1√2

),

Page 91: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

77 4.1. O Algoritmo de Rioboo para Funções Racionais Reais

donde diminuímos a representação da integral.Note que, de fato, 𝛼 pode pertencer ao corpo de coeficientes do integrando. O casoclássico é

log(𝑥 + 1)2 − log(𝑥− 1)

2 = arctgh(𝑥)

Observe que mesmo transformar dois termos logarítmicos em apenas um arco tangentehiperbólico nem sempre é desejável, pois a última forma pode ter representação muitomais extensa. A expressão a seguir mostra isso quando temos, por exemplo, um primointeiro positivo 𝑝 suficientemente grande:

log((𝑥𝑝 − 1) + (𝑥− 1))2 − log((𝑥𝑝 − 1)− (𝑥− 1))

2 = arctgh(𝑥𝑝−1 + 𝑥𝑝−2 + · · ·+ 𝑥 + 1)

Exemplo 4.1.6 (extraído de [14]). Finalmente, um exemplo em que os algoritmosde integração de funções racionais podem ser utilizados para integrar algumasfunções elementares. Seja 𝑓(𝑥) = 3

5− 4 cos(𝑥) . Calculemos

∫𝑓(𝑥) 𝑑𝑥 =

∫ 35− 4 cos(𝑥) 𝑑𝑥

Aplicamos a mudança de variável 𝑢 = tg(𝑥/2), isto é 𝑥 = 2 arctg(𝑢) e, portanto,𝑑𝑥 = 2 𝑑𝑢/(1 + 𝑢2). Temos∫

𝑓(𝑥) 𝑑𝑥 =∫ 6

(1 + 𝑢2)(5− 4 cos(2 arctg(𝑢))) 𝑑𝑢

=∫ 6

(1 + 𝑢2)5− 4(1− 𝑢2) 𝑑𝑢 =∫ 6

1 + 9𝑢2 𝑑𝑢

= 𝐼 log(

𝑢 + 𝐼

3

)− 𝐼 log

(𝑢− 𝐼

3

)= 2 arctg(3𝑢) = 2 arctg

(3 tg

(𝑥

2

))

De modo geral integrandos que sejam racionais em sen(𝑥) e cos(𝑥) podem sertransformados em funções racionais em 𝑢 = tg(𝑥/2), de modo que os algoritmosde integração seguidos do algoritmo de Rioboo possam ser utilizados. Porém,diferente do caso puramente racional, o algoritmo de Rioboo pode gerar novassingularidades. É o caso deste exemplo. A função 𝑓 tem, aqui, singularidades𝜋 + 2𝑘𝜋 para todo 𝑘 inteiro. A fim de obter uma integral contínua, é necessárioaplicar uma transformação de retificação. A transformação que utilizamos aqui

Page 92: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 4. Integração Indefinida de Funções Racionais Reais 78

leva 𝐹1 = arctg(𝑎 tg(𝑥/2) + 𝑏) em:

𝐹2 = 𝑥

2 + arctg(

2𝑎𝑏 cos(𝑥)− (1 + 𝑏2 − 𝑎2) sen(𝑥)(1 + 𝑎)2 + 𝑏2 + (1 + 𝑏2 − 𝑎2) cos(𝑥) + 2𝑎𝑏 sen(𝑥)

),

de modo que 𝑑𝐹1/𝑑𝑥 = 𝑑𝐹2/𝑑𝑥, isto é, 𝐹1 ∼ 𝐹2. Porém, 𝐹1 claramente possuisingularidades, enquanto que 𝐹2, não, sendo contínua em R [14]. Segundo estatransformação, temos

𝐹1 = 2 arctg(

3 tg(

𝑥

2

))∼ 𝑥 + 2 arctg

(sen(𝑥)

1− cos(𝑥)

)= 𝐹2,

de modo que 𝐹2 é uma integral contínua para 𝑓 .

Figura 4.5: Comparação das formas contínua e descontínua de ∫ 𝑓 .

Page 93: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5

Pseudocódigos e Códigos emMaxima

Este capítulo é dedicado a fornecer pseudocódigos e códigos para implementaçãono CAS Maxima dos algoritmos estudados neste trabalho. Com os presentescódigos, é possível programar um integrador de funções racionais completo, capazde utilizar os algoritmos: de Hermite e sua variantes; Horowitz-Ostrogradsky;uma versão do algoritmo de Bernoulli aplicada a integrandos próprios, reduzidose com denominador livre de quadrados; Rothstein-Trager; Lazard-Rioboo-Trager;Czichowski e Rioboo. É possível ainda realizar integrações explícitas, formaisou mistas: no primeiro caso, sempre que possível, são calculadas efetivamentetodas as extensões algébricas necessárias para a representação da integral; nosegundo caso, evitamos o cálculo efetivo de extensões algébricas, mas utilizamosexpressões formais em termos das mesmas nas integrais e, no último caso, épossível escolher qual o nível de detalhamento que se deseja dar para a fórmula daintegral em termos de suas extensões (podemos, por exemplo, escolher exibir, nomáximo, extensões que possam ser obtidas pela fórmula de Bhaskara e deixar quedependam de fórmulas cúbicas e quárticas implícitas). Finalmente, para funçõesracionais reais, será possível escolher a expressão da parte transcendental apenasem termos logarítmicos, ou com conversão de logaritmos conjugados com parteimaginária em funções arco tangente, podendo os arcos tangentes ser encontradospelo método de Bernoulli, clássico, ou Rioboo. Também fornecemos é códigos

Page 94: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 80

para converter certos pares logaritmos para funções arco tangente hiperbólico.Exibiremos ainda pseudocódigos e códigos para alguns algoritmos comple-

mentares, necessários para a implementação dos algoritmos principais. A saber:(pseudo)divisão polinomial; o algoritmo de Euclides e variantes; decomposição emfrações parciais; o algoritmo das subresultantes; fatorações livres de quadrados.Além destes serão fornecidos alguns códigos para simplificar alguns comandosrotineiros dentro dos códigos dos algoritmos acima.

Quando um código estiver acompanhado de um pseudocódigo, o primeiro terásido elaborado com base no segundo. Ainda assim, junto a cada código, algunscomentários serão lançados para seu melhor entendimento.

5.1 Funções para Manipulação de Polinômios

5.1.1 Group

Reescreve, se possível, a expressão 𝐴 de modo que se torne um polinômio navariável 𝑥, onde cada potência de 𝑥 ocorre apenas uma vez. Além disso, simplificaos coeficientes de cada termo em 𝑥.

Código:

Group(A,x):=block([a,l,simp,Ans],

algebraic:true,simp:0,if A=0 then(

Ans:0,algebraic:false,return(Ans)

),a:expandwrt(fullratsimp(A,x),x),l:hipow(a,x),for i:0 thru l do(

simp:simp+fullratsimp(coeff(a,x,i))*x^i),Ans:simp,algebraic:false,return(Ans)

)$

Page 95: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

81 5.1. Funções para Manipulação de Polinômios

5.1.2 LC

O coeficiente líder do polinômio 𝐴 na variável 𝑥.

Código:

LC(A,x):=block([a,Ans],

algebraic:true,if A=0 then(

Ans:0,algebraic:false,return(Ans)

),a:Group(A,x),a:coeff(a,x,hipow(a,x)),Ans:a,algebraic:false,return(Ans)

)$

5.1.3 Mon

O polinômio mônico de 𝐴 na varável 𝑥. Obtido pela divisão de 𝐴 por seu termolíder em 𝑥.

Código:

Mon(A,x):=block([a,Ans],

algebraic:true,if A=0 then(

Ans:0,algebraic:false,return(Ans)

),a:Group(A/LC(A,x),x),Ans:a,algebraic:false,return(Ans)

)$

Page 96: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 82

5.1.4 Parts

Retorna polinômios 𝐴 e 𝐵 tais que 𝑃 (𝑢 + 𝐼𝑣) = 𝐴(𝑢,𝑣) + 𝐼𝐵(𝑢,𝑣), com oscoeficientes de 𝐴 e 𝐵 pertencentes ao mesmo domínio dos coeficientes de 𝑃 .

Código:

Parts(P,z):=block([u,v,p,Ans],

algebraic:true,p:subst(u+%i*v,z,P),Ans:[realpart(p),imagpart(p)],algebraic:false,return(Ans)

)$

5.1.5 RPoly

Gera polinômios inteiros aleatórios. 𝑑𝑒𝑔 é o grau desejado, 𝑙𝑖𝑚 é o limitante parao valor absoluto dos coeficientes e 𝑑𝑜𝑚 é o domínio: naturais ou inteiros.

Código:

RPoly(x,deg,lim,dom):=block([j,s,Poly,Ans],

algebraic:true,Poly:0,for j:0 thru deg do(

s:1,if random(2)=0 and dom="integers" then s:-1,Poly:Poly+s*random(lim+1)*x^j

),if hipow(Poly,x)<deg then Poly:Poly+x^deg,if Poly=0 then(

Ans:1,algebraic:false,return(Ans)

),Ans:Poly,algebraic:false,return(Ans)

)$

Page 97: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

83 5.2. MDC de Polinômios e Resultantes

5.2 MDC de Polinômios e Resultantes

5.2.1 PDiv

Retorna o quociente e o resto da divisão de 𝐴 por 𝐵 visto como polinômios em 𝑥.

Pseudocódigo:

1: função PolyDivide(𝐴,𝐵)2: descrição: Dado um corpo K e 𝐴,𝐵 ∈ K[𝑥] com 𝐵 = 0, retorna 𝑄,𝑅 ∈ K[𝑥]

tais que 𝐴 = 𝐵𝑄 + 𝑅, com 𝑅 = 0 ou grau(𝑅) < grau(𝐵).3: 𝑄← 04: 𝑅← 𝐴5: enquanto 𝑅 = 0 e 𝛿 ← grau(𝑅)− grau(𝐵) ≥ 0 faça

6: 𝑇 ← cl(𝑅)cl(𝐵)𝑥𝛿

7: 𝑄← 𝑄 + 𝑇8: 𝑅← 𝑅−𝐵𝑇9: fim enquanto

10: devolve (𝑄,𝑅)11: fim função

Código:

PDiv(A,B,x):=block([b,q,r,t,delta,lcB,degB,Ans],

algebraic:true,q:0, r:Group(A,x), b:Group(B,x),degB:hipow(b,x), delta:hipow(r,x)-degB,lcB:LC(b,x),while r#0 and delta>=0 do(

t:fullratsimp(LC(r,x)/lcB)*x^delta,q:q+t, r:r-b*t,q:Group(q,x), r:Group(r,x),delta:hipow(r,x)-degB

),Ans:[q,r],algebraic:false,return(Ans)

)$

Page 98: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 84

5.2.2 PPsDiv

Retorna o pseudoquociente e o pseudoresto da divisão de 𝐴 por 𝐵 visto comopolinômios em 𝑥.

Pseudocódigo:

1: função PolyPseudoDivide(𝐴,𝐵)2: descrição: Dado um domínio de integridade 𝐷 e 𝐴,𝐵 ∈ 𝐷[𝑥] com 𝐵 = 0,

retorna pquo(𝐴,𝐵) e prem(𝐴,𝐵).3: 𝑏← cl(𝐵)4: 𝑁 ← grau(𝑅)− grau(𝐵) + 15: 𝑄← 06: 𝑅← 𝐴7: enquanto 𝑅 = 0 e 𝛿 ← grau(𝑅)− grau(𝐵) ≥ 0 faça8: 𝑇 ← cl(𝑅)𝑥𝛿

9: 𝑁 ← 𝑁 − 110: 𝑄← 𝑏𝑄 + 𝑇11: 𝑅← 𝑏𝑅−𝐵𝑇12: fim enquanto13: devolve (𝑏𝑁𝑄,𝑏𝑁𝑅)14: fim função

Código:

PPsDiv(A,B,x):=block([b,q,r,t,delta,lcB,degB,N],

algebraic:true,q:0, r:Group(A,x), b:Group(B,x),degB:hipow(b,x), delta:max(hipow(r,x)-degB,-1),lcB:LC(b,x), N:delta+1,while r#0 and delta>=0 do(

t:LC(r,x)*x^delta,N:N-1,q:lcB*q+t, r:lcB*r-b*t,q:Group(q,x), r:Group(r,x),delta:hipow(r,x)-degB

),q:Group(lcB^N*q,x),r:Group(lcB^N*r,x),Ans:[q,r],algebraic:false,return(Ans)

)$

Page 99: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

85 5.2. MDC de Polinômios e Resultantes

5.2.3 GCD

Cálculo de mdc de polinômios utilizando a SRP primitiva. Há a possibilidadede se realizar os cálculos módulo 𝑃 (𝑧). Isto se mostrará útil especialmente noalgoritmo de Rothstein-Trager.

Pseudocódigo:

1: função Euclidean(𝑎,𝑏)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏 ∈ 𝐷, retorna mdc(𝑎,𝑏).3: enquanto 𝑏 = 0 faça4: (𝑞,𝑟)← EuclideanDivision(𝑎,𝑏) ◁ 𝑎 = 𝑏𝑞 + 𝑟5: 𝑎← 𝑏6: 𝑏← 𝑟7: fim enquanto8: devolve 𝑎9: fim função

Código:

GCD(A,B,x,P,z):=block([a,b,q,r,Ans],

algebraic:true,a:Group(A,x), b:Group(B,x),if P#0 then(

a:PPsDiv(a,P,z)[2],b:PPsDiv(b,P,z)[2]

),while b#0 do(

[q,r]:PPsDiv(a,b,x),if P#0 then(

r:PPsDiv(num(r),P,z)[2],if r#0 then r:content(Group(r,x),x)[2]

),a:b,b:content(r,x)[2],if r=0 then b:0

),a:content(a,x)[2],if LC(a,x)<0 then(

a:Group((-a),x)),Ans:a,algebraic:false,return(Ans)

Page 100: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 86

)$

5.2.4 ExGCD

Algoritmo de Euclides estendido. Aplicável a domínios euclidianos de polinômios.

Pseudocódigo:

1: função ExtendedEuclidean(𝑎,𝑏)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏 ∈ 𝐷, retorna 𝑠,𝑡,𝑑 ∈ 𝐷 tais

que 𝑑 = mdc(𝑎,𝑏) e 𝑠𝑎 + 𝑡𝑏 = 𝑑.3: 𝑎1 ← 14: 𝑎2 ← 05: 𝑏1 ← 06: 𝑏2 ← 17: enquanto 𝑏 = 0 faça8: (𝑞,𝑟)← EuclideanDivision(𝑎,𝑏) ◁ 𝑎 = 𝑏𝑞 + 𝑟9: 𝑎← 𝑏

10: 𝑏← 𝑟11: 𝑟1 ← 𝑎1 − 𝑞𝑏112: 𝑟2 ← 𝑎2 − 𝑞𝑏213: 𝑎1 ← 𝑏114: 𝑎2 ← 𝑏215: 𝑏1 ← 𝑟116: 𝑏2 ← 𝑟217: fim enquanto18: devolve (𝑎1,𝑎2,𝑎)19: fim função

Código:

ExGCD(A,B,x):=block([a,b,q,r,a1,a2,b1,b2,r1,r2,Ans],

algebraic:true,a:Group(A,x), b:Group(B,x),a1:1, a2:0, b1:0, b2:1,while b#0 do(

[q,r]:PDiv(a,b,x),a:b, b:r,r1:a1-q*b1, r2:a2-q*b2,a1:b1, a2:b2, b1:r1, b2:r2

),

Page 101: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

87 5.2. MDC de Polinômios e Resultantes

Ans:expand([a1,a2,a]),algebraic:false,return(Ans)

)$

5.2.5 HExGCD

Algoritmo de Euclides semiestendido. Aplicável a domínios euclidianos de polinô-mios.

Pseudocódigo:

1: função HalfExtendedEuclidean(𝑎,𝑏)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏 ∈ 𝐷, retorna 𝑠,𝑑 ∈ 𝐷 tais

que 𝑑 = mdc(𝑎,𝑏) e 𝑠𝑎 + 𝑡𝑏 = 𝑑 para algum 𝑡 ∈ 𝐷.3: 𝑎1 ← 14: 𝑏1 ← 05: enquanto 𝑏 = 0 faça6: (𝑞,𝑟)← EuclideanDivision(𝑎,𝑏) ◁ 𝑎 = 𝑏𝑞 + 𝑟7: 𝑎← 𝑏8: 𝑏← 𝑟9: 𝑟1 ← 𝑎1 − 𝑞𝑏1

10: 𝑎1 ← 𝑏111: 𝑏1 ← 𝑟112: fim enquanto13: devolve (𝑎1,𝑎)14: fim função

Código:

HExGCD(A,B,x):=block([a,b,q,r,a1,b1,r1,Ans],

algebraic:true,a:A, b:B,a1:1, b1:0,while b#0 do(

[q,r]:PDiv(a,b,x),a:b, b:r,r1:a1-q*b1,a1:b1, b1:r1

),Ans:[a1,a],algebraic:false,

Page 102: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 88

return(Ans))$

5.2.6 HFExGCD

Algoritmo de Euclides estendido calculado a partir do semiestendido. Aplicável adomínios euclidianos de polinômios.

Pseudocódigo:

1: função ExtendedEuclidean(𝑎,𝑏)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏 ∈ 𝐷, retorna 𝑠,𝑡,𝑑 ∈ 𝐷 tais

que 𝑑 = mdc(𝑎,𝑏) e 𝑠𝑎 + 𝑡𝑏 = 𝑑.3: (𝑠,𝑑)← HalfExtendedEuclidean(𝑎,𝑏) ◁ 𝑠𝑎 + 𝑡𝑏 = 𝑑 para algum 𝑡4: (𝑡,𝑟)← EuclideanDivision(𝑑− 𝑠𝑎,𝑏) ◁ 𝑟 deve ser 05: devolve (𝑠,𝑡,𝑑)6: fim função

Código:

HFExGCD(A,B,x):=block([a,b,s,r,g,t,Ans],

algebraic:true,a:A, b:B,[s,g]:HExGCD(a,b,x),[t,r]:PDiv(g-s*A,B,x),Ans:[s,t,g],algebraic:false,return(Ans)

)$

5.2.7 DioExGCD

Versão diofantina do algoritmo de Euclides estendido. Aplicável a domínios eucli-dianos de polinômios.

Pseudocódigo:

1: função ExtendedEuclidean(𝑎,𝑏,𝑐)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏,𝑐 ∈ 𝐷 e 𝑐 múltiplo de

mdc(𝑎,𝑏), retorna 𝑠,𝑡 ∈ 𝐷 tais que 𝑠𝑎 + 𝑡𝑏 = 𝑐, com 𝑠 = 0 ou 𝜈(𝑠) < 𝜈(𝑏).

Page 103: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

89 5.2. MDC de Polinômios e Resultantes

3: (𝑠,𝑡,𝑑)← ExtendedEuclidean(𝑎,𝑏) ◁ 𝑑 = 𝑠𝑎 + 𝑡𝑏4: (𝑞,𝑟)← EuclideanDivision(𝑐,𝑑) ◁ 𝑐 = 𝑑𝑞 + 𝑟5: se 𝑟 = 0 então6: erro: “𝑐 não é múltiplo de mdc(𝑎,𝑏)”7: fim se8: 𝑠← 𝑞𝑠9: 𝑡← 𝑞𝑡

10: se 𝑠 = 0 e 𝜈(𝑠) ≥ 𝜈(𝑏) então11: (𝑞,𝑟)← EuclideanDivision(𝑠,𝑏) ◁ 𝑠 = 𝑏𝑞 + 𝑟12: fim se13: 𝑠← 𝑟14: 𝑡← 𝑡 + 𝑞𝑎15: devolve 𝑠,𝑡16: fim função

Código:

DioExGCD(A,B,C,x):=block([s,t,g,q,r,Ans],

algebraic:true,[s,t,g]:HFExGCD(A,B,x),[s,t,g]:expand([s,t,g]),[q,r]:PDiv(C,g,x),if r#0 then(

algebraic:false,error("c is not in the ideal generated by a and b")

),s:q*s, t:q*t, [s,t]:expand([s,t]),if s#0 and hipow(s,x)>=hipow(B,x) then(

[q,r]:PDiv(s,B,x),s:r, t:t+q*A

),Ans:[s,t],algebraic:false,return(Ans)

)$

5.2.8 DioHExGCD

Versão diofantina do algoritmo de Euclides semiestendido. Aplicável a domínioseuclidianos de polinômios.

Pseudocódigo:

Page 104: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 90

1: função HalfExtendedEuclidean(𝑎,𝑏,𝑐)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏,𝑐 ∈ 𝐷 e 𝑐 múltiplo de

mdc(𝑎,𝑏), retorna 𝑠 ∈ 𝐷 tal que 𝑠𝑎 + 𝑡𝑏 = 𝑐 para algum 𝑡 ∈ 𝐷, com 𝑠 = 0 ou𝜈(𝑠) < 𝜈(𝑏).

3: (𝑠,𝑑)← HalfExtendedEuclidean(𝑎,𝑏) ◁ 𝑠𝑎 + 𝑡𝑏 = 𝑑 para algum 𝑡 ∈ 𝐷4: (𝑞,𝑟)← EuclideanDivision(𝑐,𝑑) ◁ 𝑐 = 𝑑𝑞 + 𝑟5: se 𝑟 = 0 então6: erro: 𝑐 não é múltiplo de mdc(𝑎,𝑏)7: fim se8: 𝑠← 𝑞𝑠9: se 𝑠 = 0 e 𝜈(𝑠) ≥ 𝜈(𝑏) então

10: (𝑞,𝑟)← EuclideanDivision(𝑠,𝑏) ◁ 𝑠 = 𝑏𝑞 + 𝑟11: fim se12: 𝑠← 𝑟13: devolve 𝑠14: fim função

Código:

DioHExGCD(A,B,C,x):=block([s,g,q,r,Ans],

algebraic:true,[s,g]:HExGCD(A,B,x),[s,g]:expand([s,g]),[q,r]:PDiv(C,g,x),if r#0 then(

algebraic:false,error("c is not in the ideal generated by a and b")

),s:q*s, s:expand(s),if s#0 and hipow(s,x)>=hipow(B,x) then(

[q,r]:PDiv(s,B,x),s:r

),Ans:s,algebraic:false,return(Ans)

)$

5.2.9 DioHFExGCD

Versão diofantina do algoritmo de Euclides calculado a partir do semiestendido.Aplicável a domínios euclidianos de polinômios.

Page 105: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

91 5.2. MDC de Polinômios e Resultantes

Pseudocódigo:

1: função ExtendedEuclidean(𝑎,𝑏)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑏,𝑐 ∈ 𝐷, com 𝑐 múltiplo de

mdc(𝑎,𝑏) retorna 𝑠,𝑡 ∈ 𝐷 tais que 𝑠𝑎 + 𝑡𝑏 = 𝑐, com 𝑠 = 0 ou 𝜈(𝑠) < 𝜈(𝑏).3: 𝑠← HalfExtendedEuclidean(𝑎,𝑏,𝑐) ◁ 𝑠𝑎 + 𝑡𝑏 = 𝑐 para algum 𝑡4: (𝑡,𝑟)← EuclideanDivision(𝑐− 𝑠𝑎,𝑏) ◁ 𝑟 deve ser 05: devolve (𝑠,𝑡)6: fim função

Código:

DioHFExGCD(A,B,C,x):=block([s,r,t,Ans],

algebraic:true,s:DioHExGCD(A,B,C,x),[t,r]:PDiv(C-s*A,B,x),Ans:[s,t],algebraic:false,return(Ans)

)$

5.2.10 SubRes

Algoritmo das subresultantes.

Pseudocódigo:

1: função SubResultant(𝐴,𝐵)2: descrição: Dado um domínio de integridade 𝐷 e 𝐴,𝐵 ∈ 𝐷[𝑥] com 𝐵 = 0 e

grau(𝐴) ≥ grau(𝐵), retorna res(𝐴,𝐵) e a SRP subresultante (𝑅0,𝑅1, . . . ,𝑅𝑘,0)de 𝐴 e 𝐵.

3: 𝑅0 ← 𝐴4: 𝑅1 ← 𝐵5: 𝑖← 16: 𝛾1 ← −17: 𝛿1 ← grau(𝐴)− grau(𝐵)8: 𝛽1 ← (−1)𝛿1+1

9: enquanto 𝑅𝑖 = 0 faça10: 𝑟𝑖 ← cl(𝑅𝑖)11: (𝑄,𝑅)← PolyPseudoDivide(𝑅𝑖−1,𝑅𝑖)

Page 106: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 92

12: 𝑅𝑖+1 ← 𝑅/𝛽𝑖 ◁ esta divisão é sempre exata13: 𝑖← 𝑖 + 114: 𝛾𝑖(−𝑟𝑖−1)𝛿𝑖−1𝛾

1−𝛿𝑖−1𝑖−1

15: 𝛿𝑖 ← grau(𝑅𝑖−1)− grau(𝑅𝑖)16: 𝛽𝑖 ← −𝑟𝑖−1𝛾

𝛿𝑖𝑖

17: fim enquanto18: 𝑘 ← 𝑖− 119: se grau(𝑅𝑘) > 0 então20: devolve (0,(𝑅0,𝑅1, · · · ,𝑅𝑘,0))21: fim se22: se grau(𝑅𝑘−1) = 1 então23: devolve (𝑅𝑘,(𝑅0,𝑅1, · · · ,𝑅𝑘,0))24: fim se25: 𝑠← 1 ◁ 𝑠 será (−1)𝜎𝑘

26: 𝑐← 1 ◁ 𝑠𝑅grau(𝑅𝑘−1)−1𝑘 𝑐 será 𝜏𝑘

27: para 𝑗 ← 1 até 𝑘 − 1 faça ◁ computa 𝜏𝑘𝑅𝑘

28: se grau(𝑅𝑗−1) for ímpar e grau(𝑅𝑗) for ímpar então29: 𝑠← −𝑠30: fim se31: 𝑐← 𝑐(𝛽𝑗/𝑟

1+𝛿𝑗

𝑗 )grau(𝑅𝑗)𝑟grau(𝑅𝑗−1)−grau(𝑅𝑗+1)𝑗 ◁ divisão exata

32: fim para33: devolve (𝑠𝑐𝑅

grau(𝑅𝑘−1)𝑘 ,(𝑅0,𝑅1 . . . ,𝑅𝑘,0))

34: fim função

Código:

SubRes(A,B,x):=block([R,i,gamma,delta,Res,

beta,pq,pr,r,k,s,c,j,Ans],algebraic:true,R:[],gamma:[],delta:[],beta:[],r:[],push(Group(B,x),R), push(Group(A,x),R),i:2, push(-1,gamma),push(hipow(R[1],x)-hipow(R[2],x),delta),push((-1)^(delta[1]+1),beta),while R[i]#0 do(

r:endcons(LC(R[i],x),r),[pq,pr]:PPsDiv(R[i-1],R[i],x),R:endcons(Group(pr/beta[i-1],x),R),gamma:endcons((-r[i-1])^delta[i-1]*gamma[i-1]^(1-

delta[i-1]),gamma),delta:endcons(hipow(R[i],x)-hipow(R[i+1],x),delta),beta:endcons(-r[i-1]*gamma[i]^delta[i],beta),i:i+1

Page 107: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

93 5.2. MDC de Polinômios e Resultantes

),k:i-1,if hipow(R[k],x)>0 then(

Ans:[0,rest(R,-1)],algebraic:false,return(Ans)

),if hipow(R[k-1],x)=1 then(

Ans:[R[k],rest(R,-1)],algebraic:false,return(Ans)

),s:1, c:1,for j:1 thru k-2 do(

if mod(hipow(R[j],x),2)=1 andmod(hipow(R[j+1],x),2)=1 then s:-s,

c:c*(beta[j]/r[j]^(1+delta[j]))^hipow(R[j+1],x)*r[j]^(hipow(R[j],x)-hipow(R[j+2],x))

),Res:s*c*R[k]^(hipow(R[k-1],x)),Ans:[Res,rest(R,-1)],algebraic:false,return(Ans)

)$

5.2.11 Normalize

Normaliza o mdc entre dois polinômios para que seu coeficiente líder seja congru-ente a 1 mod 𝑃 (𝑧).

Código:

Normalize(A,x,P,z):=block([a,mult,Ans],

algebraic:true,mult:HExGCD(LC(A,x),P,z)[1],a:mult*A,a:PDiv(a,P,z)[2],a:content(Group(a,x))[2],Ans:a,algebraic:false,return(Ans)

)$

Page 108: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 94

5.3 Fatorações e Frações Parciais

5.3.1 LFactor

O mesmo que a função factor do Maxima, porém retorna uma lista com os fatoresda fatoração prima do polinômio 𝑄, ao invés de um produto. 𝑒𝑥𝑝𝑎 deve ter valor𝑡𝑟𝑢𝑒 caso se deseje expandir os fatores.

Código:

LFactor(Q,x,expa):=block([fac,l,i,c,q,listfac,Ans],

algebraic:true,listfac:[],if hipow(Q,x)=0 then(

Ans:[Q],algebraic:false,return(Ans)

),[c,q]:content(Q,x),q:Group(q,x),fac:factor(q),fac:2*fac^3,if op(fac)="-" then(c:-c,fac:-fac),l:length(fac),push(c,listfac),for i:2 thru l do(

listfac:endcons(second(fac)^(1/3),listfac),fac:fac/second(fac),if expa then listfac[i]:Group(listfac[i],x)

),Ans:listfac,algebraic:false,return(Ans)

)$

5.3.2 SQFR

Fatoração livre de quadrados pelo algoritmo de Yun.

Pseudocódigo:

1: função SquareFree(𝐴)2: descrição: Dado um domínio de fatoração única 𝐷 com característica 0 e

Page 109: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

95 5.3. Fatorações e Frações Parciais

𝐴 ∈ 𝐷[𝑥], retorna 𝐴1, . . . ,𝐴𝑚 ∈ 𝐷[𝑥] tais que 𝐴 =𝑚∏

𝑘=1𝐴𝑘

𝑘 é uma fatoração

livre de quadrados de 𝐴.3: 𝑐← cont(𝐴)4: 𝑆 ← 𝐴/𝑐 ◁ 𝑆 = pp(𝐴)5: 𝑆 ′ ← 𝑑𝑆/𝑑𝑥6: 𝑆− ← mdc(𝑆,𝑆 ′)7: 𝑆* ← 𝑆/𝑆−

8: 𝑌 ← 𝑆 ′/𝑆−

9: 𝑘 ← 110: enquanto (𝑍 ← 𝑌 − 𝑑𝑆*/𝑑𝑥) = 0 faça ◁ 𝑆* = 𝐴−𝑘−1 *

, 𝑌 ← 𝑌𝑘

11: 𝐴𝑘 ← mdc(𝑆*,𝑍) ◁ (2.12)12: 𝑆* ← 𝑆*/𝐴𝑘 ◁ 𝑆* = 𝐴−𝑘

*

13: 𝑌 ← 𝑍/𝐴𝑘 ◁ 𝑌 = 𝑌𝑘+114: 𝑘 ← 𝑘 + 115: fim enquanto16: 𝐴𝑘 ← 𝑆*

17: devolve (𝑐𝐴1, . . . ,𝐴𝑘)18: fim função

Código:

SQFR(A,x):=block([S,Sd,Sf,Y,fac,Z,k,c,dS,Ans],

algebraic:true,fac:[],[c,S]:content(A,x),dS:Group(diff(S,x),x),Sd:GCD(S,dS,x,0,0),Sf:Group(S/Sd,x),Y:Group(dS/Sd,x),Z:Group(Y-diff(Sf,x),x),k:1,while Z#0 do(

fac:endcons(GCD(Sf,Z,x,0,0),fac),Sf:Group(Sf/fac[k],x),Y:Group(Z/fac[k],x),Z:Group(Y-diff(Sf,x),x),k:k+1

),fac:endcons(Sf,fac),fac[1]:Group(c*fac[1],x),Ans:fac,algebraic:false,return(Ans)

Page 110: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 96

)$

5.3.3 PFrac

Decomposição em frações parciais simples.

Pseudocódigo:

1: função PartialFraction(𝑎,𝑑1, . . . ,𝑑𝑛)2: descrição: Dado um domínio euclidiano 𝐷 e 𝑎,𝑑1, . . . ,𝑑𝑛 ∈ 𝐷 ∖ {0} com

mdc(𝑑𝑖,𝑑𝑗) = 1 para 𝑖 = 𝑗, retorna 𝑎0,𝑎1, . . . ,𝑎𝑛 ∈ 𝐷 tais que

𝑎

𝑑1 · · · 𝑑𝑛

= 𝑎0 +𝑛∑

𝑖=1

𝑎𝑖

𝑑𝑖

com 𝑎𝑖 = 0 ou 𝜈(𝑎𝑖) < 𝜈(𝑑𝑖) para 𝑖 ≥ 1.3: (𝑎0,𝑟)← EuclideanDivision(𝑎,𝑑1, . . . ,𝑑𝑛) ◁ 𝑎 = (𝑑1 · · · 𝑑𝑛)𝑎0 + 𝑟4: se 𝑛 = 1 então5: devolve (𝑎0,𝑟)6: fim se7: (𝑎1,𝑡)← ExtendedEuclidean(𝑑2 · · · 𝑑𝑛,𝑑1,𝑟) ◁ 𝜈(𝑎1) < 𝜈(𝑑1)8: (𝑏0,𝑎2, . . . ,𝑎𝑛)← PartialFraction(𝑡,𝑑2, . . . ,𝑑𝑛)9: devolve (𝑎0 + 𝑏0,𝑎1,𝑎2, . . . ,𝑎𝑛)

10: fim função

Código:

PFrac(A,Fac,x):=block([fac,len,Den,a,a0,r,aux,t,Ans],

algebraic:true,a:makelist(0,1),fac:copylist(Fac),len:length(fac),Den:product(fac[i],i,1,len),[a0,r]:PDiv(A,Den,x),if len=1 then(

Ans:[a0,r],algebraic:false,return(Ans)

),Den:Den/fac[1],[a[1],t]:DioHFExGCD(Den,fac[1],r,x),pop(fac),aux:PFrac(t,fac,x),

Page 111: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

97 5.4. Hermite e Horowitz

push(aux[1],a),pop(aux),a:append(a,aux),Ans:a,algebraic:false,return(Ans)

)$

5.4 Hermite e Horowitz

5.4.1 HermO

Versão original da redução de Hermite.

Pseudocódigo:

1: função HermiteReduce(𝐴,𝐷)2: descrição: Dado um corpo K e 𝐴,𝐷 ∈ K[𝑥] com 𝐷 não nulo e coprimo

com 𝐴, retorna 𝑔,ℎ ∈ K(𝑥) tais que 𝐴/𝐷 = 𝑔′ + ℎ com ℎ possuindo umdenominador livre de quadrados.

3: (𝐷1, . . . ,𝐷𝑚)← SquareFree(𝐷)4: (𝑃,𝐴1,𝐴2, . . . ,𝐴𝑛)← PartialFraction(𝐴,𝐷1,𝐷

22, . . . ,𝐷𝑛

𝑛)5: 𝑔 ← 06: ℎ← 𝑃 + 𝐴1/𝐷17: para 𝑘 ← 2 até 𝑛 tal que grau(𝐷𝑘) > 0 faça8: 𝑉 ← 𝐷𝑘

9: para 𝑗 ← 𝑘 − 1 até 1 passo −1 faça10: (𝐵,𝐶)← ExtendedEuclidean(𝑉 ′,𝑉,− 𝐴𝑘/𝑗)11: 𝑔 ← 𝑔 + 𝐵/𝑉 𝑗

12: 𝐴𝑘 ← −𝑗𝐶 −𝐵′

13: fim para14: ℎ← ℎ + 𝐴𝑘/𝑉15: fim para16: devolve (𝑔,ℎ)17: fim função

Código:

HermO(A,D,x):=block([SF,SFExp,PF,g,h,k,V,dV,B,C,j,n,Ans],

algebraic:true,

Page 112: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 98

if A=0 then(Ans:0,algebraic:false,return(Ans)

),SF:SQFR(D,x),n:length(SF),SFExp:makelist(SF[i]^i,i,1,n),PF:PFrac(A,SFExp,x),g:0,h:PF[1]+fullratsimp(PF[2])/SF[1],for k:2 thru n do(

if hipow(SF[k],x)>0 then(V:SF[k],dV:diff(V,x),for j:k-1 thru 1 step -1 do(

[B,C]:DioHFExGCD(dV,V,-expand(fullratsimp(PF[k+1]/j)),x),

g:g+fullratsimp(B)/V^j,PF[k+1]:-j*C-diff(B,x)

),h:h+fullratsimp(PF[k+1])/V

)),Ans:[g,h],algebraic:false,return(Ans)

)$

5.4.2 HermQ

Versão quadrática da redução de Hermite.

Pseudocódigo:

1: função HermiteReduce(𝐴,𝐷)2: descrição: Dado um corpo K e 𝐴,𝐷 ∈ K[𝑥] com 𝐷 não nulo e coprimo

com 𝐴, retorna 𝑔,ℎ ∈ K(𝑥) tais que 𝐴/𝐷 = 𝑔′ + ℎ com ℎ possuindo umdenominador livre de quadrados.

3: 𝑔 ← 04: (𝐷1, . . . ,𝐷𝑚)← SquareFree(𝐷)5: para 𝑖 ← 2 até 𝑚 tal que grau(𝐷𝑖) > 0 faça6: 𝑉 ← 𝐷𝑖

7: 𝑈 ← 𝐷/𝑉 𝑖

8: para 𝑗 ← 𝑖− 1 até 1 passo −1 faça

Page 113: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

99 5.4. Hermite e Horowitz

9: (𝐵,𝐶)← ExtendedEuclidean(𝑈𝑉 ′,𝑉,− 𝐴/𝑗)10: 𝑔 ← 𝑔 + 𝐵/𝑉 𝑗

11: 𝐴← −𝑗𝐶 − 𝑈𝐵′

12: fim para13: 𝐷 ← 𝑈𝑉14: fim para15: devolve (𝑔,𝐴/𝐷)16: fim função

Código:

HermQ(A,D,x):=block([SF,SFExp,a,d,g,h,k,V,dV,U,B,C,j,n,Ans],

algebraic:true,a:A,d:D,if A=0 then(

Ans:0,algebraic:false,return(Ans)

),g:0, SF:SQFR(D,x),n:length(SF),for k:2 thru n do(

if hipow(SF[k],x)>0 then(V:SF[k],dV:expand(diff(V,x)),U:expand(fullratsimp(d/V^k)),for j:k-1 thru 1 step -1 do(

[B,C]:DioHFExGCD(expand(U*dV),V,-expand(fullratsimp(a/j)),x),

g:g+fullratsimp(B)/V^j,a:expand(fullratsimp(-j*C-U*diff(B,x)))

),d:U*V

)),Ans:[g,fullratsimp(a)/d],algebraic:false,return(Ans)

)$

5.4.3 HermL

Versão linear da redução de Hermite.

Pseudocódigo:

Page 114: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 100

1: função HermiteReduce(𝐴,𝐷)2: descrição: Dado um corpo K e 𝐴,𝐷 ∈ K[𝑥] com 𝐷 não nulo e coprimo

com 𝐴, retorna 𝑔,ℎ ∈ K(𝑥) tais que 𝐴/𝐷 = 𝑔′ + ℎ com ℎ possuindo umdenominador livre de quadrados.

3: 𝑔 ← 04: 𝐷− ← mdc(𝐷,𝐷′)5: 𝐷* ← 𝐷/𝐷−

6: enquanto grau(𝐷−) > 0 faça7: 𝐷−2 ← mdc(𝐷−,𝐷−′)8: 𝐷−* ← 𝐷−/𝐷−2

9: (𝐵,𝐶)← ExtendedEuclidean(−𝐷*𝐷−′/𝐷−,𝐷−*

,𝐴)10: 𝐴← 𝐶 −𝐵′𝐷*/𝐷−*

◁ novo numerador11: 𝑔 ← 𝑔 + 𝐵/𝐷−

12: 𝐷− ← 𝐷−2 ◁ 𝐷− = 𝐷−2

13: fim enquanto14: devolve (𝑔,𝐴/𝐷*)15: fim função

Código:

HermL(A,D,x):=block([a,Dd,Dd2,Df,Ddf,degDd,dDd,g,B,C,Ans],

algebraic:true,a:A,if A=0 then(

Ans:0,algebraic:false,return(Ans)

),g:0,Dd:GCD(D,diff(D,x),x,0,0),Df:Group(D/Dd,x),degDd:hipow(Dd,x),while degDd>0 do(

dDd:Group(diff(Dd,x),x),Dd2:GCD(Dd,dDd,x,0,0),Ddf:Group(Dd/Dd2,x),[B,C]:DioHFExGCD(Group(-Df*dDd

/Dd,x),Ddf,a,x),a:Group(C-diff(B,x)*Df/Ddf,x),g:g+fullratsimp(B)/Dd,Dd:Dd2,degDd:hipow(Dd,x)

),Ans:[g,fullratsimp(a)/Df],

Page 115: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

101 5.4. Hermite e Horowitz

algebraic:false,return(Ans)

)$

5.4.4 HorOstro

Método de Horowitz-Ostrogradsky.

Pseudocódigo:

1: função HorowitzOstrogradsky(𝐴,𝐷)2: descrição: Dado um corpo K e 𝐴,𝐷 ∈ K[𝑥] com grau(𝐴) < grau(𝐷), 𝐷 não

nulo e coprimo com 𝐴, retorna 𝑔,ℎ ∈ K(𝑥) tais que 𝐴/𝐷 = 𝑔′ + ℎ com ℎpossuindo um denominador livre de quadrados.

3: 𝐷− ← mdc(𝐷,𝐷′)4: 𝐷* ← 𝐷/𝐷−

5: 𝑛← grau(𝐷−)− 16: 𝑚← grau(𝐷*)− 17: 𝑑← grau(𝐷)

8: 𝐵 ←𝑛∑

𝑖=0𝑏𝑖𝑥

𝑖

9: 𝐶 ←𝑚∑

𝑗=0𝑐𝑗𝑥

𝑗

10: 𝐻 ← 𝐴−𝐵′𝐷* + 𝐵𝐷*𝐷−′/𝐷− − 𝐶𝐷− ◁ divisão exata

11: (𝑏0, . . . ,𝑏𝑛,𝑐0, . . . ,𝑐𝑛) ← solucionador(coeficiente(𝐻,𝑥𝑘) = 0,0 ≤ 𝑘 ≤𝑑)

12: devolve𝑛∑

𝑖=0𝑏𝑖𝑥

𝑖/𝐷−,𝑚∑

𝑖=0𝑐𝑗𝑥

𝑗/𝐷*

13: fim função

Código:

HorOstro(A,D,x):=block([a,Dd,Df,dDd,n,m,d,C,B,dB,H,j,b,c,k,eq,listb,

listc,listvar,sol,Rac,Log,Ans],algebraic:true,a:A,eq:[],linsolvewarn:false,if A=0 then(

Ans:0,algebraic:false,

Page 116: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 102

return(Ans)),Dd:GCD(D,diff(D,x),x,0,0),if Dd=1 then(

Ans:[0,A/D],algebraic:false,return(Ans)

),dDd:diff(Dd,x),Df:Group(D/Dd,x),n:hipow(Dd,x),m:hipow(Df,x),d:m+n-1,B:sum(b[i]*x^(i-1),i,1,n),C:sum(c[i]*x^(i-1),i,1,m),dB:expand(diff(B,x)),H:Group(A-dB*Df+B*Df*dDd/Dd-C*Dd,x),for k:0 thru d do eq:endcons(coeff(H,x,k)=0,eq),listb:makelist(b[i],i,1,n),listc:makelist(c[i],i,1,m),listvar:append(listb,listc),sol:solve(eq,listvar)[1],Rac:fullratsimp(sum(rhs(sol[i])*x^(i-1),i,1,n))/Dd,Log:fullratsimp(sum(rhs(sol[i])*x^(i-1-n),i,n+1,n+m))/Df,Ans:[Rac,Log],algebraic:false,linsolvewarn:true,return(Ans)

)$

5.5 Logaritmos

5.5.1 Bern

Algoritmo de Bernoulli. Esta versão é aplicada a funções com denominadores li-vres de quadrados. Além disso, é independente: diferente das demais funções destaseção, fornece diretamente a parte logarítmica e as funções arco tangente, efetiva-mente terminando a integração. Este código também prevê representações inertesdas extensões, as quais são dadas sempre em termos das raízes do denominador,isto é, utilizando-se a fórmula dos resíduos.

Dada uma função racional 𝑓 = 𝐴/𝐷 reduzida, própria e com denominadorlivre de quadrados, esta função utiliza a fórmula dos resíduos para o caso complexo,

Page 117: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

103 5.5. Logaritmos

isto é, ∫𝑓 =

∑𝛼|𝐷(𝛼)=0

𝐴(𝛼)𝐷′(𝛼) log(𝑥− 𝛼)

Para o caso real, seguimos uma discussão semelhante àquela da seção 4.1: reali-zamos a separação

𝐴(𝑢 + 𝐼𝑣) = 𝑃 (𝑢,𝑣) + 𝐼𝑄(𝑢,𝑣),

𝐷′(𝑢 + 𝐼𝑣) = 𝑆(𝑢,𝑣) + 𝐼𝑇 (𝑢,𝑣).

Portanto,

𝐴(𝑢− 𝐼𝑣) = 𝑃 (𝑢,𝑣)− 𝐼𝑄(𝑢,𝑣),

𝐷′(𝑢− 𝐼𝑣) = 𝑆(𝑢,𝑣)− 𝐼𝑇 (𝑢,𝑣).

Em seguida, dada uma raiz complexa 𝛼 = 𝑎 + 𝐼𝑏 de 𝐷 com 𝑎,𝑏 > 0 ∈ R, notamosque

𝐴(𝑎− 𝐼𝑏)𝐷′(𝑎− 𝐼𝑏) log(𝑥− (𝑎− 𝐼𝑏)) + 𝐴(𝑎 + 𝐼𝑏)

𝐷′(𝑎 + 𝐼𝑏) log(𝑥− (𝑎 + 𝐼𝑏)) =

𝑃 − 𝐼𝑄

𝑆 − 𝐼𝑇log(𝑥− (𝑎− 𝐼𝑏)) + 𝑃 + 𝐼𝑄

𝑆 + 𝐼𝑇log(𝑥− (𝑎 + 𝐼𝑏)) =

𝑃𝑆 + 𝑄𝑇 + 𝐼(𝑃𝑇 −𝑄𝑆)𝑆2 + 𝑇 2 log(𝑥− (𝑎− 𝐼𝑏))+

𝑃𝑆 + 𝑄𝑇 − 𝐼(𝑃𝑇 −𝑄𝑆)𝑆2 + 𝑇 2 log(𝑥− (𝑎 + 𝐼𝑏)) =

𝑃𝑆 + 𝑄𝑇

𝑆2 + 𝑇 2 log((𝑥− (𝑎− 𝐼𝑏))(𝑥− (𝑎 + 𝐼𝑏)))+

𝑃𝑇 −𝑄𝑆

𝑆2 + 𝑇 2 𝐼 log(

(𝑥− 𝑎) + 𝐼𝑏

(𝑥− 𝑎)− 𝐼𝑏

)=

𝑃𝑆 + 𝑄𝑇

𝑆2 + 𝑇 2 log(𝑥2 − 2𝑎𝑥 + 𝑎2 + 𝑏2) + 𝑃𝑇 −𝑄𝑆

𝑆2 + 𝑇 2 2 arctg(

𝑥− 𝑎

𝑏

),

onde os polinômios 𝑃 , 𝑄, 𝑆 e 𝑇 são aplicados sobre o par (𝑎,𝑏). Assim, esta versão

Page 118: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 104

do algoritmo de Bernoulli computa, para o caso real,

∫𝑓 =

∑𝛼∈R|𝐷(𝛼)=0

𝐴(𝛼)𝐷′(𝛼) log(𝑥− 𝛼)

+∑

𝑎,𝑏∈R,𝑏>0𝐸(𝑎,𝑏)=𝐹 (𝑎,𝑏)=0

𝐶1(𝑎,𝑏) log(𝑥2 − 2𝑎𝑥 + 𝑎2 + 𝑏2)

+ 2𝐶2(𝑎,𝑏) arctg(

𝑥− 𝑎

𝑏

)

onde𝐶1(𝑎,𝑏) = 𝑃𝑆 + 𝑄𝑇

𝑆2 + 𝑇 2 (𝑎,𝑏), 𝐶2(𝑎,𝑏) = 𝑃𝑇 −𝑄𝑆

𝑆2 + 𝑇 2 (𝑎,𝑏)

e, além disso, 𝐸 e 𝐹 separam o denominador 𝐷, isto é,

𝐷(𝑢 + 𝐼𝑣) = 𝐸(𝑢,𝑣) + 𝐼𝐹 (𝑢,𝑣).

Código:

Bern(A,D,x,mode,solvemethod):=block([fac,sols,a,dD,gamma,Log,ILog,Atan,

pol,rea,ima,Num,expl,S,T,P,Q,Ans],algebraic:true,Log:0,ILog:0,Atan:0,dD:diff(D,x),if mode=real then(

[P,Q]:Parts(A,x),[S,T]:Parts(dD,x),C1(a,b):=fullratsimp(subst(a,u,subst(b,v,(P*S+Q*T)/

(S^2+T^2)))),C2(a,b):=fullratsimp(subst(a,u,subst(b,v,(P*T-Q*S)/

(S^2+T^2))))),fac:LFactor(D,x,false),sols:Solve(fac,x,solvemethod),sols:RHS(sols),for i:1 thru length(sols) do(

a:sols[i],if hipow(a,x)=0 then(

if mode=complex then(gamma:fullratsimp(subst(a,x,A/dD)),Log:Log+gamma*log(x-a)

),if mode=real then(

rea:fullratsimp(realpart(a)),ima:fullratsimp(imagpart(a)),

Page 119: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

105 5.5. Logaritmos

if ima=0 then(gamma:fullratsimp(subst(rea,x,A/dD)),Log:Log+gamma*log(x-rea)

),if ima>0 then(

pol:Group(x^2-fullratsimp(2*rea)*x+fullratsimp(rea^2+ima^2),x),

Log:Log+C1(rea,ima)*log(pol),Atan:Atan+2*C2(rea,ima)*atan(

fullratsimp((x-rea)/ima)),Atan:fullratsimp(Atan)

))

)else(

expl:PDiv(D,a,x)[1],Num:last(PFrac(A,[expl,a],x)),ILog:ILog+’lsum(subst(%alpha,x,fullratsimp(Num)

/diff(a,x))*log(x-%alpha),%alpha,RootsOf(a)))

),Ans:[Log,Atan,ILog],algebraic:false,return(Ans)

)$

5.5.2 RothTra

Algoritmo de Rothstein-Trager.

Pseudocódigo:

1: função IntRationalLogPart(𝐴,𝐷)2: descrição: Dado um corpo K de característica 0 e 𝐴,𝐷 ∈ K[𝑥] com grau(𝐴) <

grau(𝐷), 𝐷 não nulo, livre de quadrados e coprimo com 𝐴, retorna ∫ 𝐴/𝐷.3: 𝑧 ← uma nova indeterminada sobre K4: 𝑅← res𝑥(𝐷,𝐴− 𝑧𝐷′)5: 𝑢𝑅𝑒1

1 · · ·𝑅𝑒𝑚𝑚 ← factoração(𝑅) ◁ fatoração em fatores irredutíveis

6: para 𝑖 ← 1 até 𝑚 faça7: 𝑎← 𝑎 | 𝑅𝑖(𝑎) = 08: 𝐺𝑖 ← mdc(𝐷,𝐴− 𝑎𝐷′) ◁ computação algébrica de mdc9: fim para

10: devolve𝑚∑

𝑖=1

∑𝑎|𝑅𝑖(𝑎)=0

𝑎 log(𝐺𝑖)

Page 120: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 106

11: fim função

Código:

RothTra(A,D,x):=block([k,expr,%Z,R,dD,Q,S,Ans],

algebraic:true,Q:[],S:[],if hipow(D,x)=1 then(

Ans:[[%Z-A/LC(D,x)],[Mon(D,x)]],algebraic:false,return(Ans)

),dD:expandwrt(diff(D,x),x),expr:Group(A-%Z*dD,x),R:content(SubRes(D,A-%Z*dD,x)[1])[2],Q:LFactor(R,%Z,false),Q:rest(Q),for i:1 thru length(Q) do(

Q[i]:Q[i]^2,Q[i]:Group(first(Q[i]),%Z),S:endcons(GCD(D,expr,x,Q[i],%Z),S),S[i]:Normalize(S[i],x,Q[i],%Z)

),Ans:[Q,S],algebraic:false,return(Ans)

)$

5.5.3 LaRiTra

Algoritmo de Lazard-Rioboo-Trager.

Pseudocódigo:

1: função IntRationalLogPart(𝐴,𝐷)2: descrição: Dado um corpo K de característica 0 e 𝐴,𝐷 ∈ K[𝑥] com grau(𝐴) <

grau(𝐷), 𝐷 não nulo, livre de quadrados e coprimo com 𝐴, retorna ∫ 𝐴/𝐷.3: 𝑧 ← uma nova indeterminada sobre K4: (𝑅,(𝑅0,𝑅1, . . . ,𝑅𝑘,0))← SubResultant𝑥(𝐷,𝐴− 𝑧𝐷′)5: (𝑄1, . . . ,𝑄𝑛)← SquareFree(𝑅)6: para 𝑖 ← 1 até 𝑛 tal que grau𝑧(𝑄𝑖) > 0 faça7: se 𝑖 = grau(𝐷) então8: 𝑆𝑖 ← 𝐷9: senão

Page 121: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

107 5.5. Logaritmos

10: 𝑆𝑖 ← 𝑅𝑚 onde grau𝑥(𝑅𝑚) = 𝑖, 1 ≤ 𝑚 ≤ 𝑘11: (𝐴1, . . . ,𝐴𝑞)← SquareFree(lc𝑥(𝑆𝑖))12: para 𝑗 ← 1 até 𝑞 faça13: 𝑆𝑖 ← 𝑆𝑖/ mdc(𝐴𝑗,𝑄𝑖)𝑗 ◁ divisão exata14: fim para15: fim se16: fim para

17: devolve𝑛∑

𝑖=1

∑𝑎|𝑄𝑖(𝑎)=0

𝑎 log(𝑆𝑖(𝑎,𝑥))

18: fim função

Código:

LaRiTra(A,D,x):=block([%Z,Q,R,seqR,S,degSi,lcSi,dD,

k,n,q,lcSi,i,j,j1,listA,Ans],algebraic:true,dD:expand(diff(D,x)),R:SubRes(D,Group((A-%Z*dD),x),x),R[1]:Group(R[1],%Z),seqR:R[2],k:length(seqR),Q:SQFR(content(R[1],%Z)[2],%Z),n:length(Q),S:makelist(1,n),for i:1 thru n do(

if hipow(Q[i],%Z)>0 then(if i=hipow(D,x) then(

S[i]:D)else(

for j:1 thru k do(if hipow(seqR[j],x)=i then(

S[i]:seqR[j])

),degSi:hipow(S[i],x),lcSi:coeff(S[i],x,degSi),listA:SQFR(lcSi,%Z),q:length(listA),for j1:1 thru q do(

S[i]:fullratsimp(S[i]/GCD(listA[j1],Q[i],t,0,0)^j1,%Z)

))

),S[i]:Group(S[i],x)

Page 122: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 108

),for i:1 thru length(Q) do(

if hipow(Q[i],%Z)=0 then(Q[i]:1

)else(S[i]:Group(PDiv(S[i],Q[i],%Z)[2],x),S[i]:Normalize(S[i],x,Q[i],%Z)

)),Q:delete(1,Q),S:delete(1,S),Ans:[Q,S],algebraic:false,return(Ans)

)$

5.5.4 Czi

O algoritmo de Czichowski, o qual calcula a parte logaítmica da integral deuma função racional, da mesma forma que os algoritmos de Rothstein-Trager eLazard-Rioboo-Trager. Este algoritmo utiliza bases de Gröbner e, por isso, nãofoi apresentado em detalhes neste trabalho (uma apresentação sobre bases deGröbner estenderia bastante as considerações teóricas presentes no texto). Oleitor interessado em um estudo das bases de Gröbner, deverá recorrer a [11, Cap.10], [35, Cap. 21] ou [8, Cap. 5]. O teorema do qual deriva o algoritmo é o seguinte:

Teorema 5.5.1 ([9]). Seja 𝑧 uma indeterminada K(𝑥), 𝑎,𝑏 ∈ K[𝑥] com grau(𝑏) >

0, 𝑏 livre de quadrados e 𝑎/𝑏 uma fração reduzida e própria, com 𝛽 sendo a basede Gröbner reduzida com relação à ordem lexicográfica pura (olp) 𝑥 > 𝑧 do idealgerado por 𝑏 e 𝑎− 𝑧𝑏′ em K[𝑧,𝑥]. Escrevamos 𝛽 = {𝑝1, . . . ,𝑝𝑛}, onde, para cada 𝑖

temos 𝑝𝑖 ∈ K[𝑧,𝑥] e o maior termo de 𝑝𝑖+1 é maior que o maior termo de 𝑝𝑖 comrelação à ordem 𝑥 > 𝑧. Então,

1. cl𝑥(pp𝑥(𝑝𝑖)) = 1 para 1 ≤ 𝑖 ≤ 𝑛.

2. cont𝑥(𝑝𝑖+1) | cont𝑥(𝑝𝑖) em K[𝑧] para 1 ≤ 𝑖 ≤ 𝑛.

3. ∫ 𝑎

𝑏=

𝑚−1∑𝑖=1

∑𝛼|𝑄𝑖(𝛼)=0

𝛼 log(pp𝑥(𝑝𝑖+1(𝛼,𝑥))

onde 𝑄𝑖 = cont𝑥(𝑝𝑖)/ cont𝑥(𝑝𝑖+1) ∈ K[𝑡].

Page 123: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

109 5.5. Logaritmos

Obseve que o item 1 do Teorema 5.5.1 implica que todos os argumentospolinomiais dos logaritmos já serão mônicos.

Pseudocódigo:

1: função IntRationalLogPart(𝐴,𝐷)2: descrição: Dado um corpo K de característica 0 e 𝐴,𝐷 ∈ K[𝑥] com grau(𝐴) <

grau(𝐷), 𝐷 não nulo, livre de quadrados e coprimo com 𝐴, retorna ∫ 𝐴/𝐷.3: ◁ Cálculo da base Gröbner reduzida4: (𝑃1, . . . ,𝑃𝑚)← ReducedGröbner(𝐷,𝐴− 𝑧𝐷′, olp, 𝑥 > 𝑧)5: ◁ (𝑃1, . . . ,𝑃𝑚) deve ter ordem crescente nos maiores termos6: para 𝑖 ← 1 até 𝑚− 1 faça7: 𝑄𝑖 ← cont𝑥(𝑃𝑖)/ cont𝑥(𝑃𝑖+1) ◁ divisão exata8: 𝑆𝑖 ← pp𝑥(𝑃𝑖)9: fim para

10: devolve𝑚−1∑𝑖=1

∑𝑎|𝑄𝑖(𝑎)=0

𝑎 log(𝑆𝑖(𝑎,𝑥))

11: fim função

Código:

O código para este algoritmo requer que se carregue o pacote grobner doMaxima, para computações envolvendo bases de Gröbner.

load(grobner)$Czi(A,D,x):=block([P,dD,m,i,Q,S,Ans],

algebraic:true,P:[],Q:[],S:[],dD:expand(diff(D,x)),P:poly_reduced_grobner([D,expandwrt(A-%Z*dD,x)],[x,%Z]),P:sort(P),m:length(P),for i:1 thru m-1 do(

Q:endcons(expandwrt(fullratsimp(content(P[i],x)[1]/content(P[i+1],x)[1]),%Z),Q),

S:endcons(content(P[i+1],x)[2],S)),Ans:[Q,S],algebraic:false,return(Ans)

)$

Page 124: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 110

Exemplo 5.5.1 (gerado com dados obtidos pelo código 5.5.4, algoritmo de Czi-chowski). Considerando a função 𝑓 = 𝐴/𝐷 do Exemplo 3.4.2, temos que a basede Gröbner com olp 𝑥 > 𝑧 para o par 𝐷,𝐴− 𝑧𝐷′ ∈ Q[𝑥,𝑧] é

𝛽 = {𝑃1,𝑃2} = {𝑧2 − 2𝑧 + 2,𝑥3 + 𝑧𝑥2 − 𝑧}.

Logo, 𝑄1 = (𝑧2 − 2𝑧 + 2)/1 = 𝑧2 − 2𝑧 + 2 e 𝑆2 = 𝑃2, donde∫

𝑓 =∑

𝛼|𝑄1(𝛼)=0𝛼 log(𝑥3 + 𝛼𝑥2 − 𝛼).

5.6 Conversão Real

5.6.1 Classic

Algoritmo de clássico para obtenção de arcos tangentes.

Código:

Classic(A,B,x):=block([Ans],

algebraic:true,Ans:2*atan(fullratsimp(A/B)),algebraic:false,return(Ans)

)$

5.6.2 Rioboo

Algoritmo de Rioboo — caso complexo.

Pseudocódigo:

1: função LogToAtan(𝐴,𝐵)2: descrição: Dado um corpo K de característica 0 tal que 𝐼 /∈ K, e 𝐴,𝐵 ∈ K[𝑥]

com 𝐵 = 0, retorna uma soma 𝑓 de funções arco tangente de polinômios emK[𝑥] tais que

𝑑𝑓

𝑑𝑥= 𝑑

𝑑𝑥𝐼 log

(𝐴 + 𝐼𝐵

𝐴− 𝐼𝐵

).

3: se 𝐵 | 𝐴 então

Page 125: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

111 5.6. Conversão Real

4: devolve 2 arctg(𝐴/𝐵)5: fim se6: se grau(𝐴) < grau(𝐵) então7: devolve LogToAtan(−𝐵,𝐴)8: fim se9: (𝐷,𝐶,𝐺)← ExtendedEuclidean(𝐵,− 𝐴) ◁ 𝐵𝐷 − 𝐴𝐶 = 𝐺

10: devolve 2 arctg((𝐴𝐷 + 𝐵𝐶)/𝐺) + LogToAtan(𝐷,𝐶)11: fim função

Código:

Rioboo(A,B,x):=block([a,b,D,C,G,Ans],

algebraic:true,a:Group(A,x),b:Group(B,x),if PDiv(a,b,x)[2]=0 then(

algebraic:false,return(2*atan(Group(a/b,x)))

),if hipow(a,x)<hipow(b,x) then(

algebraic:false,return(Rioboo(-b,a,x))

),[D,C,G]:HFExGCD(b,-a,x),Ans:2*atan(Group((a*D+b*C)/G,x))+Rioboo(D,C,x),algebraic:false,return(Ans)

)$

5.6.3 Rioboo2

Algoritmo de Rioboo — caso geral. Esta versão não é utilizada no algoritmode integração, mas na geração alguns de exemplos do capítulo 4. A variável 𝑁

permite escolher que se realize a conversão apenas parcialmente, em 𝑁 passos.Para que nenhuma conversão seja feita, pomos 𝑁 = 0. Para a conversão completa,pomos 𝑁 = −1.

Código:

Rioboo2(A,B,alpha,x,N):=block([a,b,D,C,G,n,pol,Ans],

algebraic:true,

Page 126: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 112

if N=0 then(Ans:alpha*log(A+alpha*B)-alpha*log(A-alpha*B),algebraic:false,return(Ans)

),a:Group(A,x),b:Group(B,x),if PDiv(a,b,x)[2]=0 then(

pol:PDiv(Group(a/(alpha*b),x),alpha,x)[1],Ans:ratsimp(2*alpha*atanh(alpha*pol)),algebraic:false,return(Ans)

),if hipow(a,x)<hipow(b,x) then(

Ans:Rioboo2(alpha^2*b,a,alpha,x,N),algebraic:false,return(Ans)

),[D,C,G]:HFExGCD(b,-a,x),n:N-1,pol:ratsimp(PDiv(Group((a*D-alpha^2*b*C)/(alpha*G),x),alpha,x)[1]),

Ans:2*alpha*atanh(alpha*pol)+Rioboo2(D,C,alpha,x,n),algebraic:false,return(Ans)

)$

5.7 Manipuladores de Extensões Algébricas

5.7.1 NoSolve

Solvente inerte. Dado um polinômio irredutível 𝑃 , retorna a lista [0 = 𝑃 ].

Código:

NoSolve(P,x):=block([Ans],

algebraic:true,Ans:[0=P],algebraic:false,return(Ans)

)$

Page 127: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

113 5.7. Manipuladores de Extensões Algébricas

5.7.2 DomSolve

Solvente de domínio. Dado um polinômio irredutível 𝑃 , resolve-o se ele puder seescrito na forma 𝑃 (𝑥) = 𝑎𝑥 + 𝑏, onde os coeficientes podem ser nulos.

Código:

DomSolve(P,x):=block([sols,Ans],

algebraic:true,sols:NoSolve(P,x),if hipow(P,x)=1 then(

Ans:solve(P,x),algebraic:false,return(Ans)

),Ans:sols,algebraic:false,return(Ans)

)$

5.7.3 LinSolve

Solvente linear. Dado um polinômio irredutível 𝑃 , resolve-o se ele puder se escritona forma 𝑃 (𝑥) = 𝑎𝑥𝑛 + 𝑏, onde os coeficientes podem ser nulos.

Código:

LinSolve(P,x):=block([sols,aux,Ans],

algebraic:true,sols:DomSolve(P,x),if lhs(last(sols))=0 then(

aux:P,aux:fullratsimp(aux-coeff(aux,x,0)),if hipow(aux,x)=lopow(aux,x) then(

Ans:solve(P,x),algebraic:false,return(Ans)

)),Ans:sols,algebraic:false,return(Ans)

)$

Page 128: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 114

5.7.4 QuadSolve

Solvente quadrático. Dado um polinômio irredutível 𝑃 , resolve-o se ele puder seescrito na forma 𝑃 (𝑥) = 𝑎𝑥2𝑛 + 𝑏𝑥𝑛 + 𝑐, onde os coeficientes podem ser nulos.

Código:

QuadSolve(P,x):=block([degP,sols,aux,Ans],

algebraic:true,sols:LinSolve(P,x),if lhs(last(sols))=0 then(

aux:P,aux:fullratsimp(aux-coeff(aux,x,0)),if length(aux)=2 then(

degP:hipow(P,x),if mod(degP,2)=0 then(

if (coeff(P,x,degP/2))#0 then(Ans:solve(P,x),algebraic:false,return(Ans)

))

)),Ans:sols,algebraic:false,return(Ans)

)$

5.7.5 CubeSolve

Solvente cúbico. Dado um polinômio irredutível 𝑃 , resolve-o se ele puder seescrito na forma 𝑃 (𝑥) = 𝑎𝑥3𝑛 + 𝑏𝑥𝑛 + 𝑐, 𝑃 (𝑥) = 𝑎𝑥3𝑛 + 𝑏𝑥2𝑛 + 𝑐, ou 𝑃 (𝑥) =𝑎𝑥3𝑛 + 𝑏𝑥2𝑛 + 𝑐𝑥𝑛 + 𝑑, onde os coeficientes podem ser nulos.

Código:

CubeSolve(P,x):=block([degP,sols,aux,Ans],

algebraic:true,sols:QuadSolve(P,x),if lhs(last(sols))=0 then(

aux:P,aux:fullratsimp(aux-coeff(aux,x,0)),

Page 129: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

115 5.7. Manipuladores de Extensões Algébricas

if length(aux)=2 then(degP:hipow(P,x),if mod(degP,3)=0 then(

if (coeff(P,x,degP/3))#0 or(coeff(P,x,2*degP/3))#0 then(Ans:solve(P,x),algebraic:false,return(Ans)

))

),if length(aux)=3 then(

degP:hipow(P,x),if mod(degP,3)=0 then(

if (coeff(P,x,degP/3))#0 and(coeff(P,x,2*degP/3))#0 then(Ans:solve(P,x),algebraic:false,return(Ans)

))

)),Ans:sols,algebraic:false,return(Ans)

)$

5.7.6 Solve

Solvente geral. 𝑓𝑎𝑐 é uma lista de fatores de 𝑃 na variável 𝑥 obtida utilizando-sea função ListFactor. A função encontra cada uma das raízes de 𝑃 utilizandoo método 𝑚𝑒𝑡ℎ𝑜𝑑 em cada um de seus fatores irredutíveis. 𝑚𝑒𝑡ℎ𝑜𝑑 pode ser:NoSolve, DomSolve, LinSolve, QuadSolve, CubeSolve ou solve, esta últimasendo o solvente nativo do Máxima. É possivel, assim, escolher se desejamosexplicitar as raízes

1. de nenhuma maneira (NoSolve);

2. até elementos do corpo quociente do domínio (DomSolve)

3. até raízes 𝑛-ésimas dos referidos elementos (LinSolve)

4. até raízes 𝑛-ésimas de fórmulas de Bhaskara (QuadSolve)

Page 130: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 116

5. até raízes 𝑛-ésimas de fórmulas de Cardano (CubeSolve)

6. até raízes 𝑛-ésimas de fórmulas quárticas (solve)

Esta rotina é importante para que possamos controlar a exibição final das integraisque queremos calcular. As extensões algébricas que obteremos para expressar aintegral serão raízes de polinômios. Caso não estejamos interessados em expressarfórmulas muito difíceis de serem calculadas, ou simplesmente muito grandes, comofórmulas de cardano ou quárticas, podemos, por exemplo, escolher o métodoQuadSolve para encontrar, no máximo, extensões que possam ser expressaspela fórmula de Bhaskara. As demais extensões seriam dadas em termos dosrespectivos polinômios dos quais são soluções.

Código:

Solve(fac,x,method):=block([P,l,i,solsfac,sols,unsolved,Ans],

algebraic:true,l:length(fac),sols:[],unsolved:1,if l=1 then(

algebraic:false,error("polynomial is constant or 0.")

),for i:2 thru l do(

P:fac[i]^2,P:first(P),P:Group(P,x),solsfac:method(P,x),if lhs(last(solsfac))=0 then unsolved:unsolved

*rhs(last(solsfac))else sols:append(sols,solsfac)

),if unsolved=1 then(

Ans:sols,algebraic:false,return(Ans)

)else(

Ans:append(sols,[0=unsolved]),algebraic:false,return(Ans)

))$

Page 131: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

117 5.7. Manipuladores de Extensões Algébricas

5.7.7 RHS

Converte uma lista cujos elementos são da forma 𝑙ℎ𝑠 = 𝑟ℎ𝑠 em uma lista cujoselementos são da forma 𝑟ℎ𝑠. Essa função se aplica a listas de soluções de umpolinômio.

Código:

RHS(sols):=block([consts,i,Ans],

algebraic:true,consts:[],for i:1 thru length(sols) do

consts:endcons(rhs(sols[i]),consts),Ans:consts,algebraic:false,return(Ans)

)$

5.7.8 SolveSys

Dada uma lista de números complexos, retorna uma lista cujos elementos são daforma [𝑎,𝑏], com 𝑎,𝑏 ∈ R, 𝑏 > 0 e tais que 𝑎+𝐼𝑏 pertence à lista original. Aplica-seao sistema não linear que surge na discussão do algoritmo de Rioboo.

Código:

SolveSys(compl):=block([a,b,j,sols,Ans],

algebraic:true,sols:[],for j:1 thru length(compl) do(

a:fullratsimp(realpart(compl[j])),b:fullratsimp(imagpart(compl[j])),if b>0 then(

sols:endcons([a,b],sols))

),Ans:sols,algebraic:false,return(Ans)

)$

Page 132: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 118

5.7.9 Extensions

Dada uma lista de fatores 𝑅 na variável 𝑧 resolve cada um dos fatores utilizando ométodo 𝑠𝑜𝑙𝑣𝑒𝑚𝑒𝑡ℎ𝑜𝑑 e armazena, respectivamente, nas listas 𝑟𝑒𝑖, 𝑐𝑜𝑚𝑝𝑙𝑖 e 𝑖𝑛𝑒𝑟𝑡𝑖

as soluções reais, contendo unidade imaginária e o que não pôde ser resolvido dofator 𝑅𝑖. Utilizada para encontrar as extensões que devem aparecer na expressãofinal da integral de uma função racional.

Código:

Extensions(R,z,solvemethod):=block([l,i,j,exts,re,compl,inert,fac,Ans],

algebraic:true,l:length(R),re:[],compl:[],inert:[],for i:1 thru l do(

fac:LFactor(R[i],z,false),exts:RHS(Solve(fac,z,solvemethod)),re:endcons([],re),compl:endcons([],compl),inert:endcons([],inert),for j:1 thru length(exts) do(

if hipow(exts[j],z)#0 theninert[i]:endcons(exts[j],inert[i])

else if imagpart(exts[j])#0 thencompl[i]:endcons(exts[j],compl[i])

elsere[i]:endcons(exts[j],re[i])

)),Ans:[re,compl,inert],algebraic:false,return(Ans)

)$

5.7.10 VerifyRatSols

Verifica se todos os elementos da lista 𝑠𝑜𝑙𝑠 possuem apenas elementos racionais emalguma das duas coordenadas. A resposta é um vetor booleano de dois elementos.O valor 𝑡𝑟𝑢𝑒 indica que todas os elementos das coordenadas correspondentes sãoracionais. Esta função é utilizada para decidir se e como RiobooAtan, calcularáseus arcos tangentes: utilizando diretamente soluções do sistema não linear asso-ciado, ou genericamente, seguido de substituição. O primeiro caso só ocorrerá em

Page 133: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

119 5.8. Montagem de Integrais de Funções Racionais

caso de soluções racionais.

Código:

VerifyRatSols(sols):=block([i,signal1,signal2,a,b,Ans],

algebraic:true,signal1:true,signal2:true,for i:1 thru length(sols) do(

a:sols[i][1],b:sols[i][2],if (integerp(num(a)) and

integerp(denom(a)))=false then signa1:false,if (integerp(num(b)) and

integerp(denom(b)))=false then signa2:false),Ans:[signal1,signal2],algebraic:true,return(Ans)

)$

5.8 Montagem de Integrais de Funções Racio-nais

5.8.1 RealLog

Monta os logaritmos reais que aparecem na expressão final da integral, mas quenão são obtidos a partir de extensões contendo unidade imaginária. Algumasconversões simples para funções arco tangente hiperbólico são realizadas quandotemos a condição 𝐵(𝑎,𝑏,𝑥) | 𝐴(𝑎,𝑏,𝑥).

Só são realizadas conversões para extensões 𝛼 tais que 𝛼2 ∈ K, onde K é ocorpo dos coeficientes do integrando original. Além disso, se 𝑟1,𝑟2 ∈ K(𝛼) são asraízes de um fator quadrático da resultante 𝑅(𝑧), então a conversão é realizadaapenas nos seguintes casos:

1. 𝛼 /∈ K;

2. 𝑟1 = −𝑟2.

Se Q = K, então certas conversões podem não trazer ganho em relação àrepresentação. Esta rotina foi projetada para funções racionais sobre Q. Como

Page 134: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 120

última consideração, temos que, para o par a ser convertido 𝐴,𝐵, o polinômio 𝐵

é tomado de forma que 𝐵 ∈ K(𝛼) durante os cálculos.

Código:

RealLog(S,z,x,re,modei,atanhconv):=block([i,j,RLog,Atanh,expl,SubS,Swap,a,b,M,m,A,B,q],

algebraic:true,RLog:0,expl:1,Atanh:0,for i:1 thru length(S) do(

if length(re[i])=2 and atanhconv=trueand (re[i][1]=-re[i][2] or rationalp(re[i][1])=false)

then(a:(re[i][1]+re[i][2])/2,b:abs(re[i][1]-re[i][2])/2,M:max(re[i][1],re[i][2]),m:min(re[i][1],re[i][2]),A:Group((subst(M,z,S[i])+subst(m,z,S[i]))/2,x),B:Group((subst(M,z,S[i])-subst(m,z,S[i]))/2,x),if hipow(A,x)<hipow(B,x) then(

Swap:A,A:b^2*B,B:b*Swap),[q,r]:PDiv(A,B,x),if r=0 then(

SubS:fullratsimp(A^2-B^2),RLog:RLog+a*log(SubS),if modei=den then expl:expl*SubS,Atanh:Atanh+2*b*atanh(q)

)else(

for j:1 thru 2 do(a:fullratsimp(re[i][j]),SubS:content(subst(a,z,S[i]),x)[2],if modei=den then expl:expl*SubS,SubS:Mon(SubS,x),RLog:RLog+a*log(SubS)

))

)else(

for j:1 thru length(re[i]) do(a:fullratsimp(re[i][j]),SubS:content(subst(a,z,S[i]),x)[2],if modei=den then expl:expl*SubS,SubS:Mon(SubS,x),RLog:RLog+a*log(SubS)

))

),

Page 135: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

121 5.8. Montagem de Integrais de Funções Racionais

RLog:ratsimp(RLog),Atanh:ratsimp(Atanh),Ans:[expl,RLog,Atanh],algebraic:false,return(Ans)

)$

5.8.2 ComplLog

Se não estivermos interessados em realizar conversões para arcos tangentes, estafunção monta os logaritmos complexos que aparecem na expressão final da inte-gral. Caso contrário, monta os logaritmos e funções arco tangente que surgemde extensões contendo unidades imaginárias. No caso real, resolve o sistema𝑃 (𝑢,𝑣) = 𝑄(𝑢,𝑣) encontrando diretamente as raízes complexas com parte imagi-nária positiva de 𝑅(𝑧).

Pseudocódigo:

1: função LogToReal(𝑅,𝑆)2: descrição: Dado um corpo K ⊆ R, 𝑅 ∈ K[𝑧] e 𝑆 ∈ K[𝑧,𝑥], retorna uma

função real 𝑓 tal que

𝑑𝑓

𝑑𝑥= 𝑑

𝑑𝑥

∑𝛼|𝑅(𝛼)=0

𝛼 log(𝑆(𝛼,𝑥)).

3: Escreva 𝑅(𝑢 + 𝐼𝑣) = 𝑃 (𝑢,𝑣) + 𝐼𝑄(𝑢,𝑣)4: Escreva 𝑆(𝑢 + 𝐼𝑣,𝑥) = 𝐴(𝑢,𝑣,𝑥) + 𝐼𝐵(𝑢,𝑣,𝑥)5: devolve∑

𝑎,𝑏∈R,𝑏>0𝑃 (𝑎,𝑏)=𝑄(𝑎,𝑏)=0

𝑎 log(𝐴(𝑎,𝑏,𝑥)2 + 𝐵(𝑎,𝑏,𝑥)2)+

𝑏 LogToAtan(𝐴,𝐵)(𝑎,𝑏,𝑥) +∑

𝑎∈R,𝑅(𝑎)=0𝑎 log(𝑆(𝑎,𝑥))

6: fim função

Código:

ComplLog(S,R,z,x,expl,compl,mode,modei,atanmethod):=block([i,j,k,a,b,x,u,v,CLog,Atan,Expl,

SubS,SubA,SubB,A,B,sols,signal1,

Page 136: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 122

signal2,auxatan,Ans],algebraic:true,CLog:0,Atan:0,Expl:expl,if mode=complex then(

for i:1 thru length(S) do(for j:1 thru length(compl[i]) do(

a:fullratsimp(compl[i][j]),SubS:content(subst(a,z,S[i]),x)[2],if modei=den then Expl:Expl*SubS,SubS:Mon(SubS,x),CLog:CLog+a*log(SubS)

))

),if mode=real then(

for i:1 thru length(S) do(if length(compl[i])>0 then(

[SubA,SubB]:Parts(S[i],z),A(a,b,x):=subst(a,u,subst(b,v,SubA)),B(a,b,x):=subst(a,u,subst(b,v,SubB)),sols:SolveSys(compl[i]),[signal1,signal2]:VerifyRatSols(sols),if (signal1 or signal2)=false then(

auxatan:atanmethod(A(u,v,x),B(u,v,x),x)),for j:1 thru length(sols) do(

a:sols[j][1],b:sols[j][2],SubS:content(A(a,b,x)^2+B(a,b,x)^2,x)[2],SubS:Mon(SubS,x),if modei=den then Expl:Expl*SubS,CLog:CLog+a*log(SubS),if signal1=false and signal2=true then(

auxatan:atanmethod(A(u,b,x),B(u,b,x),x)

),if signal1=true and signal2=false then(

auxatan:atanmethod(A(a,v,x),B(a,v,x),x)

),if signal1=true and signal2=true then(

auxatan:atanmethod(A(a,b,x),B(a,b,x),x)

),auxatan:subst(a,u,subst(b,v,auxatan)),Atan:Atan+b*auxatan,Atan:fullratsimp(Atan)

))

)

Page 137: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

123 5.8. Montagem de Integrais de Funções Racionais

),Ans:[Expl,CLog,Atan],algebraic:false,return(Ans)

)$

5.8.3 InertLog

Monta as expressões inertes da integral. Se certos resíduos não puderam serencontrados durante o processo de integração, então a porção da integral quedepende deles é deixada na forma inerte, isto é, como uma soma de logaritmossobre as raízes de um determinado polinômio. Mais especificamente, se a partelogarítmica originalmente era dada por ∫ 𝑎/𝑏, então há duas possibilidades derepresentação para a parte inerte:

1. ∫ ��

��=

∑𝛼|��(𝛼)=0

��(𝛼)��′(𝛼)

log(𝑥− 𝛼)

onde �� = 𝑏/∏

𝑣𝑖, onde os 𝑣𝑖 são todos os argumentos de logaritmos quepuderam ser determinados, e �� é obtido realizando uma decomposição emfrações parciais entre �� e

∏𝑣𝑖 da fração 𝑎/𝑏. Observe que esta representação

baseia-se na discussão do início da seção 3.4;

2. ∫ ��

��=∑

𝑖

∑𝛾|𝑅𝑖(𝛾)=0

𝛾 log(𝑣𝑖(𝛾,𝑥))

onde 𝑅𝑖 é a parte de 𝑅𝑖 que não pôde ser resolvida e 𝑣𝑖 é obtido peloalgoritmo de Rothstein-Trager, Lazard-Rioboo-Trager ou Czichowski.

Note que, das duas formas, apenas a primeira se aplica ao algoritmo de Bernoulli.A segunda costuma ter uma representação mais volumosa, mas não requer cálculosextras de frações parciais.

Código:

InertLog(S,z,x,h,inert,expl,modei):=block([i,j,ILog,SubS,impl,Num,Ans],

algebraic:true,

Page 138: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 124

ILog:0,if modei=den then(

impl:Group(denom(h)/expl,x),if hipow(impl,x)=0 then(

Ans:ILog,algebraic:false,return(Ans)

),Num:last(PFrac(num(h),[expl,impl],x)),ILog:’lsum(subst(%alpha,x,fullratsimp(Num)/

fullratsimp(diff(impl,x)))*log(x-%alpha),%alpha,RootsOf(content(impl,x)[2]))

),if modei=res then(

for i:1 thru length(S) do(for j:1 thru length(inert[i])do(

SubS:PPsDiv(S[i],inert[i][j],z)[2],SubS:content(Group(subst(%gamma,z,SubS),

x),x)[2],if integerp(LC(SubS,x)) then

SubS:Mon(SubS,x),ILog:ILog+’lsum(%gamma*log(SubS),%gamma,

RootsOf(inert[i][j])))

)),Ans:ILog,algebraic:false,return(Ans)

)$

5.8.4 GenList

Converte um vetor de caracteres em uma lista que contém as opções para ofuncionamento do algoritmo de integração. Serve para facilitar a mudança deopções, dispensando a necessidade de digitá-las por extenso, o que torna o processode testes dos códigos mais rápidos. São escolhidos: grau de detalhamento dasextensões; modo de integração real ou complexo; modo da representação daparte inerte da integral; método de obtenção da parte racional da integral e dointegrando da parte transcendental; método de obtenção da parte transcendentale o método de conversão para arcos tangentes.

Código:

Page 139: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

125 5.8. Montagem de Integrais de Funções Racionais

GenList(opt):=block([solvemethod,mode,modei,ratmethod,logmethod,

atanmethod,Ans],algebraic:true,if opt[1]=N then solvemethod:NoSolve,if opt[1]=D then solvemethod:DomSolve,if opt[1]=L then solvemethod:LinSolve,if opt[1]=Q then solvemethod:QuadSolve,if opt[1]=C then solvemethod:CubeSolve,if opt[1]=A then solvemethod:solve,if opt[2]=C then mode:complex,if opt[2]=R then mode:real,if opt[3]=R then modei:res,if opt[3]=D then modei:den,if opt[4]=O then ratmethod:HermO,if opt[4]=Q then ratmethod:HermQ,if opt[4]=L then ratmethod:HermL,if opt[4]=S then ratmethod:HorOstro,if opt[5]=B then logmethod:Bern,if opt[5]=R then logmethod:RothTra,if opt[5]=L then logmethod:LaRiTra,if opt[5]=C then logmethod:Czi,if opt[6]=C then atanmethod:Classic,if opt[6]=R then atanmethod:Rioboo,if opt[7]=T then atanhconv:true,if opt[7]=F then atanhconv:false,Ans:[solvemethod,mode,modei,ratmethod,logmethod,

atanmethod,atanhconv],algebraic:false,return(Ans)

)$

5.8.5 IRF

Integrador de funções racionais. A saída é uma lista em que a primeira entradacontém dados separados de cada etapa do processo de integração e a segundacontém a fórmula da integral.

Código:

IRF(F,x,solvemethod,mode,modei,ratmethod,logmethod,atanmethod,atanhconv):=

block([f,q,r,h,t,Poly,Rat,Log,ILog,compl,inert,R,S,Atan,Atanh,re,expl,impl,RLog,CLog,Int,Ans],

algebraic:true,q:0,r:0,h:0,Poly:0,Rat:0,Log:0,ILog:0,re:[],compl:[],

Page 140: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 126

inert:[],R:[],S:[],Atan:0,Atanh:0,expl:1,impl:1,RLog:0,CLog:0,Int:0,f:Group(num(F),x)/Group(denom(F),x),[q,r]:PDiv(num(f),denom(f),x),Poly:integrate(q,x),Int:Int+Poly,if r=0 then(

Ans:[[[Poly,Rat,h],[R,S],[re,compl,inert]],Int],algebraic:false,return(Ans)

),[Rat,h]:ratmethod(num(r),denom(f),x),h:rat(h,x),Int:Int+Rat,if h=0 then(

Ans:[[[Poly,Rat,h],[R,S],[re,compl,inert]],Int],algebraic:false,return(Ans)

),if logmethod=Bern then(

[Log,Atan,ILog]:logmethod(num(h),denom(h),x,mode,solvemethod),

Int:Int+(Log+Atan)+ILog,Ans:[[[Poly,Rat,h],[R,S],[re,compl,inert]],Int],algebraic:false,return(Ans)

),[R,S]:logmethod(num(h),denom(h),x),[re,compl,inert]:Extensions(R,%Z,solvemethod),[expl,RLog,Atanh]:RealLog(S,%Z,x,re,modei,atanhconv),[expl,CLog,Atan]:ComplLog(S,R,%Z,x,expl,compl,mode,modei

,atanmethod),ILog:InertLog(S,%Z,x,h,inert,expl,modei),Int:Int+(RLog+CLog+Atan+Atanh)+ILog,Ans:[[[Poly,Rat,h],[R,S],[re,compl,inert]],Int],algebraic:false,return(Ans)

)$

Page 141: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

127 5.8. Montagem de Integrais de Funções Racionais

Exemplo 5.8.1. Sejam

𝐴 = 19𝑥11 − 456𝑥10 + 2254𝑥9 + 17096𝑥8 + 405664𝑥7 − 872288𝑥6

+ 38901536𝑥5 − 411030528𝑥4 + 1560292864𝑥3 + 2634296320𝑥2

− 24589926400𝑥 + 24870912000

𝐷 = 𝑥12 − 75𝑥11 + 884𝑥10 − 3130𝑥9 − 14832𝑥8 − 396720𝑥7

− 144304𝑥6 − 24962080𝑥5 + 211912576𝑥4 − 691531520𝑥3−

944844800𝑥2 + 7348224000𝑥− 5898240000

e 𝑓 = 𝐴/𝐷. A rotina de RothTra fornece:

𝑅 = [𝑧 − 1,𝑧2 − 2,𝑧2 − 2𝑧 + 2,𝑧3 − 12𝑧2 − 48𝑧 − 64,

𝑧4 − 4𝑧3 + 8𝑧2 − 8𝑧 + 16]

𝑆 = [𝑥− 𝑧,𝑥− 2𝑧,𝑥− 3𝑧,𝑥− 4𝑧,𝑥− 5𝑧].

A função Extensions, fornece, com detalhamento máximo das extensões

𝑟𝑒 =[[1],[−√

2,√

2],[],[44/3 + 2 · 42/3 + 4],[]]

𝑐𝑜𝑚𝑝𝑙 =[[],[],[1− 𝐼,1 + 𝐼],[44/3⎛⎝−1− 𝐼

√3

2

⎞⎠ + 2 · 42/3⎛⎝𝐼√

3− 12

⎞⎠ + 4,

44/3⎛⎝𝐼√

3− 12

⎞⎠ + 2 · 42/3⎛⎝−1− 𝐼

√3

2

⎞⎠ + 4],[1−√−2𝐼√

3− 1,

1−√

2𝐼√

3− 1,1 +√−2𝐼√

3− 1,1 +√

+2𝐼√

3− 1]]𝑖𝑛𝑒𝑟𝑡 =[[],[],[],[],[]]

e com detalhamento mínimo,

𝑟𝑒 =[[],[],[],[],[]]

𝑐𝑜𝑚𝑝𝑙 =[[],[],[],[],[]]

𝑖𝑛𝑒𝑟𝑡 =[[𝑧 − 1],[𝑧2 − 2],[𝑧2 − 2𝑧 + 2],[𝑧3 − 12𝑧2 − 48𝑧 − 64],

[𝑧4 − 4𝑧3 + 8𝑧2 − 8𝑧 + 16]].

Page 142: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 5. Pseudocódigos e Códigos em Maxima 128

Portanto, a solução em representação complexa com detalhamento máximo (uti-lizando solve em Extensions) é

∫𝑓 =𝑟𝑒11 log(𝑥− 𝑟𝑒11) + 𝑟𝑒21 log(𝑥− 2𝑟𝑒21) + 𝑟𝑒22 log(𝑥− 2𝑟𝑒22)+

𝑐𝑜𝑚𝑝𝑙31 log(𝑥− 3𝑐𝑜𝑚𝑝𝑙31) + 𝑐𝑜𝑚𝑝𝑙32 log(𝑥− 3𝑐𝑜𝑚𝑝𝑙32)+

𝑟𝑒41 log(𝑥− 4𝑟𝑒41) + 𝑐𝑜𝑚𝑝𝑙41 log(𝑥− 4𝑐𝑜𝑚𝑝𝑙41)+

𝑐𝑜𝑚𝑝𝑙51 log(𝑥− 5𝑐𝑜𝑚𝑝𝑙51) + 𝑐𝑜𝑚𝑝𝑙52 log(𝑥− 5𝑐𝑜𝑚𝑝𝑙52)+

𝑐𝑜𝑚𝑝𝑙53 log(𝑥− 5𝑐𝑜𝑚𝑝𝑙53) + 𝑐𝑜𝑚𝑝𝑙54 log(𝑥− 5𝑐𝑜𝑚𝑝𝑙54),

e com detalhamento mínimo (utilizando NoSolve em Extensions) é∫

𝑓 =∑

𝛾 𝑖𝑛 𝑅𝑜𝑜𝑡𝑠𝑂𝑓(𝑧−1)𝛾 log(𝑥− 𝛾) +

∑𝛾 𝑖𝑛 𝑅𝑜𝑜𝑡𝑠𝑂𝑓(𝑧2−2)

𝛾 log(𝑥− 2𝛾)+

∑𝛾 𝑖𝑛 𝑅𝑜𝑜𝑡𝑠𝑂𝑓(𝑧2−2𝑧+2)

𝛾 log(𝑥− 3𝛾)+

∑𝛾 𝑖𝑛 𝑅𝑜𝑜𝑡𝑠𝑂𝑓(𝑧3−12𝑧2−48𝑧−64)

𝛾 log(𝑥− 4𝛾)+

∑𝛾 𝑖𝑛 𝑅𝑜𝑜𝑡𝑠𝑂𝑓(𝑧4−4𝑧3+8𝑧2−8𝑧+16)

𝛾 log(𝑥− 5𝛾).

Soluções intermediárias entre as duas representações são geradas de acordo como nível de detalhamento desejado para as extensões.Finalmente, um exemplo de uma representação intermediária utilizando a fórmulado resíduo, ao invés dos fatores da resultante. Se escolhermos a rotina CubeSolvepara o detalhamento das raízes, temos∫

𝑓 = 𝑟𝑒11 log(𝑥− 𝑟𝑒11) + 𝑟𝑒21 log(𝑥− 2𝑟𝑒21) + 𝑟𝑒22 log(𝑥− 2𝑟𝑒22)+

𝑐𝑜𝑚𝑝𝑙31 log(𝑥− 3𝑐𝑜𝑚𝑝𝑙31) + 𝑐𝑜𝑚𝑝𝑙32 log(𝑥− 3𝑐𝑜𝑚𝑝𝑙32)+

𝑟𝑒41 log(𝑥− 4𝑟𝑒41) + 𝑐𝑜𝑚𝑝𝑙41 log(𝑥− 4𝑐𝑜𝑚𝑝𝑙41)

+∑

𝛼 𝑖𝑛 𝑅𝑜𝑜𝑡𝑠𝑂𝑓(𝑥4−20𝑥3+200𝑥2−1000𝑥+10000)

4𝛼3 − 80𝛼2 + 600𝛼− 80004𝛼3 − 60𝛼2 + 400𝛼− 1000 log(𝑥− 𝛼)

Os logaritmos que contêm elementos da lista 𝑟𝑒 foram montados pela rotinaRealLog; os que contêm elementos da lista 𝑐𝑜𝑚𝑝𝑙 foram montados pela rotina

Page 143: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

129 5.8. Montagem de Integrais de Funções Racionais

ComplLog, neste caso, aplicada para integração complexa; finalmente, os loga-ritmos inertes foram montados com a rotina InertLog — primeiro utilizando omodo 𝑟𝑒𝑠 para expressar as soluções inertes em termos de fatores da resultante,em seguida utilizando o modo 𝑑𝑒𝑛 utilizando um fator do denominador originale, consequentemente, a fórmula do resíduo aplicada a cada uma das raízes destefator. A rotina InertLog extrai informações da lista 𝑖𝑛𝑒𝑟𝑡.

Page 144: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica
Page 145: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 6

Considerações Finais

6.1 A Integração de Funções Elementares

Este trabalho foi uma abordagem introdutória ao problema da integração inde-finida de funções através do caso particular de funções racionais. A continuaçãonatural do estudo é o problema da integração indefinida de funções elementares.Em resumo, as funções ditas elementares são aquelas que podem ser escritascomo uma combinação entre logaritmos, exponenciais e funções algébricas (in-cluindo as triviais, como as próprias funções racionais) através de operações decorpo e composição, onde qualquer escalar que ocorra em sua fórmula é um ele-mento dos complexos. Portanto, as funções trigonométricas e suas inversas sãotambém exemplos de funções elementares. Em outras palavras, estamos lidandocom aquelas funções que, costumeiramente, são manipuladas nos cursos de Cál-culo.

Entre 1833 e 1835, J. Liouville publicou três trabalhos [18, 19, 20] cujosprincipais resultados podem ser condensados num de fundamental importânciapara a integração de funções elementares. Assemelha-se ao resultado obtido peloalgoritmo de Bernoulli: se uma função elementar possui uma integral tambémelementar então esta integral pode ser expressa como a soma entre outra funçãoelementar pertencente ao mesmo corpo de funções elementares do integrando euma combinação linear finita de logaritmos cujos argumentos também pertencemao referido corpo. Este resultado, unido aos esforços de J. Ritt na década de

Page 146: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 6. Considerações Finais 132

1940 para o desenvolvimento da Álgebra Diferencial [30], formariam a base parademonstrar o fato importante de que o processo de integração para a classe defunções elementares também pode ser tornado algorítmico e não heurístico, aindaque dependa de certos critérios de decidibilidade. Mais especificamente, trata-sedo algoritmo de Risch, um algoritmo recursivo capaz de encontrar a integralindefinida de funções elementares quando esta integral também existe como umafunção elementar — caso contrário, o método é uma demonstração de que umaintegral fechada não existe para o integrando. Foi proposto por R. Risch, em 1968[29].

O estudo deste algoritmo evidencia a importância de se ter a integração defunções racionais como ponto de partida: a partir da definição apropriada de va-riáveis dependentes da variável de integração, qualquer função elementar pode servista como uma função racional cujos coeficientes são ainda funções elementarespartencentes a um corpo de funções menor do que aquele ao qual o integrando ori-ginal faz parte. Esta visualização possibilita extensões dos algoritmos de Hermite(e suas versões) e de Rothstein-Trager (e a melhoria de Lazard-Rioboo-Trager),que possuem um papel crucial no algoritmo de Risch. A respeito disto, observamosque o algoritmo de Horowitz, apesar de possuir maior eficiência para o caso defunções racionais que o algoritmo de Hermite [13], não generaliza facilmente comoo último para a classe das funções elementares como um todo [2, p. 46].

Ainda não há algoritmos análogos ao de Rioboo para classes mais geraisde funções [2, p. 70]. Toda via, este algoritmo é utilizado em conjunto comtransformações de retificação para se calcular as integrais de funções racionaisem funções seno e cosseno, como vimos no Exemplo 4.1.6.

6.2 O Cenário da Computação Algébrica

O conteúdo trazido por este trabalho faz parte do campo de estudo da Compu-tação Álgebrica, também conhecida como Computação Simbólica. Em resumo,a Computação Algébrica é um ramo limítrofe da Matemática e da Ciência daComputação e estuda como as bases teóricas da Álgebra Abstrata podem serutilizadas para a implementação de algoritmos que sejam capazes de efetuar cál-culos exatos e simbólicos (cálculos de representação), além de estudar aplicações

Page 147: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

133 6.3. Referências em Computação Algébrica

para os mesmos algoritmos. Pode, portanto, ser vista como uma contraparte àComputação Numérica.

O advento da Computação Algébrica como campo formal de estudo se dápor volta da década de 1960 e está intimamente ligado ao surgimento de lingua-gens de programação voltadas para a manipulação simbólica, como a linguagemLISP. Nesta época, surgiram os primeiros programas de Computação Algébricae, efetivamente, os primeiros CAS. Estes programas, em geral, lidavam principal-mente com o problema da integração indefinida de funções e com a manipulaçãoalgébrica de funções elementares.

Ao longo dos anos, o estudo da Computação Algébrica foi se consolidandoe hoje é um ramo de pesquisa com vasto campo teórico, tendo aplicabilidadeem áreas que vão da Criptografia à Geometria Algébrica, por exemplo. DiversosCAS estão disoníveis no mercado e são capazes de executar diversas tarefas, comointegração e somatório indefinidos de funções; cálculo de limites e diferenciação;fatoração de polinômios; cálculos de mdc; eliminação gaussiana; computação debases de Gröbner, entre outras tarefas que incluem computação gráfica, cálcu-los estatísticos, otimização, etc. Alguns dos CAS mais conhecidos e ainda hojeatualizados são Maple, Mathematica, Axiom e o próprio Maxima, por exemplo.

Atualmente, talvez o maior e mais completo repositório de informações geraisa respeito da Computação Algébrica seja o Special Interest Group on Symbolicand Algebraic Manipulation (http://www. sigsam.org). No sítio eletrônico do SIG-SAM, podem ser encontradas notícias sobre eventos de Computação Álgebricano pelo mundo; teses recém-defendidas; uma catalogação dos livros e periódicosde Computação Algébrica publicados ou mantidos até hoje; premiações; opor-tunidades de pesquisa e emprego na área de Computação Algébrica em todo omundo; uma listagem dos programas de computação algébrica; links para outrossítios eletrônicos relacionados à área, entre outras informações. É também possívelassociar-se ao SIGSAM através do sítio e ter acesso a diversos benefícios.

6.3 Referências em Computação Algébrica

Boas leituras generalistas de Computação Algébrica incluem [11], [35] e [8] (esteúltimo em língua portuguesa). Além de trazer conteúdos abrangentes, são repletos

Page 148: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 6. Considerações Finais 134

de ótimas referências.O estudo da Álgebra Diferencial e da integração de funções elementares (al-

goritmo de Risch e complementos), pode ser encontrado em [11, Cap. 12] e noscapítulos de 3 em diante de [2]. O algoritmo de Risch é encontrado originalmenteem [29]. Uma versão deste algoritmo capaz de lidar com funções especiais comoas funções de erro e integrais logaritmicas foi proposta por Cherry [5, 6].

O capítulo 23 de [35] traz uma interessante introdução ao problema do soma-tório indefinido de funções — um análogo discreto ao problema da integração defunções. Apresenta o algoritmo de Gosper, um análogo discreto ao algoritmode Zeilberger-Almkvist, visto no apêndice A deste trabalho.

Todos os algoritmos estudados no corpo principal deste trabalho podem serencontrados nas fontes [2], [11] e [35].

Quanto aos algoritmos que optamos por omitir, estes podem ser encontradosem [2]:

1. Algoritmo de Czichowski: envolve bases de Gröbner, conteúdo que pode serencontrado em [11, Cap. 10] e [8, Cap. 5]. O método pode ser encontradooriginalmente, em [9].

2. Algoritmo de Bronstein-Salvy: pode ser encontrado originalmente em[3]. Trata-se de um método capaz de calcular a expansão de Laurent nospolos de um integrando racional através de operações de corpo. Pode serusado para melhorar o algoritmo de Bernoulli.

As referências acima proporcionam um bom entendimento acerca do funcio-namento dos CAS da atualidade.

6.4 Acerca dos Códigos para Implementação emMaxima

De modo geral, as rotinas escritas no ambiente do CAS Maxima trazidas nestetrabalho funcionam de maneira satisfatória, de modo a ser possível utilizá-laspara complementar a rotina de integração nativa do próprio Maxima, a qual,

Page 149: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

135 6.4. Acerca dos Códigos para Implementação em Maxima

aparentemente, recorre ao algoritmo de Bernoulli para a integração de funções ra-cionais e não trabalha com extensões que envolvam fórmulas cúbicas ou quárticas,oferecendo resultados muito limitados. Na verdade, os resultados obtidos pelasrotinas presentes neste trabalho têm apresentação muito semelhante à daquelesobtidos pelos CAS Wolfram Alpha e Maple.

Porém, durante a elaboração dos códigos, o autor do presente trabalho obje-tivou apenas obter códigos estáveis e legíveis em uma primeira instância, isto é,apenas códigos que funcionassem e fossem fáceis de compreender. Isto refletiu naeficiência dos códigos.

Por exemplo, em uma computação de resultante sobre 𝑄[𝑧][𝑥] de grau 34 navariável 𝑧 e conteúdo com cerca de 150 dígitos, o algoritmo das subresultantesimplementado pelo autor, por exemplo, chegou a demorar 4.1 segundos e utilizarcerca de 550MB de memória, contra cerca de 0.2 segundos e 70MB de memóriada rotina nativa do Maxima para o cálculo de resultantes através do algoritmodas subresultantes. O resultado obtido pelas duas implementações, todavia, foiidêntico.

Isto sugere que não necessariamente há falhas no código, mas programaçãoinapropriada, ou seja, os comandos poderiam ser reescritos de modo a aproveitarmelhor as potencialidades de cálculo do Maxima, reduzindo drasticamente o tempode execução.

Corroborando com esta hipótese, após uma alteração dos códigos Group,PPsDiv e SubRes, todas relativas a simplificações de expressões, o código im-plementado passou a levar cerca de apenas 0.6 segundos e 135MB para o cálculo damesma resultante mencionada acima. As alerações que resultaram num ganho deeficiência, contudo, não foram mantidas por uma questão de segurança — apesarde proporcionarem um resultado satisfatório dentro da rotina das subresultantes,não foi testado com segurança como afetariam a execução das demais rotinas. Oautor pretende realizar estes testes e efetuar estas alterações para maior eficiênciaem breve.

Finalmente, apontamos para o fato de que os códigos foram testados principal-mente para funções racionais em Q(𝑥). Poucos testes foram feitos utilizando-secorpos K mais gerais. Além disso, é natural que, ao se utilizar os códigos pro-postos com a rotina CubeSolve, o tempo de computação aumente muito, ou

Page 150: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 6. Considerações Finais 136

a apresentação das funções fique muito extensa, especialmente no caso real. Asconfigurações ideais para a função IRF, portanto, são

1. para o caso real: recomenda-se utilizar, no máximo, a rotina QuadSolve;apresentação inerte em termos dos fatores da resultante; versão linear doalgoritmo de Hermite, ou algoritmo de Horowitz-Ostrogradsky; Algoritmode Czichowski, ou Lazard-Rioboo-Trager, caso a computação de bases deGröbner falhe por algum motivo; Algoritmo de Rioboo; conversão para arcostangentes hiperbólicos;

2. para o caso complexo: recomenda-se utilizar, no máximo, a rotina Cube-Solve; apresentação inerte em termos dos fatores da resultante; versãolinear do algoritmo de Hermite, ou algoritmo de Horowitz-Ostrogradsky;Algoritmo de Czichowski, ou Lazard-Rioboo-Trager, caso a computação debases de Gröbner falhe por algum motivo;

Lançamos agora algumas considerações a respeito da integração de uma fun-ção 𝑓 com coeficientes reais. Digamos que a resultante encontrada durante oprocesso de obtenção da parte transcendental seja 𝑅. Quando (por opção ouimpossibilidade) nem todas as raízes deste polinômio são determinadas, somosdeixados com um polinômio, digamos ��, que é a divisão de 𝑅 por todos os fatores𝑥− 𝛾, onde os 𝛾 são todas as raízes de 𝑅 que determinamos. A parte inerte de∫ 𝑓 , como vimos, será escrita em termos das raízes de ��.

Este polinômio poderá conter raízes envolvendo parte imaginária ou não. Nocaso da integração real, seria desejável, portanto, saber se 𝑅 possui pelo menosuma raiz real pura e pelo menos uma raiz com unidade imaginária. Desse modo,poderíamos expressar

∫𝑓 = 𝐹1 +

∑𝛾∈R|��𝑖(𝛾)=0

𝛾 log(𝑣𝑖(𝛾,𝑥)) +∑

𝛾=𝑎+𝑏𝐼∈C|��𝑖(𝛾)=0𝑏>0

𝛾 log(𝐴2 + 𝐵2) + 𝑏𝜑,

onde 𝐹1 é a parte da integral que conseguimos expressar de modo explícito a partirda determinação de parte das raízes de 𝑅, a partir dos algoritmos que estudamosneste trabalho, 𝐴 = 𝐴(𝑎,𝑏,𝑥), 𝐵 = 𝐵(𝑎,𝑏,𝑥), 𝜑 = 𝜑(𝑎,𝑏,𝑥) e os ��𝑖 são fatorescujas raízes não conseguimos determinar de 𝑅 que, como sabemos é sempre livre

Page 151: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

137 6.4. Acerca dos Códigos para Implementação em Maxima

de quadrados, independente do método que utilizamos.Para realizar esta determinação, é possível recorrer ao algoritmo de Sturm:

um algoritmo capaz de calcular o número de raízes reais distintas de um polinômio.Este algoritmo pode ser aplicado a ��𝑖, de modo que se 𝜌 é o número de raízesreais de ��𝑖 então grau(��𝑖)− 𝜌 é o número de raízes complexas distintas de ��𝑖.

Este algoritmo não foi implementado, todavia, nos códigos deste trabalho, demodo que o somatório mais à direita é sempre dado em termos explícitos, nãoem termos de raízes não determinadas. A fonte original que fundamenta estealgoritmo se encontra em [32].

Page 152: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Capítulo 6. Considerações Finais 138

Page 153: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Referências Bibliográficas

[1] G. Almkvist and D. Zeilberger. The method of differentiating under theintegral sign. Journal of Symbolic Computation, 10:571–591, 1990.

[2] M. Bronstein. Symbolic Integration I: transcendental functions. CambridgeUniversity Press, 2nd edition, 1997.

[3] M. Bronstein and B. Salvy. Full partial fraction decomposition of rationalfunctions. Proceedings of ISSAC‘93, pages 157–160, 1993.

[4] W.S. Brown and J.F. Traub. On euclid’s algorithm and the theory of subre-sultants. Journal of the ACM, 18:505–514, 1971.

[5] G.W. Cherry. Integration in finite terms with special functions: the errorfunction. Journal of Symbolic Computation, 1:282–302, 1985.

[6] G.W. Cherry. Integration in finite terms with special functions: the logarith-mic function. SIAM J. Computing, 15:1–21, 1986.

[7] G.E. Collins. Subresultants and reduced polynomial remainder sequences.Journal of the ACM, 14:128–142, 1967.

[8] S. C. Coutinho. Polinômios e Computação Algébrica. IMPA, Rio de Janeiro,2012.

[9] G. Czichowski. A note on gröbner bases and integration of rational functions.Journal of Symbolic Computation, 20:163–167, 1995.

[10] G.M. Fichtenholz. Differential- und Integralrechnung, volume 15. Springer-Verlag, New York, 1990.

Page 154: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Referências Bibliográficas 140

[11] K.O. Geddes, S.R. Czapor, and G. Labahn. Algorithms for Computer Algebra.Kluwer Academic Publishers, Boston, Drodrecht, London, 1992.

[12] C. Hermite. Sur l’intégration des fractions rationnelles. Annales scientifiquesde l’École Normale Supérieure, 1:215–218, 1872.

[13] E. Horowitz. Algorithms for partial fraction decomposition and rationalfunction integration. In Proceedings of the Second ACM Symposium onSymbolic and Algebraic Manipulation, SYMSAC ’71, pages 441–457, NewYork, NY, USA, 1971. ACM.

[14] D.J. Jeffrey. Rectifying transformations for the integration of rational tri-gonometric functions. Journal of Symbolic Computation, 24(5):563 – 573,1997.

[15] S. Lang. Algebra. Springer, New York, 3rd edition, 2002.

[16] S. Lang. Undergraduate Algebra. Springer, New Haven, 3rd edition, 2005.

[17] D. Lazard and R. Rioboo. Integration of rational functions: Rational computa-tion of the logarithmic part. Journal of Symbolic Computation, 9(2):113–116,1990.

[18] J. Liouville. Premier mémoire sur la détermination des intégrales dont lavaleur es algebrique. Journal de l’Ecole Polytechnique, 14:124–148, 1833.

[19] J. Liouville. Second mémoire sur la détermination des intégrales dont lavaleur es algebrique. Journal de l’Ecole Polytechnique, 14:149–193, 1833.

[20] J. Liouville. Mémoire sur l’integration d’une classe de fonctions transcendan-tes. Journal für die reine und angewandte Mathematik, 13:93–118, 1835.

[21] J. Luetzen. Studies in the history of mathematics and physical sciences,volume 15. Springer-Verlag, New York, 1990.

[22] D. Mack. On rational function integration. Computer Science Department,University of Utah, UCP-38, 1975.

[23] B. Mishra. Algorithmic Algebra. Springer-Verlag, New York, 1993.

Page 155: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

141 Referências Bibliográficas

[24] T. Mulders. A note on subresultants and a correction to the lazard-rioboo-trager formula in rational function integration. Journal of Symbolic Compu-tation, 24(1):45–50, 1997.

[25] D.R.R. Musser. Algorithms for polynomial factorization. PhD thesis, Uni-versity of Wisconsin, 1971.

[26] M.W. Ostrogradsky. De l’intégration des fractions rationnelles. Bulletin dela Classe Physico-Mathématiques de l’Académie Impériale des Sciences deSt. Pétersbourg, IV:145–167,286–300, 1845.

[27] Loos. R. Generalized polynomial remainder sequences. pages 115–137.Springer-Verlag, New York, 1982.

[28] R. Rioboo. Quelques aspects du calcul exact avec des nombre réels. PhDthesis, Université de Paris 6, Informatique, 1991.

[29] R.H. Risch. On the integration of elementary functions which are built upusing algebraic operations. Sys. Dev. Corp., Santa Mônica, CA, ReportSP-2801/002/00, 1968.

[30] J.F. Ritt. Integration in Finite Terms. Columbia University Press, NewYork, 1948.

[31] M. Rothstein. Aspects of Symbolic Integration and Simplification of Exponen-tial and Primitive Functions. PhD thesis, University of Wisconsin-Madison,1976.

[32] Charles Sturm. Mémoire sur la résolution des équations numériques. Sprin-ger, 2009.

[33] R.G. Tobey. Algorithms for Antidifferentiation of Rational Functions. PhDthesis, Harvard University, 1967.

[34] Barry M. Trager. Algebraic factoring and rational function integration.In Proceedings of the Third ACM Symposium on Symbolic and AlgebraicComputation, SYMSAC ’76, pages 219–226, New York, NY, USA, 1976. ACM.

Page 156: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Referências Bibliográficas 142

[35] J. von zur Gathen and J. Gerhard. Algorithms for Computer Algebra. Cam-bridge University Press, Cambridge, 2nd edition, 2003.

[36] D.Y.Y. Yun. On square-free decomposition algorithms. In Proceedings ofthe SYMSAC’76, pages 26–35, 1976.

Page 157: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A

Integração de FunçõesHiperexponenciais

A.1 O Algoritmo de Almkvist-Zeilberger

Apresentaremos aqui um algoritmo para integração das funções ditas hiperex-ponenciais. Brevemente, seriam aquelas funções cuja derivada logarítmica éracional, como veremos a seguir. O método calcula a integral deste tipo de funçãoquando esta integral é um múltiplo racional da mesma. Este algoritmo se encontraoriginalmente em [1].

Definição A.1.1. Seja 𝑓(𝑥) uma função na variável 𝑥. Se 𝑓 ′/𝑓 ∈ K(𝑥), K ⊆ Centão dizemos que 𝑓 é hiperexponencial sobre K(𝑥) (ou que é uma extensãohiperexponencial de K(𝑥)).

Exemplos de funções hiperexponenciais sobre K(𝑥) (ou simplesmente hiperex-ponenciais) são:

1. as funções racionais, pois é evidente que se 𝑓 ∈ K(𝑥) então 𝑓 ′/𝑓 ∈ K(𝑥);

2. exponenciais de funções racionais, pois, dada 𝑓 ∈ K(𝑥), temos que exp(𝑓)′/

exp(𝑓) = 𝑓 ′ ∈ K(𝑥);

3. produtos finitos de funções exponenciais, pois se 𝑓 e 𝑔 são hiperexponenciais,então (𝑓𝑔)′/𝑓𝑔 = 𝑓 ′/𝑓 + 𝑔′/𝑔 ∈ K(𝑥);

Page 158: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 144

4. potências de funções hiperexponenciais, pois se 𝑓 é hiperexponencial e 𝑟 ∈ Kentão (𝑓 𝑟)′/𝑓 𝑟 = 𝑟(𝑓 𝑟−1)𝑓 ′/𝑓 𝑟 = 𝑟𝑓 ′/𝑓 ∈ K(𝑥).

Considere o problema de encontrar a integral de uma função 𝑓 hiperexponencialsobre K(𝑥), isto é, encontrar uma função 𝑔 (não necessariamente pertencente aK(𝑥)) tal que

𝑔′ = 𝑓

Se assumirmos que o problema acima possui uma solução também hiperexponen-cial, o algoritmo de Almkvist-Zeilberger, o qual discutiremos nesta seção,nos mostra como obtê-la. Consequentemente, quando o algoritmo não é capazde encontrar qualquer solução hiperexponencial, então não existe solução algumado problema satisfazendo esta condição. Por este motivo, dizemos que este é umalgoritmo de decisão.

Primeiramente, observemos que se 𝑓 é hiperexponencial então temos que a suaderivada logaritmica 𝜎 = 𝑓 ′/𝑓 pertence a K(𝑥). Se o problema admite solução 𝑔

hiperexponencial então 𝜌 = 𝑔′/𝑔 e

𝑓 = 𝑔′ = 𝜌𝑔.

Portanto, 𝑔 = 𝑓/𝜌. Naturalmente, 𝜌 = 0, ou teríamos 𝑓 = 0, pela equação acima.Portanto, se a solução 𝑔 existir, deve ser um múltiplo racional de 𝑓 , o que querdizer que 𝑔 ∈ K(𝑥).

Seja, portanto 𝑔 uma solução do para 𝑔′ = 𝑓 , isto é, 𝑔 = 𝜏𝑓 para algumafunção 𝜏 ∈ K(𝑥). Temos que

𝑔′ = (𝜏𝑔)′ = 𝜏 ′𝑔 + 𝜏𝑔′ = (𝜏 ′ + 𝜎𝜏)𝑔.

A equação acima possui solução se e só se 𝜏 é solução da equação diferencialde Risch

𝜏 ′ + 𝜎𝜏 = 1. (A.1)

Na equação (A.1) acima, há apenas termos racionais, isto é, eliminamos todos ostermos puramente hiperexponenciais do problema original e agora nossa questão

Page 159: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

145 A.1. O Algoritmo de Almkvist-Zeilberger

se reduz a encontrar soluções racionais.Mais além, se escrevermos 𝜎 = 𝑎/𝑏 em sua forma reduzida com 𝑎,𝑏 ∈ K[𝑥],

e, de modo semelhante, 𝜏 = 𝑢/𝑣 em sua forma reduzida com 𝑢,𝑣 ∈ K[𝑥] emultiplicarmos a equação (A.1) por 𝑏𝑣2, vemos que o problema se reduz a encontrarpolinômios 𝑢,𝑣 ∈ K[𝑥] tais que

𝑏𝑢′𝑣 − 𝑏𝑢𝑣′ + 𝑎𝑢𝑣 = 𝑏𝑣2. (A.2)

Uma vez encontrados polinômios 𝑢,𝑣 ∈ K[𝑥] que satisfazem (A.2), temos umasolução para o problema original. Basta fazer 𝑔 = (𝑢/𝑣)𝑓 .

Vamos, discutir como resolver a equação (A.2). Nossa abordagem será procurarprimeiro algum múltiplo do polinômio 𝑣, tal que a equação (A.2) aplicada a estepolinômio no lugar de 𝑣 possua solução em um múltiplo de 𝑢. Mostraremosque, para a obtenção do múltiplo de 𝑣, precisamos tão somente conhecer 𝑎 e 𝑏.Definimos, para tanto, 𝑣0 = 𝑣* = 𝑣/𝑣− e 𝑣1 = 𝑣′/𝑣−, ambos em K[𝑥]. Observeque 𝑣0 e 𝑣1 são relativamente primos. Dividindo (A.2) por gcd(𝑣,𝑣′), temos

𝑏𝑢′𝑣0 − 𝑏𝑢𝑣1 + 𝑎𝑢𝑣0 = 𝑏𝑣𝑣0 (A.3)

Observe que 𝑣0 divide 𝑏𝑢𝑣1 e, como mdc(𝑢,𝑣) = mdc(𝑣𝑐,𝑣1) = 1, tambémdivide 𝑏. Portanto, podemos dividir (A.3) por 𝑣0 obtendo

𝑏𝑢′ +(

𝑎− 𝑏

𝑣0𝑣1

)𝑢 = 𝑏𝑣′,

donde podemos concluir que 𝑣0 divide 𝑎− (𝑏/𝑣0)𝑣1, uma vez que 𝑣0 divide 𝑏 e érelativamente primo a 𝑢.

Seja 𝑣 = ℎ11 · · ·ℎ𝑘

𝑘 a flq de 𝑣. Temos que 𝑣0 = ℎ1 · · ·ℎ𝑘 e

𝑣1 =∑𝑘

𝑖=1 ℎ𝑖𝑖′∏

𝑗 =𝑖 ℎ𝑗𝑗∏𝑘

𝑖=1 ℎ𝑖−1𝑖

=∑𝑘

𝑖=1 𝑖ℎ′𝑖

∏𝑘𝑖=1 ℎ𝑖−1

𝑖

∏𝑗 =𝑖 ℎ𝑗∏𝑘

𝑖=1 ℎ𝑖−1𝑖

=𝑘∑

𝑖=1𝑖ℎ′

𝑖

∏𝑗 =𝑖

ℎ𝑗 =𝑘∑

𝑖=1

𝑖ℎ′𝑖𝑣0

ℎ𝑖

.

Page 160: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 146

Além disso, para cada ℎ𝑖,

𝑏

𝑣0𝑣1 ≡

𝑏

𝑣0𝑖ℎ′

𝑖

𝑣0

ℎ𝑖

= 𝑖𝑏

ℎ𝑖

ℎ′𝑖 ≡ 𝑖

(𝑏

ℎ𝑖

ℎ′𝑖 +

(𝑏

ℎ𝑖

)′

ℎ𝑖

)= 𝑖𝑏′ mod ℎ𝑖.

Cada ℎ𝑖 divide 𝑏 pelas contas acima e ambas as parcelas do lado esquerdo naequação (

𝑎− 𝑏

𝑣0𝑣1

)+(

𝑏

𝑣0𝑣1 − 𝑖𝑏′

)= 𝑎− 𝑖𝑏′,

portanto cada ℎ𝑖 divide mdc(𝑏,𝑎− 𝑖𝑏′). Lançamos o seguinte teorema

Teorema A.1.1 ([35], Cap. 22, §4). Sejam 𝑢,𝑣 ∈ K[𝑥] polinômios relativamenteprimos em K[𝑥] constituindo uma solução para (A.2), com 𝑣 = 0 mônico e𝑣 = ℎ1

1 · · ·ℎ𝑘𝑘 sendo decomposição em fatores livres de quadrados de 𝑣. Definamos

𝑅(𝑧) = res𝑥(𝑏,𝑎− 𝑧𝑏′),

𝑑 = max{𝑖 ∈ N | 𝑖 = 0 ou 𝑅(𝑖) = 0},

𝐻𝑖 = gcd(𝑏,𝑎− 𝑖𝑏′), (1 ≤ 𝑖 ≤ 𝑑).

Então, 𝑘 ≤ 𝑑 e ℎ𝑖 | 𝐻𝑖, para 1 ≤ 𝑖 ≤ 𝑘.

Demonstração. Podemos supor que grau(𝑣) ≥ 1. Temos que grau(ℎ𝑚) > 0, peladefinição de decomposição livre de quadrados. Observe que, como já dissemos, ℎ𝑖

divide mdc(𝑏,𝑎−𝑖𝑏′) para todo 𝑖. Em particular, isto quer dizer que grau(mdc(𝑏,𝑎−𝑚𝑏′)) > 0 e, portanto 𝑅(𝑚) = res𝑥(𝑏,𝑎 −𝑚𝑏′) = 0. Logo, 𝑚 ≤ 𝑑 e ℎ𝑖 | 𝐻𝑖 para1 ≤ 𝑖 ≤ 𝑚. Finalmente,

𝑣 = ℎ1ℎ22 · · ·ℎ𝑚

𝑚 | 𝐻1𝐻22 · · ·𝐻𝑚

𝑚 | 𝐻1𝐻22 · · ·𝐻𝑚

𝑚 𝐻𝑚+1𝑚+1 · · ·𝐻𝑑

𝑑 = 𝑉.

Portanto, alcançamos nosso objetivo de calcular um múltiplo 𝑉 = 𝐻1 · · ·𝐻𝑑𝑑

de 𝑣 conhecendo tão somente os polinômios 𝑎 e 𝑏. Observe que 𝑉 =∏

𝐻 𝑖𝑖

é própria flq de 𝑉 : se 𝛾 ∈ K e 𝑝 é um fator irredutível de mdc(𝑏,𝑎 − 𝛾𝑏′),então 𝑝 | 𝑏, 𝑎 − 𝛾𝑏′. Por outro lado, se ocorresse 𝑝2 | 𝑏, então teríamos 𝑝 | 𝑏′

e, portanto, 𝑝 | 𝑎, contrariando o fato de que 𝑎 e 𝑏 são primos entre si. Assim,

Page 161: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

147 A.1. O Algoritmo de Almkvist-Zeilberger

para todo 𝛾 ∈ K, mdc(𝑏,𝑎 − 𝛾𝑏′) é livre de quadrados. Então, dados 𝛾1,𝛾2 ∈ K,se 𝐺1 = mdc(𝑏,𝑎 − 𝛾1𝑏

′), 𝐺2 = mdc(𝑏,𝑎 − 𝛾2𝑏′) e 𝐺 = mdc(𝐺1,𝐺2), então 𝐺 |

𝑏, 𝑎 − 𝛾1𝑏′, 𝑎 − 𝛾2𝑏

′, donde 𝐺 | (𝛾1 − 𝛾2)𝑏′ e, portanto, se 𝛾1 = 𝛾2, 𝐺 | 𝑎, donde𝐺 = 1. Concluímos que os 𝐻𝑖 são livres de quadrados e dois a dois primos entresi.

O algoritmo sugerido pelo Teorema A.1.1 pode ser melhorado se a cada passoretirarmos 𝐻𝑖 de 𝑏 e 𝑎− 𝑖𝑏′: se 𝑎0 = 𝑎 e 𝑏0 = 𝑏, definimos as sequências

𝐻𝑖 = mdc(𝑏𝑖−1,𝑎𝑖−1 − 𝑏′𝑖−1), 𝑎𝑖 = 𝑎𝑖−1 − 𝑏′

𝑖−1𝐻𝑖

, 𝑏𝑖 = 𝑏𝑖−1

𝐻𝑖

. (A.4)

Observe que, dado 1 ≤ 𝑖 ≤ 𝑑, se para algum par 𝑘 tal que 1 ≤ 𝑘 < 𝑖 temos que𝐻𝑖 = mdc(𝑏𝑖−𝑘,𝑎𝑖−𝑘 − 𝑘𝑏′

𝑖−𝑘) então

𝐻𝑖 = mdc(𝐻2𝑖−𝑘𝑏𝑖−𝑘,𝐻2

𝑖−𝑘(𝑎𝑖−𝑘 − 𝑘𝑏′𝑖−𝑘))

= mdc(𝐻𝑖−𝑘𝑏𝑖−𝑘−1,𝐻𝑖−𝑘(𝑎𝑖−𝑘−1 − 𝑏′𝑖−𝑘−1)−𝐻2

𝑖−𝑘𝑘𝑏′𝑖−𝑘)

= mdc(𝐻𝑖−𝑘𝑏𝑖−𝑘−1,𝐻𝑖−𝑘𝑎𝑖−𝑘−1 − (𝑘 + 1)𝐻𝑖−𝑘𝑏′𝑖−𝑘−1 − 𝑏𝑖−𝑘−1𝐻

′𝑖−𝑘)

= mdc(𝑏𝑖−(𝑘+1),𝑎𝑖−(𝑘+1) − (𝑘 + 1)𝑏′𝑖−(𝑘+1))

onde utilizamos o fato de que 𝐻𝑖−𝑘 | 𝑏𝑖−𝑘−1 na última igualdade. O argumentoacima é válido para 𝑘 = 1 e por indução, válido para qualquer 𝑘 tal que 1 ≤ 𝑘 < 𝑖,em particular para 𝑘 = 𝑖 − 1, donde concluímos que 𝐻𝑖 = mdc(𝑏,𝑎 − 𝑖𝑏′), paratodo 𝑖. Assim, as sequências definidas em (A.4) também nos fornecem um modomais eficiente de calcular o múltiplo 𝑉 fornecido pelo Teorema A.1.1 [35, Cap.22, §4].

Damos prosseguimento à nossa abordagem, buscando um múltiplo 𝑈 do po-linômio 𝑢 para o qual a equação (A.2) aplicada a 𝑈 e 𝑉 possua solução. Isto é,buscamos uma solução 𝑈 para a equação

𝑏𝑉 𝑈 ′ − (𝑏𝑉 ′ − 𝑎𝑉 )𝑈 = 𝑏𝑉 2 (A.5)

cuja existência implica que 𝜏 = 𝑈/𝑉 ∈ K(𝑥) é solução de (A.1) e 𝑔 = 𝑈𝑓/𝑉

resolve o problema em questão. Reciprocamente, se 𝜏 = 𝑢/𝑣 satisfaz (A.1), com𝑢 e 𝑣 primos entre si e 𝑣 = 0 mônico, então 𝑈 = 𝑢𝑉/𝑣 é uma solução para (A.5).

Page 162: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 148

Dividindo-se ambos os lados da equação (A.1) por ℎ = mdc(𝑏𝑉,𝑏𝑉 ′ −𝑎𝑉 ) ∈K[𝑥], temos a equação equivalente

𝑟𝑈 ′ − 𝑠𝑈 = 𝑡, (A.6)

onde 𝑟 = 𝑏𝑉/ℎ,𝑠 = (𝑏𝑉 ′ − 𝑎𝑉 )/ℎ é mônico, e 𝑡 = 𝑟𝑉 é não nulo.A equação (A.6) é uma identidade polinomial à qual corresponde um sistema

linear cujas incógnitas são os coeficientes de 𝑈 . A solubilidade desta equação,portanto, depende da solubilidade do seu sistema linear associado. Assim, tudo oque precisamos é determinar um limite superior para o grau de 𝑈 , a fim de quetenhamos as dimensões do sistema linear associado. Este limite é fornecido peloseguinte resultado.

Lema A.1.1 ([35], Cap. 22, §4). Sejam 𝑟,𝑠,𝑡,𝑈 ∈ K[𝑥] satisfazendo (A.6), com𝑟,𝑈 não nulos e 𝑟 mônico, 𝑚 = max{grau(𝑟) − 1, grau(𝑠)}, e seja 𝛿 ∈ K ocoeficiente de 𝑥𝑚 em 𝑠. (Como de costume, 𝛿 = 0 se 𝑚 < 0 ou grau(𝑠) < 𝑚.)Além disso, seja

𝑒 =

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩grau(𝑡)−𝑚 se grau(𝑟)− 1 < grau(𝑠) ou

𝛿 /∈ N− {0,1, . . . , grau(𝑡)−𝑚},

𝛿 caso contrário.

Então, o seguinte se verifica.

1. Ou grau(𝑈) = grau(𝑡)−𝑚, ou grau(𝑈) = 𝛿 > grau(𝑡)−𝑚 e grau(𝑟)− 1 ≥grau(𝑠). Em particular, grau(𝑈) ≤ 𝑒.

2. Se grau(𝑟)− 1 ≥ grau(𝑠), então grau(𝑡)−𝑚 = 𝛿.

3. Se 𝑡 = 0, então grau(𝑟)− 1 ≥ grau(𝑠) e grau(𝑈) = 𝛿 ∈ N.

4. Se grau(𝑟)− 1 < grau(𝑠) ou 𝛿 /∈ N, então exatamente um 𝑈 ∈ 𝐹 [𝑥] satisfaza equação (A.6).

Lembramos que o polinômio nulo possui grau −∞, portanto grau(𝑡)−𝑚 deveser interpretado como −∞ se 𝑡 = 0. Temos que N ⊆ Q ⊆ K, então qualquerinteiro é também um elemento de K.

Page 163: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

149 A.1. O Algoritmo de Almkvist-Zeilberger

Demonstração. Faremos uma comparação de coeficientes e graus em (A.6). Pri-meiramente, temos que

grau(𝑡) ≤ max{grau(𝑟𝑈 ′), grau(𝑠𝑈)}

max{grau(𝑟) + grau(𝑈)− 1, grau(𝑠) + grau(𝑈)} = 𝑚

+ grau(𝑈).

Seja 𝛾 o coeficiente de 𝑥𝑚+1 em 𝑟. Temos que o coeficiente de 𝑥𝑚+grau(𝑈) em 𝑟𝑈 ′

é 𝛾𝜂 grau(𝑈), onde 𝜂 = cl(𝑈), e o coeficiente de 𝑥𝑚+grau(𝑈) de 𝑠𝑈 é 𝛿𝜂. Logo, ocoeficiente de 𝑥𝑚+grau(𝑈) em 𝑡 é (𝛾 grau(𝑈)− 𝛿)𝜂, e grau(𝑡) < 𝑚 + grau(𝑈) se esó se esse coeficiente é 0.

Se grau(𝑟)−1 < grau(𝑠), então 𝛾 = 0 e 𝛿 é o coeficiente (não nulo) de 𝑠, dondegrau(𝑈) = grau(𝑡) − 𝑚. Caso contrário, temos que 𝛾 = cl(𝑟) = 1. Finalmente,temos que grau(𝑈) ≥ grau(𝑡)−𝑚, onde a desigualdade estrita ocorre se e só segrau(𝑟)− 1 ≥ grau(𝑠) e grau(𝑈) = 𝛿. Com isto, provamos as afirmações 1,2 e 3.

Agora, se 𝑈* ∈ K[𝑥] é outra solução para (A.6), então 𝑈 − 𝑈* satisfaz aequação homogênea 𝑟(𝑈 −𝑈*)′− 𝑠(𝑈 −𝑈*) = 0 e, portanto, a afirmação 4 segueda afirmação 3.

Conhecidos os polinômios 𝑟,𝑠,𝑡 = 𝑟𝑉 , podemos, portanto, determinar umlimite superior para o grau de 𝑈 . Se o valor de 𝑒 é inteiro e não negativo, e segrau(𝑟)−1 < grau(𝑠), ou se grau(𝑡)−𝑚 = 𝛿, tudo o que precisamos fazer é montare resolver o sistema linear associado a (A.6) cujas incógnitas são os coeficientes de𝑈 . Neste caso, nossa solução para a equação (A.6) é 𝜏 = 𝑈/𝑉 ∈ K(𝑥), donde 𝑓𝑈/𝑉

é uma integral hiperexponencial de 𝑓 . Se 𝑒 é negativo, ou se grau(𝑟)−1 ≥ grau(𝑠)e grau(𝑡) − 𝑚 = 𝛿, ou se o sistema linear não possui solução, então (A.1) nãopossui solução racional em 𝜏 , e, portanto, o problema original não possui soluçãohiperexponencial. Note que, uma vez que encontramos 𝜏 = 𝑈/𝑉 ∈ K(𝑥), éinteressante colocar 𝜏 em sua forma canônica, retirando mdc(𝑈,𝑉 ) do numeradore do denominador.

Isto conclui o algoritmo de Almkvist-Zeilberger. A respeito do espaço desoluções do sistema linear associado a (A.6), este é vazio, possui exatamente umelemento, ou é uma variedade afim unidimensional. Neste último caso, em geral, é

Page 164: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 150

preferível escolher por uma solução deste espaço para a qual o polinômio 𝑈 possuao menor grau possível. O sistema linear em questão é triangular, de modo quepode ser resolvido tão somente através de substituição retroativa, dispensando aeliminação de Gauss, o que leva 𝑂(𝑒2) operações em K. Há, no máximo, um 0 nadiagonal, o que ocorre apenas quando grau(𝑟)− 1 ≥ grau(𝑠).

A equação A.6 pode ser reduzida ainda mais através das seguintes considera-ções. Temos que mdc(𝑟,𝑡) = mdc(𝑟,𝑟𝑉 ) = 𝑟 e mdc(𝑟,𝑠) = 1, onde 𝑡 = 𝑟𝑉 . Pelaequação A.6, isso significa que 𝑟 | 𝑈 , isto é 𝑈 = 𝑈*𝑟. Assim,

𝑟(𝑈*𝑟)′ − 𝑠(𝑈*𝑟) = 𝑟𝑉 =⇒ 𝑟(𝑈*′𝑟 + 𝑈*𝑟′)− 𝑠𝑈*𝑟 = 𝑟𝑉

=⇒ 𝑟𝑈*′ − (𝑠− 𝑟′)𝑈* = 𝑉. (A.7)

A equação (A.7) pode ser utilizada no lugar da equação (A.6) durante o algoritmode Almkvist-Zeilberger, de modo que só precisamos encontrar o polinômio 𝑈* degrau 𝑒−grau(𝑟) e então multiplicá-lo por 𝑟 para obter a solução da equação (A.6)e, consequentemente, do problema de integração. Evidentemente, isso diminui aquantidade de operações do algoritmo, uma vez que o sistema induzido pela (A.7)possui 𝑒− grau(𝑟) equações e 𝑒− grau(𝑟) incógnitas.

A.1.1 Exemplos

Exemplo A.1.1 (extraído de [35], Cap. 22, §4). Seja 𝑓 = 𝑥𝑛 exp(𝑥) ∈ Q(𝑥, exp(𝑥)),onde 𝑛 ∈ N. Como vimos, 𝑓 é hiperexponencial. Sua derivada logarítmica é

𝑔′

𝑔= 𝑥 + 𝑛

𝑥,

donde 𝐴 = 𝑥 + 𝑛 e 𝐷 = 𝑥. 𝑅(𝑧) = res𝑥(𝐷,𝐴− 𝑧𝐷′) = res𝑥(𝑥,𝑥 + 𝑛− 𝑧) = 𝑛− 𝑧,donde 𝑅(𝑖) = 0 apenas para 𝑖 = 𝑛 e, portanto, 𝑑 = 𝑛. O código A.2.1 calcula𝐻𝑖 = 1 para 1 ≤ 𝑖 ≤ 𝑛, e 𝐻𝑛 = 𝑥, donde 𝑉 = 𝑥𝑛.No código A.2.2, temos que 𝐷𝑉 = 𝑥𝑛+1, 𝐷𝑉 ′−𝐴𝑉 = −𝑥𝑛+1 e, portanto, ℎ = 𝑥𝑛+1,𝑟 = 1, 𝑠 = −1 e 𝑡 = 𝑥𝑛. Assim, temos

𝑈 ′ + 𝑈 = 𝑥𝑛 (A.8)

Page 165: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

151 A.1. O Algoritmo de Almkvist-Zeilberger

Temos que 𝑚 = max{grau(𝑟)−1, grau(𝑠)} = 0 > grau(𝑟)−1 e, portanto, estamosno primeiro caso do Lema A.1.1, de modo que 𝑒 = grau(𝑡)−𝑚 = 𝑛. Portanto,

𝐻 = (𝑈𝑛 − 1)𝑥𝑛 + (𝑛𝑈𝑛 + 𝑈𝑛−1)𝑥𝑛−1 + · · ·+ (2𝑈2 + 𝑈1)𝑥 + (𝑈1 + 𝑈0).

O sistema linear a resolver se torna

𝑈𝑛 − 1 = 0

𝑛𝑈𝑛 + 𝑈𝑛−1 = 0

. . .

2𝑈2 + 𝑈1 = 0

𝑈1 + 𝑈0 = 0.

O sistema possui solução única e satisfaz 𝑈0 = 0, donde mdc(𝑈,𝑉 ) = 1. A respostaretornada é 𝑢 = 𝑈 e 𝑣 = 𝑉 = 𝑥𝑛, onde

𝑈 = 𝑥𝑛 +𝑛−1∑𝑖=0

(−1)𝑛−𝑖 𝑛!𝑖! 𝑥𝑖.

Dessa forma, se 𝑛 = 3, temos que 𝑈 = 𝑥3 − 3𝑥2 + 6𝑥− 6 e 𝑉 = 𝑥3. Portanto,

∫𝑥3 exp(𝑥) = 𝑈

𝑉(𝑥3 exp(𝑥)) =

(𝑥3 − 3𝑥2 + 6𝑥− 6

𝑥3

)(𝑥3 exp(𝑥))

= 𝑥3 exp(𝑥)− 3𝑥2 exp(𝑥) + 6𝑥 exp(𝑥)− 6 exp(𝑥).

De fato,

(𝑥3 exp(𝑥)− 3𝑥2 exp(𝑥) + 6𝑥 exp(𝑥)− 6 exp(𝑥))′ =

(3𝑥2 − 6𝑥 + 6) exp(𝑥) + (𝑥3 − 3𝑥2 + 6𝑥− 6) exp(𝑥) = 𝑥3 exp(𝑥).

Exemplo A.1.2 (extraído de [35], Cap. 22, §4). Seja 𝑓 = 1/𝑥 ∈ Q(𝑥). Temosque 𝑓 ′/𝑓 = −1/𝑥 e 𝐴 = −1, 𝐷 = 𝑥, 𝑅(𝑧) = res𝑥(𝑥, − 1 − 𝑧) = −(𝑧 + 1). Logo,𝑑 = 0 e 𝑉 = 1. Assim,

𝑥𝑈 ′ − 𝑈 = 𝑥.

Page 166: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 152

Ou seja, 𝑟 = 𝑡 = 𝑥, 𝑠 = 1, 𝑚 = grau(𝑠) = grau(𝑟)− 1 = 0 e grau(𝑡)−𝑚 = 1 = 𝛿.Estamos no caso 2 do Lema A.1.1 e a equação acima não possui solução 𝑈 ∈ Q[𝑥].Logo ∫(1/𝑥) não é hiperexponencial. Afinal, equivale a log(𝑥), e log(𝑥)′/ log(𝑥) =1/(𝑥 log(𝑥)) /∈ Q(𝑥).

Exemplo A.1.3 (extraído de [35], Cap. 22, §4). Seja 𝑓 =√

1/(𝑥2 + 1)3 ∈Q(𝑥,√

𝑥2 + 1). Temos𝑓 ′

𝑓= −3𝑥

𝑥2 + 1 ,

de modo que 𝐴 = −3𝑥, 𝐷 = 𝑥2 + 1, 𝑅(𝑧) = res𝑥(𝑥2 + 1,− 3𝑥− 𝑧2𝑥) = (2𝑧 + 3)3,𝑑 = 0 e 𝑉 = 1. Assim

(𝑥2 + 1)𝑈 ′ − 3𝑥𝑈 = 𝑥2 + 1.

Ou seja, 𝑟 = 𝑡 = 𝐷 = (𝑥2 + 1), 𝑠 = −𝐴 = 3𝑥, 𝑚 = max{grau(𝑟)− 1, grau(𝑠)} = 1e nos encontramos no caso 2 do Lema A.1.1. Agora 1 = grau(𝑡) −𝑚 = 𝛿 = 3,donde, pelo lema grau(𝑈) = 𝛿 = 3. Portanto,

𝐻 = (2𝑈2 − 3𝑈2)𝑥3 + (𝑈1 + 3𝑈3 − 3𝑈1 − 1)𝑥2 + (2𝑈2 − 3𝑈0)𝑥 + (𝑈1 − 1)

O sistema a resolver é

−𝑈2 = 0

3𝑈3 − 2𝑈1 − 1 = 0

2𝑈2 − 3𝑈0 = 0

𝑈1 − 1 = 0.

A única solução é 𝑈3 = 𝑈1 = 1 e 𝑈2 = 𝑈0 = 0. Logo, 𝑈 = 𝑥3 + 𝑥, 𝑢 = 𝑈 e 𝑣 = 1.Assim, ∫ 1√

(𝑥2 + 1)3= (𝑥3 + 𝑥) 1√

(𝑥2 + 1)3= 𝑥√

(𝑥2 + 1).

De fato,⎛⎝ 𝑥√

(𝑥2 + 1)

⎞⎠′

= 1√(𝑥2 + 1)

− 𝑥2√(𝑥2 + 1)3

= 1√(𝑥2 + 1)3

.

Page 167: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

153 A.1. O Algoritmo de Almkvist-Zeilberger

Exemplo A.1.4 (gerado com dados obtidos pelos códigos de A.2.1 e A.2.2).Considere a função

𝑓 = 𝑥3 − 3𝑥 + 2𝑥5 − 4𝑥3 + 4𝑥

Temos

𝑉 = (𝑥 + 2)(𝑥− 1)2

ℎ = 𝑥5 + 𝑥4 − 5𝑥3 − 𝑥2 + 8𝑥− 4

𝑟 = 𝑥3 − 2𝑥

𝑠 = 5𝑥2 − 2

𝑡 = 𝑥6 − 5𝑥4 + 2𝑥3 + 6𝑥2 − 4𝑥

𝑚 = 2

𝛿 = 5

𝑒 = 5.

O sistema induzido pela equação (A.6) é

−2𝑈0 = 0

−4 = 0

2𝑈2 + 5𝑈0 + 6 = 0

4𝑈3 + 4𝑈1 + 2 = 0

6𝑈4 + 3𝑈2 − 5 = 0

8𝑈5 + 2𝑈3 = 0

𝑈4 + 1 = 0,

(A.9)

o qual, evidentemente, não possui solução. De fato, para esta função, a rotinaHorOstro, devolve parte logarítmica não nula. Mais precisamente,

∫𝑓 = 𝑥− 2

4(𝑥2 − 2) +∫ 5𝑥− 4

4(𝑥3 − 2𝑥) ,

Page 168: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 154

sendo 𝑥3 − 2𝑥 livre de quadrados. Pela equação (A.7), o sistema induzido é

−2 = 0

2𝑈1 − 3 = 0

4𝑈2 + 2𝑈0 = 0

𝑈1 + 1 = 0

o qual, evidentemente, também não possui solução.

Exemplo A.1.5 (gerado com dados obtidos pelos códigos de A.2.1 e A.2.2).Considere a função

𝑓 = 8𝑥

𝑥4 + 4𝑥2 + 4Temos

𝑉 = 𝑥

ℎ = 𝑥2

𝑟 = 𝑥2 + 2

𝑠 = 4𝑥

𝑡 = 𝑥3 + 2𝑥

𝑚 = 1

𝛿 = 4

𝑒 = 4.

O sistema induzido pela equação (A.6) é

−2𝑈1 = 0

−4𝑈2 + 4𝑈0 + 2 = 0

3𝑈1 − 6𝑈3 = 0

−8𝑈4 + 2𝑈2 + 1 = 0

𝑈3 = 0,

Page 169: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

155 A.1. O Algoritmo de Almkvist-Zeilberger

cujo espaço de soluções é

𝑆 ={

𝑈0 = 4𝜆− 1,𝑈1 = 0,𝑈2 = 8𝜆− 12 ,𝑈3 = 0,𝑈4 = 𝜆

}.

Portanto,𝑈 = 𝜆𝑥4 + 8𝜆− 1

2 𝑥2 + 4𝜆− 1.

escolhendo 𝜆 = 0 temos, portanto, 𝑈 = (−1/2)𝑥2 − 1 e

∫𝑓 = (−1/2)𝑥2 − 1

𝑥

8𝑥

𝑥4 + 4𝑥2 + 4 = − 4𝑥2 + 2

Pela equação (A.7), o sistema induzido é

−2𝑈1 = 0

−4𝑈2 + 2𝑈0 + 1 = 0

𝑈1 = 0

(A.10)

cujo espaço de soluções é

𝑆 ={

𝑈0 = 4𝜆− 12 ,𝑈1 = 0,𝑈2 = 𝜆

}.

Portanto,𝑈 = 𝜆𝑥2 + 4𝜆− 1

2 .

escolhendo 𝜆 = 0 temos, portanto, 𝑈 = −1/2 e 𝑟𝑈 = (−1/2)𝑥2 − 1.

Exemplo A.1.6 (gerado com dados obtidos pelos códigos de A.2.1 e A.2.2).Considere a função

𝑓 = 6𝑥10 − 13𝑥8 + 16𝑥6 + 8𝑥4 + 10𝑥2 − 33((𝑥4 + 1)(𝑥2 + 1))2 (𝑥2 + 1)−2/3 exp(𝑥2),

Isto é um produto entre uma função racional, uma algébrica não trivial sobre

Page 170: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 156

Q(𝑥) e uma função exponencial, todas funções hiperexponenciais. Temos

𝑉 = 6𝑥10 − 13𝑥8 + 16𝑥6 + 8𝑥4 + 10𝑥2 − 3

ℎ = 36𝑥20 − 156𝑥18 + 361𝑥16 − 320𝑥14 + 168𝑥12 − 40𝑥10

+ 462𝑥8 + 64𝑥6 + 52𝑥4 − 60𝑥2 + 9

𝑟 = 3𝑥6 + 3𝑥4 + 3𝑥2 + 3

𝑠 = −6𝑥7 + 34𝑥5 + 18𝑥3 + 10𝑥

𝑡 = 18𝑥16 − 21𝑥14 + 27𝑥12 + 51𝑥10 + 63𝑥8 + 93𝑥6 + 45𝑥4

+ 21𝑥2 − 9

𝑚 = 7

𝛿 = −6

𝑒 = 9.

Page 171: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

157 A.1. O Algoritmo de Almkvist-Zeilberger

O sistema induzido pela equação (A.6) é

−3𝑈1 − 9 = 0

10𝑈0 − 6𝑈2 = 0

−9𝑈3 + 7𝑈1 + 21 = 0

12𝑈4 + 4𝑈2 + 18𝑈0 = 0

−15𝑈5 + 𝑈3 + 15𝑈1 + 45 = 0

−18𝑈6 − 2𝑈4 + 12𝑈2 + 34𝑈0 = 0

−21𝑈7 − 5𝑈5 + 9𝑈3 + 31𝑈1 + 93 = 0

−24𝑈8 − 8𝑈6 + 6𝑈4 + 28𝑈2 − 6𝑈0 = 0

−27𝑈9 − 11𝑈7 + 3𝑈5 + 25𝑈3 − 6𝑈1 + 63 = 0

−14𝑈8 + 22𝑈4 − 6𝑈2 = 0

−17𝑈9 − 3𝑈7 + 19𝑈5 − 6𝑈3 + 51 = 0

−𝑈8 + 16𝑈6 − 6𝑈4 = 0

−9𝑈9 + 13𝑈7 − 6𝑈5 + 27 = 0

10𝑈8 − 6𝑈6 = 0

7𝑈9 − 6𝑈7 − 21 = 0

−6𝑈8 = 0

18− 6𝑈9 = 0

cuja solução única é𝑈1 = −3, 𝑈9 = 3

e os demais coeficientes nulos. Portanto, 𝑈 = 3𝑥9 − 3𝑥, donde

∫𝑓 = 3𝑥9 − 3𝑥

6𝑥10 − 13𝑥8 + 16𝑥6 + 8𝑥4 + 10𝑥2 − 3𝑓

= 𝑥3 − 𝑥

(𝑥2 + 1)(𝑥4 + 1)(𝑥2 + 1)−2/3 exp(𝑥2).

Page 172: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 158

Pela equação (A.7), o sistema induzido é

−3𝑈1 − 3 = 0

4𝑈0 − 6𝑈2 = 0

−9𝑈3 + 𝑈1 + 10 = 0

−2𝑈2 + 6𝑈0 = 0

−5𝑈3 + 3𝑈1 + 8 = 0

16𝑈0 = 0

−3𝑈3 + 13𝑈1 + 16 = 0

10𝑈2 − 6𝑈0 = 0

7𝑈3 − 6𝑈1 − 13 = 0

−6𝑈2 = 0

6− 6𝑈3 = 0

cuja solução única é𝑈1 = −1, 𝑈3 = 1

e os demais coeficientes nulos. Portanto, 𝑈 = 𝑥3 − 𝑥, e 𝑟𝑈 = 3𝑥9 − 3𝑥.

A.2 Pseudocódigos e Códigos para o Algoritmode Almkvist-Zeilberger

Apresentamos agora pseudocódigos e códigos para implementação em Maximapara a integração de funções hiperexponenciais via algoritmo de Almkvist-Zeilberger.Os pseudocódigos foram extraídos de [35, Cap. 22, §4].

A.2.1 DenMult

Calcula um polinômio 𝑉 tal que, caso a equação 𝑔 = (𝑢/𝑣)𝑓 , com 𝑔′ = 𝑓 possuasolução no par 𝑢,𝑣, então 𝑉 é um múltiplo de 𝑣.

Pseudocódigo:

Page 173: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

159 A.2. Pseudocódigos e Códigos para o Algoritmo de Almkvist-Zeilberger

1: função DenMult(𝐴,𝐷)2: descrição: Dado um corpo K de característica 0 e 𝐴,𝐷 ∈ K[𝑥] com grau(𝐴) <

grau(𝐷), 𝐷 mônico e coprimo com 𝐴, retorna 𝑉 ∈ K[𝑥], tal que, para quais-quer coprimos 𝑢,𝑣 ∈ K[𝑥], a equação (A.2) implica que 𝑣 divide 𝑉 .

3:4: 𝑅← res𝑥(𝐷,𝐴− 𝑧𝐷′)5: 𝑑← max{𝑖 ∈ N | 𝑖 = 0 ou 𝑅(𝑖) = 0}6: se 𝑑 = 0 então7: devolve 18: fim se9: 𝑎0 ← 𝐴, 𝑏0 ← 𝐷

10: para 𝑖 ← 1 até 𝑑 faça11: 𝐻𝑖 ← mdc(𝑏𝑖−1,𝑎𝑖−1 − 𝑏′

𝑖−1), 𝑎𝑖 ←𝑎𝑖−1 − 𝑏′

𝑖−1𝐻𝑖

, 𝑏𝑖 ←𝑏𝑖−1

𝐻𝑖12: fim para13: devolve 𝐻1𝐻

22 · · ·𝐻𝑑

𝑑

14: fim função

Código:

DenMult(A,D,x):=block([expr,expr2,R,i,%Z,d,k,V,Hi,a,b,Ans],

algebraic:true,expr:A-%Z*diff(D,x),d:0,k:1,V:1,R:SubRes(D,expr,x)[1],R:LFactor(R,%Z,false),if length(R)=1 then(

Ans:1,algebraic:false,return(Ans)

),R:Solve(R,%Z,DomSolve),while (k<=length(R) and lhs(R[k])#0) do(

i:rhs(R[k]),if integerp(i) and d<i then d:i,k:k+1

),if d=0 then(

Ans:V,algebraic:false,return(Ans)

),a:A, b:D,for i:1 thru d do(

expr2:a-diff(b,x),

Page 174: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 160

Hi:GCD(b,a-diff(b,x),x,0,0),a:expr2/Hi, b:b/Hi,V:V*Hi^i

),Ans:V,algebraic:false,return(Ans)

)$

A.2.2 IHF

Algoritmo de Almkvist-Zeilberger. Encontra a integral de uma função hiperexpo-nencial, desde que esta integral seja também uma função hiperexponencial.

Pseudocódigo:

1: função HyperIntegration(𝐴,𝐷)2: descrição: Dado um corpo K de característica 0 e 𝐴,𝐷 ∈ K[𝑥] com grau(𝐴) <

grau(𝐷), 𝐷 mônico e coprimo com 𝐴, retorna 𝑢,𝑣 ∈ K[𝑥], com 𝑣 mônico,satisfazendo (A.2)

3:4: 𝑉 ←DenMult(𝐴,𝐷)5: ℎ← mdc(𝐷𝑉,𝐵𝑉 ′ − 𝐴𝑉 ), 𝑟 ← 𝐷𝑉

ℎ, 𝑠← 𝐷𝑉 ′ − 𝐴𝑉

ℎ, 𝑡← 𝑟𝑉

6: 𝑚← max{grau(𝑟)− 1, grau(𝑠)}7: 𝛿 ← coeficiente(𝑠,𝑥𝑚)8: se grau(𝑟)− 1 < grau(𝑠) ou 𝛿 /∈ N então9: 𝑒← grau(𝑡)−𝑚

10: senão11: se grau(𝑡)−𝑚 = 𝛿 então12: devolve “insolúvel”13: senão14: 𝑒← max{grau(𝑡)−𝑚,𝛿}15: fim se16: fim se17: se 𝑒 < 0 então18: devolve “insolúvel”19: fim se

20: 𝑈 ←𝑒−grau(𝑟)∑

𝑖=0𝑢𝑖𝑥

𝑖

21: 𝐻 ← 𝑉 − 𝑟𝑈 ′ + (𝑠− 𝑟′)𝑈

Page 175: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

161 A.2. Pseudocódigos e Códigos para o Algoritmo de Almkvist-Zeilberger

22: (𝑈0, . . . ,𝑈𝑒−grau(𝑟)) ← solucionador(coeficiente(𝐻,𝑥𝑘) = 0,0 ≤ 𝑘 ≤𝑒− grau(𝑟))

23: se @(𝑈0, . . . ,𝑈𝑒−grau(𝑟)) | 𝐻 = 0 então24: devolve “insolúvel”25: senão26: devolve 𝑟𝑈

mdc(𝑟𝑈,𝑉 ) ,𝑉

mdc(𝑟𝑈,𝑉 )27: fim se28: fim função

Código:

IHF(f,x):=block([A,D,h,r,s,t,m,delta,sigma,

e,U,V,H,eq,listu,u,sol,G,Ans],algebraic:true,eq:[],sigma:ratsimp(diff(f,x)/f),A:num(sigma),D:denom(sigma),if (polynomialp(A,[x]) and polynomialp(D,[x]))=false then

error("not a hyperexponential function."),V:DenMult(A,D,x),h:GCD(D*V,D*diff(V,x)-A*V,x,0,0),r:Group(D*V/h,x),s:Group((D*diff(V,x)-A*V)/h,x),t:Group(r*V,x),m:max(hipow(r,x)-1,hipow(s,x)),delta:coeff(s,x,m),if hipow(r,x)-1<hipow(s,x) or (integerp(delta) and delta>=0)=false then

e:hipow(t,x)-melse if hipow(t,x)-m=delta then(

Ans:"unsolvable",algebraic:false,return(Ans)

)else e:max(hipow(t,x)-m,delta),if e<0 then(

Ans:"unsolvable",algebraic:false,return(Ans)

),U:sum(u[i]*x^(i-1),i,1,e-hipow(r,x)+1),H:Group(V-r*diff(U,x)+(s-diff(r,x))*U,x),for k:0 thru hipow(H,x) do(

eq:endcons(coeff(H,x,k)=0,eq)),listu:makelist(u[i],i,1,e-hipow(r,x)+1),sol:linsolve(eq,listu),

Page 176: Sobre a Integração Indefinida de Funções Racionais ... · universidade federal do rio grande do norte centro de ciÊncias exatas e da terra programa de pÓs-graduaÇÃo em matemÁtica

Apêndice A. Integração de Funções Hiperexponenciais 162

U:sum(rhs(sol[i])*x^(i-1),i,1,length(sol)),if sol=[] then(

Ans:"unsolvable",algebraic:false,return(Ans)

),G:ratsimp(r*U/V),Ans:fullratsimp(G*f),algebraic:false,return(Ans)

)$