Logo Passei Direto
Buscar
Material
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Cálculo Numérico
Uma Introdução às Técnicas Elementares
Waldir L. Roque
Instituto de Matemática
Universidade Federal do Rio Grande do Sul
Este texto é uma versão preliminar.
Direitos autorais reservados ao autor.
Sumário
Prefácio 9
1 ERROS COMPUTACIONAIS 11
1.1 Sistemas de numeração . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.1 Sistema métrico versus sistema de numeração . . . . . . . 13
1.1.2 Base de numeração . . . . . . . . . . . . . . . . . . . . . . 14
1.1.3 Sistema decimal . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.4 Sistema binário . . . . . . . . . . . . . . . . . . . . . . . . 15
Conversão de decimal para binário . . . . . . . . . . . . . 16
Parte inteira . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Parte fracionária . . . . . . . . . . . . . . . . . . . . . . . 17
Algoritmo de conversão binário-decimal . . . . . . . . . . . 19
Algoritmo de conversão decimal-binário . . . . . . . . . . . 20
1.1.5 Outros sistemas de numeração . . . . . . . . . . . . . . . . 20
Sistema octal . . . . . . . . . . . . . . . . . . . . . . . . . 20
Sistema hexadecimal . . . . . . . . . . . . . . . . . . . . . 21
1.2 Sistema de ponto �utuante . . . . . . . . . . . . . . . . . . . . . . 22
1.2.1 Representação em ponto �utuante . . . . . . . . . . . . . . 23
1.2.2 Representação compacta de um número . . . . . . . . . . . 24
1.2.3 Operações aritméticas com ponto �utuante . . . . . . . . . 27
Adição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Multiplicação . . . . . . . . . . . . . . . . . . . . . . . . . 28
Divisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.2.4 Distributividade e associatividade . . . . . . . . . . . . . . 30
1.2.5 Precisão e exatidão de máquina . . . . . . . . . . . . . . . 31
1.3 Tipos de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.1 Erros de dados . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.2 Erros do modelo . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.3 Erros por truncamento . . . . . . . . . . . . . . . . . . . . 32
1.3.4 Erros por arredondamento . . . . . . . . . . . . . . . . . . 33
1.3.5 Erros absoluto e relativo . . . . . . . . . . . . . . . . . . . 35
3
4
1.4 Propagação de erros . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.4.1 Adição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.4.2 Subtração . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.4.3 Multiplicação . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.4.4 Divisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.4.5 Operação geral . . . . . . . . . . . . . . . . . . . . . . . . 39
1.5 Complexidade computacional . . . . . . . . . . . . . . . . . . . . 40
1.6 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 41
2 RESOLUÇÃODE EQUAÇÕES ALGÉBRICAS E TRANSCEN-
DENTAIS 43
2.1 Isolamento de raízes . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2 Equações algébricas . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.3 Valor numérico de um polinômio . . . . . . . . . . . . . . . . . . . 46
2.3.1 Método de Briot-Ru�ni . . . . . . . . . . . . . . . . . . . 46
2.3.2 Método de Horner . . . . . . . . . . . . . . . . . . . . . . 48
2.4 Limites das raízes polinomiais . . . . . . . . . . . . . . . . . . . . 49
2.5 Número de raízes reais . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6 Regra de sinais de Descartes . . . . . . . . . . . . . . . . . . . . . 52
2.6.1 Raízes imaginárias . . . . . . . . . . . . . . . . . . . . . . 53
2.7 Relações de Girard . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8 Equações transcendentais . . . . . . . . . . . . . . . . . . . . . . . 55
2.9 Grau de exatidão de uma raiz . . . . . . . . . . . . . . . . . . . . 56
2.10 Raízes complexas . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.11 Métodos iterativos para re�namento de raízes . . . . . . . . . 59
2.11.1 Método da bisseção . . . . . . . . . . . . . . . . . . . . . . 59
Critério da convergência . . . . . . . . . . . . . . . . . . . 60
2.11.2 Método das cordas ou das secantes . . . . . . . . . . . . . 62
Critério da convergência . . . . . . . . . . . . . . . . . . . 65
2.11.3 Método de Newton-Raphson . . . . . . . . . . . . . . . . . 66
Critério da convergência . . . . . . . . . . . . . . . . . . . 68
2.11.4 Método da iteração linear . . . . . . . . . . . . . . . . . . 68
Critério da convergência . . . . . . . . . . . . . . . . . . . 70
2.12 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 71
3 RESOLUÇÃO DE SISTEMAS DE EQUAÇÕES ALGÉBRI-
CAS 75
3.1 Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.1.1 Sistemas compatíveis . . . . . . . . . . . . . . . . . . . . . 77
3.1.2 Sistemas triangulares . . . . . . . . . . . . . . . . . . . . . 78
3.2 Transformações elementares . . . . . . . . . . . . . . . . . . . . . 79
5
3.3 Solução numérica de sistemas de equações algébricas lineares . . . 79
3.3.1 Métodos diretos . . . . . . . . . . . . . . . . . . . . . . . . 79
Método de Gauss . . . . . . . . . . . . . . . . . . . . . . . 80
Método da pivotização completa . . . . . . . . . . . . . . . 82
Método de Jordan . . . . . . . . . . . . . . . . . . . . . . 84
3.3.2 Re�namento de soluções . . . . . . . . . . . . . . . . . . . 84
3.3.3 Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . 85
Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . 86
Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . 88
Método de Sobre-Relaxação Sucessiva . . . . . . . . . . . . 89
3.4 Sistemas mal-condicionados . . . . . . . . . . . . . . . . . . . . . 89
3.5 Sistemas não lineares . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.5.1 Método do ponto �xo . . . . . . . . . . . . . . . . . . . . . 91
3.5.2 Método de iteração não linear de Seidel . . . . . . . . . . . 96
3.5.3 Método de Newton para sistemas . . . . . . . . . . . . . . 97
3.6 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 100
4 APROXIMAÇÃO DE AUTOVALORES 105
4.1 Autovalores e autovetores . . . . . . . . . . . . . . . . . . . . . . 105
4.1.1 Método da potência . . . . . . . . . . . . . . . . . . . . . . 107
5 INTERPOLAÇÃO 111
5.1 Interpolação linear . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.2 Interpolação quadrática . . . . . . . . . . . . . . . . . . . . . . . . 115
5.3 Existência e unicidade do polinômio interpolador . . . . . . 116
5.4 Interpolação de Lagrange . . . . . . . . . . . . . . . . . . . . . . . 117
5.5 Erros de truncamento . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.5.1 Erro de truncamento na interpolação linear . . . . . . . . . 120
5.5.2 Erro de truncamento na interpolação quadrática . . . . . . 121
5.5.3 Erro de truncamento na interpolação de Lagrange . . . . . 122
5.6 Interpolação de Newton . . . . . . . . . . . . . . . . . . . . . . . 123
5.6.1 Fórmula de Newton para interpolação com diferenças
divididas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.6.2 Comparação dos métodos de Newton e Lagrange . . . . . . 127
5.7 Interpolação com diferenças �nitas . . . . . . . . . . . . . . . . . 129
5.8 Interpolação por Splines . . . . . . . . . . . . . . . . . . . . . . . 130
5.8.1 Spline linear . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.8.2 Spline cúbica . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.9 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 137
6
6 AJUSTE DE CURVAS 139
6.1 Critérios para medida da qualidade dos ajustes . . . . . . . . 140
6.2 Método dos mínimos quadrados . . . . . . . . . . . . . . . . . . . 141
6.3 Ajuste polinomial .. . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.3.1 Ajuste por uma reta . . . . . . . . . . . . . . . . . . . . . 144
6.3.2 Ajuste polinomial quadrático . . . . . . . . . . . . . . . . 146
6.3.3 Ajuste polinomial geral . . . . . . . . . . . . . . . . . . . . 148
6.4 Ajuste não linear . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.4.1 Casos redutíveis ao linear . . . . . . . . . . . . . . . . . . 149
6.5 Coe�ciente de determinação . . . . . . . . . . . . . . . . . . . . . 151
6.6 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 151
7 MÉTODOS DE DERIVAÇÃO NUMÉRICA 153
7.1 Aproximação da derivada por diferenças . . . . . . . . . . . . . . 153
7.2 Aproximação por polinômios interpoladores . . . . . . . . . . . . 155
7.3 Derivadas de ordem superior . . . . . . . . . . . . . . . . . . . . . 158
7.4 Extrapolação de Richardson . . . . . . . . . . . . . . . . . . . . . 159
7.5 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 160
8 MÉTODOS DE INTEGRAÇÃO NUMÉRICA 163
8.1 Regra dos trapézios . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.1.1 Erro de truncamento . . . . . . . . . . . . . . . . . . . . . 166
8.1.2 Fórmula composta dos trapézios . . . . . . . . . . . . . . . 167
8.2 Regras de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . 168
8.2.1 Primeira regra de Simpson . . . . . . . . . . . . . . . . . . 168
8.2.2 Primeira regra de Simpson composta . . . . . . . . . . . . 170
8.2.3 Segunda regra de Simpson . . . . . . . . . . . . . . . . . . 171
8.2.4 Segunda regra de Simpson composta . . . . . . . . . . . . 172
8.3 Quadratura Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . 173
8.3.1 Quadratura Gaussiana com n = 1 . . . . . . . . . . . . . . 174
8.3.2 Quadratura gaussiana para n = 2 . . . . . . . . . . . . . . 176
8.3.3 Procedimento geral . . . . . . . . . . . . . . . . . . . . . . 177
8.3.4 Erro de truncamento . . . . . . . . . . . . . . . . . . . . . 178
8.4 Integrais impróprias . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.5 Integrais múltiplas . . . . . . . . . . . . . . . . . . . . . . . . . . 180
8.5.1 Aplicando a primeira regra de Simpson composta . . . . . 180
8.5.2 Aplicando a quadratura Gaussiana . . . . . . . . . . . . . 186
8.6 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 189
7
9 RESOLUÇÃO NUMÉRICA DE EDO'S 191
9.1 Resolução do problema do valor inicial . . . . . . . . . . . . . . . 192
9.1.1 Método da série de Taylor . . . . . . . . . . . . . . . . . . 192
9.1.2 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . 195
Erros no método de Euler . . . . . . . . . . . . . . . . . . 197
9.1.3 Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . 198
Método de Heun . . . . . . . . . . . . . . . . . . . . . . . 198
Método clássico de Runge-Kutta . . . . . . . . . . . . . . 199
9.2 Métodos de passos múltiplos . . . . . . . . . . . . . . . . . . . . . 201
9.2.1 Método trapezoidal . . . . . . . . . . . . . . . . . . . . . . 201
9.2.2 Método de Simpson . . . . . . . . . . . . . . . . . . . . . . 204
9.2.3 Método de Adams-Basforth-Multon . . . . . . . . . . . . . 204
9.3 Equações de ordens superiores . . . . . . . . . . . . . . . . . . . . 205
9.4 Problema do valor de fronteira . . . . . . . . . . . . . . . . . . . . 210
9.5 Exercícios propostos . . . . . . . . . . . . . . . . . . . . . . . . . 213
Bibliogra�a 215
Índice remissivo 217
8
Prefácio
Este livro é o resultado da compilação das notas de aula do autor, as quais
foram utilizadas para ministrar a disciplina de cálculo numérico em cursos de
graduação nas áreas de ciências exatas e engenharias. A proposta deste livro é
apresentar um material introdutório sobre técnicas de cálculo numérico. Como
um texto introdutório, evitamos a apresentação demasiada de demonstrações de
muitos dos resultados mencionados nos teoremas, o quais poderão ser facilmente
pesquisados em textos mais avançados sobre o assunto. Os prerequisitos básicos
para que o estudante possa estudar por este livro, sem maiores di�culdades, são
um curso introdutório de cálculo diferencial e integral, álgebra linear e noções de
computação.
O conteúdo coberto por este livro é su�ciente para satisfazer os requisitos de
um primeiro curso de cálculo numérico para as áreas de ciências exatas e enge-
nharias, podendo ser particularmente útil como suporte àquelas disciplinas de
noções de cálculo numérico oferecidas para cursos de graduação de outras áreas, as
quais tratam apenas de alguns dos tópicos abordados no livro. Ao longo do texto,
vários exemplos são apresentados como ilustração do uso da técnica discutida.
Ao �nal de cada capítulo exemplos e exercícios adicionais são apresentados e
propostos. Deste modo, o livro pode ser utilizado pelos estudantes como se fosse
as suas próprias notas de aula.
Escrever um texto sobre uma disciplina básica havendo inúmeros outros tex-
tos já escritos sobre o assunto, nos leva, muitas vezes, a utilizar alguns exemplos
ilustrativos, que pela sua riqueza, já o foram abordados de forma semelhante
em outros livros. Como a idéia aqui é sempre ilustrar a aplicação dos métodos
com exemplos, a consulta, adicionalmente, a exemplos e exercícios apresentados
e propostos em outros livros é importante para enriquecer o aprendizado e a utili-
zação dos métodos. Isto permite ao estudante uma maior �exibilidade em leituras
complementares, uma vez que a consulta a outros livros amplia o conhecimento.
Em muitas instituições de ensino superior do país, os cursos de cálculo nu-
mérico nem sempre são ministrados com auxílio de recursos computacionais, em
virtude da ausência de equipamentos e software. Por um lado a utilização inte-
grada por ser útil, porém muitas vezes há uma grande enfase no aprendizado dos
softwares em detrimento do essencial que são as técnicas propriamente ditas. Hoje
9
10
em dia grande parte dos estudantes possuem calculadoras e computadores portá-
teis ou mesmo são disponibilizados em laboratórios nas instituições de ensino, o
que amplia enormemente a possibilidade de realização de exercícios demandando
uma maior experiência computacional. Muitos softwares para computação numé-
rica ou mesmo integrados com computação algébrica e grá�ca estão disponíveis
tanto comercialmente quanto de domínio público, com uma capacidade enorme
de cálculo. Deste modo, este livro está muito mais direcionado ao ensino das
técnicas do que às suas implementações computacionais.
Uma bibliogra�a complementar é apresentada no �nal do livro, onde os textos
citados foram escolhidos com os compromissos de qualidade e acessibilidade, já
que a maioria pode ser facilmente encontrada nas bibliotecas, livrarias ou mesmo
na internet. Há vários outros bons livros-textos de cálculo numérico que não foram
citados na bibliogra�a e que poderão também ser consultados pelos estudantes.
Waldir L. Roque, fevereiro de 2013.
Capítulo 1
ERROS COMPUTACIONAIS
A observação dos fenômenos da natureza é uma grande fonte de inspiração
para os pesquisadores. A necessidade de conhecer como e quais são os mecanis-
mos associados aos fenômenos da natureza delimitam um conjunto de informa-
ções conceituais que dão origem a um problema que, comumente, denominamos
de problema físico. O caminho mais imediato e natural para tratarmos e compre-
endermos um problema físico é procurando caracterizá-lo e descrevê-lo por meio
de um modelo, que em muitas áreas utiliza a matemática como instrumento e
linguagem para tal �nalidade.
Os modelos matemáticos empregam métodos e técnicas que envolvem, no sen-
tido mais amplo, a resolução de equações, cujas soluções subsidiam a comparação
dos resultados, por meio de experimentos e/ouobservações, com o fenômeno in-
vestigado. Na prática, dizemos que um modelo é tanto mais adequado à descrição
do fenômeno quanto menor for o desvio da solução do problema físico com relação
ao mundo observável. A Figura 1.1 ilustra a cadeia da pesquisa cientí�ca.
Matemática aplicada e computacional é uma área que atua muito fortemente
nos vários segmentos da investigação cientí�ca. Particularmente, tem um pa-
pel importante na modelagem e resolução dos problemas físicos. A computação
tornou-se uma grande aliada nessas etapas, permitindo que a resolução de equa-
ções não triviais, e que requerem grande número de cálculos, possam ser realizadas
com mais rapidez e e�ciência.
A construção de um modelo para um problema físico não é uma tarefa trivial,
especialmente quando se deseja levar em consideração muitos detalhes. Portanto,
diversas vezes modelos simpli�cados são utilizados, proporcionando uma visão
geral do sistema físico em análise, sem contudo ser completo. Os modelos mais
simples, por não levarem em consideração algumas variáveis importantes, produ-
zem erros inerentes, exclusivamente, devido ao modelo adotado.
Um exemplo ilustrativo de erros gerados pela escolha do modelo pode ser visto
no caso do movimento de um corpo sujeito a uma aceleração constante. Nesse
12 cálculo numérico
Figura 1.1: Cadeia da pesquisa cientí�ca.
sistema físico, o modelo pode ser de tal forma que a equação do movimento é
dada por:
S = s0 + v0t+
1
2
at2,
onde S é o espaço percorrido pelo corpo, partindo de uma posição inicial s0 com
velocidade v0 e aceleração a, e t indica o tempo de movimento do objeto.
Suponha que desejamos determinar a altura de um penhasco, utilizando esse
modelo. Se largarmos uma esfera de aço do alto do penhasco, sua velocidade
inicial é nula, v0 = 0. Observando que a esfera levou um tempo t = 5 segundos
para atingir o solo, e que a aceleração que atua sobre a esfera é a da gravidade,
que podemos considerar como g = 9, 8m/s2, usando a equação anterior, tem-se:
S = 0 + 0× 5 + 1
2
× 9.8× 52 = 122, 5m.
À primeira vista, podemos achar que esse resultado é con�ável. De certa
forma, é razoável, dependendo da exatidão exigida. No entanto, o modelo ado-
erros computacionais 13
tado pode ser muito mais re�nado, se considerarmos alguns aspectos importantes
que interferem sobre o sistema, como: (i) resistência do ar sobre a esfera, (ii)
velocidade e direção do vento, e (iii) constante gravitacional. Assim, um novo
modelo, mais so�sticado, pode ser construído, resultando em um modelo mais
próximo da realidade do problema físico.
Muitas vezes, os modelos conduzem a um conjunto de equações (algébricas,
diferenciais ordinárias ou parciais não lineares, tensoriais, etc.) cuja solução é
obtida quando tais equações são resolvidas. Na fase de resolução, as equações
que descrevem o modelo do sistema físico nem sempre podem ser resolvidas de
forma exata, e, portanto, há a necessidade da utilização de métodos numéricos e
aproximações de funções, o que conduz a erros.
Por �m, a própria medida realizada com aparelhos mecânicos ou eletrônicos
apresenta erros em suas medições. Dessa forma, vemos que há muitas etapas no
processo de investigação de um problema físico que são passíveis de gerar erros.
Neste capítulo, estaremos interessados particularmente nos erros que surgem
na fase de resolução do problema. Vamos considerar inicialmente os erros que
surgem devido ao sistema de numeração adotado. Para isso, apresentaremos
algumas noções sobre os principais sistemas de numeração.
1.1 Sistemas de numeração
1.1.1 Sistema métrico versus sistema de numeração
Quando perguntamos a altura de uma pessoa é comum simplesmente ouvirmos
um número, por exemplo, 1, 72, que imediatamente assumimos como sendo 1
metro de 72 centimetros. O mesmo ocorre para o peso, 65, que já admitimos
como sendo em quilogramas. Aqui temos duas noções postas juntas, um valor
numérico 1, 72 e uma indicação do sistema de unidades. Como aprendemos desde
a infância o Sistema Métrico Internacional (SI), adotado pelo Brasil e por muitos
países, temos uma sensação bastante clara do que signi�ca 1, 72m ou mesmo 65kg.
Se perguntassemos a uma pessoa na Inglaterra qual a sua altura poderíamos ouvir
algo como 5, 6 pés. Neste caso, notamos imedatamente que temos a noção do que
5, 6 signi�ca, no entanto não temos a sensibilidade do que signi�ca esta medida
em pés. Para isso, temos que procurar uma conversor de sistema de unidades para
converter pés em metros. O mesmo acontece com peso, dado em libras, ou outras
medidas como a temperatura que fomos acostumados com graus centigrados e
não em Farenheit. Porém, em qualquer um dos casos, temos a noção clara do
valor numérico atribuido à quantidade.
Deixando o sistema de unidades à parte, o valor numérico é conhecido já
que estamos igualmente empregando o sistema de numeração decimal, ou seja
a base escolhida é 10, com os algarísmos sendo representados pelos simbolos
14 cálculo numérico
0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Observe que a escolha dos simbolos para representar os
elementos que compõem a base do sistema decimal são arbitrários, podendo ser
completamente diferentes. Assumindo que os elementos da base são estes, os
números em decimal são construídos a partir dos elementos da base.
Os sistemas de numeração estão divididos em sistemas posicionais e não
posicionais . Nos sistemas posicionais, a posição ocupada pelos algarismos que
formam o número é importante e tem um signi�cado especí�co. Por exemplo, no
sistema decimal, o número 127, 5 informa-nos que o algarismo 7 corresponde à
quantidade de unidades; o algarismo 2 informa o número de dezenas; o algarismo
1, a quantidade de centenas; e o algarismo 5, a parte fracionária referente aos
décimos. Assim, a posição de cada algarismo na constituição do número possui
um signi�cado próprio.
Nos sistemas não posicionais, a posição ocupada pelos algarismos não tem um
signi�cado próprio. Um exemplo de sistema não posicional é o sistema romano de
numeração. Nesse sistema, temos a unidade representada pela letra I, que ocupa
uma posição; o número dois é representado por II, que ocupa duas posições; o
número três, por III, ocupando três posições; mas o número quatro é represen-
tado por apenas dois algarismos, da forma IV , com duas posições, e o cinco, por
V , que possui apenas um algarismo que ocupa uma única posição. Dessa forma,
vemos que a posição não é um indicador do valor do número, já que todos estes
se refere a unidades.
Neste livro, trataremos apenas dos sistemas de numeração que são posicionais.
1.1.2 Base de numeração
Seja β um número natural, com β ≥ 2. Um número real r pode ser represen-
tado em qualquer base de numeração β, escrito da forma:
rβ = (±dndn−1 . . . d2d1d0, d−1d−2 . . . d−m)β, (1.1)
onde os di são dígitos inteiros que pertencem à base β, ou seja, são valores entre
0 e β − 1.
O valor númerico em decimal do número real escrito em (1.1) é dado por
dnβ
n + dn−1βn−1 + · · ·+ d1β1 + d0β0
+d−1β−1 + d−2β−2 + · · ·+ d−mβ−m. (1.2)
1.1.3 Sistema decimal
O sistema de numeração decimal é um sistema posicional adotado internacio-
nalmente para expressar medidas do cotidiano. Não devemos confundir o sistema
erros computacionais 15
de numeração com o sistema métrico. O sistema de numeração informa-nos sobre
o valor da quantidade, sua magnitude, enquanto o sistema métrico informa-nos
sobre a unidade de referência da medida.
O sistema decimal é formado pelos números inteiros da base β = {0, 1, 2, 3, 4, 5,
6, 7, 8, 9}. A partir dessa base, que denotaremos β10, todos os números podem ser
expressos neste sistema.
De�nição 1.1 Um número no sistema decimal é formado a partir da expressão
an10
n + · · ·+ a2102 + a1101 + a0100 + a−110−1 + a−210−2 + · · ·+ a−m10−m,
onden,m são números inteiros e os ai são elementos da base decimal.
Exemplo 1.1 O número 127, 5 é escrito como:
1× 102 + 2× 101 + 7× 100 + 5× 10−1.
A aritmética dos números no sistema decimal é conhecida e não vamos tratá-
la aqui. As operações são a adição e subtração (+,−) e a multiplicação e divisão
(×,÷).
1.1.4 Sistema binário
O sistema de numeração posicional cuja base é composta pelos dois algarismos,
β2 = {0, 1}, é chamado de sistema binário de numeração. Nesse sistema, qualquer
número pode ser expresso por uma combinação de zeros e uns, de tal forma que
seu valor numérico em decimal é obtido por meio da expressão dada na de�nição
a seguir:
De�nição 1.2 O valor numérico em decimal de um número expresso no sistema
binário é obtido tomando-se
an2
n + · · ·+ a222 + a121 + a020 + a−12−1 + a−22−2 + · · ·+ a−m2−m,
onde n,m são números inteiros e os ai são elementos da base binária.
É fácil vermos que os números binários {0, 1, 10, 11, 100, 101, 110} correspon-
dem, respectivamente, em decimal aos números {0, 1, 2, 3, 4, 5, 6}. O número bi-
nário 1101, 01 corresponde ao valor em decimal dado por:
1× 23 + 1× 22 + 0× 21 + 1× 20 + 0× 2−1 + 1× 2−2,
que equivale a 13, 25.
16 cálculo numérico
Exercício 1.1 Quais os valores, em decimal, dos números binários 11011 e
101010?
A representação dos números por meio do sistema binário tornou-se muito
importante com o advento da computação. A razão para isso é bastante simples.
Nesse sistema, todos os números podem ser representados por combinações de
apenas dois algarismos. Por outro lado, muitos conceitos da Física podem ser
representados de forma binária, como, por exemplo, a carga elétrica, positiva ou
negativa; a polarização de um meio magnético, que pode estar ou não polarizado
etc.
Outra vantagem de se representarem os números em binário é que as operações
de adição e multiplicação requerem poucas regras para manipulação. As tabelas
de adição e multiplicação são extremamente simples.
0 + 0 = 0, 0× 0 = 0,
0 + 1 = 1, 0× 1 = 0,
1 + 0 = 1, 1× 0 = 0,
1 + 1 = 10, 1× 1 = 1.
Conversão de decimal para binário
A relação da de�nição 1.2 dá-nos um mecanismo para obtermos o valor decimal
de um número binário. No entanto, precisamos também conhecer como obter o
correspondente número em binário a partir do número em decimal.
O processo de passagem do número em decimal para binário é feito em duas
etapas:
1. Parte inteira;
2. Parte fracionária.
Parte inteira
O método das divisões sucessivas é utilizado para obtenção do correspondente
valor em binário, partindo-se da parte inteira de um número escrito em decimal.
Considerando a parte inteira de um número N em decimal, dividimos este número
por dois; em seguida, o resultado da divisão é novamente dividido por dois, se-
guindo esse procedimento sucessivas vezes até que o quociente 1 seja encontrado.
O número expresso em binário é obtido tomando-se a concatenação do último
quociente com os restos das divisões, lendo-se no sentido inverso ao que foram
obtidos. Esse procedimento é ilustrado na Figura 1.2.
erros computacionais 17
Figura 1.2: Conversão da parte inteira: decimal para binário.
O número Nβ=10 em binário é construído da forma:
Nβ=2 = 1rnrn−1 · · · r3r2r1. (1.3)
Exemplo 1.2 O número 18 é representado na base binária da forma:
18 b2
0 9 b2
1 4 b2
0 2 b2
0 1
Portanto, seguindo o procedimento de concatenação, obtemos
18β=10 = 10010β=2.
Exercício 1.2 Encontre a representação binária para os 20 primeiros números
inteiros em decimal.
Parte fracionária
A parte fracionária de um número em decimal é obtida em binário por meio
da aplicação do método das multiplicações sucessivas. Nesse caso, devemos con-
siderar a parte fracionária do número; então:
1. multiplicamos o número fracionário por dois;
2. do resultado, a parte inteira será considerada o primeiro dígito da represen-
tação do número em binário. A parte fracionária é novamente multiplicada
por dois;
18 cálculo numérico
3. o procedimento continua sucessivamente até obtermos que a parte fracio-
nária do último produto seja igual a zero;
4. em algumas ocasiões, os termos da multiplicação passam a repetir-se, ocor-
rendo um ciclo. Nesses casos, a representação é periódica.
Vejamos os seguintes exemplos de aplicação para a parte fracionária.
Exemplo 1.3 Considere a parte fracionária de um número em decimal dada por
0, 1875. A aplicação no método das divisões sucessivas é vista a seguir:
0, 1875× 2 = 0, 3750,
0, 3750× 2 = 0, 7500,
0, 7500× 2 = 1, 5000,
0, 5000× 2 = 1, 0000.
Assim, a representação do número em binário é dada por:
0, 1875β=10 = 0, 0011β=2.
Vejamos agora o seguinte caso. O número fracionário em decimal é dado por
0, 6. Aplicando o método, temos:
0, 6× 2 = 1, 2,
0, 2× 2 = 0, 4,
0, 4× 2 = 0, 8,
0, 8× 2 = 1, 6,
0, 6× 2 = 1, 2,
.
.
.
Vemos que o processo possui um ciclo. A representação em binário é dada por:
0, 6β=10 = 0, 10011001 . . .β=2 ,
que é periódica binária.
Exercício 1.3 Determine a representação binária para o número 13, 25β=10. Su-
gestão: considere as partes inteira e fracionárias separadamente e, no �nal, a re-
presentação será dada pela parte inteira, em binário,seguida da parte fracionária
em binário, separadas por uma vírgula.
erros computacionais 19
Embora o sistema binário tenha uma série de vantagens para utilização em
sistemas digitais, também apresenta algumas desvantagens. Uma desvantagem
de representarmos os números decimais em binário é que a representação binária
requer um número maior de bites para representação. Em outras palavras, requer
mais espaço físico para armazenar o mesmo número.
Suponha que temos o número em binário
1 000 000 000 000β=2 ≡ 212 = 4096β=10.
Vemos que são necessários cerca de 13 dígitos binários para representarmos o
número equivalente em decimal, o qual é escrito com apenas quatro dígitos.
Em geral, podemos estabelecer a relação entre o número de dígitos, pois
2N = 10N log10 2 = 100,3N ,
onde N corresponde ao número de dígitos na representação binária. Logo, um
número em binário requer aproximadamente 0, 3N dígitos em decimais, que se
re�ete na maior necessidade de memória física dos computadores.
Algoritmo de conversão binário-decimal
Seja N = (anan−1 . . . a1a0)β=2 um inteiro binário. Para determinarmos N na
forma decimal, tomamos o seguinte procedimento:
bn = an
bn−1 = an−1 + 2bn
bn−2 = an−2 + 2bn−1
.
.
. =
.
.
.
b1 = a1 + 2b2
b0 = a0 + 2b1,
onde b0 corresponde ao número N na forma decimal.
Exemplo 1.4 Seja o número 1101β=2. Identi�cando os termos, temos:
a0 = 1, a1 = 0, a2 = 1, a3 = 1.
Agora,
b3 = a3 = 1
b2 = a2 + 2b3 = 1 + 2× 1 = 3
b1 = a1 + 2b2 = 0 + 2× 3 = 6
b0 = a0 + 2b1 = 1 + 2× 6 = 13.
Logo, temos a correspondência 1101β=2 = 13β=10.
20 cálculo numérico
Algoritmo de conversão decimal-binário
Seja N um número inteiro positivo em decimal. Para determinarmos sua
representação binária (anan−1 . . . a1a0)β=2, tomamos o seguinte procedimento:
b0 = N,
b1 =
b0 − a0
2
,
b2 =
b1 − a1
2
,
.
.
.
.
.
.
bk =
bk−1 − ak−1
2
,
onde ak = 1, se bk é um número ímpar; ou ak = 0, se bk é um número par. O
procedimento termina quando obtemos bk = 0. O valor em binário é obtido pela
concatenação retroativa dos valores obtidos para os ak.
Exemplo 1.5 Seja o número 187β=10. Aplicando o algoritmo, temos:
k 0 1 2 3 4 5 6 7
bk 187 93 46 23 11 5 2 1
ak 1 1 0 1 1 1 0 1
Então: 187β=10 = 10111011β=2.
1.1.5 Outros sistemas de numeração
Outros sistemas de numeração que têm sido empregados em computação são
os sistemas octal e o hexadecimal.
Sistema octal
O sistema de numeracão octal possui a base formada pelos oito dígitos inteiros
β8 = {0, 1, 2, 3, 4, 5, 6, 7}.
A conversão dosistema octal para o sistema decimal ocorre de forma seme-
lhante à apresentada para os binários. Portanto, um número em octal é convertido
para decimal usando a relação:
an8
n + · · ·+ a282 + a181 + a080 + a−18−1 + a−28−2 + · · ·+ a−m8−m,
onde os ai são dígitos pertencentes à base octal.
erros computacionais 21
Exemplo 1.6 Seja o número em octal 7634, 152β=8. O valor correspondente em
decimal é
7× 83 + 6× 82 + 3× 81 + 4× 80 + 1× 8−1 + 5× 8−2 + 2× 8−3
≈ 3996, 207031β=10.
Observe que 8 = 23; portanto, cada algarismo da base octal requer três alga-
rismos da base binária para a conversão octal-binário. A tabela de conversão da
base octal-binário é dada por:
Octal 0 1 2 3 4 5 6 7
Bina´rio 000 001 010 011 100 101 110 111
Utilizando essa relação de grupo para conversão dos algarismos na base octal
pelos correspondentes na base binária, a conversão torna-se bastante simples.
O octal 7634, 152β=8 ≡ 111 110 011 100, 001 101 010β=2, pois, lembrando que os
sistemas são posicionais, podemos substituir para cada posição do algarismo octal
seu correspondente agrupamento em binário. Assim, no caso do algarismo 7,
temos:
7 ≡ 7× 83 ≡ 7× 29 ≡ (1× 22 + 1× 21 + 1× 20)× 29
≡ 1× 211 + 1× 210 + 1× 29 ≡ 111 · · ·
A conversão de binário para octal ocorre de maneira inversa. Basta consi-
derarmos agrupamentos de três dígitos binários, a partir da vírgula, e substituir
pelo correspondente algarismo da base octal.
Exemplo 1.7 Conversão do binário 11011, 10111 para octal. Formando os gru-
pos, temos:
011︸︷︷︸ 011︸︷︷︸ , 101︸︷︷︸ 110︸︷︷︸
3 3 , 5 6
Assim, 11011, 10111β=2 = 33, 56β=8.
Sistema hexadecimal
O sistema hexadecimal é formado por uma base que contém 16 elementos, os
quais são:
β16 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B,C,D,E, F}.
A conversão entre hexadecimal e decimal é imediata, usando
an16
n + · · ·+ a2162 + a1161 + a0160 + a−116−1 + a−216−2 + · · ·+ a−m16−m,
onde n,m são números inteiros e os ai são elementos da base hexadecimal.
22 cálculo numérico
Exemplo 1.8 Converta o número 6AC,E9β=16 para decimal. Tomando a relação
de conversão, obtemos:
6× 162 + 10× 161 + 12× 160 + 14× 16−1 + 9× 16−2 ≈ 1708, 910156
A conversão de hexadecimal para binário segue o mesmo raciocínio usado entre
octal e binário. Observe que 16 = 24; assim, cada algarismo em hexadecimal
corresponde a um agrupamento de 4 algarismos binários.
Exercício 1.4 Construa a tabela de conversão dos algarismos da base hexade-
cimal para binário. Em seguida, converta o número 76EA, 0Dβ=16 para binário.
Qual o valor em hexadecimal do número
101111.0110111β=2?
1.2 Sistema de ponto �utuante
Nos computadores, o processamento da informação é realizado em quantidades
�xas, tendo como base uma unidade-padrão. Essa unidade recebe o nome de pa-
lavra, e o número de dígitos que compõe uma palavra é chamado de comprimento
da palavra do computador. Atualmente, os computadores utilizam diferentes
arquiteturas, que empregam palavras de comprimentos distintos. Os microcom-
putadores utilizam uma palavra de comprimento 16 bites (dígitos binários), as
estações de trabalho usam uma palavra de 32 bites e os supercomputadores usam
palavras de comprimento 64 bites, para a representação dos números reais.
Em um computador, apenas uma quantidade �nita de números pode ser re-
presentada. Os números inteiros podem ser representados de forma exata, desde
que o comprimento da palavra seja su�ciente para o armazenamento de todos os
seus dígitos.
Por outro lado, os números reais não são completamente representados no
computador. Dessa forma, erros surgem, em virtude da conversão numérica de
um sistema de numeração para outro, em particular, de decimal para binário,
como já vimos, ou mesmo devido a arredondamentos, em virtude do comprimento
�nito da palavra do computador.
As primeiras arquiteturas de computador empregavam uma representação dos
números chamada de representação de ponto �xo, em que, para cada operação, o
usuário tinha que especi�car quantos dígitos deveriam ser usados em uma palavra,
para representar as partes inteiras e fracionárias de um número real. Um dos
problemas dessa arquitetura é a representação simultânea de números grandes e
pequenos nesse sistema.
erros computacionais 23
Por exemplo, se tivermos um computador cujo comprimento da palavra é sete
bites, e usarmos quatro dígitos para a parte inteira e três para a parte fracioná-
ria, o maior número representado por esse computador no sistema decimal será
9999, 999, e o menor, 0000, 001, respectivamente.
Para possibilitar maior representatividade dos números, esse problema foi me-
lhorado por meio da representação em ponto �utuante.
1.2.1 Representação em ponto �utuante
A representação dos números em ponto �utuante permite expressarmos um
número real r na base β em uma forma canônica, como:
r = ±0, d1d2 . . . dt × βe
= ±
(
d1
β1
+
d2
β2
+ · · ·+ dt
βt
)
× βe, (1.4)
onde β é a base do sistema de numeração adotado, e é o expoente da base, tal
que I ≤ e ≤ S, e ∈ Z, com I o limite inferior e S o limite superior para a variação
do expoente.
De�nição 1.3 Os dígitos d1d2 . . . dt formam a mantissa do número e represen-
tam seus dígitos signi�cativos.
Cada elemento di da mantissa é um símbolo da base β do sistema de numera-
ção. Chamando de q = ± 0.d1 . . . dt a mantissa de um número, é fácil veri�carmos
que o valor da mantissa q é limitado.
De�nição 1.4 Um número r na representação de ponto �utuante é dito norma-
lizado quando o dígito d1 de sua mantissa é tal que d1 6= 0.
De�nição 1.5 O número t de dígitos signi�cativos do sistema de ponto �utuante
corresponde à precisão da máquina.
Exemplo 1.9 Seja a base decimal β = 10. O número r = 25, 87 é representado
em ponto �utuante normalizado como:
0, 2587 =
(
2
10
+
5
102
+
8
103
+
9
104
)
× 102.
O número 5β=10 é representado em binário na representação de ponto �utuante
com
101β=2 = 0, 101× 23 =
(
1
2
+
0
22
+
1
23
)
× 23.
24 cálculo numérico
Tabela 1.1: Exemplos de sistemas de ponto �utuante.
F (β, t, I, S) β t I S
Padrão IEEE 2 23 −126 127
IBM 3090 16 5 −65 62
CRAY X-MP 2 47 −16385 8190
De�nição 1.6 O número zero em ponto �utuante é representado por
0β = 0, 000 . . . 0t × βI.
A união de todos os números em ponto �utuante, incluindo o zero, é denomi-
nada de sistema de ponto �utuante da máquina e denotado por F (β, t, I, S).
Na Tabela 1.1, são apresentados os sistemas de ponto �utuante para algumas
máquinas.
Em muitas linguagens de programação, como Fortran, é possível operar
com uma representação de ponto �utuante com precisão dupla. Nesse caso, o
sistema é implementado de tal forma que a máquina passa a utilizar duas palavras
para armazenar um número, permitindo maior precisão e um intervalo maior de
representatividade dos números. De forma geral, as máquinas possuem precisão
simples implementada em hardware, enquanto a precisão dupla é implementada
via software.
Atualmente, há vários sistemas computacionais disponíveis, tanto para cál-
culo numérico especi�camente quanto para cálculo simbólico e algébrico, além
de possuirem facilidades grá�cas. Dentre os sistemas para cálculo numérico o
MATLAB
R©
é um excelente sistema comercial, porém o SCILAB é um sistema
aberto alternativo de excelente qualidade (http://www.scilab.org/). Os sistemas
de computação algébrica (SCA), são capazes de realizar cálculos simbolicamente
e com precisão arbitrária, porém na prática a precisão torna-se �nita devido às
limitações impostas pelo próprio hardware da máquina. Exemplos de tais SCA
comerciais são MAPLE
R©
e MATHEMATICA
R©
; enquanto o MAXIMA é livre
e pode facilmente ser baixado da internet (http://maxima.sourceforge.net/).
1.2.2 Representação compacta de um númeroVamos supor que temos um sistema de ponto �utuante dado por F (2, 10,−15,
15). O número inteiro 19 é escrito nesse sistema como:
19β=10 = 10011β=2 = 0, 10011× 25 = 0, 10011× 2101
=
(
1
2
+
0
22
+
0
23
+
1
24
+
1
25
+
0
26
+
0
27
+
0
28
+
0
29
+
0
210
)
× 2101.
erros computacionais 25
Observando as expressões anteriores, uma representação compacta pode ser
escrita para o número 19. Vemos que podemos tomar a seguinte notação
1 0 0 1 1 0 0 0 0 0 0 1 0 1
Os 10 primeiros algarismos correspondem à mantissa do número e os quatro
últimos, após as duas barras, correspondem aos bites necessários para a repre-
sentação binária dos números do expoente, que estão no intervalo I ≤ e ≤ S.
Vemos que essa notação é su�ciente para expressar um número positivo cujo
expoente também é positivo. Para podermos representar, por intermédio dessa
mesma notação, qualquer número nesse sistema de ponto �utuante, devemos
incluir ainda duas caixas, ou dois bites, para incluirmos os sinais do número e
do expoente. Dessa forma, teremos:
0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1
Na notação estendida, temos o primeiro bite para representar o sinal do nú-
mero; se positivo, o dígito é 0; se negativo, o dígito é 1. Na posição 12 da notação,
é acrescentado um bite para representar o sinal do expoente. Assim, temos aqui
um sistema formado por uma palavra de 16 bites.
Supondo ainda o mesmo sistema de ponto �utuante e considerando apenas a
notação compacta, podemos perguntar quais seriam o menor e o maior valores
numéricos, em termos absolutos, representáveis nesse sistema.
As respostas podem ser facilmente encontradas, observando que o maior valor
numérico é dado por:
0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
De outra forma, esse número corresponde a
0, 1111111111× 21111 =
10∑
k=1
1
2k
× 215 = 32736β=10.
Como o menor número negativo é obtido nesse caso tomando-se o simétrico,
já que o valor mínimo do expoente é I = −15, temos, então, −32736β=10.
Por outro lado, o menor número representável em valor absoluto é dado por:
0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1
Logo, o primeiro número positivo nesse sistema corresponde a
0, 1× 2−1111 = 1
2
× 2−15 = 0, 0000152587β=10.
26 cálculo numérico
O primeiro número negativo representável no sistema é
−0, 0000152587β=10.
Por meio desses exemplos, vemos que os números são representados de forma
discreta em um sistema de ponto �utuante. Observamos ainda que, para o sistema
em questão, F (2, 10,−15, 15), o intervalo onde estão representados os números,
incluindo o zero, é [−32736, 32736].
As regiões compreendidas além desses valores formam o que se chama de região
de over�ow, isto é, os intervalos
(−∞,−32736) ∪ (32736,+∞).
As regiões compreendidas entre o zero e o primeiro número positivo ou nega-
tivo são chamadas de regiões de under�ow, ou seja,
(−0, 0000152587; 0) ∪ (0; 0, 0000152587).
De forma geral, para um sistema de ponto �utuante normalizado F (β,
t, I, S), o menor número em valor absoluto é determinado por:
m = 0, 1× βI , (1.5)
e o maior número representável é determinado por:
M = 0, (β − 1)(β − 1) . . . (β − 1)× βS. (1.6)
É possível mostrar que a quantidade de números que são representáveis expli-
citamente por um sistema de ponto �utuante qualquer é dado pela relação
N = 2(S − I + 1)(β − 1)βt−1 + 1. (1.7)
Para nosso estudo de caso, F (2, 10,−15, 15), temos N = 31745. Com uma cal-
culadora programável ou um sistema de computação algébrica é fácil declararmos
uma função para a equação (1.7).
Exercício 1.5 Veri�que que a distribuição dos números representados pelo sis-
tema de ponto �utuante não é igualmente espaçada.
Exercício 1.6 Dado o sistema de ponto �utuante F(2, 3,−1, 2), determine quan-
tos e quais são os números representados por esse sistema.
erros computacionais 27
1.2.3 Operações aritméticas com ponto �utuante
Nessa seção, daremos uma noção de como as operações aritméticas são reali-
zadas em um sistema de ponto �utuante.
Consideremos dois números escritos em um sistema de ponto �utuante
F (β, t, I, S),
x = 0, d1d2 . . . dt × βe,
y = 0, l1l2 . . . lt × βf .
Adição
A operação de adição entre dois números é realizada em uma seqüência de
passos.
1. Os registros dos números são dispostos da forma a seguir, admitindo-se que
x ≥ y.
x → d1 d2 · · · dt 0 0 · · · 0
y → l1 l2 · · · lt 0 0 · · · 0
Para determinar o valor de a = x+ y, devemos seguir para o passo 2.
2. Calcule o valor g = e− f . Se g ≥ t, então teremos que a = x, e a operação
está concluída. Senão, devemos alinhar o registro do número y de g posições a
sua direita, isto é:
y → 0 · · · 0 l1 l2 · · · | · · · lt 0 · · · 0
3. Adicione os conteúdos de x e y com g = e.
a→ b0 ... b1 b2 · · · bt bt+1 · · ·
4. Se tivermos b0 6= 0, então: (i) desloque o registro de a de uma posição à
direita;
(ii) calcule o valor g → g + 1, e tome o registro
a→ 0 ... b1 b2 · · · bt ... bt+1 · · ·
28 cálculo numérico
5. Se b1 = 0, então devemos normalizar. (i) desloque à esquerda, até que
obtenha b1 6= 0. (ii) calcule g = g − 1 para cada posição deslocada. Teremos:
a→ 0 b1 b2 · · · bt bt+1 · · ·
6. Se g > S, temos over�ow, e se g < I, temos under�ow.
7. Para arredondamento, cancele os valores de registro de a que estão além
da precisão t da máquina. O resultado da operação é dado por:
a = x+ y = 0, b1b2 · · · bt × βg.
Exemplo 1.10 Sejam x = 0, 1547 × 105 e y = 0, 2748 × 10−1 dois números em
decimal com precisão t = 4. Vemos que g = e − f = 5 − (−1) = 6. Então,
a = x + y = x = 0, 1547× 105. Na notação de registros, vemos que:
x → 1 5 4 7 0 · · · 0
y → 2 7 4 8 0 · · · 0
y′ → 0 0 0 0 0 0 2 7 4 8
a = x + y = x.
Exemplo 1.11 Sejam x = 0, 9876×101 e y = 0, 8732×101. Assim, a = x+y =
1, 8608× 101 = 0, 18608× 102 = 0, 1860× 102.
Exemplo 1.12 Sejam x = 0, 1012 × 101 e y = −0, 9876 × 10−1. Temos que
a = x + y = 0, 1012× 101 − 0, 009876× 101 = 0, 091324× 101 = 0, 91324× 100 =
0, 9132× 100.
Multiplicação
Sejam dois números x e y em ponto �utuante e seja p = x · y seu produto. A
operação de multiplicação realiza-se por meio dos passos:
1. Dispor os números em seus registros
x → d1 d2 · · · dt 0 0 · · · 0
y → l1 l2 · · · lt 0 0 · · · 0
erros computacionais 29
2. Calcule p = x · y com expoente g = e+ f .
p→ b1 b2 · · · bt bt+1 · · ·
3. Se b1 = 0, então normalize, fazendo g → g − 1.
p→ b1 b2 · · · bt bt+1 · · ·
4. Se g > S, temos over�ow ; se g < I, temos under�ow.
5. Cancele os valores de registro de p que estão além da precisão t.
p→ b1 b2 · · · bt 0 · · · 0
Logo, o produto é dado por
p = 0, b1b2 · · · bt × βg.
Exemplo 1.13 Sejam os números x = 0, 1432 × 101 e y = 0, 4330 × 102. O
produto é dado por p = x ·y = 0, 0620056× 103 = 0, 620056× 102 = 0, 6200× 102.
Divisão
A operação de divisão de dois números em ponto �utuante realiza-se por meio
das seguintes etapas. Dados x e y, obtenha o valor q = x
y
.
1. O primeiro passo é carregar os números em seus registros
x → d1 d2 · · · dt 0 0 · · · 0
y → l1 l2 · · · lt 0 0 · · · 0
Se tivermos y = 0, então �m. Senão,
2. Calcule o valor g = e− f e veri�que o registro,
q → b0 b1 b2 · · · bt bt+1 · · · 0
3. Se tivermos b0 6= 0, então devemos ajustar q levando em consideração que
g → g + 1.
30 cálculo numérico
q → 0 ... b1 b2 · · · bt bt+1 · · ·
4. Se b1 = 0, então normalize, tomando g → g − 1.
q → 0 ... b1 b2 · · · bt bt+1 · · ·
5. Se g > S, temos over�ow, e se g < I, temos under�ow.
6. Cancele os valores de q além da precisão t da máquina. Assim, a divisão é
dada por:
q =
x
y
= 0, b1b2 · · · bt × βg.
Exemplo 1.14 Sejam os números x = 0, 5649× 101 e y = 0, 1357× 102. Então,
a divisão é dada por:
q =
x
y
= 4, 162859× 10−1 = 0, 4162859× 100 = 0, 4162× 100.
1.2.4 Distributividadee associatividade
Em sistemas de ponto �utuante, as propriedades de Adição, Subtração, Multi-
plicação e Divisão não obedecem necessariamente às mesmas regras da aritmética
sobre o conjunto dos números reais <. Para ilustrarmos, vejamos o Exemplo 1.15.
Exemplo 1.15 Tomemos x1 = 0, 3491×104 e x2 = 0, 2345×100. Seja a precisão
da máquina dada por t = 4. Assim,
a1 = (x2 + x1)− x1
= (0, 2345× 100 + 0, 3491× 104)− 0, 3491× 104
= 0, 0000
Agora, tomando-se
a2 = x2 + (x1 − x1)
= 0, 2345× 100 + (0, 3491× 104 − 0, 3491× 104)
= 0, 2345× 100
Vemos, portanto, que a1 6= a2, o que é um absurdo!
erros computacionais 31
1.2.5 Precisão e exatidão de máquina
Os conceitos de precisão e exatidão são distintos um do outro. A precisão
de uma máquina informa sobre o número de dígitos signi�cativos da máquina,
sendo este �xo para uma máquina. A exatidão, ao contrário, de�ne a perfeição
do resultado, que depende de diversos fatores, entre eles a precisão, a base do
sistema de numeração, o compilador etc.
Vimos que todas as máquinas operam com um sistema de ponto �utuante
F (β, t, I, S), onde t é a precisão da máquina para a base β. É comum desejarmos
conhecer qual a precisão de uma máquina com relação ao sistema decimal. Se
chamarmos de precisão p o valor da precisão em decimal, temos a seguinte relação,
βt = 10p ⇒ p = t ln β
ln 10
. (1.8)
De�nição 1.7 A exatidão de uma máquina é medida por ε, que é o menor nú-
mero em ponto �utuante, tal que temos
1 + ε > 1.
Este valor é conhecido como ε de máquina.
Exercício 1.7 Escreva um programa simples para determinar o ε de máquina.
Note que, nos sistemas de computação algébrica é possível de�nir várias precisões
t.
Exercício 1.8 Considerando os sistemas de ponto �utuante padrão IEEE F(2,
23,−126, 127), IBM 3090 F(16, 5,−65, 62) e do supercomputador CRAY XM-P
F(2, 47,−16385, 8190), determine a precisão destes em decimal.
1.3 Tipos de erros
Como vimos anteriormente, nas várias etapas da cadeia da pesquisa cientí-
�ca, erros de diversos tipos podem ocorrer. Em geral, os tipos de erros estão
classi�cados como:
• Erros nos dados de entrada;
• Erros gerados pelo modelo;
• Erros por truncamento;
• Erros por arredondamento.
32 cálculo numérico
1.3.1 Erros de dados
A coleta de dados decorrentes de medidas das observações e experimentos, na
maioria das vezes, traz consigo erros que são inerentes aos próprios instrumentos
de medida. Dependendo do tipo de aparelho utilizado para a coleta de dados,
obtemos um melhor ou um pior conjunto de valores observáveis.
Neste livro, não vamos tratar especi�camente de erros dessa natureza, por não
fazerem parte de nosso objetivo de estudo.
1.3.2 Erros do modelo
A fase de modelagem é extremamente importante para a correta descrição
de um fenômeno físico. Já vimos, anteriormente, como um modelo pobre pode
levar a erros e, por conseguinte, a resultados que estejam longe do observável.
Muitos modelos são descartados tendo em vista que os seus resultados não são
consistentes com a observação do fenômeno.
Como estamos mais interessados na etapa de resolução dos problemas, não
vamos discutir aqui os erros devido à modelagem do problema físico, embora
a etapa de modelagem seja uma das mais importantes para a solução de um
problema físico.
1.3.3 Erros por truncamento
Em muitas ocasiões, no tratamento de um problema, é preciso fazermos a
substituição de uma expressão ou fórmula in�nita por uma �nita. Nesse caso,
a diferença entre a solução encontrada pela substituição da solução exata pela
fórmula �nita gera um erro que se chama erro de truncamento.
Um exemplo típico é a aproximação de uma função por sua série de Taylor.
Seja f(x) uma função de�nida em um certo intervalo, então sua expansão em
série de Taylor, na vizinhança de um ponto x = x0, é dada por:
f(x) = f(x0) + (x− x0)f ′(x0) + (x− x0)
2
2!
f ′′(x0)
+
(x− x0)3
3!
f ′′′(x0) + · · · (1.9)
Exemplo 1.16 Seja a função f(x) = sen x. A expansão da função em torno do
ponto x = 0, até ordem 5, é dada por
p5(x) = x− x3/3 + x5/120.
Se considerarmos a aproximação sen x ≈ p5(x), temos que o erro de trun-
camento é dado por: ET =| sen x − p5(x) |. Tomando o valor de x = pi/4 na
expressão do erro de truncamento, temos
erros computacionais 33
ET (pi/4) = sen (pi/4)− p5(pi/4) ' −3, 626459× 10−5.
Em geral, deseja-se saber o erro dentro de certa tolerância,
ET = |sen x− p(x)| ≤ �, (1.10)
onde � é a tolerância desejada. Em geral, a tolerância é estabelecida de acordo
com a acurácia desejada para a solução do problema em estudo.
Exercício 1.9 Determine a expansão em série de Taylor, até ordem 5, para as
funções a seguir. Em todos os casos, veri�que o erro de truncamento, conside-
rando alguns valores de x para as funções.
f(x) = ex, em torno de x = 0,
g(x) = cos x, em torno de x = 0,
h(x) = ln x, em torno de x = 1.
1.3.4 Erros por arredondamento
Vimos que a conversão de um número, escrito em um sistema de numeração,
para outro sistema de numeração pode causar erros, uma vez que considerando
um sistema de ponto �utuante, não podemos representar o número com precisão
in�nita. Em um sistema de ponto �utuante, os números são representados de
forma discreta e com uma precisão limitada,
1
o que causa erros devido a arredon-
damentos, como veremos a seguir.
Para melhor ilustrar a noção de erro por arredondamento, vejamos o seguinte
caso. Suponha que temos a soma das frações
1
3
+
1
3
+
1
3
(1.11)
A solução exata dessa operação é 1. Suponha, agora, que estejamos traba-
lhando com uma máquina cuja precisão é t = 4. Considere a soma usando a
aproximação decimal para cada termo da equação (1.11), ou seja:
0, 3333 + 0, 3333 + 0, 3333 = 0, 9999 (1.12)
Vemos, então, que o resultado da soma em (1.12) é diferente do resultado da
soma em (1.11). Em ponto �utuante teríamos o erro,
1
Nos sistemas de computação algébrica, a precisão pode ser de�nida pelo usuário, tendo como
limite apenas a capacidade de hardware da máquina. Por isso, esses sistemas são conhecidos
como sistemas com precisão arbitrária.
34 cálculo numérico
E = 0, 1× 10− 0, 09999× 10 = 0, 00001× 10 = 10−5.
Por outro lado, como a precisão do sistema é t = 4, se cancelarmos o 1 que
está além da precisão, o resultado é E = 0, 0000 × 10 = 0, já que não podemos
representar mais que 4 casas decimais. Neste caso, a diferença entre o valor
exato e o valor representando em ponto �utuante é nula, muito embora tenhamos
desprezado uma contribuição da ordem de 10−5.
Considere agora
2
3
+
2
3
+
2
3
= 2, (1.13)
Em uma máquina com precisão t = 4, temos:
0, 6666 + 0, 6666 + 0, 6666 = 0, 19998× 10 (1.14)
Como o sistema não pode representar além de 4 dígitos signi�cativos, o resultado
de (1.14), cancelando o 8, é 0, 1999× 10. Neste caso, vemos que a diferença entre
o valor exato e o valor em ponto �utuante não é nulo, pois E = 0, 2 × 10 −
0, 1999× 10 = 0, 0001× 10 = 0, 1× 10−2.
Os arredondamentos podem ser de dois tipos:
1. Arredondamento do tipo Corte, também chamado de cancelamento. Nesse
caso, os dígitos além da precisão t do sistema de ponto �utuante são auto-
maticamente abandonados (desprezados);
2. Arredondamento para o número mais próximo de máquina. Suponha que
a precisão de uma máquina é t. Então, analisamos o algarismo de ordem
t+ 1:
i) Se esse algarismo for maior ou igual a 5, somaremos uma unidade ao
algarismo de ordem t; ou seja, dt → dt = dt + 1,
ii) Se o algarismo de ordem t + 1 for menor que 5, então o algarismo de
ordem t permanecerá inalterado, ou seja, dt → dt.
Suponha, agora, que consideremos um arredondamento para número mais
próximo de máquina no caso da soma dada em (1.14). Temos a soma (1.14) dada
por 0, 2×10, e como consequência, não teríamos erro causado por arredondamentoneste caso.
Exemplo 1.17 Se x = 1
3
= 0, 3333333, então x = 0, 3333 × 100 para uma má-
quina com precisão t = 4, com arredondamento do tipo corte.
Se x = 0, 666666.... Então, com t = 5, temos que x = 0, 66667 × 100, com
arredondamento do tipo para número mais próximo de máquina.
erros computacionais 35
Se x = −0, 0004235437, com t = 4, temos então que x = −0, 4235 × 10−3,
cujo valor do último algarismo permaneceu inalterado.
De uma forma geral, se x é um número real, este pode ser escrito, em uma
base β, da forma
x = q × βe = 0, d1 . . . , dt × βe, com 0 ≤ di < β, i = 1, . . . , t. (1.15)
Se x = q × βe, onde q é o valor de q arredondado para o dígito t + 1, temos
que:
|q − q| ≤ 1
2
β−t, (1.16)
e o limite do erro entre os valores é dado por:
|x− x| ≤ 1
2
βe−t. (1.17)
1.3.5 Erros absoluto e relativo
Sejam os valores x exato e x aproximado para uma grandeza.
De�nição 1.8 De�nimos o erro absoluto de uma grande x como:
EA = |x− x|. (1.18)
O erro relativo é de�nido como:
De�nição 1.9 O erro relativo de uma grandeza x é dado por:
ER =
EA
|x| =
|x− x|
|x| . (1.19)
Das expressões (1.17) e (1.19) podemos determinar o limite do erro relativo,
pois temos que:
ER =
|x− x|
|x| ≤
1
2
βe−t
|q|βe =
β−t
2|q| . (1.20)
Aplicando a condição de normalização 0, 1 ≤ |q| < 1, obtemos
ER =
|x− x|
|x| ≤
1
2
β1−t. (1.21)
36 cálculo numérico
De�nição 1.10 De�nimos a unidade de arredondamento de um número em ponto
�utuante como sendo a quantidade
µ =
1
2
β1−t. (1.22)
É importante chamar a atenção para o fato de que a unidade de arredonda-
mento é um valor independente da magnitude do número que está sendo apro-
ximado. A acurácia do resultado de uma grandeza pode ser estimada por seus
erros absoluto e relativo.
Exemplo 1.18 Sejam os valores x = 0, 000008 e x = 0, 000006. Então, os erros
são dados por:
EA = |x− x| = |0, 8× 10−5 − 0, 6× 10−5| = 0, 2× 10−5
ER =
EA
|x| =
0, 2× 10−5
0, 8× 10−5 = 0, 25
O erro absoluto é muito baixo, mas o erro relativo é de 25%.
Exemplo 1.19 Sejam x = 0, 435795× 10−3 e x = 0, 435210× 10−3. Então
ER =
|x− x|
|x| =
5, 85× 10−7
0, 435795× 10−3 = 0, 134237× 10
−2,
ER < 0, 5× 10−2 =⇒ t = 3.
Logo, a aproximação x possui três dígitos signi�cativos exatos; a saber, o 4, o
3 e o 5.
Veja agora que, se aplicarmos o logaritmo na base 10 da expressão (1.21), com
β = 10, temos:
m ≤ log10
(
1
2
)
− log10
( |x− x|
|x|
)
. (1.23)
O maior valor de m na expressão (1.23) representa o número de algarísmos
signi�cativos com que o valor x se aproxima do valor x.
De forma mais geral, escrevemos o valor de m como:
erros computacionais 37
m = −
[
0, 3 + log10
(
µ+
|x− x|
|x|
)]
, (1.24)
onde o termo µ representa a unidade de arredondamento de máquina.
Quando o arredondamento for para o número mais próximo de máquina, temos
que
µ =
1
2
× 101−t. (1.25)
Na prática, não sabemos o valor exato da grandeza x. Assim, o que fazemos,
ao tomar duas medidas consecutivas de x é calcular a grandeza
D(xi, xi+1) = −
[
0, 3 + log10
(
µ+
|xi+1 − xi|
|xi|
)]
, (1.26)
que nos dá o número de dígitos signi�cativos exatos de xi+1 com relação ao valor
xi.
1.4 Propagação de erros
Vejamos agora como ocorre a propagação de erros causados nas operações
aritméticas com ponto �utuante.
1.4.1 Adição
Sejam x e y os valores aproximados de duas grandezas x e y, respectivamente.
Sejam Ex e Ey os erros em x e y. Temos então que:
S = x+ y, (1.27)
S = x+ y, (1.28)
Es = S − S = (x+ y)− (x− y) = (x− x) + (y − y). (1.29)
Logo, temos que:
|Ex+y| ≤ |Ex|+ |Ey|. (1.30)
Isto é, o valor absoluto da soma dos erros absolutos é menor que a soma individual
do valor absoluto dos erros.
38 cálculo numérico
Exercício 1.10 Mostre que, para o erro relativo, a operação de adição resulta
em:
ER(x + y) = max{(ER(x),ER(y)}, (1.31)
para x, y valores com o mesmo sinal.
1.4.2 Subtração
O procedimento para subtração é similar ao da adição; temos que:
Ex−y = Ex − Ey =⇒ (1.32)
|Ex−y| ≤ |Ex|+ |Ey|. (1.33)
Exercício 1.11 Mostre que, para o erro relativo, a operação de subtração resulta
em:
ER(x− y) = ER(x) + ER(y)|x− y| , (1.34)
para quaisquer valores de x, y.
1.4.3 Multiplicação
Seguindo a mesma construção anterior, vemos que:
Ex?y ' xEy + y Ex =⇒ (1.35)
|Ex?y| ≤ |x| |Ey|+ |y| |Ex|. (1.36)
Exercício 1.12 Mostre que, para o erro relativo, a operação de multiplicação
resulta em:
ER(x · y) ≈ ER(x) + ER(y),
para quaisquer valores de x, y.
erros computacionais 39
1.4.4 Divisão
Finalmente, seguindo o mesmo procedimento, temos para a divisão:
|Ex/y| ≤ |y| |Ex|+ |x| |Ey||y|2. (1.37)
Observamos que, na divisão, se dividirmos um número em ponto �utuante
por outro número muito pequeno, temos a propagação de um erro muito grande,
já que o termo na expressão anterior está dividido pelo quadrado do valor da
grandeza aproximada.
Exercício 1.13 Mostre que para o erro relativo, a operação de divisão resulta
em:
ER(x/y) ≈ ER(x) + ER(y),
para quaisquer valores de x, y, y 6= 0.
Exemplo 1.20 Sejam x = 3, 2548, com |Ex| ≤ 0, 5 × 10−4 e y = 0, 0351, com
|Ey| ≤ 0, 5× 10−4.
Temos que:
Ex/y ≤ 0, 1335 < 0, 5× 100.
1.4.5 Operação geral
Se de�nirmos � como uma operação genérica qualquer e �∗ como uma pseu-
do-operação, vemos que para:
x = x+ Ex,
y = y + Ey,
x � y − x �∗ y = (x � y − x � y) + (x � y − x �∗ y). (1.38)
Assim, observando a equação (1.38), podemos interpretar o primeiro termo do
lado direito da equação como correspondendo a um erro introduzido pelos valores
numéricos e o segundo termo como correspondendo a um erro introduzido pela
máquina.
Teorema 1.1 Seja a operação � qualquer uma das operações aritméticas
+,−,×,÷. Então,
40 cálculo numérico
∣∣∣∣x� y − x� yx� y
∣∣∣∣ ≤ µ, (1.39)
para x� y 6= 0, ou de forma equivalente,
x� y = (x� y)(1 + ε), (1.40)
para algum ε > 0 satisfazendo à condição |ε| < µ, com µ a unidade de arredon-
damento.
Uma das conseqüências do Teorema 1.1 é que o resultado da comparação entre
dois valores reais, por meio de um teste Booleano de igualdade é, em geral, falso,
pois há o erro devido ao ε da máquina. Portanto, um teste Booleano da forma
x = y deve ser substituído pelo teste |x− y| < ε.
1.5 Complexidade computacional
Ao longo deste livro apresentaremos várias técnicas numéricas para resolu-
ção de problemas de diferentes naturezas. Em certas ocasiões veremos mais de
uma técnica, as quais podem ser empregadas para a resolução do mesmo tipo
de problema. Tais técnicas são convertidas, no formalismo computacional, em
procedimentos que chamamos de algorítmos. Assim, podemos ter vários algorít-
mos destinados à resolução de um mesmo tipo de problema.
Na Ciência da Computação é comum de�nir-se o custo computacional de um
algoritmo para a resolução de um problema. Em termos simples, o custo com-
putacional de um algoritmo está relacionado a dois fatores: primeiro ao número
de passos necessários resolver um problema, que se re�ete em um custo deno-
minado temporal e, segundo, na quantidade de memória utilizada para resolver
um problema, que é denominado custo espacial. Formalmente, o custo computa-
cional re�ete a complexidade do algoritmo. A complexidade de um algoritmo é
uma função do tamanho do problema a ser tratado. Mais adiante, na Seção 2.3,
veremos que a complexidade dos algoritmos para determinar o valor numérico de
um polinômio depende do grau, n, do polinômio, isto é, do tamanho do problema
a ser resolvido.
Em geral, no cálculo numérico estamos mais interessados na complexidade
temporal, relacionando esta ao número de operações que devem ser executadas
por um algoritmo para resolver um problema. A complexidade temporal pode
ser vista de duas formas:algoritmos que tem um comportamento polinomial
e algoritmos que tem um comportamento exponencial. Quando um algoritmo
apresenta uma complexidade polinomial dizemos que a complexidade é do tipo
erros computacionais 41
O(np), onde n indica o tamanho do problema e p a ordem do polinômio. Quando
a complexidade é exponencial, ela pode ser expressa da forma O(en).
Exemplo 1.21 Na Seção 2.3 mostraremos que o algoritmo direto para determi-
nar o valor numérico de um polinômio de grau n precisa realizar um número total
de
n2+3n
2
operações, o que corresponde a uma complexidade quadrática, O(n2).
Por outro lado, o algoritmo de Horner necessita apenas de um número total de
2n operações, isto é, a sua complexidade é linear O(n).
1.6 Exercícios propostos
1. Com o desenvolvimento de microcomputadores, tornou-se necessária a pa-
dronização da aritmética com ponto �utuante. Pesquise sobre o padrão
IEEE para a aritmética em ponto �utuante.
2. O sistema de ponto �utuante do supercomputador CRAY T-94 (Cesup-
UFRGS) é dado por: F (2, 51,−1022, 1023). Determine quantos números
são representados nesse sistema e quais as regiões de over�ow e under�ow
do sistema.
3. Escreva um programa, para determinar o menor número positivo n para o
qual a expressão 1 + 2−n−1 = 1 é verdadeira na máquina que está sendo
utilizada.
4. Sejam x1 = 10, 44 e x2 = 2, 15 dois valores aproximados de x e y, res-
pectivamente, até o número de dígitos signi�cativos. Sabendo que Ex =
Ey = 0, 005, determine os limites do erro absoluto e do erro relativo para
as seguintes quantidades:
a) x+ x y
b)
√
x y
c) cos (2x− y) + sen (2x− y)
d)
x
y
− y
x
42 cálculo numérico
Capítulo 2
RESOLUÇÃO DE EQUAÇÕES
ALGÉBRICAS E
TRANSCENDENTAIS
A solução de muitos problemas de engenharia e ciências requer a resolução de
diversos tipos de equações. Dentre estas, há o interesse particular na determina-
ção da solução de equações da forma f(x) = 0, onde f(x) é uma função de�nida
em um certo intervalo.
De�nição 2.1 Um número x0 é dito uma raiz ou zero da função f, quando temos
f(x0) = 0, para a equação f(x) = 0.
Exemplo 2.1 Seja a função f(x) = 2x + 1, x0 = −12 é uma raiz da equação
f(x) = 0.
O problema que surge é como determinar as raízes de uma equação da forma
f(x) = 0. Veremos, nesta seção, alguns métodos para determinação das raízes de
equações algébricas e transcendentais.
As equações algébricas são classi�cadas como equações algébricas polinomiais,
ou que podem ser reduzidas à forma polinomial, e as equações transcendentais,
que são aquelas que não podem ser reduzidas a uma forma polinomial. Tais
equações envolvem, geralmente, funções do tipo exponencial, logarítmica, trigo-
nométrica etc.
As equações algébricas de primeiro, segundo e terceiro graus, além de algumas
de quarto grau e transcendentais, podem ter suas raízes determinadas de forma
analítica. No entanto, em geral, para polinômios de grau superior a ≥ 4, e para
a maioria das equações transcendentais, o problema só pode ser resolvido via
métodos numéricos que aproximam a solução da raiz.
Para encontrarmos numericamente a raiz de uma equação, duas etapas devem
ser seguidas:
44 cálculo numérico
Isolamento: Achar um intervalo [a, b], o menor possível, tal que este contenha
uma e somente uma raiz da equação f(x) = 0.
Re�namento: Melhorar o valor inicial da raiz aproximada até que o grau de
exatidão desejado seja alcançado.
2.1 Isolamento de raízes
O seguinte teorema da álgebra ajuda-nos a encontrar um intervalo onde a raiz
se encontra.
Teorema 2.1 Seja f uma função contínua que assume valores de sinais opostos
nos extremos do intervalo [a, b], isto é, temos que f(a)·f(b) < 0. Então, o intervalo
[a, b] conterá no mínimo uma raiz da equação f(x) = 0. Haverá no mínimo um
número x0 ∈ (a, b), tal que f(x0) = 0.
O Teorema 2.1 pode ser interpretado gra�camente, conforme ilustra a Figura
2.1.
Figura 2.1: Isolamento da raíz λ no intervalo [a, b].
O Teorema 2.1 garante a existência de raizes, no entanto não garante a unici-
dade. Assim, uma raiz x0 bem de�nida será única no intervalo [a, b] se a derivada
f ′(x) existir e preservar o sinal em todo o intervalo.
Observe que, se no intervalo [a, b] tivermos f ′(x) > 0, então a função f(x)
é crescente no intervalo, e se f ′(x) < 0 no intervalo, então a função f(x) é
decrescente, o que restringe a unicidade da raiz no intervalo.
resolução de equações algébricas e transcendentais 45
2.2 Equações algébricas
Seja uma equação algébrica de grau n, n ≥ 1, da forma:
P (x) = anx
n + an−1xn−1 + . . .+ a1x+ a0 = 0, (2.1)
onde os coe�cientes ai são números reais e an 6= 0.
Teorema 2.2 (Teorema Fundamental da Álgebra) Uma equação algébri-
ca de grau n tem exatamente n raízes, reais ou complexas, desde que cada raiz
seja contada levando em consideração sua multiplicidade.
De�nição 2.2 Uma raiz x0 da equação P(x) = 0 tem multiplicidade m se:
P(x0) = P
′(x0) = P′′(x0) = . . . = Pm−1(x0) = 0 e
Pm(x0) 6= 0,
onde Pi(x0) =
diP(x)
dxi
|x=x0 , i = 1, 2, . . . ,m.
Exemplo 2.2 Seja a equação polinomial P(x) = x4 − 5x3 + 6x2 + 4x − 8 = 0 e
considere a raiz x0 = 2. Temos que: P(2) = 0.
P′(x) = 4x3 − 15x2 + 12x + 4⇒ P′(2) = 0,
P′′(x) = 12x2 − 30x + 12⇒ P′′(2) = 0,
P′′′(x) = 24x− 30⇒ P′′′(2) = 18 6= 0.
Portanto, a multiplicidade da raiz x0 = 2 é m = 3. De fato, fatorando a equação,
podemos ver que P(x) = (x + 1)(x− 2)3.
O problema do exemplo 2.2 pode ser facilmente resolvido com a utilização de
um sistema de computação algébrica.
Teorema 2.3 Se os coe�cientes da equação algébrica P(x) = 0 são todos reais,
então as raízes complexas dessa equação são complexos conjugados em pares. Isto
é, se a + b i é uma raiz de P(x) = 0, com multiplicidade m, então o complexo
conjugado a− b i também é uma raiz de P(x) = 0 com multiplicidade m.
Exemplo 2.3 Seja a equação P(x) = x2 − 6x + 10 = 0. Temos como raízes
z = 3 + i e o conjugado z = 3− i.
Corolário 2.1 Uma equação algébrica de grau ímpar com coe�cientes reais tem,
no mínimo, uma raiz real.
A a�rmação desse corolário é bastante intuitiva, pois as raízes complexas
ocorrem sempre ao pares, e, assim, para uma ordem ímpar do polinômio, pelo
menos uma raiz deverá ser real.
46 cálculo numérico
2.3 Valor numérico de um polinômio
Dado um polinômio P (x), o valor numérico de P (x) para um valor x0 é o
valor dado por P (x0). Observe que temos:
Pn(x) = a0 + a1x+ · · ·+ anxn,
Pn(x0) = a0 + a1x0 + · · ·+ anxn0 ,
Pn(x0) = a0 + a1 · x0 + a2 · x0 · x0 + · · ·+ an · x0 · . . . · x0. (2.2)
Assim, de (2.2) vemos que o cálculo do valor numérico P (x0) requer o seguinte
número de operações:
• Número de adições: n;
• Número de multiplicações: n(n+1)
2
.
O número total de operações para obtenção de Pn(x0) é dado pela soma das
operações de adição e multiplicação. Temos, portanto,
#Op = n+
n(n+ 1)
2
=
n2 + 3n
2
. (2.3)
O custo computacional para cálculo do valor numérico de um polinômio é da
ordem de O(n2), onde n da re�ete o tamanho do problema a ser resolvido.
Exemplo 2.4 Um polinômio de grau 9 requer um total de 54 operações para
determinar o valor numérico, pois necessitamos de 9 adições e 45 multiplicações.
Veremos a seguir dois métodos que permitem simpli�car o número de opera-
ções a serem executadas para obtermos o valor numérico de um polinômio.
2.3.1 Método de Briot-Ru�ni
Sejam os polinômios P (x) e Q(x) dados por:
P (x) = a0 + a1x+ · · ·+ anxn,
Q(x) = b1 + b2 + · · ·+ bnxn−1.
Dividindo o polinômio P (x) pelo binômio (x− c), temos:
resolução de equações algébricas e transcendentais 47
P (x) = (x− c)Q(x) + r, (2.4)
onde Q(x) é o polinômio quociente de grau (n− 1) e r é uma constante, resto da
operação. O resto r é o número dado pelo valor numérico P (c), pois temos:
P (c) = (c− c)Q(c) +r ⇒ r = P (c). (2.5)
Se r = 0, então a constante c é uma raiz da equação polinomial P (x) = 0.
O método de Briot-Ru�ni é obtido fazendo,
a0 + a1x+ · · ·+ anxn =
(x− c) [bnxn−1 + bn−1xn−2 + · · ·+ b2x+ b1]+ r.
Realizando a multiplicação do primeiro termo da direita, obtemos:
bnx
n + (bn−1 − cbn)xn−1 + · · ·+ (b1 − cb2)x− cb1.
Igualando os coe�cientes da mesma potência, temos:
an = bn,
an−1 = bn−1 − cbn ⇒ bn−1 = an−1 + cbn,
.
.
.
.
.
.
a0 = r − cb1 ⇒ r = a0 + cb1.
As relações anteriores formam um algoritmo para determinação do valor nu-
mérico de um polinômio. Esquematicamente, podemos reescrevê-las da forma:
an an−1 an−2 · · · a1 a0
c cbn cbn−1 · · · cb2 cb1
bn bn−1 bn−2 · · · b1 r = b0
(2.6)
No método de Briot-Ru�ni, o número de operações necessárias para obtermos
o valor numérico de um polinômio é de n adições e n multiplicações. Assim, o
número total de operações é #Op = 2n, portanto, o custo computacional do
algoritmo de Briot-Ru�ni, para a resolução do valor numérico de um polinômio
é da ordem de O(n).
48 cálculo numérico
Exemplo 2.5 Seja P(x) = x3 − 7x2 + 16x − 10. Determine o valor de P(2).
Usando o esquema para o cálculo, temos:
1 −7 16 10
2 2 −10 12
1 −5 6 2 = P(2)
(2.7)
Pelo algoritmo, temos:
bn = an, n = 3⇒ b3 = a3 = 1,
c× bn ⇒ 2× 1 = 2,
bn−1 = c× bn + an−1 ⇒ b2 = 2 + (−7) = −5,
c× bn−1 ⇒ 2× (−5) = −10,
bn−2 = c× bn−1 + an−2 ⇒ b1 = 2× (−5) + 16 = 6.
Exercício 2.1 Veri�que que, se �zermos o mesmo cálculo para x = 1(c = 1),
teremos P(1) = 0, e portanto c = 1 é uma raiz do polinômio P(x).
2.3.2 Método de Horner
O método de Horner é muito intuitivo. Seja um polinômio P (x) dado por:
P (x) = anx
n + an−1xn−1 + · · ·+ a1x+ a0. (2.8)
Podemos evidenciar um termo x na expressão do polinômio P (x), de tal forma
que �camos com:
P (x) = (anx
n−1 + an−1xn−2 + · · ·+ a2x+ a1)x+ a0. (2.9)
Se evidenciarmos x sucessivamente (n− 1) vezes, teremos:
P (x) = ((anx
n−2 + an−1xn−3 + · · ·+ a2)x+ a1)x+ a0 (2.10)
= ((· · · (anx+ an−1)x+ · · ·+ a2)x+ a1)x+ a0. (2.11)
Vemos da expressão anterior que o valor numérico de um polinômio, deter-
minado pelo método de Horner, necessita de um total de n operações de adição
e n operações de multiplicação, totalizando o número de operações #Op = 2n.
Vemos que o custo computacional do algoritmo de Horner é, também, da ordem
O(n).
resolução de equações algébricas e transcendentais 49
Exemplo 2.6 Seja P(x) = 3x4 − 6x3 − 2x2 + 5x − 8. Utilizando o método de
Horner, temos:
P(x) = 3x4 − 6x3 − 2x2 + 5x− 8
= (3x3 − 6x2 − 2x + 5)x− 8
= ((3x2 − 6x− 2)x + 5)x− 8
= (((3x− 6)x− 2)x + 5)x− 8.
Assim, o valor de P(3) é determinado por:
P(3) = (((3 · 3− 6) · 3− 2) · 3 + 5 · 3− 8 = 70.
2.4 Limites das raízes polinomiais
Seja P (x) = 0 uma equação polinomial.
Teorema 2.4 Sejam an, a0 6= 0 e k (0 ≤ k ≤ n− 1) o maior dos expoentes entre
os termos com coe�cientes negativos do polinômio P(x). Então, para o limite
superior das raízes positivas da equação P(x) = 0, podemos tomar o valor:
L = 1 + n−k
√
B
an
, (2.12)
onde B é o máximo dos valores absolutos dos coe�cientes negativos do polinômio
P(x).
Do teorema acima, podemos concluir que, se chamarmos de λp a maior raiz
positiva de P (x) = 0, então λp ≤ L.
Corolário 2.2 Se os coe�cientes do polinômio P(x) forem não negativos, então
P(x) = 0 não possui raízes positivas.
A a�rmação do corolário é bastante simples de ser veri�cada, pois, se não há
termos com coe�ciente negativo na equação, não é possível haver compensação
entre termos, e por isso não haverá raízes positivas. Claramente, poderá haver
raízes negativas, pois termos com expoentes ímpares podem gerar compensações
no valor do polinômio, de tal forma que poderá existir raízes negativas.
50 cálculo numérico
Exemplo 2.7 Seja P(x) = x4 − 5x3 − 7x2 + 29x + 30 = 0. O polinômio possui
quatro raízes λi, i = 1, 2, 3, 4. Pelo teorema, temos
k = 3, B = | − 7| = 7, L = 1 + 4−3
√
7/1 = 1 + 7 = 8.
Logo, as raízes positivas possuem um limite λi ≤ 8.
De�nição 2.3 Sejam λ1, λ2, · · · , λn as raízes de Pn(x) = 0. O polinômio, em
sua forma fatorada, é dado por:
Pn(x) = an(x− λ1)(x− λ2) · · · (x− λn). (2.13)
Os limites das raízes positivas e negativas de um polinômio Pn(x) podem
ser estimados da forma: Seja Pn(x) = 0 em sua forma fatorada an(x − λ1)(x −
λ2) · · · (x− λn) = 0. Se chamarmos a expressão anterior de
Q1(x) = x
nPn(1/x), (2.14)
teremos:
Q1(x) = anx
n(1− xλ1)(1− xλ2) · · · (1− xλn) = 0. (2.15)
As raízes de Q1(x) são os valores 1/λ1, 1/λ2, · · · , 1/λn.
Seja 1/λp a maior das raízes positivas e L1 o limite superior das raízes positivas
de Q1(x) = 0. Então, temos:
1
λp
≤ L1 ⇒ λp ≥ 1
L1
. (2.16)
Assim, o valor 1/L1 é o limite inferior das raízes positivas de Pn(x) = 0.
De modo análogo, fazendo Q2(x) = Pn(−x) = 0, temos:
an(x− λ1)(x− λ2) · · · (x− λn) = 0,
an(−x− λ1)(−x− λ2) · · · (−x− λn) = 0,
an(x+ λ1)(x+ λ2) · · · (x+ λn) = 0. (2.17)
Logo, as raízes de P2(x) = 0 são −λ1,−λ2, · · · ,−λn. Assim, se −λq (λq < 0)
é a maior das raízes positivas e L2 é o limite superior das raízes positivas de
Q2(x) = 0, temos:
resolução de equações algébricas e transcendentais 51
−λq ≤ L2 ⇒ λq ≥ −L2. (2.18)
Portanto, −L2 é o limite inferior das raízes negativas de Pn(x) = 0.
Considerando agora a construção Q3(x) = x
nPn(−1/x) = 0, obtemos
anx
n(−1
x
− λ1)(−1
x
− λ2) · · · (−1
x
− λn) = 0. (2.19)
As raízes desta equação são
−1
λ1
, −1
λ2
, · · · , −1
λn
. Assim, considerando
−1
λq
(λq < 0)
a maior raiz positiva de Q3(x) e L3 o limite superior das raízes de P3(x) = 0,
temos:
− 1
λq
≤ L3 ⇒ λq ≤ − 1
L3
. (2.20)
Logo, o valor −1/L3 é o limite superior das raízes negativas de Pn(x) = 0.
Podemos �nalmente concluir que:
• Todas as raízes positivas, λp, de Pn(x) = 0, se existirem, deverão satisfazer
à relação:
1
L1
≤ λp ≤ L; (2.21)
• Todas as raízes negativas, λn, de Pn(x) = 0, se existirem, deverão satisfazer
à relação:
−L2 ≤ λn ≤ − 1
L3
. (2.22)
Exemplo 2.8 Seja P4(x) = x
4 − 5x3 + 6x2 + 4x + 8 = 0. Temos n = 4, k =
3,B = | − 5|. Podemos veri�car que o limite superior das raízes positivas é dado
por L ' 3, 828427.
Exercício 2.2 Sejam as equações polinomiais,
P2(x) = x
2 + x− 1 = 0,
P3(x) = x
3 − 7x2 + 16x− 10 = 0,
P4(x) = x
5 + x4 − 9x3 − x2 + 20x− 12 = 0,
P6(x) = 2x
6 − 3x5 − 2x3 + x2 − x+ 1 = 0.
Usando uma calculador ou computador, determine os limites das raízes para esses
polinômios, desenhe os seus grá�cos e estime os valores das suas raízes.
52 cálculo numérico
Figura 2.2: Ilustração do Teorema de Bolzano, f(1) · f(6) > 0 ⇒ número par de
raízes.
2.5 Número de raízes reais
Na seção anterior vimos um método para identi�car os intervalos onde se en-
contram as raízes de um polinômio. Vejamos agora alguns resultados que indicam
o número de raízes de um polinômio em um certo intervalo.
Teorema 2.5 (Teorema de Bolzano) Seja P(x) = 0 uma equação algébrica
com coe�cientes reais e x ∈ [a, b]. Assim,
i) se P(a) · P(b) < 0, então existe um número impar de raízes reais (contando
suas multiplicidades) no intervalo [a, b];
ii) se P(a) · P(b) > 0, então existe um número par de raízes reais (contando as
multiplicidades), ou não existem raízes reais no intervalo [a, b].
A Figura 2.2 ilustra o teorema de Bolzano.
2.6 Regra de sinais de Descartes
A regra de sinais de Descartes permite identi�car o número de raízes reais
positivas e negativas de uma equação algébrica polinomial. Para isso, seja λ(+) o
número de raízes reais positivas de uma equação P (x) = 0.
Regra de Descartes O número de raízes reais positivas de uma equação po-
liniomial é igual a variação de sinais na seqüência dos coe�cientes do polinômio,
ou menor que este por um número inteiro par, sendo uma raiz de multiplicidade
m contada comom raízes e não sendo contados os coe�cientes iguais a zero.
O exemplo a seguir ilustra a aplicação da regra.
resolução de equações algébricas e transcendentais 53
Exemplo 2.9 Seja P(x) = x4 − 5x3 − 7x2 + 29x + 30 = 0. Para essa equação,
vemos que o número de variações de sinais é igual a 2. Assim, λ(+) = 2 − 2k,
onde os valores de k = 0 ou k = 1. Logo, de acordo com a regra, teremos λ(+) = 0
ou λ(+) = 2. Isto é, ou não teremos raízes reais positivas, ou teremos duas raízes
reais positivas.
Corolário 2.3 Se os coe�cientes de uma equação algébrica são todos diferentes
de zero, então o número de raízes reais negativas λ(−) (contando as multiplicida-
des) é igual ao número de permanência de sinais de seus coe�cientes, ou é menor
que este por um número inteiro par.
Exemplo 2.10 Seja P(x) = x4 − 5x3 − 7x2 + 29x + 30 = 0. Para essa equação,
vemos que o número de permanência de sinais é igual a 2. Assim, λ(−) = 2− 2k,
onde os valores de k = 0 ou k = 1. Logo, podemos ter λ(−) = 0 ou λ(−) = 2. Isto
é, ou não teremos raízes reais negativas, ou teremos duas raízes reais negativas.
De fato, usando uma calculadora ou computador, podemos obter as raízes do
polinômio P(x), x1 = 5, x2 = 3, x3 = −2, x4 = −1.
Exercício 2.3 Dado o polinômio P(x) = x5 − 9x4 + 7x3 + 185x2 − 792x + 1040,
faça um estudo detalhado sobre quantas raízes reais positivas e negativas podem
existir para P(x) = 0. Usando uma calculadora ou computador, determine as
raízes deste polinômio.
2.6.1 Raízes imaginárias
As raízes de uma equação polinomial podem ser reais e/ou complexas. Veja-
mos, agora, algumas regras que permitem identi�car a existência de raízes com-
plexas.
Seja P (x) = 0 uma equação polinomial de grau n, sem raízes nulas.
Teorema 2.6 (Regra de Du Gua) Se para algum valor k, 1 ≤ k < n, tiver-
mos
a2k ≤ ak+1 · ak−1, (2.23)
com ak coe�cientes do polinômio, então P(x) possui raízes complexas.
Teorema 2.7 (Regra da Lacuna)
i) Se os coe�cientes do polinômio P(x) são todos reais e para algum k, 1 ≤ k < n,
tivermos ak = 0 e ak−1 · ak+1 > 0, então P(x) = 0 possui raízes complexas;
54 cálculo numérico
ii) Se os coe�cientes ak de P(x) são todos reais e se existem dois ou mais coe�-
cientes nulos sucessivos, então a equação P(x) = 0 possui raízes complexas.
É importante observar que as regras acima são condições su�cientes para a
existência de raízes complexas, mas não condições necessárias.
Exemplo 2.11 Seja P(x) = 2x5 + 3x4 + x3 + 2x2 − 5x − 3, então como temos
que a23 ≤ a4 · a2, pois 12 ≤ 3 · 2, pela regra de Du Gua a equação P(x) = 0 possui
raízes complexas. De fato, para esta equação temos: duas raízes complexas, duas
raízes reais negativas e uma raiz real positiva dadas por
z = −0, 09473214309− 1, 283742172·i, z = −0, 09473214309 + 1.283742172·i,
x1 = −1, 810535713, x2 = −0, 5; x3 = 1
Exemplo 2.12 Seja P(x) = 2x6 − 3x5 − 2x3 + x2 − x− 1 = 0, então, pela regra
da lacuna, temos a4 = 0, a5 = −3, a3 = −2⇒ a3 · a5 = 6 > 0, então o polinômio
possui raízes complexas. De fato, temos 4 raízes complexas, uma raiz real positiva
e uma raiz real negativa
z1 = −0, 4402908758− 0.8247102496·i, z1 = −0, 4402908758 + 0.8247102496·i,
z2 = 0, 5276694289− 0.6284109203·i, z2 = 0, 5276694289 + 0.6284109203·i,
x1 = −0, 4725829475, x2 = 1, 797825841.
2.7 Relações de Girard
Seja a equação P (x) = 0 em sua forma fatorada:
an(x− λ1) · · · (x− λn) = 0, (2.24)
onde os λi correspondem às raízes do polinômio.
Fazendo a multiplicação dos termos, obtemos:
anx
n − an(λ1 + λ2 + · · ·+ λn)xn−1
+ an(λ1λ2 + λ1λ3 + · · ·+ λ1λn + λ2λ3 + · · ·+ λn−1λn)xn−2
− an(λ1λ2λ3 + · · ·+ λ1λ2λn + λ1λ3λ4 + · · ·+ λn−2λn−1λn)xn−3
.
.
.
(−1)nan(λ1λ2λ3 · · ·λn) = 0.
resolução de equações algébricas e transcendentais 55
Comparando os coe�cientes da expressão acima com a expressão
anx
n + an−1xn−1 + · · ·+ a0 = 0, (2.25)
obtemos as seguintes relações entre os coe�cientes e as raízes de um polinômio.
λ1 + λ2 + · · ·+ λn = −an−1
an
λ1λ2 + λ1λ3 + · · ·+ λ1λn + λ2λ3 + · · ·+ λn−1λn = an−2
an
λ1λ2λ3 + · · ·+ λ1λ2λn + λ1λ3λ4 + · · ·+ λn−2λn−1λn = −an−3
an
.
.
.
λ1λ2λ3 · · ·λn = (−1)n a0
an
.
As relações acima são conhecidas como relações de Girard, entre os coe�cientes
e as raízes de um polinômio. Embora elegantes, as relações de Girard não são
práticas para determinar as raízes de um polinômio.
2.8 Equações transcendentais
Uma equação f(x) = 0 é chamada de transcendental quando a mesma não
pode ser reduzida a uma forma polinomial. Em geral, são equações que envolvem
funções do tipo trigonométricas, exponenciais, logarítmicas etc.
Uma maneira simples de obtermos informações sobre as raízes de uma equação
transcendental é pelo método grá�co para isolamento de raízes.
Seja uma equação f(x) = 0. As raízes dessa equação correspondem aos valores
de x, tais que a equação é satisfeita. Um modo de tentarmos determinar as raízes
de f(x) = 0 é construir uma equação alternativa da forma:
g(x)− h(x) = 0, (2.26)
a qual seja equivalente à equação f(x) = 0, isto é:
f(x) = g(x)− h(x) = 0. (2.27)
Considerando y1 = g(x) e y2 = h(x) e desenhando os grá�cos destas funções
sobre um mesmo sistema de coordenadas, onde estes os grá�cos se interceptarem,
56 cálculo numérico
teremos uma raiz da equação f(x) = 0, pois, se x = x0 é o ponto de intersecção
das duas funções, teremos:
g(x0) = h(x0)⇒ f(x0) = g(x0)− h(x0) = 0. (2.28)
Logo, x0 é uma raiz de f(x) = 0.
Exemplo 2.13 Seja a equação transcendental f(x) = ex − sen x − 2 = 0. Se
�zermos g(x) = ex e h(x) = sen x + 2, vemos, na Figura 2.3, que ambas se
interceptam no ponto x0 ≈ 1, 05.
Figura 2.3: Aplicação do método grá�co.
Exercício 2.4 Considere a equação x2− sen x− 1 = 0 e isole as suas raízes com
o método grá�co.
2.9 Grau de exatidão de uma raiz
Depois de termos identi�cado o número de raízes e o intervalo [a, b] onde as
mesmas se encontram, passaremos a determinar seu valor por meio de métodos
numéricos.
O que desejamos é obter uma seqüência de valores {xi} de aproximações cujo
limite é o valor da raiz exata, digamos λ.
Teorema 2.8 Seja λ uma raiz isolada exata e xn uma raiz aproximada da equa-
ção f(x) = 0, com λ e xn ∈ [a, b] e tal que |f ′(x)| ≥ m > 0 para a ≤ x ≤ b, em
que m = mina≤x≤b |f ′(x)|. Então, |xn − λ| ≤ |f(xn)|m .
resolução de equações algébricas e transcendentais 57
Demonstração: Usando o teorema do valor médio, temos:
f(xn)− f(λ) = (xn − λ)f ′(c), xn < c < λ, c ∈ (a, b). (2.29)
Contudo, f(λ) = 0 e f ′(c) ≥ m. Então,
|f(xn)− f(λ)| = |f(xn)| = |xn − λ||f ′(c)| ≥ m|xn − λ|. (2.30)
Logo,
|xn − λ| ≤ |f(xn)|
m
.� (2.31)
Exemplo 2.14 Seja f(x) = x2 − 8, determine o erro cometido por xn = 2, 827
no intervalo [2, 3].
Solução: calculando a derivada da função, temos: f ′(x) = 2x e m =
min2≤x≤3 |2x| = 4, e assim:
|2, 827− λ| ≤ f(2, 827)
4
≈ 0, 002.
Logo,
λ = 2, 827± 0, 002.
Observe que o cálculo direto da raiz resulta em x = ±√8 ≈ ±2, 828.
A determinação do valor de m é muitas vezes trabalhosa, por essa razão a
tolerância � é, em geral, avaliada mediante um dos seguintes critérios:
• O valor absoluto da função na raiz deve ser menor que a tolerância:
|f(xn)| ≤ �; (2.32)
• Cálculo do erro absoluto:
|xn − xn−1| ≤ �; (2.33)
• Cálculo do erro relativo:
|xn − xn−1|
|xn| ≤ �. (2.34)
Nos casos em que a raiz é da ordem da unidade, em geral o critério do erro
absoluto é mais apropriado, enquanto nos demais casos o critério do erro relativo
é mais recomendado.
58 cálculo numérico
2.10 Raízes complexas
Seja o polinômio P (z) sobre os números complexos dado por:
P (z) = anz
n + an−1zn−1 + · · ·+ a1z + a0, (2.35)
onde z é uma variável complexa e os coe�cientes ai ∈ <.
Sabemos que um número complexo é escrito da forma z = x+iy, x, y ∈ <, i =√−1. As raízes da equação polinomial P (z) = 0 são números complexos tais que
satisfazema equação.
Se substituirmos o valor z = x+ iy na equação polinomial P (z) = 0, obtemos
u(x, y) + iv(x, y) = 0. (2.36)
Um número z é nulo se e somente se suas partes real e imaginária forem nulas.
Dessa forma, temos da equação (2.36) que
u(x, y) = 0,
v(x, y) = 0.
Assumindo x e y como variáveis, temos um sistema de duas equações com
duas variáveis. Infelizmente, o sistema acima é, em geral, não linear.
As soluções desse sistema representam as soluções da equação P (z) = 0. Para
termos uma idéia sobre as soluções complexas, podemos utilizar o método grá�co.
Desenhando o grá�co das funções u(x, y) e v(x, y), vemos que onde estas se
cruzam temos uma raiz.
No capítulo sobre resolução de sistemas, veremos como obter a solução numé-
rica para esse tipo de sistema de equações algébricas não lineares.
Exemplo 2.15 Seja P(z) = z3 − 8z2 + 45z − 4 = 0. Considerando z = x + iy e
substituindo na equação, teremos:
u(x, y) = x3 − 3xy − 8(x2 − y2) + 45x− 4 = 0,
v(x, y) = 3x2 − y2 − 32x + 45 = 0.
Exercício 2.5 Utilize uma calculadora ou computador para obter as soluções das
equações u(x, y) = 0, v(x, y) = 0 do exemplo 2.15.
resolução de equações algébricas e transcendentais 59
2.11 Métodos iterativos para re�namento de
raízes
Em geral, os métodos iterativos são formados por quatro partes:
1. Estimativa inicial : é um valor dado inicialmente como solução do problema;
2. Mecanismo de atualização: é uma fórmula que, partindo da estimativa ini-
cial, permite atualizar a solução aproximada;
3. Critério de parada: é um critério para estabelecer quando o processo itera-
tivo de atualização deve parar;
4. Estimativa da exatidão: é um mecanismo que permite estimar o grau de
exatidão de uma solução de acordo com um valor de tolerância estabelecido.
Muitas vezes, o critério de exatidão é utilizado como critério de parada.
A seguir, veremos alguns dos principais métodos iterativos para resolução de
equações algébricas e transcendentais.
2.11.1 Método da bisseção
Seja f(x) uma função contínua em um intevalo [a, b], com a < b, e tal que
f(a) · f(b) < 0. Vamos supor que no intervalo [a, b] existe uma única raiz da
equação f(x) = 0.
O método da bisseção consiste em reduzir a amplitude do intervalo [a, b] que
contém a raiz λ, usando para isso sucessivas divisões de [a, b] ao meio, e veri�cando
em seguida em qual intervalo a raiz se encontra.
Inicialmente, dividimos o intervalo [a, b] ao meio para determinar a raiz apro-
ximada. Temos:
b− a
2
= x0. (2.37)
O valor da coordenada x �ca então dado por x0 = x0+a. Se f(x0) = 0, então
x0 é a raiz. Caso contrário, veri�camos se
f(a) · f(x0) < 0, (2.38)
ou
f(a) · f(x0) > 0. (2.39)
60 cálculo numérico
Se a primeira condição for satisfeita, a raiz λ ∈ [a, x0]; se a segunda condição
for satisfeita, então a raiz λ ∈ [x0, b].
Considerando agora o novo intervalo [a1, b1] = [a, x0] onde se encontra a raiz,
dividimos este ao meio e obtemos:
b1 − a1
2
= x1. (2.40)
Calculamos novamente a condição f(a1) · f(x1), onde x1 = x1 + a1, para
veri�carmos, por meio do sinal, onde a raiz está localizada.
O processo é repetido até que seja obtida uma raiz aproximada para a raiz
exata λ, satizfazendo a condição |xn+1 − xn| ≤ �, onde � indica a tolerância
desejada.
A Figura 2.4 ilustra a aplicação do método da bisseção.
Figura 2.4: Método da bisseção.
Critério da convergência
Vemos que, em algum passo do processo, obtemos a raiz exata λ, ou uma
resolução de equações algébricas e transcendentais 61
seqüência de intervalos encaixados do tipo (a1, b1), (a2, b2), · · · , (an, bn), tal que
f(ak) · f(bk) < 0, k = 1, · · · , n.
Como a cada iteração o intervalo [a, b] é dividido ao meio, na n-ésima iteração,
o comprimento do intervalo é dado por:
bn − an = b− a
2n
, (2.41)
ou, de outra forma, podemos expressá-lo como:
|xn − xn−1| = b− a
2n+1
, n = 1, 2, . . . (2.42)
Se desejarmos uma tolerância � para o valor da raiz, temos
|xn − xn−1| ≤ �⇒
∣∣∣∣b− a2n+1
∣∣∣∣ ≤ �. (2.43)
Então, podemos obter:
2n+1 ≥ b− a
�
(n+ 1) ln 2 ≥ ln(b− a
�
)
n+ 1 ≥ ln(
b−a
�
)
ln 2
n ≥ ln(
b−a
�
)
ln 2
− 1. (2.44)
Da equação (2.44), vemos que o número máximo de iterações necessárias para
obtermos uma tolerância da ordem de � é o número inteiro n. Em outras palavras,
no método da bisseção o número máximo de iterações necessárias para alcançar-
mos uma tolerância desejada é conhecido a priori.
As seqüências de pontos a1, a2, · · · , an e b1, b2, · · · , bn possuem limites quando
n tende a in�nito, e esses limites coincidem com o valor da raiz exata λ, pois:
lim
n→∞
an = lim
n→∞
bn = λ. (2.45)
Contudo:
f(an) · f(bn) < 0. (2.46)
62 cálculo numérico
Então, temos:
lim
n→∞
(f(an) · f(bn)) = f 2(λ) ≤ 0⇒ f(λ) = 0. (2.47)
Logo, λ = λ é a raiz exata.
Exemplo 2.16 Seja f(x) = x3−10, a raiz exata λ ∈ [2, 3] e a tolerância desejada
é � < 0, 1. Encontre o valor da raiz aproximada e quantas iterações, no máximo,
deverão ser realizadas para alcançarmos a tolerância desejada.
O número máximo de iterações necessárias para obtermos a raiz aproxima,
dentro da tolerância desejada, é obtido calculando-se n, da relação (2.44). Assim,
temos n = 2, 32, que nos indica um máximo de três iterações.
Exercício 2.6 Seja a equação x3−10 = 0 com raiz no intervalo [2, 3]. Determine
a raiz dessa equação para quatro iterações.
Exercício 2.7 Implemente o método da bisseção e utilize-o para determinar a
raiz da equação f(x) = x2 − cos(x) no intervalo [0, 1] para cinco iterações.
2.11.2 Método das cordas ou das secantes
Seja f(x) uma função contínua com sua derivada de segunda ordem constante
no intervalo [a, b]. Assumindo que f(a) · f(b) < 0 e que existe apenas uma raiz
λ ∈ [a, b], neste método tomamos a reta secante que passa pelos pontos a e b, e
onde ela cruza com o eixo Ox temos a raiz aproximada (veja Figura 2.5).
A equação da reta secante é determinada da forma:
y − y0 = m(x− x0), (2.48)
onde
m =
f(b)− f(a)
b− a . (2.49)
No ponto onde a secante corta o eixo Ox, temos: x = x1 ⇒ y = 0, logo:
−y0 = m(x1 − x0), x0 = a, y0 = f(a), (2.50)
x1 = x0 − y0
m
= a− f(a)
f(b)−f(a)
b−a
= a− f(a)
f(b)− f(a)(b− a). (2.51)
resolução de equações algébricas e transcendentais 63
Figura 2.5: Ilustração do método das cordas.
Aplicando agora ao novo intervalo:
x2 = x1 − f(x1)
f(x1)− f(b)(x1 − b), (2.52)
e, assim, por indução teremos:
xn+1 = xn − f(xn)
f(xn)− f(b)(xn − b), n = 0, 1, . . . . (2.53)
Ao aplicarmos o mesmo procedimento para o novo intervalo ([a, x1] ou [x1, b]),
obtemos a nova aproximação x2.
Esse método equivale a substituir o arco pela corda, ou reta secante, por isso
o nome método das cordas.
Veja que, dependendo do comportamento da função f(x) no intervalo onde
está localizada a raiz, podemos ter quatro situações distintas:
• Quando f ′′(x) > 0.
caso I : f(a) < 0 e f(b) > 0, (2.54)
caso II : f(a) > 0 e f(b) < 0, (2.55)
64 cálculo numérico
• Quando f ′′(x) < 0.
caso III : f(a) < 0 e f(b) > 0, (2.56)
caso IV : f(a) > 0 e f(b) < 0, (2.57)
A Figura 2.6 ilustra os quatro casos.
Figura 2.6: Diferentes casos no método das cordas.
Seguindo o raciocínio realizado para o caso I, podemos estender o mesmo para
os demais casos, resultando em:
Caso II:
xn+1 = xn − f(xn)
f(xn)− f(a)(xn − a). (2.58)
Caso III:
xn+1 = xn − f(xn)
f(xn)− f(a)(xn − a). (2.59)
resolução de equações algébricas e transcendentais 65
Caso IV:
xn+1 = xn − f(xn)
f(xn)− f(b)(xn − b). (2.60)
Vemos que nas equações de cada caso o que muda é apenas o valor do ponto
a ou b nas equações. Assim, podemos escrever uma fórmula única:
xn+1 = xn − f(xn)
f(xn)− f(c)(xn − c), (2.61)
onde de�nimos o valor de c como o ponto extremo do intervalo [a, b] para o qual
a função f(x) apresentao mesmo sinal da derivada segunda f ′′(x). Em outras
palavras, devemos veri�car se o seguinte teste é válido para a escolha do valor de
c:
f(c) · f ′′(c) > 0. (2.62)
Critério da convergência
Como a seqüência xn é monótona e limitada, temos:
λ = lim
n→∞
xn, a < λ < b. (2.63)
Contudo,
lim
n→∞
xn+1 = lim
n→∞
xn − lim
n→∞
f(xn)
f(xn)− f(c)(xn − c)
λ = λ− f(λ)
f(λ)− f(c)(λ− c)
⇒ f(λ) = 0.
Logo, temos que λ = λ é a raiz exata da equação no intervalo [a, b].
A tolerância pode ser considerada tomando-se:
|xn − xn−1| ≤ �. (2.64)
Exercício 2.8 Seja f(x) = ex−sen x−2, de�nida no intervalo [1; 1, 2]. Determine
a raiz dessa equação para uma tolerância da ordem de � ≤ 10−5.
Exercício 2.9 Resolva o exercício anterior usando os procedimentos citados e,
em seguida, melhore a implementação do método das cordas, de tal forma que
considere o teste de tolerância.
66 cálculo numérico
2.11.3 Método de Newton-Raphson
Seja f uma função contínua no intervalo [a, b] com f ′(x) e f ′′(x) também
contínuas, com f ′(x) 6= 0, e λ a única raiz da equação f(x) = 0 no intervalo
dado.
A aproximação para a raiz exata λ de f(x) = 0 pode ser obtida a partir da
aproximação de f(x) por uma série de Taylor, em torno do ponto x0, da forma:
f(x) = f(x0) + f
′(x0)(x− x0).
Estamos aproximando a função f(x) na vizinhança do ponto x0 pela reta dada
na equação anterior. Assim, chamando de x1 o ponto onde a reta corta o eixo
dos x, temos:
f(x1) = 0⇒ f(x0) + f ′(x0)(x1 − x0) = 0, (2.65)
de onde podemos obter o valor de x1,
x1 = x0 − f(x0)
f ′(x0)
. (2.66)
Fazendo o mesmo procedimento, para uma iteração de ordem n, obtemos:
f(xn+1) = 0⇒ f(xn) + f ′(xn)(xn+1 − xn) = 0. (2.67)
Assim, podemos escrever:
xn+1 = xn − f(xn)
f ′(xn)
, (2.68)
com n = 0, 1, 2, . . . e xn+1 a aproximação da raiz para a iteração de ordem n.
Geometricamente, o processo de Newton-Raphson parece com o método das
cordas, só que ao invés das retas secantes, temos as retas tangentes, conforme
podemos veri�car na ilustração da Figura 2.7.
Veja que a tangente do ângulo α é dada por:
tgα =
f(x0)
x0 − x1 = f
′(x0)⇒
x0 − x1 = f(x0)
f ′(x0)
⇒
x1 = x0 − f(x0)
f ′(x0)
. (2.69)
resolução de equações algébricas e transcendentais 67
Figura 2.7: Ilustrações do método de Newton-Raphson.
Agora, considerando o novo valor do ângulo β, teremos:
tg β =
f(x1)
x1 − x2 = f
′(x1)⇒
x1 − x2 = f(x1)
f ′(x1)
⇒
x2 = x1 − f(x1)
f ′(x1)
. (2.70)
Assim, para um valor n qualquer teremos:
xn+1 = xn − f(xn)
f ′(xn)
. (2.71)
Observe que, se considerarmos o ponto x0 a partir da tangente do ponto a,
poderemos ter x1 fora do intervalo [a, b], não permitindo a convergência do método
de Newton-Raphson.
68 cálculo numérico
Critério da convergência
Para podermos aplicar o método de Newton-Raphson, devemos, portanto,
observar a seguinte regra para convergência:
i) As derivadas f ′(x) e f ′′(x) devem ser não nulas e preservar o mesmo sinal em
[a, b];
ii) A escolha do ponto x0 deve ser tal que f(x0) · f ′′(x0) > 0.
Dessa forma, garantimos a convergência do método. Então, teremos:
λ = lim
n→∞
xn, a < λ < b,
lim
n→∞
xn+1 = lim
n→∞
xn − lim
n→∞
f(xn)
f ′(xn)
λ = λ− f(λ)
f ′(λ)
⇒ f(λ) = 0.
Assim, vemos que λ = λ é a raiz exata da equação.
Como o método é convergente, uma raiz aproximada pode sempre ser obtida
de acordo com uma tolerância especi�cada, considerando
|xn − xn−1| < �. (2.72)
Exercício 2.10 Seja a função f(x) = 2x3+ ln x− 5 com raiz localizada no inter-
valo [1, 2]. Determinar a raiz aproximada para 10 iterações, usando as funções
de�nidas acima.
Exercício 2.11 Considere a função u = x3−5x2+x+3, partindo de x0 = −2.44 e
veri�que que para uma tolerância � ≤ 10−5 a solução é obtida após seis iterações.
2.11.4 Método da iteração linear
Seja f(x) uma função contínua no intervalo [a, b] e λ a única raiz da equação
f(x) = 0 neste intervalo. Vimos na seção (2.8) que podemos estimar a raiz de
uma equação utilizando o método grá�co. A equação (2.27) separa a função f(x)
em duas outras funções de modo que a raiz de f(x) é determinada pelo ponto
onde o grá�co das funções g(x) e h(x) se interceptam.
O método que vamos estudar agora consiste em transformar a equação f(x) =
0 em uma equação semelhante, do tipo:
resolução de equações algébricas e transcendentais 69
f(x) = x− F (x), (2.73)
onde F (x) é chamada de função de iteração.
Supondo que x0 seja uma estimativa inicial da raiz exata λ, calculamos o valor
de F (x0) e tomamos a seguinte iteração:
x1 = F (x0)
x2 = F (x1)
.
.
.
.
.
.
xn+1 = F (xn), n = 0, 1, 2, . . . . (2.74)
A partir deste mecanismo de iteração, geramos uma seqüência de aproxima-
ções S = {x0, x1, . . . , xn}. A interpretação geométrica desse método é simples e
está ilustrada na Figura 2.8:
Figura 2.8: Ilustração do método da iteração linear.
Como já mencionamos anteriormente, o método será útil se a seqüência x0, x1, . . . , xn
convergir para a raiz exata. Vamos supor que
70 cálculo numérico
lim
n→∞
xn = λ.
Como F (x) é contínua, teremos:
lim
n→∞
xn+1 = lim
n→∞
F (xn)⇒ λ = F (λ), (2.75)
logo, da equação (2.73) concluímos que λ = λ é a raiz exata de f(x) = 0.
Como a construção da função de iteração F (x) não é única, a questão que
surge é como podemos obter a função de iteração F (x) que gere uma seqüência
convergente? A escolha dessa função é feita com base na função original f(x).
Há várias formas de obtermos uma candidata à função de iteração, porém nem
todas podem ser utilizadas para estimar raízes aproximadas, já que o critério da
convergência, enunciado a seguir, deve ser satisfeito pela função de iteração.
Critério da convergência
A escolha da função F (x) deve satisfazer ao seguinte teorema.
Teorema 2.9 Seja λ ∈ I uma raiz da equação f(x) = 0 e F(x) uma função
contínua e derivável no intervalo I. Se |F′(x)| ≤ k < 1 para todos os pontos do
intervalo I e x0 ∈ I, então os valores dados pela equação xn+1 = F(xn) convergem
para a raiz exata λ.
Observe que o Teorema garante a convergência, partindo-se de uma estimativa
inicial qualquer x0 ∈ I, desde que a derivada da função candidata seja limitada
para todos os pontos no intervalo I que contém uma única raiz. Deste modo,
o Teorema não for válido para uma certa estimativa inicial, então a escolha da
função F (x) deve ser descarta.
Exemplo 2.17 Seja a equação f(x) = x2 − sen x = 0 e a raiz inicial x0 = 0, 9.
Determine a função de iteração e a raiz aproximada para oito iterações.
Podemos escolher as seguintes funções como candidatas à função de iteração:
1. Somando x aos dois lados da equação, teremos:
x + x2 − sen x = x. (2.76)
Assim, podemos tomar x = F1(x) = x
2 + x− sen x como uma proposta de função
de iteração.
2. Isolando x da equação original, temos:
resolução de equações algébricas e transcendentais 71
x2 = sen x⇒ x = √sen x, (2.77)
e, portanto, podemos considerar a função F2(x) =
√
sen x como candidata à fun-
ção de iteração.
3. Da função original, podemos considerar:
sen x = x2 ⇒ x = arcsen x2. (2.78)
Assim, podemos considerar a função F3(x) = arcsen x
2
como candidata à
função de iteração.
Pelo critério da convergência, devemos veri�car se as funções F1(x),F2(x) e
F3(x) satisfazem às condições para se tornarem funções de iteração.
Para a função F1(x) temos que |F′1(0, 9)| ' 2, 178390 > 1, logo como F1(x) não
satisfaz o Teorema da convergência, pois não é válido no ponto x0, logo a função
F1(x) deve ser descartada. Calculando |F′3(0, 9)| ' 3, 069420 > 1, portanto F3(x)
deve ser descartada. A função F′2(x) =
1
2
| cos x√
sen x
| é tal que em uma vizinhança
I = [1/2, 3/2] temos F′2(x) < 1, satisfazendo o Teorema. Logo, a função F2(x) =√
sen x gera uma seqüência convergente para qualquervalor da estimativa inicial
no intervalo I, e por conseguinte para x0 = 0, 9.
Usando a função de iteração F2(x), obtemos a seguinte seqüência de raízes
aproximadas para 8 iterações
S = {0, 9; 0, 8850575741; 0, 8797451034; 0, 8778248379; 0, 8771266440;
0, 8768722470; 0, 8767794824; 0, 8767456467; 0, 8767333039} (2.79)
2.12 Exercícios propostos
1. Dadas as funções a seguir, veri�que gra�camente quantas raízes as mesmas
possuem e localize qual delas é a menor raiz positiva.
a) ex − sen (pi x
3
)
b) cos (x)− cos (3x)
c) ex − tg x
d) 7 sen (x)− e−x cos(x)− 0, 7
e) ln(x) + 30e−x − 3
72 cálculo numérico
2. Supondo que duas locomotivas viajem no mesmo sentido e trilho com equa-
ções de movimento dadas por: x1(t) = 110− 80e(−t/2) e x2(t) = 50t, respec-
tivamente. Utilizando argumentos grá�cos, veri�que se essas locomotivas
se chocam. Se isso acontecer, em quanto tempo o acidente ocorreria?
3. Dada a equação x3 − 6x2 + 10x− 6 = 0, encontre um intervalo de compri-
mento unitário onde se encontre uma, e apenas uma, raiz da equação.
4. Seja o polinômio P (x) = x5− 6x4+8x3+8x2+4x− 40. Determine o valor
de P (3), utilizando os métodos de Briot-Ru�ni e Horner.
5. Para o polinômio do exercício anterior, faça um estudo sobre os limites das
raízes reais desse polinômio. Em seguida, use a regra de Descartes para
inferir sobre os sinais das raízes reais do polinômio e as regras de Du Gua
e da Lacuna, para as raízes imaginárias.
6. Encontre um intervalo a ≤ x ≤ b tal que as funções abaixo possuam sinais
opostos em f(a) e f(b).
a) ln(x) + x− 5
b) ex − x− 2
7. Use o método da bisseção para determinar as raízes das funções do exercício
anterior com uma precisão � = 10−6.
8. Se [0, 2] é o intervalo inicial para a solução de uma equação f(x) = 0, qual
o número de iterações necessárias para alcançarmos a solução aproximada
com uma tolerância da ordem de 10−6 e 10−10? Valide seu resultado encon-
trando a raiz da equação: x3 − 4x2 − 2x+ 8 = 0.
9. Seja a equação x2 = ex lnx − 0, 5. Encontre uma função de iteração para
essa equação e em seguida determine a solução para uma tolerância da
ordem de 10−3.
10. Resolva a equação 2x4 − 9ex − 20 = 0, no intervalo de [−5, 5] com uma
tolerância de 10−3, usando o método da iteração linear.
11. Resolva as equações abaixo usando o método das cordas, com uma precisão
t = 10, utilizando intervalos diferentes de inicialização.
a) 10cos(x) = x
b) xx
3
= 9
resolução de equações algébricas e transcendentais 73
12. O algoritmo de Newton para determinar a raiz quadrada de um número
real positivo λ é dado pela fórmula de iteração: xk+1 =
1
2
(xk +
λ
xk
), com
k = 0, 1, . . . . Implemente esse algoritmo e determine:
a)
√
50, partindo de x0 = 7;
b)
√
125, partindo de x0 = 11.
13. Deduza o algoritmo de Newton para a raiz cúbica de um número real.
Sugestão: utilize a função f(x) = x3 − λ.
14. Use o método de Newton-Raphson para determinar as raízes das equações
abaixo:
a)
√
x lnx+ 7senx cos x = 0, 3 com x0 = 1.
b) x4 cosx+ 6x5ex = −1, com x0 = −5.
15. A equação de Kepler da mecânica celeste é dada por y = x−η sen (x), onde
η corresponde à excentricidade da órbita. Considerando y = 1 e η = 0, 5,
determine a raiz para a equação de Kepler no intervalo [0, pi]. Utilize os
métodos estudados neste capítulo.
74 cálculo numérico
Capítulo 3
RESOLUÇÃO DE SISTEMAS DE
EQUAÇÕES ALGÉBRICAS
Neste capítulo, estudaremos técnicas de resolução de sistemas de equações
algébricas lineares e não lineares.
3.1 Sistemas lineares
Iniciaremos com os sistemas de equações lineares, os quais são de�nidos da
forma:
De�nição 3.1 Um sistema de equações algébricas lineares é de�nido como um
conjunto de m equações que contém n incógnitas, da forma:
a11x1 + a12x2 + · · ·+ a1nxn = b1, (3.1)
a21x1 + a22x2 + · · ·+ a2nxn = b2,
.
.
.
.
.
.
am1x1 + am2x2 + · · ·+ amnxn = bm,
onde xi são as incógnitas, aij são os coe�cientes e bj são os termos independentes.
O sistema linear (3.1) pode ser reescrito de forma compacta como:
S =
n∑
j=1
aijxj = bi, i = 1, 2, . . . ,m. (3.2)
Podemos ainda escrever as equações de um sistema linear na sua forma ma-
tricial, como:
76 cálculo numérico
Ax = B.
A matriz A, de ordem m× n, é a matriz dos coe�cientes, dada por:
A =
 a11 a12 · · · a1n..
.
.
.
. · · · ...
am1 am2 · · · amn
 . (3.3)
A matrix x é uma matriz coluna de ordem n × 1, chamada de matriz das
incógnitas ou variáveis, dada por:
x =

x1
x2
.
.
.
xn
 . (3.4)
A matriz B é uma matriz coluna de ordem m × 1, conhecida como a matriz
dos termos independentes, dada por:
B =

b1
b2
.
.
.
bm
 . (3.5)
De�nição 3.2 De�nimos a matriz ampliada do sistema S como a matriz
C =
 a11 a12 · · · a1n b1..
.
.
.
. · · · ... ...
am1 am2 · · · amn bm
 (3.6)
De�nição 3.3 Uma matriz
x =

x1
x2
.
.
.
xn

é dita uma solução do sistema S se, para xi = xi, i = 1, · · · , n, tivermos uma
identidade numérica para o sistema Ax = B.
resolução de sistemas de equações algébricas 77
De�nição 3.4 Um sistema de equações algébricas lineares é dito homogêneo, se
a matriz B do sistema é nula, isto é, os bj = 0, ∀j.
De�nição 3.5 Um sistema de equações algébricas lineares é dito compatível,
quando apresenta solução, e dito incompatível, quando não possui solução.
É fácil vermos que todo sistema linear homogêneo S possui solução. Assim, o
mesmo é compatível, pois
Ax = 0⇒ xi = 0.
Essa solução é chamada de solução trivial, x = 0.
Suponha agora o seguinte sistema:
x1 + x2 = 0,
x1 + x2 = 2.
Da primeira equação podemos escrever que x1 = −x2, e da segunda, substi-
tuindo-se este resultado, temos:
x2 = 2− x1 ⇒ x2 = 2 + x2 ⇒ 0 = 2? Absurdo!
Portanto, vemos que o sistema apresentado não possui solução, é incompatível.
Geometricamente, é visto como formado por duas retas paralelas, onde cada
equação corresponde a equação de uma reta e, por isso, elas não se cruzam,
gerando um sistema incompatível.
3.1.1 Sistemas compatíveis
Os sistemas compatíveis estão divididos em:
• Sistema determinados;
• Sistemas indeterminados.
De�nição 3.6 Os sistemas compatíveis são ditos determinados, quando possuem
solução única, e são ditos indeterminados, quando possuem várias soluções.
Exemplo 3.1 Seja o sistema:
x1 + x2 = 0,
x1 − x2 = 0.
Ele é homogêneo e tem solução trivial x1 = x2 = 0. Portanto, é um sistema
determinado.
78 cálculo numérico
Exemplo 3.2 Seja o sistema:
x1 + x2 = 0,
3x1 + 3x2 = 0.
Ele é compatível, porém indeterminado, já que, ao resolvê-lo, temos x1 = −x2, e
portanto apresenta in�nitas soluções, pois o valor de x2 é arbitário.
3.1.2 Sistemas triangulares
Em muitas ocasiões, o número de equações que compõe um sistema S é igual
a seu número de incógnitas. Nesse caso, denotamos o sistema por Sn.
De�nição 3.7 Um sistema Sn é dito triangular superior, quando os elementos
da matriz dos coe�cientes são tais que aij = 0 para j < i, i, j = 1, 2, . . . , n.
a11x1 + a12x2 + · · ·+ a1nxn = b1
a22x2 + · · ·+ a2nxn = b2
.
.
.
.
.
.
ann = bn
De�nição 3.8 Um sistema Sn é dito triangular inferior, quando os elementos
da matriz dos coe�cientes são tais que aij = 0 para i < j, i, j = 1, 2, . . . , n.
a11x1 = b1
a21x1 + a22x2 = b2
.
.
.
.
.
.
an1x1 + an2x2 + · · ·+ annxn = bn
Os sistemas triangulares são sistemas determinados, quando aii 6= 0. Nesses
casos, as soluções para os sistemas são facilmente obtidas. Para o sistema tri-
angular superior, a solução é obtida por substituição retroativa, pois temos que
xn =
bn
ann
. Partindo do valor de xn, obtemos o valor de xn−1 por substituição
direta, e assim sucessivamente. No caso de sistemastriangulares inferiores, a so-
lução é obtida por substituição progressiva, pois temos que x1 =
b1
a11
. Com esse
resultado substituímos o valor de x1 na equação seguinte e obtemos o valor de
x2, e assim sucessivamente.
resolução de sistemas de equações algébricas 79
3.2 Transformações elementares
Transformações elementares são operações que podem ser realizadas com as
equações de um sistema linear de tal forma que o conjunto de equações transfor-
madas preservam a solução do sistema original.
As transformações elementares são:
1. Trocar a ordem de duas equações do sistema;
2. Multiplicar uma equação do sistema por uma constante não nula;
3. Adicionar duas equações do sistema, e substituir o resultado por uma delas.
De�nição 3.9 Dois sistemas S e S′ são ditos equivalentes, se S′ puder ser obtido
de S por intermédio de transformações elementares.
Teorema 3.1 Sistemas equivalentes ou são incompatíveis, ou possuem as mes-
mas soluções.
3.3 Solução numérica de sistemas de equações al-
gébricas lineares
Nesta seção, veremos alguns métodos para a resolução numérica de sistemas
de equações algébricas lineares.
Os métodos de resolução de sistemas lineares estão divididos em duas classes.
• Métodos diretos;
• Métodos iterativos.
Os métodos diretos são os que determinam a solução de um sistema linear por
meio de um número �nito de passos (operações). Os métodos iterativos requerem
um número in�nito de passos.
Veremos inicialmente alguns métodos diretos e, em seguida, os métodos ite-
rativos.
3.3.1 Métodos diretos
Entre os métodos diretos, estudaremos o método de Gauss, o método da pivoti-
zação completa e o método de Jordan. Tais métodos, são muitas vezes, discutidos
em cursos de álgebra linear.
80 cálculo numérico
Método de eliminação de Gauss
O método de Gauss consiste em, por meio de (n − 1) passos, transformar o
sistema linear Ax = B em um sistema triangular equivalente, Ux = C.
Vejamos a seguinte ilustração de caso. Seja o sistema:
2x1 + 3x2 − x3 = 5,
4x1 + 4x2 − 3x3 = 3, (3.7)
2x1 − 3x2 + x3 = −1.
Vamos escrever a matriz ampliada do sistema:
B0 =
 2 3 −1 54 4 −3 3
2 −3 1 −1
 .
Chamando de L
(0)
1 , L
(0)
2 , L
(0)
3 as linhas 1, 2 e 3, respectivamente, de B0, esco-
lhemos o elemento a
(0)
11 como pivô e calculamos os multiplicadores:
m
(0)
21 =
−a(0)21
a
(0)
11
= −4
2
= −2,
m
(0)
31 =
−a(0)31
a
(0)
11
= −2
2
= −1.
Fazendo agora as seguintes operações elementares:
L
(0)
1 → L(1)1 ,
m
(0)
21 L
(0)
1 + L
(0)
2 → L(1)2 ,
m
(0)
31 L
(0)
1 + L
(0)
3 → L(1)3 ,
determinamos as novas equações do sistema, ou seja, L
(1)
1 , L
(1)
2 e L
(1)
3 são as novas
linhas da matriz B1 do sistema. Fazendo os cálculos, temos:
B1 =
 2 3 −1 50 −2 −1 −7
0 −6 2 −6
 .
resolução de sistemas de equações algébricas 81
Considerando agora a nova matriz ampliada, B1, repetimos o mesmo processo,
tomando como pivô o elemento a
(1)
22 = −2 e calculando o multiplicador:
m
(1)
32 =
−a(1)32
a
(1)
22
= −−6−2 = −3.
Agora, construímos as novas linhas da matriz ampliada:
L
(1)
1 → L(2)1 ,
L
(1)
2 → L(2)2 ,
m
(1)
32 L
(1)
2 + L
(1)
3 → L(2)3 .
Portanto, a nova matriz ampliada é:
B2 =
 2 3 −1 50 −2 −1 −7
0 0 5 15
 .
Vemos que o sistema original foi reduzido a um sistema triangular equivalente
dado por:
2x1 + 3x2 − x3 = 5,
−2x2 − x3 = −7,
5x3 = 15.
Resolvendo o sistema equivalente por substituição retroativa, temos a solução:
x =
 12
3
 .
Genericamente, observe que os multiplicadores são construídos de tal forma
a gerar elementos nulos na nova matriz ampliada equivalente do sistema. Os
elementos da nova matriz ampliada podem ser obtidos para um certo pivô akk 6= 0,
da forma:
a′ij = aij −mikakj,
onde mik =
aik
akk
, k + 1 ≤ i ≤ n, k + 1 ≤ j ≤ n, e k = 1, . . . , n− 1.
Os termos independentes transformam-se da forma:
b′i = bi −mikbk, i = k + 1, . . . , n.
82 cálculo numérico
Exercício 3.1 Escreva o algoritmo para o método de Gauss e veri�que quan-
tas operações (custo computacional) são necessárias no método de eliminação de
Gauss.
Método da pivotização completa
SejaM a matriz ampliada do sistema Ax = B, vamos expressarM da forma:
M =

a11 a12 . . . a1q . . . a1n b1
a21 a22 . . . a2q . . . a2n b2
.
.
.
.
.
. . . .
.
.
. . . .
.
.
.
.
.
.
ap1 ap2 . . . apq . . . apn bp
.
.
.
.
.
. . . .
.
.
. . . .
.
.
.
.
.
.
an1 an2 . . . anq . . . ann bn

. (3.8)
Se considerarmos como pivô o elemento apq 6= 0, que possui o maior valor
absoluto e que não pertence à coluna dos termos independentes, podemos calcular
os fatores multiplicadores
miq = − aiq
apq
, ∀i 6= q.
Vamos chamar a linha p de linha pivotal Lp. Fazendo agora a operação sobre
as linhas da matriz ampliada,
miLp + Li → L′i, i 6= p,
o resultado dessa operação gera uma nova matriz cuja q-ésima coluna é formada
por zeros, exceto o termo que é o pivô.
Com essa nova matriz M′, podemos gerar outra matriz M1, onde a p-ésima
linha e a q-ésima coluna são retiradas, gerando M1, cuja ordem é (n− 1)× n.
Considerando a matrizM1 e fazendo o mesmo procedimento de transformação
elementar e depois a retirada da linha e coluna, obtemos uma nova matriz, M2.
Esse procedimento será realizado sucessivas vezes até obtermos a matriz Mn−1.
Podemos notar que esta última matriz é formada por uma única linha que contêm
apenas dois elementos.
Para obter a solução do sistema, construímos as equações geradas por todas as
linhas pivotais. Então, por meio da técnica da substituição retroativa, a solução
é �nalmente determinada.
É importante observar a ordem em que foram realizadas as eliminações para
cada incógnita, pois esta deve ser preservada, para que o novo sistema gerado
seja equivalente ao sistema original.
resolução de sistemas de equações algébricas 83
Exemplo 3.3 Seja o sistema:
2x1 + 3x2 − x3 = 5
4x1 + 4x2 − 3x3 = 3
2x1 − 3x2 + x3 = −1
⇒M0 =
 2 3 −1 54 4 −3 3
2 −3 1 −1
 .
O pivô é a21 = |4| = 4. No entanto, poderíamos ter escolhido, sem perda de
generalidade, o termo a22 = |4| = 4. Assim,
m1 = −a11
a21
= −2
4
= −1
2
m3 = −a31
a21
= −2
4
= −1
2
m1L2 + L1 = −1
2
(4, 4,−3, 3) + (2, 3,−1, 5) = (0, 1, 1
2
,
7
2
)
m3L2 + L3 = −1
2
(4, 4,−3, 3) + (2, 3,−1,−1) = (0,−5, 5
2
,−5
2
)
E1 = 4x1 + 4x2 − 3x3 = 3
M2 =
(
1 1
2
7
2
−5 5
2
−5
2
)
.
Tomando o novo pivô a21 = | − 5| = 5, temos:
m1 = −a11
a21
= −1
5
=
1
5
m1L2 + L1 =
1
5
(−5, 5
2
,−5
2
) + (1,
1
2
,
7
2
) = (0, 1, 3)
E2 = −5x2 + 5
2
x3 = −5
2
E3 = x3 = 3
Por �m, fazendo a propagação retroativa, obtemos:
x2 = 2, x1 = 1,⇒ x =
 12
3
 .
84 cálculo numérico
Método de Jordan
O método de Jordan consiste em realizar operações elementares para trans-
formar o sistema original em um sistema diagonal equivalente. Nesse caso, esco-
lhemos sempre o pivô como um elemento da diagonal e executamos o método da
pivotização completa.
Vejamos o seguinte exemplo.
Exemplo 3.4 Seja o sistema:
x1 + x2 + 2x3 = 4,
2x1 − x2 − x3 = 0,
x1 − x2 − x3 = −1.
Realizando as devidas operações elementares obtemos:
M =
 1 1 2 42 −1 −1 0
1 −1 −1 1
 ∼
 1 1 2 40 −3 −5 −8
0 −2 −3 −5

∼
 1 0 1/3 4/30 −3 −5 −8
0 0 1/3 1/3
 ∼
 1 0 0 10 −3 0 −3
0 0 1/3 1/3
 .
O sistema é reduzido à forma: x1 = 1, −3x2 = −3, 13x3 = 13 . A solução é,
portanto:
x =
 11
1
 .
Exercício 3.2 Implemente computacionalmente o método de Jordan.
3.3.2 Re�namento de soluções
A solução de um sistema está sujeita a erros dearredondamento. Nesse caso,
a solução apresenta um resíduo que pode ser medido por meio do seguinte proce-
dimento. Tomamos a matriz dos resíduos da forma:
r = B−Ax.
Supondo que a solução aproximada para o sistema Ax = B seja x(0), obtemos
a solução melhorada x(1) fazendo a correção
resolução de sistemas de equações algébricas 85
x(1) = x(0) + δ(0),
onde δ(0) representa a matriz de correção. Logo, temos:
Ax(1) = B.
Então, substituindo, teremos:
A(x(0) + δ(0)) = B
Aδ(0) = B−Ax(0)
Aδ(0) = r(0).
Devemos resolver agora o sistema linear apresentado para obtermos δ(0), que
é o termo de correção. Assim, x(1) = x(0) + δ(0).
Para obter melhor aproximação da solução, o mesmo procedimento pode ser
adotado para o novo sistema:
Aδ(1) = r(1),
onde δ(1) é a parcela de correção de x(1) e r(1) é o resíduo produzido por x(1). Isto
é:
x(2) = x(1) + δ(1)
Ax(2) = A(x(1) + δ(1)) = B
Aδ(1) = B−Ax(1)
Aδ(1) = r(1).
O processo de re�namento de soluções pode continuar sucessivas vezes.
3.3.3 Métodos iterativos
Seja Ax = B um sistema linear. Os métodos iterativos consistem em calcu-
larmos uma seqüência de soluções x(1),x(2), · · · ,x(k) obtidas com base em uma
estimativa inicial x(0), utilizando para isso um mecanismo de atualização e um
critério de parada, que pode ser considerado como sendo o próprio critério de
estimativa de exatidão, baseado em uma tolerância.
A seguir, veremos alguns métodos iterativos.
86 cálculo numérico
Método de Jacobi
No método de Jacobi, os valores das incógnitas são obtidos de forma iterativa,
partindo das equações geradas para cada uma das incógnitas individualmente.
Considerando o sistema linear Sn, podemos extrair as variáveis da forma:
x
(k+1)
1 =
b1 − (a12x(k)2 + · · ·+ a1nx(k)n )
a11
,
x
(k+1)
2 =
b2 − (a21x(k)1 + · · ·+ a2nx(k)n )
a22
,
.
.
.
.
.
.
x(k+1)n =
bn − (an1x(k)1 + · · ·+ ann−1x(k)n−1)
ann
.
onde k = 0, 1, 2, . . .
O sistema acima pode ser reescrito da seguinte forma:
x = Fx+C,
onde temos:
x =

x1
x2
.
.
.
xn
 , C =

b1/a11
b2/a22
.
.
.
bn/ann

F =

0 −a12/a11 −a13/a11 · · · −a1n/a11
−a21/a22 0 −a23/a22 · · · −a2n/a22
.
.
.
.
.
.
.
.
. · · · ...
−an1/ann −an2/ann · · · · · · 0
 .
Assim, o método de Jacobi é dado por:
a) x(0) como a estimativa inicial,
b) x(k) como as aproximações sucessivas,
x(k+1) = Fx(k) +C, k = 0, 1, 2, . . .
c) tolerância, ∣∣∣x(k+1)i − x(k)i ∣∣∣
max
< �, 1 ≤ i ≤ n.
resolução de sistemas de equações algébricas 87
Exemplo 3.5 Seja o sistema:
2x1 − x2 = 1,
x1 − 2x2 = 3.
Considerando uma tolerância � ≤ 10−2, determine a solução do sistema.
Solução: Pelo método de Jacobi, temos:
x
(k+1)
1 =
1
2
(1 + x
(k)
2 )
x
(k+1)
2 =
1
2
(−3 + x(k)1 ), k = 0, 1, 2, . . .
Tomando a solução inicial arbitrária x(0) = (x1 = 0, x2 = 0) e considerando
k = 0, temos:
x
(1)
1 =
1
2
(1 + x
(0)
2 ) =
1
2
(1 + 0) =
1
2
,
x
(1)
2 =
1
2
(−3 + x(0)1 ) =
1
2
(−3− 0) = −3
2
.
Veri�camos se o critério de parada com base na tolerância é satisfeito; se não
for, prosseguimos, para determinar a nova iteração, k = 1.
É importante que os métodos iterativos sejam convergentes na direção da
solução exata, pois, caso contrário, não teremos garantia de que para uma nova
iteração a solução aproximada é melhor que a anterior.
De�nição 3.10 (Diagonal Dominante) Uma matriz quadrada A de ordem
n× n é dita diagonal dominante quando:
|aii| >
n∑
j=1
|aij| ; i 6= j, i = 1, . . . , n.
Teorema 3.2 (Iteração de Jacobi) Seja A uma matriz diagonal dominante.
Então o sistema de equações lineares A x = B possui solução única e o método
de iteração de Jacobi convergirá para a solução exata, qualquer que seja a solução
inicial considerada.
Teorema 3.3 É su�ciente que os elementos fij da matriz F satisfaçam a desi-
gualdade
∑n
i=1 |fij| ≤ L < 1, j = 1, · · · , n, para que a solução convirja, qualquer
que seja a solução inicial considerada.
88 cálculo numérico
Portanto, para que possamos utilizar as equações de iteração de Jacobi, é
preciso veri�carmos se a matriz dos coe�cientes do sistema satisfaz a condição
diagonal dominante. Caso a condição não seja satisfeita, é possível utilizarmos
operações elementares para veri�carmos se há um sistema equivalente, para o
qual a matriz dos coe�cientes seja diagonal dominante. As equações de iteração
de Jacobi devem, então, ser escritas a partir do sistema equivalente que possui a
matriz diagonal dominante.
Método de Gauss-Seidel
Nesse método, as soluções são obtidas da forma:
i) partindo de uma estimativa inicial:
x(0) =
(
x
(0)
1 , x
(0)
2 , · · · , x(0)n
)
,
ii) calculamos a seqüência de aproximações x(1),x(2), · · · ,x(k), utilizando as equa-
ções:
x
(k+1)
1 =
1
a11
[
b1 − a12x(k)2 − a13x(k)3 − · · · − a1nx(k)n
]
,
x
(k+1)
2 =
1
a22
[
b2 − a21x(k+1)1 − a23x(k)3 − · · · − a2nx(k)n
]
,
.
.
.
.
.
.
x(k+1)n =
1
ann
[
bn − an1x(k+1)1 − an2x(k+1)2 − · · · − ann−1x(k+1)n−1
]
.
Vemos que o método de Gauss-Seidel utiliza, no mesmo ciclo de iteração, os
valores das variáveis que já foram atualizados dentro do mesmo ciclo de iteração.
Como isso há uma aceleração na obtenção das novas soluções. A convergência
do método de Gauss-Seidel é garantida pelos mesmos teoremas de convergência
aplicados ao método de Jacobi.
O critério da convergência utilizando a diagonal dominante é um critério su-
�ciente para que haja a convergência para a solução exata. No entanto, quando
o critério da diagonal dominate não é satisfeito, um critério mais rigoroso, com
base no raio espectral da matriz de iteração determina a condição necessária e
su�ciente para a convergência dos métodos de Jacobi e Gauss-Seidel. Em virtude
disso, para um determinado sistema, pode ocorrer que o método de Jacobi não
converge, enquanto o método de Gauss-Seidel converge, ou vice-versa.
De�nição 3.11 O raio espectral de uma matriz quadrada An×n é de�nido por
ρ(A) = max|λi|,
resolução de sistemas de equações algébricas 89
onde λi corresponde aos autovalores da matriz A.
Em outras palavras, o raio espectral de uma matriz é o seu maior autovalor,
quando calculado em valor absoluto.
Teorema 3.4 A seqüência de soluções S = {x(0),x(1), · · · ,x(n), · · · }, gerada por
x(k+1) = Fx(k) +C, k = 0, 1, 2, . . .
é convergente, para qualquer que seja a estimativa inicial x(0), se e somente se
ρ(F) < 1.
Infelizmente, o cálculo do raio espectral de uma matriz possui um custo com-
putacional mais elevado do que o cálculo para veri�cação da condição de diagonal
dominante, por isso se evita o cálculo do raio espectral a priori.
O critério de parada pode ser determinado por∣∣∣x(k+1)i − x(k)i ∣∣∣
max
< �,
onde � é a tolerância.
Exercício 3.3 Implemente computacionalmente o método de Gauss-Seidel. Em
seguida, utilize sua implementação, para resolver o sistema dado no exemplo 3.5.
Método de Sobre-Relaxação Sucessiva
3.4 Sistemas mal-condicionados
Vimos que, se x̂ é uma solução aproximada do sistema Ax = B, então:
Ax̂ = B− r⇒ r = B−Ax̂.
Se x̂ for uma boa solução, esperamos que o resíduo r seja pequeno. Em outras
palavras, que os elementos de r possuam valores pequenos. No entanto, valores
pequenos para a matriz dos resíduos nem sempre garantem que a aproximação x̂
seja boa. Vejamos o exemplo que ilustra tal situação.
Seja o sistema dado pelas equações:
x1 + 1, 001x2 = 2, 001,
0, 999x1 + x2 = 1, 999. (3.9)
90 cálculo numérico
A solução exata desse sistema é x =
(
1
1
)
. Suponha que a solução aproxi-
mada seja x̂ =
(
2, 0
0, 001
)
. Então,
r =
(
2, 0011, 999
)
−
(
1, 000 1, 001
0, 999 1, 000,
)(
2, 000
0, 001
)
=
( −0, 000001
0, 000000
)
.
Levando em consideração a matriz dos resíduos, somos induzidos a concluir
que a matriz x̂ é uma boa aproximação; porém, vemos que isso não é verdade.
Nos casos em que isso acontece, dizemos que o sistema está mal-condicionado.
Para identi�carmos se um sistema está mal-condicionado, devemos veri�car se o
determinante normalizado da matriz dos coe�cientes é muito menor que a uni-
dade.
De�nição 3.12 O determinante normalizado de uma matriz A é obtido da for-
ma:
Det(NormA) =
Det(A)
α1α2 · · ·αn ,
onde αi =
√
a2i1 + a
2
i2 + · · ·+ a2in, i = 1, 2, · · · , n.
Para o caso dado em (3.9), calculando o valor do determinante normalizado
da matriz dos coe�cientes, temos:
Det(NormA) = 5× 10−7 � 1,
que con�rma que o sistema é mal-condicionado.
Exercício 3.4 Implemente computacionalmente o cálculo do determinante nor-
malizado e veri�que com a sua implementação, o resultado para o caso (3.9).
3.5 Sistemas não lineares
Os sistemas de equações algébricas nem sempre são lineares, e, portanto, os
métodos empregados nas seções anteriores não podem ser diretamente utilizados
para a resolução de sistemas de equações algébricas não lineares ou transcenden-
tais.
resolução de sistemas de equações algébricas 91
De�nição 3.13 Um sistema de equações algébricas não lineares é expresso da
forma:
fi(x1, x2, . . . , xn) = 0, i = 1, 2, . . . , n, (3.10)
onde as funções fi são funções sobre o domínio dos números Reais.
De�nição 3.14 Uma solução do sistema não linear é um vetor x = (x1, x2, . . . , xn)
de componentes reais para o qual o conjunto de equações (3.10) é satisfeito si-
multaneamente.
Vamos considerar o seguinte sistema, apresentado em [Mathews, 87], como
estudo de caso, já que é um bom exemplo.
f1(x, y) = x
2 − 2x− y + 0, 5 = 0, (3.11)
f2(x, y) = x
2 + 4y2 − 4 = 0. (3.12)
O sistema dado é não linear. É fácil percebermos que a primeira equação
corresponde a uma parábola e a segunda equação, a uma elipse. Isso pode ser
visto na Figura 3.1. O que desejamos encontrar é um ponto no plano, digamos
(p, q), que satisfaça simultaneamente às duas equações. Isto é, tal que f1(p, q) =
f2(p, q) = 0.
Observando a �gura, podemos concluir que há dois pontos (pi, qi), i = 1, 2,
onde as duas curvas se interceptam e, portanto, são soluções para o sistema.
Um dos métodos para determinarmos as soluções é utilizarmos os grá�cos das
equações que compõem o sistema e veri�carmos se existe um ponto de intersecção
comum às duas equações. Embora esse método pareça simples, na prática, nem
sempre é viável, quando as equações são complicadas, ou para sistemas de ordens
superiores.
3.5.1 Método do ponto �xo
O primeiro método iterativo que estudaremos para o caso de sistemas de
equações não lineares é o método do ponto �xo. O objetivo desse método é gerar
uma seqüência de pontos (pk, qk), k = 1, 2, . . . que convirja para a solução exata
(p, q).
Semelhantemente ao método da iteração linear, podemos, com base na pri-
meira equação de (3.11) gerada por f1(x, y) = 0, resolvê-la para a variável x da
forma:
x =
x2 − y + 0, 5
2
.
92 cálculo numérico
Figura 3.1: Visualização grá�ca das raízes.
Da segunda equação, gerada por f2(x, y) = 0, podemos reescrevê-la da forma:
x2 + 4y2 − 8y − 4 = −8y ⇒ y = −x
2 − 4y2 + 8y + 4
8
.
Logo, essas duas novas equações geram um sistema equivalente ao original.
Usando essas novas equações, para escrever as relações de iteração, temos:
xk+1 = u1(xk, yk) =
x2k − yk + 0.5
2
, (3.13)
yk+1 = u2(xk, yk) =
−x2k − 4y2k + 8yk + 4
8
, (3.14)
com k = 0, 1, . . .
Observando os grá�cos da Figura 3.1, vemos que uma das raízes está próxima
do ponto (−0, 2; 1) e a outra de (1, 8; 0, 3).
Se iniciarmos a iteração com a raiz inicial (x0, y0) = (0, 1), vemos na Figura
3.2 a solução para as iterações k = 0, 1, 10. O leitor poderá fazer a seqüência
completa e veri�car que ela é convergente para o valor de uma das raízes que está
nessa vizinhança.
resolução de sistemas de equações algébricas 93
Figura 3.2: Aplicação do operador ITNL.
Seguindo o mesmo tipo de procedimento, podemos agora considerar a ou-
tra raiz, tomando como valor inicial (x0, y0) = (2, 0). Usando o operador ITNL
de�nido, vemos, na Figura 3.3, que a seqüência de pontos obtidos não converge
para o valor da raiz.
Com base nesse resultado, inferimos que algo está errado e que as equações
(3.13) e (3.14) não podem ser usadas para determinar a segunda raiz. O problema
reside no fato de que agora temos mais de uma variável e a iteração que é boa
ao longo de uma direção nem sempre é adequada ao longo de outra direção. A
variação ao longo de uma direção passa a ser in�uenciada pelas derivadas parciais.
Portanto, a existência de um critério de convergência torna-se fundamental, para
que possamos garantir que o método iterativo do ponto �xo para sistemas não
lineares convirja para a solução exata.
De�nição 3.15 Para o sistema de equações não lineares (3.10), o método da
iteração de ponto �xo é uma seqüência de pontos (p, q, r, . . .) de�nidos por:
pk+1 = g1(pk, qk, rk, . . .)
qk+1 = g2(pk, qk, rk, . . .) (3.15)
rk+1 = g3(pk, qk, rk, . . .)
.
.
.
.
.
. (3.16)
94 cálculo numérico
Figura 3.3: Aplicando o operador ITNL.
com k = 0, 1, 2, . . .
Vamos supor um sistema não linear de ordem dois. Sejam as funções g1(x, y)
e g2(x, y) contínuas e com derivadas parciais também contínuas na região que
contém um ponto �xo, e assumindo que o ponto inicial (p0, q0) é escolhido su�ci-
entemente próximo do ponto �xo (p, q), temos:
Teorema 3.5 (Iteração do ponto �xo) Se:
∣∣∣∣∂g1(p, q)∂x
∣∣∣∣ + ∣∣∣∣∂g1(p, q)∂y
∣∣∣∣ < 1,∣∣∣∣∂g2(p, q)∂x
∣∣∣∣ + ∣∣∣∣∂g2(p, q)∂y
∣∣∣∣ < 1,
então a iteração converge para o ponto �xo (p, q).
Se o sistema for de ordem três, o teorema é estendido para:
resolução de sistemas de equações algébricas 95
∣∣∣∣∂g1(p, q, r)∂x
∣∣∣∣ + ∣∣∣∣∂g1(p, q, r)∂y
∣∣∣∣+ ∣∣∣∣∂g1(p, q, r)∂z
∣∣∣∣ < 1,∣∣∣∣∂g2(p, q, r)∂x
∣∣∣∣ + ∣∣∣∣∂g2(p, q, r)∂y
∣∣∣∣+ ∣∣∣∣∂g2(p, q, r)∂z
∣∣∣∣ < 1,∣∣∣∣∂g3(p, q, r)∂x
∣∣∣∣ + ∣∣∣∣∂g3(p, q, r)∂y
∣∣∣∣+ ∣∣∣∣∂g3(p, q, r)∂z
∣∣∣∣ < 1,
e a iteração converge para o ponto �xo (p, q, r).
A condição de convergência do método do ponto �xo pode ser estendida para
sistemas de ordens superiores, seguindo o mesmo procedimento.
Do cálculo de funções de várias variáveis, podemos notar que as expressões
que envolvem as derivadas parciais estão relacionadas à matriz do Jacobiano das
funções.
De�nição 3.16 Sejam fi(x1, x2, . . . , xn), i = 1, . . . , n funções de�nidas sobre os
reais. O vetor gradiente para a função fi(x) é de�nido por:
∇fi(x) =

∂fi(x)
∂x1
∂fi(x)
∂x2
.
.
.
∂fi(x)
∂xn
 .
De�nição 3.17 A matriz Jacobiano das funções fi(x1, x2, . . . , xn), i = 1, . . . , n é
de�nida por:
J(x) =

∇f1(x)T
∇f2(x)T
.
.
.
∇fn(x)T
 =

∂f1(x)
∂x1
∂f1(x)
∂x2
· · · ∂f1(x)
∂xn
∂f2(x)
∂x1
∂f2(x)
∂x2
· · · ∂f2(x)
∂xn
.
.
.
.
.
.
.
.
.
∂fn(x)
∂x1
∂fn(x)
∂x2
· · · ∂fn(x)
∂xn

O cálculo do Jacobiano de um sistema é simples, porém longo e tedioso. Em
geral, o cálculo da matrix Jacobiano está implementado nos sistemas computação
algébrica. Note que a matriz Jacobiana não precisa ser quadrada.
Exercício 3.5 Sejam as funções:
96 cálculo numérico
f1(x, y) = x
2 + y2 − 1,
f2(x, y) = x
3 − y.
Determine o Jacobiano para as funções.
3.5.2 Método de iteração não linear de Seidel
O método proposto por Seidel é um melhoramento do método do ponto �xo.
A idéia é semelhante à do método de iteração de Gauss-Seidel para sistemas
lineares.
Suponha quetemos um sistema não linear formado por duas equações e duas
variáveis. O método de Seidel utiliza a iteração xk+1, para computar a iteração
de yk+1. Isto é:
xk+1 = u1(xk, yk), yk+1 = u2(xk+1, yk).
Considerando o exemplo dado pelo sistema composto pelas equações (3.13) e
(3.14), a aplicação do método de iteração de Seidel, torna-se:
xk+1 = u1(xk, yk) =
x2k − yk + 0.5
2
, (3.17)
yk+1 = u2(xk, yk) =
−x2k+1 − 4y2k + 8yk + 4
8
, (3.18)
com k = 0, 1, . . .
O método de Seidel é facilmente estendido para sistemas de ordem superior.
Exercício 3.6 Implemente computacionalmente o método de iteração de Seidel
e, em seguida, resolva o sistema do exemplo apresentado partindo da raiz inicial
(0, 1) e compare com o resultado, quando aplicado o método de iteração do ponto
�xo.
Para que o método de iteração não linear de Seidel possa ser aplicado, o
critério de convergência dado no Teorema de iteração do ponto �xo (3.5) deve ser
satisfeito.
Exercício 3.7 Utilizando sua implementação do método de iteração não linear
de Seidel, determine a raiz do sistema:
resolução de sistemas de equações algébricas 97
u1(x, y) =
−x3 + 4x + y
4
,
u2(x, y) =
4y − y2
4
− x
2
9
+ 1,
partindo do ponto inicial (1, 2; 1, 8). Em seguida, desenhe os grá�cos das cur-
vas e veri�que o valor da intesecção. Observe que deve veri�car o critério de
convergência.
3.5.3 Método de Newton para sistemas
O método de Newton para resolução de equações não lineares apresentado na
seção 2.11.3 tomou como princípio a expansão em série de Taylor da função f(x)
que gera a equação. Vimos que a raiz iterada é determinada pela equação (2.68).
Seguindo um raciocínio análogo, o método de Newton-Raphson pode ser es-
tendido para sistemas de equações não lineares. Vamos inicialmente considerar
um sistema bastante simples de duas equações com duas incógnitas dado por:
f1(x, y) = 0,
f2(x, y) = 0.
Supondo que uma solução aproximada (xi, yi) do sistema é conhecida e a solução
aproximada está su�cientemente próxima da solução exata (x∗, y∗), então as fun-
ções f1 e f2 no ponto (x
∗, y∗) podem ser expressas em termos da série de Taylor
das funções f1(x, y) e f2(x, y) em torno do ponto (xi, yi), da forma:
f1(x
∗, y∗) = f1(xi, yi) + (x∗ − xi)∂f1
∂x
∣∣
(xi,yi) + (y
∗ − yi)∂f1
∂y
∣∣
(xi,yi) + · · · (3.19)
f2(x
∗, y∗) = f2(xi, yi) + (x∗ − xi)∂f2
∂x
∣∣
(xi,yi) + (y
∗ − yi)∂f2
∂y
∣∣
(xi,yi) + · · · (3.20)
Como estamos considerando que (x∗, y∗) é solução, então f1(x∗, y∗) = 0 e
f2(x
∗, y∗) = 0, e desprezando os termos de ordens superiores, temos
∂f1
∂x
∣∣
(xi,yi) ∆xi +
∂f1
∂y
∣∣
(xi,yi) ∆yi = −f1(xi, yi) (3.21)
∂f2
∂x
∣∣
(xi,yi) ∆xi +
∂f2
∂y
∣∣
(xi,yi) ∆yi = −f2(xi, yi), (3.22)
98 cálculo numérico
onde de�nimos ∆xi = x
∗ − xi e ∆yi = y∗ − yi, respectivamente. As equações
acima podem ser expressas na forma matricial(
∂f1
∂x
∣∣
(xi,yi)
∂f1
∂y
∣∣
(xi,yi)
∂f2
∂x
∣∣
(xi,yi)
∂f2
∂y
∣∣
(xi,yi)
)(
∆xi
∆yi
)
= −
(
f1(xi, yi)
f2(xi, yi)
)
, (3.23)
ou equivalentemente,
J(x(i))∆x(i) = −f(x(i)). (3.24)
O sistema de equações (3.23) é um sistema linear para a determinação de ∆xi
e ∆yi. Observe que a matriz quadrada J(x
(i)) em (3.24) corresponde à matriz
Jacobiano das funções f1 e f2. O sistema (3.24) pode ser resolvido utilizando,
por exemplo, a regra de Cramer, que resulta em
∆xi =
−f1(xi, yi)∂f2(xi,yi)∂y + f2(xi, yi)∂f1(xi,yi)∂y
J(f1(xi, yi), f2(xi, yi))
, (3.25)
∆yi =
−f2(xi, yi)∂f1(xi,yi)∂x + f1(xi, yi)∂f2(xi,yi)∂x
J(f1(xi, yi), f2(xi, yi))
, (3.26)
onde J(f1(xi, yi), f2(xi, yi)) é o determinante da matriz Jacobiano.
Uma vez obtida a solução desse sistema podemos obter a nova solução apro-
ximada
xi+1 = xi +∆xi, (3.27)
yi+1 = yi +∆yi. (3.28)
Partindo de uma estimativa inicial (x0, y0) o sistema de equações (3.23) deve
ser iterado até que se alcance uma tolerância desejada |∆xi| ≤ εx e |∆yi| ≤ εy ou
|f1(xi+1, yi+1)| ≤ εf1 e |f2(xi+1, yi+1)| ≤ εf2 .
A técnica de expansão em série de Taylor pode ser aplicada para o caso de
sistemas não lineares de ordens superiores, ou seja, dado o sistema
f1(x1, x2, · · · , xn) = 0,
f2(x1, x2, · · · , xn) = 0,
.
.
.
fn(x1, x2, · · · , xn) = 0,
ou de forma compacta matricial,
resolução de sistemas de equações algébricas 99
f(x) = 0. (3.29)
Para isso, seja x(k) = (x
(k)
1 , x
(k)
2 , . . . , x
(k)
n ) uma aproximação da solução do
sistema. Então, seguindo analogamente a expansão em série de Taylor para várias
variáveis, teremos:
(J(k))(x(k+1) − x(k)) = −f (k), (3.30)
onde k corresponde ao número de iterações, J(k) é a matriz do Jacobiano do
sistema e f (k) é a matriz coluna das equações, ambas calculadas para o valor da
k-ésima solução iterada x(k).
Em geral, a forma da equação (3.30) é preferível à forma
x(k+1) = x(k) − (J(k))−1f (k), (3.31)
uma vez que o cálculo da inversa de uma matriz possui um custo computacional
elevado.
O critério de garantia da convergência do método de Newton requer um de-
talhamento que está além do escopo do presente texto; no entanto, pode-se ga-
rantir que o método é convergente desde que a estimativa inicial x(0) seja tal
que ‖ x(0) − p ‖< δ, onde p corresponde à solução exata e δ seja um número
bem pequeno [Burden, 03]. Em outras palavras, que a estimativa inicial esteja
na vizinhança da solução exata, além da necessidade de que as funções fi sejam
contínuas e limitadas na vizinhança de p e que o Jacobiano seja não-nulo na
vizinhança de p.
Exemplo 3.6 Seja o sistema:
x2 − 2x− y + 0, 5 = 0
x2 + 4y2 − 4 = 0.
Usando o método de Newton, vamos determinar a raiz para uma iteração partindo
da raiz inicial x(0) =
(
2, 0
0, 25
)
. Para isso, identi�camos o vetor das funções e a
correspondente matriz do Jacobiano:
f(x) =
(
x2 − 2x− y + 0, 5
x2 + 4y2 − 4
)
, J(x) =
(
2x− 2 −1
2x 8y
)
.
Calculando os valores das matrizes no ponto (2, 0; 0, 25), temos:
f(2, 0; 0, 25) =
(
0, 25
0, 25
)
, J(2, 0; 0, 25) =
(
2, 0 −1, 0
4, 0 2, 0
)
.
100 cálculo numérico
Usando a equação (3.30), temos o sistema:(
2, 0 −1, 0
4, 0 2, 0
) ( 4x
4y
)
= −
(
0, 25
0, 25
)
.
Resolvendo o sistema, obtemos:
4x =
( 4x
4y
)
=
( −0, 09375
0, 0625
)
.
Logo, o valor da primeira iteração é determinado por:
x(1) = x(0) +4x =
(
2, 0
0, 25
)
+
( −0, 09375
0, 0625
)
=
(
1, 9625
0, 3125
)
.
Seguindo o mesmo procedimento, podemos obter as novas iterações.
Exercício 3.8 Implemente o método de Newton para sistemas e em seguida de-
termine a solução do sistema do exemplo apresentado para cinco iterações.
3.6 Exercícios propostos
1. Mostre que no processo de substituição retroativa o número de operações
de adição (subtração) é
n2−n
2
, de multiplicação é
n2−n
2
e de divisão é n, onde
n corresponde à ordem do sistema. Sugestão: veri�que com o Derive o
resultado da soma
∑n
k=1 k.
2. Para os sistemas a seguir, encontre o sistema triangular superior equivalente
e determine a solução.
a)
2x+ 4y − 6z = −4
x+ 5y + 3z = 10
x+ 3y + 2z = 5
b)
−5x+ 2y − z = −1
x+ 3z = 5
3x+ y + 6z = 17
resolução de sistemas de equações algébricas 101
c)
0, 8x+ 1, 4y + 3z = 12, 6
0, 6x+ 0, 9y + 2, 8z = 10, 8
2x+ y = 4
d)
x+ 4y − 2z + 2w = 8
2x+ 3y + z + 3w = 8
x+ 5y − 5z − 3w = 18
2x+ 4y − 4z = 12
3. Utilize o método da pivotização completa para determinar a solução dos
sistemas do exercício anterior.
4. SejaU a matriz de um sistema triangular superior. Se para algum i tivermos
uii = 0, mostre que o sistema Ux = b ou não terá solução, ou terá muitas
soluções. Qual a condição para que o sistema possua solução única, nesse
caso?
5. Seja a matriz dos coe�cientes de um sistemadada pelos elementos:
aij = i
j−1, 1 ≤ i, j ≤ 6.
Veri�que se esse sistema é mal-condicionado.
6. Qual o número de operações necessárias no método direto de Gauss?
7. Sejam os sistemas de equações algébricas lineares a seguir. Utilize os mé-
todos iterativos vistos neste capítulo para determinar a solução para dez
iterações.
a)
x1 − 5x2 = 9
4x1 − x2 = 15
b)
2x1 + 8x2 − x3 = 11
5x1 − x2 + x3 = 10
−x1 + x2 + 4x3 = 3
102 cálculo numérico
8. Use o método iterativo de Gauss-Seidel para resolver o sistema [Mathews,
87]:
12x1 − 2x2 + x3 = 5
−2x1 + 12x2 − 2x3 + x4 = 5
x1 − 2x2 + 12x3 − 2x4 + x5 = 5
x2 − 2x3 + 12x4 − 2x5 + x6 = 5
.
.
.
.
.
.
x46 − 2x47 + 12x48 − 2x49 + x50 = 5
x47 − 2x48 + 12x49 − 2x50 = 5
x48 − 2x49 + 12x50 = 5
9. Determine as soluções dos sistemas não lineares usando os métodos apre-
sentados neste capítulo, considerando seis iterações.
a)
x =
y − x3 + 3x2 + 3x
4
y =
y2 + 2y − x− 2
2
partindo de (−0, 3;−1, 3).
b)
sen (xy)− y = x
y cos (xy) = −1,
partindo do ponto (1, 2).
c)
y2 + x2 − 2 = 0
x2 − y = 0
partindo de (0, 8; 0, 8) e de (−1, 3; 0, 8).
10. Use o método de Newton-Raphson para resolver os sistemas:
a)
2y2 − 3x2 + 1 = 0
−x2 + 2x− 2y + 8 = 0
resolução de sistemas de equações algébricas 103
partindo de (2, 5; 3, 0) e (−1, 6; 1, 6).
b)
x+ ey = 68, 0742
sen x− y = −3, 5942
partindo de (2, 5; 4, 0).
c)
4x21 + 2x
2
2 + x3 = 16
(x1 − 1)2 + x2 − x3 = 0
(x1 + 1)
2 + (x2 + 1)
2 − x3 = 0
com uma tolerância de 0, 001.
d)
sen x+ ln x+ ln y ez = 1, 87
cos x+ sen y + e−z = 39, 94
lnx− ey + sen z = −13, 10
com uma tolerância de 0, 001.
104 cálculo numérico
Capítulo 4
APROXIMAÇÃO DE
AUTOVALORES
No Capítulo 3 apresentamos algumas técnicas para a resolução de sistemas de
equações algébricas lineares e não lineares. Naquela ocasião utilizamos o conceito
de matrizes para simpli�car as manipulações, assumindo que o leitor já possuia
uma noção básica sobre álgebra matricial.
4.1 Autovalores e autovetores
No Capítulo 3 vimos que um sistema de equações algébricas lineares pode ser
escrito da forma matrical como Ax = B. Para que este sistema tenha solução
única, é necessário que det(A) 6= 0. Suponha que a matriz B seja dada por λx,
onde λ é um escalar. Temos então a equação,
Ax = λx, (4.1)
que pode ser reescrita sob a forma,
Ax− λx = 0, (4.2)
ou ainda, da forma,
(A− λI)x = 0, (4.3)
onde I é a matriz identidade.
Agora, a equação (4.3) é uma equação homogênea, e vimos que para termos
uma solução não trivial, devemos ter o det(A− λI) = 0.
De�nição 4.1 Seja A uma matriz quadrada de dimensão n × n. O polinômio
de�nido por
106 cálculo numérico
p(λ) = det(A− λI), (4.4)
é denominado o polinômio característico de A.
É fácil veri�car que o polinômio característico é um polinômio de grau máximo
n, e portanto, possui n raízes.
De�nição 4.2 As raízes do polinômio característico são denominadas autovalo-
res da matriz A. Se λ é um autovalor de A e se (A−λI)x = 0 para x 6= 0, então
o vetor x é denominado um autovetor da matriz A associado ao autovalor λ.
Como as raizes de um polinômio podem ser reais ou complexas e com ou sem
multiplicidades, os n autovalores de uma matriz An×n seguem da mesma forma.
Exemplo 4.1 Seja a matriz
A =
 10 0 01 −3 −7
0 1 3

Determine os autovalores da matriz A.
Solução: De acordo com a equação (4.4) o polinômio caraterístico é dado por;
p(λ) = (10− λ)(λ2 − 2) = 0,
cujas soluções são: λ1 = 10, λ2 =
√
2 e λ3 = −
√
2.
A determinação de autovalores de matrizes de ordens superiores a três se
torna mais complicado uma vez que as soluções exatas de um polinômio de or-
dem elevada não é simples. Entretanto, existem alguns métodos numéricos que
permitem uma solução aproximada dos autovalores. As técnicas para obtenção
dos autovalores de uma matriz são classi�cadas como diretas ou indiretas. As
técnicas diretas permitem determinar os autovalores após um número �nito de
operações enquanto as técnicas indiretas são técnicas de aproximação iterativas.
Os métodos diretos não serão discutidos aqui. O método da potência é um mé-
todo iterativo simples para usado para determinar o maior autovalor real, em
termo absoluto, e o seu correspondente autovetor. O método QR é um dos mais
importantes na determinação de autovalores aproximados.
aproximação de autovalores 107
4.1.1 Método da potência
Seja uma matrizAn×n com n autovalores reais e distintos, digamos λ1, λ2, · · · , λn
e os correspondentes n autovetores linearmente independentes x1,x2, · · · ,xn. Va-
mos considerar que os valores absolutos dos autovalores são tais que |λ1| > |λ2 >
· · · , |λn|. Como os autovetores são linearmente independentes, portanto geram um
espaço vetorial n-dimensional, um vetor arbitrário qualquer neste espaço pode ser
escrito em termos de uma combinação linear dos autovetores. Logo,
x = c1x1 + c2x2 + · · ·+ cnxn =
n∑
i=1
ci xi, (4.5)
onde os escalares ci 6= 0 são constantes. Multiplicando a equação (4.5) pela
matriz A, A2, · · · , Ak, onde aqui o expoente signi�ca a multiplicação repetida
da matriz, e lembrando que temos a condição Axi = λixi, obtemos:
Ax =
n∑
i=1
ciAxi = ciλixi = y
(1), (4.6)
A2x = Ay(1) =
n∑
i=1
ciλiAxi = ciλ
2
ixi = y
(2), (4.7)
.
.
.
Akx = Ay(k−1) =
n∑
i=1
ciλ
k−1
i Axi = ciλ
k
i xi = y
(k). (4.8)
Fatorando o termo λk1 da equação (4.8), obtemos
Akx = λk1
n∑
i=1
ci
(
λi
λ1
)k
xi = y
(k). (4.9)
Entretanto, como |λ1| > |λi|, para i = 2, 3, · · · , n, a razão
(
λi
λ1
)k
→ 0 quando
k →∞, e portanto a equação (4.9) tende ao limite
Akx = λk1c1x1 = y
(k). (4.10)
Podemos notar que a equação (4.10) tende a zero quando |λ1| < 1 e tende a
in�nito quando |λ1| > 1. Logo, devemos fazer um ajuste de escala em cada passo
na equação (4.10).
O ajuste de escala pode ser obtido fazendo qualquer componente do vetor y(k)
igual a um a cada passo no processo. Vamos escolher a primeira componente do
108 cálculo numérico
vetor y(k), ou seja y
(k)
1 , como esta componente. Logo, x1 = 1, 0 e a primeira
componente da equação (4.10) �ca
y
(k)
1 = λ
k
1c1. (4.11)
Considerando a equação (4.10) de k para k + 1, obtemos
y
(k+1)
1 = λ
k+1
1 c1. (4.12)
Calculando a razão entre as equações (4.12) e (4.11), resulta em
y
(k+1)
1
y
(k)
1
=
λk+11 c1
λk1c1
= c1. (4.13)
Portanto, se y
(k)
1 = 1, então y
(k+1)
1 = λ1. Se y
(k+1)
1 for ajustado por λ1 de modo
que y
(k+1)
1 = 1, então y
(k+2)
1 = λ1, e assim por diante. Consequentemente, ajustar
uma componente particular de um vetor y a cada iteração essencialmente fatora
λ1 do vetor y de forma que a equação (4.10) converge para um valor �nito. No
limite quando k →∞, o fator de escala tende a λ1 e o vetor y ajustado por escala
tende ao autovetor x1.
Embora o método da potência seja um método interessante, a sua aplicação
deve observar os seguintes requisitos: i) o maior autovalor deve ser distinto, ii) os
n autovetores devem ser linearmente independentes, iii) a estimativa inicial x
(0)
i
deve conter alguma componente do autovetor xi, de modo que ci 6= 0, e iv) a taxa
de convergência deve ser proporcional à razão |λi|/|λi−1|, onde λi é o autovalor
de maior magnitude e λi−1 o segundo autovalor de maior magnitude.
Exemplo 4.2 Determine o autovalor aproximado da matriz usando o método da
potência.
A =
 4 2 22 8 −1
1 4 −4

Solução: A equação característica de A é p(λ) = −λ3 + 8λ2 + 18λ − 98, cujas
raízes são λ1 ≈ 8, 7787;λ2 ≈ 2, 9743;λ3 ≈ −3, 7531. Em termos absolutos e em
ordem decrescente temos |λ1| > |λ3| > |λ2|. Aplicando o método da potência
considerando uma norma ‖ x ‖= maxi |xi| e considerando como vetor inicial
x(0) = 11
1
 ,
temos:
aproximação de autovalores 109
y(1) = Ax(0) =
 4 2 22 8 −1
1 4 −4
 11
1
 =
 89
1
 = 9
 0, 88881
0, 1111

(4.14)
y(2) = A
y(1)
‖ y(1) ‖ =
 4 2 22 8 −1
1 4 −4
 0, 88881
0, 1111
 =
 5, 77779, 6666
4, 4444

= 9, 6666
 0, 59771
0, 4598

(4.15)
y(3) = A
y(2)
‖ y(2) ‖ =
 4 2 22 8 −1
1 4 −4
 0, 59771
0, 4598
 =
 5, 31048, 7356
2, 7585

= 8, 7356
 0, 60641
0, 3158

(4.16)
Se continuarmos, obteremos uma sequência dada por
{9, 0; 9, 6666; 8, 7356; 8, 9000; 8, 7620; 8, 7977; · · · },
o que mostra a convergência para |λ1|, o maior autovalor em termos absolutos
da matriz A. Considerando o auvalor λ1 ≈ 8, 7356, o autovetor associado é
x1 ≈
 0, 60641
0, 3158

.
110 cálculo numérico
Capítulo 5
INTERPOLAÇÃO
Neste capítulo, vamos estudar algumas técnicas que permitem determinar, de
forma aproximada, uma função que descreve o comportamento de outra função
que não se conhece, mas que tem valores tabelados do tipo (xi, f(xi)),
i = 0, 1, . . . , n.
Vamos supor que, por meio de um experimento físico ou outro qualquer, temos
uma tabela da forma:
i xi yi
0 x0 y0
1 x1 y1
.
.
.
.
.
.
.
.
.
n xn yn
Uma questão que surge é, então, como poderemos estimar o valor da função
que gerou a tabela, digamos y = f(x), para um dado valor de x 6= xi? O problema
consiste em determinar uma função g(x) tal que g(x) seja uma aproximação para
a função desconhecida f(x) que deu origem à tabela.
Duas situações podem ocorrer:
• O valor x é tal que x ∈ [x0, xn]. Em outras palavras, o valor de x está no
intervalo de pontos dados na tabela.
• O valor de x é tal que x pode estar dentro ou fora do intervalo dado pela
tabela.
No primeiro caso, os métodos a serem empregados constituem o que chamamos
de interpolação. No segundo caso, devemos utilizar os métodos que permitem
fazer uma extrapolação.
Neste capítulo, estaremos interessados nos métodos de interpolação.
112 cálculo numérico
Figura 5.1: A função g(x) é uma aproximação para f(x) no intervalo [a, b].
Suponha que temos a situação ilustrada na Figura 5.1:
Na Figura 5.1, a função g(x) pode ser considerada uma aproximação para a
função f(x). Observe que temos:
g(a) = f(a), g(b) = f(b) (5.1)
Figura 5.2: Várias aproximações para a função f(x) em torno da origem.
Na Figura 5.2, várias funções podem ser tomadas com uma aproximação para
a função f(x). Há várias formas de escolher a função g(x) que satisfaz à condição
(5.1). É possível escolhermos funções g(x) da forma polinomial, trigonométrica,
exponencial, logarítmica, função racional etc. Neste capítulo, consideraremos
apenas o estudo de métodos de interpolação polinomial. Isto é, a escolha da
função g(x) é polinomial de grau n a ser determinada de acordo com informações
da tabela.
interpolação 113
De�nição 5.1 Um polinômio sobre os reais é uma função da forma:
a0 + a1x + a2x
2 + . . .+ anx
n,
onde ai ∈ <, e n ∈ ℵ é o grau do polinômio.
Exemplo 5.1 Um polinômio de grau zero é uma função constante.
P0(x) = a0
Exemplo 5.2 Um polinômio de grau um é uma reta:
P1(x) = a1x + a0
5.1 Interpolação linear
A interpolação linear é a mais simples forma de interpolação polinomial e
consiste em aproximar a função tabelada por meio de um polinômio de grau um,
ou seja, por retas. A Figura 5.3 ilustra a situação.
Figura 5.3: Interpolação por retas.
Sejam p1 = (x0, y0) e p2 = (x1, x2) dois pontos de uma função y = f(x).
Desejamos calcular o valor de y para um valor de x = x tal que x ∈ (x0, x1).
Teorema 5.1 Sejam os pontos (xi, yi), xi 6= xj,∀i 6= j, i, j = 0, . . . , n, então existe
um único polinômio P(x) de grau ≤ n tal que a condição
P(xi) = yi, i = 0, . . . , n
é satisfeita.
114 cálculo numérico
Em outras palavras, o Teorema 5.1 diz que o polinômio interpolador obtido a
partir de uma tabela que contém (n+1)-pontos possui grau máximo n. Assim, no
caso de dois pontos tabelados (x0, y0), (x1, y1), o polinômio interpolador deve ser
de grau máximo um, n = 1. Isto é, P1(x) = a1x + a0, que representa a equação
de uma reta.
Para determinarmos o polinômio interpolador P1(x), devemos determinar os
coe�cientes a0 e a1. Temos então que, pela propriedade expressa no Teorema 5.1,
P1(x0) = a0 + a1x0 = y0, (5.2)
P1(x1) = a0 + a1x1 = y1. (5.3)
Temos aqui um sistema de duas equações e duas incógnitas. A matriz dos
coe�cientes é dada por:
A =
(
1 x0
1 x1
)
. (5.4)
Para que a solução do sistema seja única, devemos ter que det(A) 6= 0
⇒ x0 6= x1.
Exemplo 5.3 Suponha a função f(x) tal que conhecemos apenas os pontos (0, 00;
1, 35), (1, 00; 2, 94). Determinar o valor de f(0, 73).
Solução: Usaremos a interpolação linear. O sistema de equações algébricas a
ser resolvido é: (
1, 00 0, 00
1, 00 1, 00
) (
a0
a1
)
=
(
1, 35
2, 94
)
(5.5)
Resolvendo o sistema, obtemos:
P1(x) = 1, 35 + 1, 59x.
Portanto, o valor interpolado para x = 0, 73 é P1(0, 73) = 1, 35+1, 59 ·0, 73 =
2, 5107.
Nessa interpolação, estamos sujeitos a dois tipos de erros: (i) erros devidos
ao truncamento, ET , e (ii) erros devidos a arredondamentos, EA, os quais serão
discutidos mais adiante.
interpolação 115
5.2 Interpolação quadrática
A interpolação quadrática aplica-se quando conhecemos uma tabela que con-
tém três pontos distintos. De acordo com o Teorema 5.1 mencionado anterior-
mente, o polinômio interpolador será de grau máximo dois. Em outras palavras,
a função da tabela será aproximada por uma parábola.
Nesse caso, o problema consiste em determinarmos os coe�cientes do polinô-
mio
P2(x) = a2x
2 + a1x+ a0. (5.6)
Sejam os pontos da tabela dados por (x0, y0), (x1, y1), (x2, y2). Assim, do Te-
orema 5.1 temos:
a0 + a1x0 + a2x
2
0 = y0, (5.7)
a0 + a1x1 + a2x
2
1 = y1, (5.8)
a0 + a1x2 + a2x
2
2 = y2. (5.9)
A matriz dos coe�cientes para esse sistema é dada por:
A =
 1 x0 x201 x1 x21
1 x2 x
2
2
 . (5.10)
O determinante da matriz (5.10) resulta em (x0 − x1)(x0 − x2)(x1 − x2) e,
portanto, para que o determinante não seja nulo, devemos ter que xi 6= xj, i 6=
j, i, j = 1, 2, 3. Isso signi�ca que os valores das abscissas na tabela devem ser dis-
tintos. Assim, o sistema possui solução única, e os coe�cientes são determinados,
gerando o polinômio interpolador (5.6).
Exemplo 5.4 Sejam os pontos da tabela: {(0, 0), (pi/6; 0, 328), (pi/4; 0, 560)}. De-
termine o polinômio interpolador para os pontos dados.
Solução: Escrevendo o sistema de equações algébricas, temos: 1 0 01 pi/6 (pi/6)2
1 pi/4 (pi/4)2
 a0a1
a2
 =
 0, 0000, 328
0, 560
 . (5.11)
Resolver o sistema (5.11) temos: a0 = 0, a1 =
178
125pi
, a2 =
408
125pi2
. Portanto, o
polinômio interpolador é dado
P2(x) =
178
125pi
x+
408
125pi2
x2.
116 cálculo numérico
5.3 Existência e unicidade do polinômio in-
terpolador
Seja uma tabela contendo (n + 1) pontos (xi, yi), i = 0, . . . , n. Do Teorema
5.1, o polinômio interpolador será um polinômio de ordem máxima n,
Pn(x) = a0 + a1x+ . . .+ anx
n.
Para determinar o polinômio Pn(x) para os pontos da tabela, é preciso de-
terminar os coe�cientes ai, i = 0, . . . , n. Para isso, sabemos que a condição de
interpolação deve ser satisfeita,
Pn(xi) = yi, ∀i = 0, . . . , n.
Tais condições conduzem ao sistema de equações algébricas lineares nas variá-
veis ai, i = 0, . . . , n
a0 + a1x0 + a2x
2
0 + . . .+ anx
n
0 = y0, (5.12)
a0 + a1x1 + a2x
2
1 + . . .+ anx
n
1 = y1,
.
.
.
.
.
.
a0 + a1xn + a2x
2
n + . . .+ anx
n
n = yn.
O sistema é formado por (n + 1) equações nas n + 1 variáveis ai. A matriz
dos coe�cientes é dada por
A =

1 x0 x
2
0. . . x
n
0
1 x1 x
2
1 . . . x
n
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 xn x
2
n . . . x
n
n
 . (5.13)
A matriz (5.13) é conhecida como matriz de Vandermonde, cujo determinante
é dado por:
DET (A) =
∏
i>j
(xi − xj) 6= 0 ⇔ xi 6= xj, i 6= j. (5.14)
Logo, se as abscissas da tabela são todas distintas, então o sistema possui
solução única. Assim, existe um único polinômio interpolador Pn(x), de tal forma
que Pn(xi) = yi, com i = 0, . . . , n.
interpolação 117
5.4 Interpolação de Lagrange
As interpolações vistas anteriormente (linear e quadrática) são casos particu-
lares da interpolação de Lagrange.
Consideremos uma tabela contendo (n+1) pontos distintos x0, x1, . . . , xn, xi 6=
xj, i 6= j, tais que yi = f(xi), ∀i, i = 0, . . . , n.
Sejam os (n+ 1) polinômios de grau n dados da forma:
p0(x) = (x− x1)(x− x2) . . . (x− xn), (5.15)
p1(x) = (x− x0)(x− x2) . . . (x− xn), (5.16)
.
.
.
pn(x) = (x− x0)(x− x1) . . . (x− xn−1). (5.17)
Podemos reescrever os polinômios apresentados como:
pi(x) =
n∏
j=0,j 6=i
(x− xj), i = 0, . . . , n. (5.18)
Os polinômios dados na equação (5.18) possuem as seguintes propriedades:
pi(xi) 6= 0, ∀i (5.19)
pi(xj) = 0, ∀i 6= j. (5.20)
Os polinômios dados em (5.18) são chamados de Polinômios de Lagrange.
Exercício 5.1 Escreva um programa e�ciente e compacto para determinar os
polinômios de Lagrange.
Como desejamos encontrar o polinômio interpolador Pn(x) que satisfaz à con-
dição Pn(xi) = yi, vamos considerar uma combinação linear dos polinômios de
Lagrange,
Pn(x) =
n∑
i=o
bipi(x). (5.21)
Devemos então determinar os coe�cientes bi. Tomando o ponto (xk, yk), temos
Pn(xk) = b0p0(xk) + b1p1(xk) + . . .+ bkpk(xk) + . . .+ bnpn(xk), (5.22)
utilizando as propriedades, obtemos:
118 cálculo numérico
Pn(xk) = bkpk(xk)⇒ bk = Pn(xk)
pk(xk)
. (5.23)
Por outro lado, sabemos que Pn(xk) = yk, e substituindo em (5.23), temos
bk =
yk
pk(xk)
, (5.24)
que, substituindo na expressão de Pn(x), �ca
Pn(x) =
n∑
i=0
yi
pi(xi)
pi(x) =
n∑
i=0
yi
pi(x)
pi(xi)
. (5.25)
Agora, podemos escrever a expressão do polinômio interpolador de Lagrange
da forma
Pn(x) =
n∑
i=0
yi
n∏
j=0,j 6=i
(x− xj)
(xi − xj) . (5.26)
Se de�nirmos
Li(x) =
n∏
j=0,j 6=i
(x− xj)
(xi − xj) , (5.27)
vemos que Li(xi) = 1 e Li(xj) = 0,∀i 6= j. O polinômio de Lagrange (5.26)
torna-se
Pn(x) =
n∑
i=0
yiLi(x). (5.28)
Exercício 5.2 Implemente computacionalmente o método de interpolação de La-
grange; em seguida, encontre o polinômio interpolador de Lagrange para os pontos
da tabela abaixo, e determine o valor P3(0, 3).
xi 0, 0 0, 2 0, 4 0, 5
yi 0, 0 2, 008 4, 064 5, 125
(5.29)
5.5 Erros de truncamento
Como mencionado anteriormente, dois tipos de erros surgem quando aproxi-
mamos uma função f(x) por um polinômio Pn(x), a saber: (i) erros de trunca-
mento e (ii) erros de arredondamento.
interpolação 119
A Figura 5.4 a seguir ilustra a aproximação de uma função f(x), de�nida em
um intervalo [a, b], por um polinômio. Vemos que o polinômio aproxima-se da
função f(x) no intervalo.
Veja que Pn(a) = f(a), Pn(b) = f(b), Pn(c) = f(c). Todavia, em x0 temos que
| ET (x0) |=| f(x0)− Pn(x0) | . (5.30)
É fácil vermos que ET é de fato uma função que depende do ponto x conside-
rado.
ET (x = a) = f(a)− Pn(a) = 0, (5.31)
ET (x = b) = f(b)− Pn(b) = 0, (5.32)
ET (x = c) = f(c)− Pn(c) = 0, (5.33)
ET (x) = f(x)− Pn(x). (5.34)
O erro de truncamento é nulo nos pontos onde o polinômio coincide com o
valor da função. Observando a ilustração, podemos ver que o erro ET (x) é uma
função que deve depender da concavidade da função f(x). A concavidade de uma
função é medida por meio de sua derivada segunda f ′′(x).
Figura 5.4: Erro de truncamento pela aproximação de uma função por um
polinômio.
120 cálculo numérico
5.5.1 Erro de truncamento na interpolação linear
A interpolação linear é obtida de dois pares de pontos (x0, y0), (x1, y1). Vamos
então supor a seguinte expressão para o erro de truncamento:
ET (x) = (x− x0)(x− x1)A, (5.35)
onde A é uma constante a ser determinada.
Veja que ET (x0) = ET (x1) = 0. Para obtermos a expressão de A, considere-
mos a seguinte função auxiliar
G(t) = f(t)− P1(t)− ET (t), t ∈ [x0, x1]. (5.36)
Como P1(t) = a1t+ a0 e ET (t) = (t− x0)(t− x1)A, temos que
G(t) = f(t)− (a0 + a1t)− (t− x0)(t− x1)A. (5.37)
Teorema 5.2 (Teorema de Rolle) Seja f uma função contínua em um inter-
valo [a, b] e derivável no intervalo (a, b), tal que f(a) = f(b). Então, existe pelo
menos um valor λ ∈ (a, b) tal que f ′(λ) = 0.
Utilizando o teorema de Rolle na função G(t), pois temos que G(t = x0) =
G(t = x1) = G(t = x
′), devem existir valores λ1 e λ2 tais que λ1 ∈ (x0, x′) e
λ2 ∈ (x′, x1) com G′(λ1) = G′(λ2) = 0.
Se aplicarmos novamente o teorema de Rolle à função G′(t), teremos que
∃λ ∈ (λ1, λ2), tal que G′′(λ) = 0, com λ ∈ (x0, x1).
Derivando-se G(t) duas vezes, temos G′′(t) = f ′′(t)− 2A. Para t = λ obtemos
G′′(λ) = f ′′(λ)− 2A = 0 que implica:
A =
f ′′(λ)
2
. (5.38)
Voltando e substituindo o valor de A na expressão de E(t), temos:
ET (x) =
1
2
(x− x0)(x− x1)f ′′(λ), λ ∈ (a, b). (5.39)
Da equação (5.39), vemos que o erro de truncamento da interpolação polino-
mial linear é uma função quadrática na variável x.
Exemplo 5.5 Seja f(x) = sen(x). Determinar o valor aproximado de f(pi/2)
a partir dos pontos (1, 00; 0, 84), (2, 00; 0, 91). Em seguida, determine o erro de
truncamento.
Solução: Nesse caso, o polinômio interpolador linear encontrado é
P1(x) = 0, 07x + 0, 77⇒ p(pi/2) = 0, 88.
interpolação 121
O erro de truncamento �ca:
ET(x) = (x− 1, 00)(x− 2, 00)f
′′(λ)
2
, λ ∈ (1, 00; 2, 00).
Temos que f ′(x) = cos x, f ′′(x) = −sen x. Como não sabemos o valor de
λ, podemos tomá-lo como o valor que maximiza a função f ′′(x) no intervalo
(1, 00; 2, 00). Nesse caso, tem-se λ = pi/2, e então |f ′′(pi/2)| = 1. Assim, a
quota máxima para o erro de truncamento é:
|ET(pi/2)| ≤ |(pi/2− 1)(pi/2− 2)| 1
2
= 0, 12,
ou ainda,
−0, 12 ≤ ET(pi/2) ≤ 0, 12.
Exercício 5.3 Seja f(x) = x2 − 3x + 1 e x1 = 1, 0, x2 = 1, 5. Determine o valor
de f(1, 2) e o erro de truncamento.
5.5.2 Erro de truncamento na interpolação quadrática
O processo utilizado na interpolação linear pode ser estendido para o caso da
interpolação quadrática. Temos aqui que
ET (x) = f(x)− P2(x).
P2(x) é o polinômio interpolador. Considerando agora
ET (x) = (x− x0)(x− x1)(x− x2)A, (5.40)
e a função auxiliar
G(t) = f(t)− P2(t)− ET (t)
= f(t)− (a2t2 + a1t+ a0)− (t− x0)(t− x1)(t− x2)A,
(5.41)
usando o teorema de Rolle, temos que
122 cálculo numérico
∃λ1 ∈ (x0, x′) ; G′(λ1) = 0,
∃λ2 ∈ (x′, x1) ; G′(λ2) = 0,
∃λ3 ∈ (x1, x2) ; G′(λ3) = 0,
∃λ4 ∈ (λ1, λ2) ; G′′(λ4) = 0,
∃λ5 ∈ (λ2, λ3) ; G′′(λ5) = 0.
Por �m, temos que
∃λ ∈ (λ4, λ5);G′′′(λ) = 0, λ ∈ (x0, x2). (5.42)
Derivando três vezes a função G(t), obtemos
G′′′(t) = f ′′′(t)− 6A = 0⇒ G′′′(λ) = f ′′′(λ)− 6A = 0. (5.43)
Logo:
A =
f ′′′(λ)
6
. (5.44)
Substituindo na expressão do erro, obtemos:
ET (x) = (x− x0)(x− x1)(x− x2)f
′′′(λ)
3!
. (5.45)
Observe que o erro depende da derivada terceira da função. Assim, para
polinômios de ordem n < 3 a interpolação é exata.
5.5.3 Erro de truncamento na interpolação de Lagrange
Na interpolação de Lagrange, tomamos:
ET (x) = (x− x0)(x− x1) . . . (x− xn)A. (5.46)
Considerando a função auxiliar
G(t) = f(t)− Pn(t)− ET (t), (5.47)
e utilizando o teorema de Rolle sucessivas vezes, pois G(t) = 0, para t =
x0, x1, . . . , xn, e derivando G(t) (n+ 1) vezes, vem que
Gn+1(t) = fn+1(t)− (n+ 1)!A. (5.48)
interpolação 123
No entanto, para t = λ temos Gn+1(λ) = 0. Logo, concluímos que o valor de
A é
A =
fn+1(λ)
(n+ 1)!
, (5.49)e a expressão do erro de truncamento �ca
ET (x) = (x− x0)(x− x1) . . . (x− xn)f
n+1(λ)
(n+ 1)!
, (5.50)
onde λ ∈ (x0, xn).
Observe que o grau da função ET (x) é da ordem de (n+1) para um polinômio
interpolador de grau n.
Exercício 5.4 Seja a função f(x) = ln(x) e os valores f(3) = 1, 0986, f(4) =
1, 3863. Determine o erro de truncamento para x = 3, 7.
Exercício 5.5 Implemente computacionalmente o erro de truncamento para o
método de interpolação de Lagrange.
5.6 Interpolação de Newton
No cálculo diferencial, se f é uma função contínua em um intervalo [a, b], a
derivada primeira da função f no ponto x0 ∈ [a, b] é obtida tomando-se o limite
da razão incremental, ou seja:
f ′(x0) = lim
x→x0
f(x)− f(x0)
x− x0 . (5.51)
De�nição 5.2 De�ne-se a diferença dividida de primeira ordem de uma função
f como:
f[x, x0] =
f(x)− f(x0)
x− x0 .
Denota-se a diferença dividida por meio de um dos símbolos: f [ ], [ ], ou ∆y.
Fazendo x = x1, temos a diferença dividida de primeira ordem em relação aos
argumentos x1 e x0.
∆y0 = f [x1, x0] =
f(x1)− f(x0)
x1 − x0 .
Como:
124 cálculo numérico
f(x1)− f(x0)
x1 − x0 =
f(x0)− f(x1)
x0 − x1 ,
concluímos que:
f [x1, x0] = f [x0, x1],
isto é, a diferença dividida de primeira ordem é simétrica. Em geral, temos:
∆yi = f [xi, xi+1] =
f(xi+1)− f(xi)
xi+1 − xi .
Sabemos que yi = f(xi), então reescrevemos
∆yi =
yi+1 − yi
xi+1 − xi .
De�nição 5.3 De�nimos a diferença dividida de ordem zero de uma função f
como:
∆0yi = f[xi] = f(xi) = yi.
Utilizando a de�nição anterior, temos
∆yi = f [xi, xi+1] =
f(xi+1)− f(xi)
xi+1 − xi =
∆0yi+1 −∆0yi
xi+1 − xi .
De�nição 5.4 A diferença dividida de ordem dois de uma função f é dada por:
∆2y0 = f[x0, x1, x2] =
f[x1, x2]− f[x0, x1]
x2 − x0 .
De�nição 5.5 De�ne-se a diferença dividida de ordem três de uma função f
como:
∆3y0 = f[x0, x1, x2, x3] =
f[x1, x2, x3]− f[x0, x1, x2]
x3 − x0 .
Assim, podemos de�nir a diferença dividida de ordem n qualquer.
De�nição 5.6 De�ne-se a diferença dividida de ordem n de uma função f como:
∆ny0 = f[x0, x1, . . . , xn] =
f[x1, x2, . . . , xn]− f[x0, x1, . . . , xn−1]
xn − x0 .
interpolação 125
Exercício 5.6 Dada a tabela a seguir, determine as possíveis diferenças dividi-
das.
i xi yi
0 0, 3 3, 09
1 1, 5 17, 25
2 2, 1 25, 41
Exercício 5.7 Implemente computacionalmente um operador capaz de determi-
nar as diferenças divididas de ordem k para uma tabela contendo n + 1 pontos, e
em seguida resolva o exercício anterior usando seu operador.
Teorema 5.3 Se f(x) é uma função polinomial de grau n que passa pelos pontos
(x0, y0), (x1, y1), . . . , (xk, yk), . . . , (xn, yn), então, a diferença dividida de ordem k,
f[x, xi, xi+1, . . . , xi+k−1] é um polinômio de grau (n− k).
Demonstração: Veja demonstração em [Barroso et al., 87]. Intuitivamente, a
diferença dividida pode ser escrita como f [x, xi] =
f(x)−f(xi)
x−xi ⇒ f(x) = f(xi) −
(x− xi)f [x, xi]. Ora, se f(x) é um polinômio de grau n, então o lado direito da
relação deve ser tal que f [x, xi] é um polinômio de grau (n − 1), já que o termo
(x− xi) possui grau um.
Corolário 5.1 Se f(x) é uma função polinomial de grau n, então todas as dife-
renças divididas de ordem n são iguais a uma constante, e as de ordem (n + 1)
são nulas.
5.6.1 Fórmula de Newton para interpolação com
diferenças divididas
Sejam (n + 1) pontos (xi, yi), i = 0, . . . , n, e P (x) o polinômio interpolador
para estes pontos. Pela de�nição da diferença dividida temos:
P [x, x0] =
Pn[x]− Pn[x0]
x− x0 .
Logo,
Pn(x) = Pn(x0) + (x− x0)P [x, x0], (5.52)
mas
126 cálculo numérico
P [x, x0, x1] =
P [x, x0]− P [x0, x1]
x− x1 ⇒
P [x, x0] = P [x0, x1] + (x− x1)P [x, x0, x1].
Agora, substituindo, temos:
Pn(x) = Pn(x0) + (x− x0)P [x0, x1] + (x− x0)(x− x1)P [x, x0, x1].
Por outro lado, sabemos que:
P [x, x0, x1] = (x− x2)P [x, x0, x1, x2] + P [x0, x1, x2].
Voltando com este resultado na expressão anterior, obtemos:
Pn(x) = Pn(x0) + (x− x0)P [x0, x1] + (x− x0)(x− x1)P [x, x1, x2]+
+(x− x0)(x− x1)(x− x2)P [x, x0, x1, x2].
Continuando o processo, obtemos então:
Pn(x) = Pn(x0) + (x− x0)P [x0, x1] + (5.53)
(x− x0)(x− x1)P [x0, x1, x2] +
(x− x0)(x− x1)(x− x2)P [x0, x1, x2, x3] + . . .+
(x− x0)(x− x1) . . . (x− xn−1)P [x0, x1, . . . , xn] +
(x− x0)(x− x1) . . . (x− xn)P [x, x0, x1, . . . , xn].
Pelo corolário, P [x, x0, x1, . . . , xn] = 0. Considerando, então, que Pn(x0) = y0,
temos:
Pn(x) = y0 + (x− x0)P [x0, x1] + (5.54)
(x− x0)(x− x1)P [x0, x1, x2] +
(x− x0)(x− x1)(x− x2)P [x0, x1, x2, x3] + . . .+
(x− x0)(x− x1) . . . (x− xn−1)P [x0, x1, . . . , xn].
interpolação 127
Como sabemos que ∆iy0 = P [x0, x1, . . . , xi], assim:
Pn(x) = y0 + (x− x0)∆y0 + (5.55)
(x− x0)(x− x1)∆2y0 + . . .+
(x− x0)(x− x1) . . . (x− xn−1)∆ny0.
Expressando o polinômio Pn(x) em uma forma mais compacta, temos:
Pn(x) = y0 +
n∑
i=1
∆iyo
i−1∏
j=0
(x− xj). (5.56)
A expressão (5.56) é chamada de polinômio interpolador de Newton, usando
diferenças divididas.
Exercício 5.8 Determine o valor aproximado de f(0, 4), usando o polinômio in-
terpolador de Newton para os pontos tabelados:
i 0 1 2 3 4
xi 0, 0 0, 2 0, 3 0, 5 0, 6
yi 1, 008 1, 064 1, 125 1, 343 1, 514
Implemente computacionalmente o método de interpolação de Newton e em
seguida resolva este exercício com seu operador.
5.6.2 Comparação dos métodos de Newton e Lagrange
Uma das formas de observar se um método computacional apresenta vantagens
sobre outro é veri�car o número total de operações, que ambos devem realizar
para alcançarem o mesmo resultado.
Para (n+1) pontos, os métodos de interpolação de Newton e Lagrange apre-
sentam:
N
o
	
de operações Adições Multiplicações Divisões
Newton n2 + n− 2 2n− 3 (n2 − n)/2
Lagrange n2 + n− 1 n2 − 1 2n
O número total de operações é obtido tomando-se a soma das operações de
adição (que inclui subtração, quando houver), multiplicação e divisão. Para os
métodos de interpolação de Newton e Lagrange, o número total em cada caso é:
128 cálculo numérico
Métodos Newton Lagrange
N
o
	
total de operações (3n2 + 5n− 10)/2 2n2 + 3n− 2
Podemos então comparar os métodos em termos do menor número de opera-
ções, veri�cando para que valor de n teremos um método mais rápido. Nesse
caso:
3n2 + 5n− 10
2
≤ 2n2 + 3n− 2 ⇒ n ≥ 2
Logo, o método de interpolação de Newton é mais rápido, pois possui um
número menor de operações que o método de Lagrange, a partir de dois pontos
tabelados. Na Figura 5.5, apresentamos os grá�cos para os dois métodos, assu-
mindo valores contínuos de n ≥ 2. Esses grá�cos foram produzidos com o desenho
das linhas #3: e #4:, respectivamente. Na verdade, para produzirmos os grá�cos
com pontos discretos, para n ≥ 2 inteiro, poderíamos desenhar diretamente a
linha #5: e fazer em seguida o mesmo para a função Newton(n). Para obser-
varmos os números de operações de cada método simultaneamente, poderíamos
utilizar o comando da linha #7:.
Figura 5.5: Grá�co do número total operações.
interpolação 129
Observe que para um mesmo conjunto de pontos xi, mudando-se os valores
de yi, o método de Lagrange é mais vantajoso. Por quê?
5.7 Interpolação com diferenças �nitas
Em muitas ocasiões, os valores xi dados na tabela estão igualmente espaçados.
Em outras palavras, temos
xi+1 − xi = h, h = constante, i = 0, 1, · · · , n− 1.
Para o método de Newton, vimos que
Pn(x) = y0 +
n∑
i=0
∆iy0
i−1∏
j=0
(x− xj).
Assim, se tomarmos h = xi+1 − xi, e de�nirmos uma nova variável z da forma:
z =
x− x0
h
⇒ x− x0 = hz,
teremos então:
x− x1 = (x− (x0 + h)) = x− x0 − h = hz − h = h(z − 1),
x− x2 = (x− (x0 + 2h)) = x− x0 − 2h = hz − 2h = h(z − 2),
.
.
.
x− xn−1 = (x− (x+ (n− 1)h)) = x− x0 − (n− 1)h =
hz − (n−1)h = h(z − (n− 1)).
Levando esses resultados na fórmula de Newton, obtemos:
Pn(z) = y0 + hz∆y0 + h
2z(z − 1)∆2y0 + . . .+ (5.57)
hnz(z − 1) . . . [z − (n− 1)]∆ny0.
De�nição 5.7 De�nimos o conceito de diferenças �nitas, quando xi+1 − xi =
h, ∀i, da forma:
1) zero ordem: 40yi = yi
2) primeira ordem: 4yi = yi+1 − yi = 40yi+1 −40yi
3) segunda ordem: 42yi = 4yi+1 −4yi,
e assim por diante até a ordem n-ésima
n) ordem n: 4nyi = 4n−1yi+1 −4n−1yi
130 cálculo numérico
Exercício 5.9 Dada a tabela a seguir, construa as diferenças �nitas possíveis.
x 3, 5 4, 0 4, 5 5, 0 5, 5
y 9, 8 10, 9 12, 0 13, 1 16, 2
Teorema 5.4 Seja f uma função de�nida nos pontos (xi, yi), i = 0, . . . , n, tais
que xi+1 − xi = h, ∀i. Então:
∆nyi =
4nyi
n!hn
.
Levando esse resultado na fórmula (5.57), obtemos:
Pn(z) = y0 +
z
1!
4y0 + z(z − 1)
2!
42y0 + . . .+ (5.58)
z(z − 1) . . . [z − (n− 1)]
n!
4ny0.
A expressão do polinômio interpolador em (5.58) é chamada de fórmula de
interpolação de Gregory-Newton para diferenças �nitas.
Exercício 5.10 Mostre que o erro de truncamento para as diferenças �nitas é
dado por:
ET(z) = h
n+1z(z− 1)(z− 2) . . . (z− n) f
n+1(λ)
(n + 1)!
.
Exercício 5.11 Veri�que qual o número de operações envolvidas na fórmula de
Gregory-Newton e compare o resultado com a fórmula de Newton.
Exercício 5.12 Construa as diferenças �nitas com base na tabela dada abaixo e
em seguida determine o polinômio de Gregory-Newton:
x 3, 5 4, 0 4, 5 5, 0 5, 5
y 9, 8 10, 9 12, 0 13, 1 16, 2
5.8 Interpolação por Splines
Nas subseções anteriores apresentamos algumas técnicas de interpolação poli-
nomial onde a ordem do polinômio interpolador é determinada levando-se em con-
sideração o número de pontos da tabela, ou seja, dados os pontos {(x0, y0), (x1, y1),
. . . , (xn, yn)}, o polinômio interpolador será de ordem máxima n, sendo este po-
linômio único para qualquer ponto a ser interpolado.
interpolação 131
A técnica da interpolação por splines
1
é utilizada para construir um conjunto
de polinômios de mesma ordem para cada intervalo xi+1−xi, com i = 0, 1, . . . , n−
1, os quais obedecem alguns critérios de continuidade e suavidade.
De�nição 5.8 Sejam a = x0 < x1 < x2 < . . . < xn = b, (n+1)-pontos distintos e
sejam f0, f1, f2, . . . , fn os valores de uma função f nos pontos xi, respectivamente.
A função spline de grau m, com pontos de interpolação xi, i = 0, . . . , n é uma
função polinomial S(x) que satisfaz às seguintes condições:
1. S(xi) = fi, i = 0, . . . , n.
2. S(x) é (m-1)-vezes derivável em cada ponto xi, 1 ≤ i ≤ n− 1.
3. Em cada subintervalo [xi, xi+1], S(x) é uma função polinômial de grau ≤ m.
4. S(x) é uma função contínua em todo o intervalo [a, b].
As condições acima indicam que a função spline é contínua por partes e suave,
pois é derivável, a exceção do spline linear, onde apenas a condição de continui-
dade é mantida.
5.8.1 Spline linear
O caso mais simples de aplicação da interpolação por spline é o linear. A spline
S(x) será formada por um conjunto de n-retas, onde cada reta está de�nida em
um intervalo [xi, xi+1], ou seja:
Si(x) = ai(x− xi) + bi, xi ≤ x ≤ xi+1, i = 0, 1, 2, . . . , n− 1. (5.59)
Na expressão da spline linear (5.59) vemos que há 2n coe�cientes a serem
determinados. A continuidade da função requer (n−1) condições. Os n+1 graus
de liberdade restantes são usados para que a spline assuma os valores S(xi) =
fi, i = 0, 1, 2, . . . , n nos seus nós. Devemos ter, então:
Si+1(xi+1) = Si(xi+1), i = 0, 1, 2, . . . , n− 2. (5.60)
A condição anterior, quando aplicada à função (5.59) resulta em:
1
O termo splines surgiu a partir da utilização de um tipo de régua �exível a qual foi utilizada
na indústria para o design naval e de aviões. Um pouco da história sobre splines pode ser
encontrado na página da Wikipedia na internet.
132 cálculo numérico
ai+1(xi+1 − xi+1) + bi+1 = ai(xi+1 − xi) + bi. (5.61)
Mas, como a função deve passar por todos os pontos, temos que Si(xi) = fi
ou que Si+1(xi+1) = fi+1, portanto, obtemos da equação (5.61) que:
ai =
fi+1 − fi
xi+1 − xi . (5.62)
Se tais condições forem satisfeitas teremos garantida a continuidade. Note
que ai mede a inclinação da reta que liga os pontos xi a xi+1. Como m = 1
temos que m− 1 = 0 e portanto não é possivel impor a segunda condição em 5.8
referente a derivada.
Exercício 5.13 Dados os pontos {(−1, 0), (0, 1), (1, 2), (2, 1)}, determine a spline
linear e o valor interpolado para x = 3/2.
Exercício 5.14 A spline quadrática é uma função S(x) do tipo:
Si(x) = ai + bi(x− xi) + ci(x− xi)2, i = 0, 1, 2, . . . , n− 1.
Si+1(xi+1) = Si(xi+1), i = 0, 1, 2, . . . , n− 2,
S ′i+1(xi+1) = S
′
i(xi+1), i = 0, 1, 2, . . . , n− 2.
Note que temos 3n coe�cientes a serem determinados, mas a continuidade da
função e de sua derivada resultam em 2n− 2 condições. Para os n+ 2 graus de
liberdade restantes usamos as n + 1 condições S(xi) = fi, i = 0, 1, · · · , n e uma
das condições adicionais: S ′0(x0) = 0 ou S
′
0(x0) = S
′
n−1(xn). A primeira condição
é conhecida como spline natural e a segunda como spline correto. Utilizando a
condição de spline natural, determine a spline quadrática S(x).
5.8.2 Spline cúbica
Consideremos agora a spline cúbica, isto é, o caso em que os graus dos polinô-
mios Si(x) são m = 3 em cada subintervalo.
Sejam os pontos {(x0, y0), (x1, y1), . . . , (xn, yn)} e sejam as funções
Si(x) = ai + bi(x− xi) + ci(x− xi)2 + di(x− xi)3, (5.63)
com i = 0, 1, 2, . . . , n− 1.
interpolação 133
De acordo com as propriedade da função spline, devemos ter a continuidade
nos pontos internos, assim:
Si+1(xi+1) = Si(xi+1), i = 0, 1, 2, . . . , n− 2. (5.64)
Logo, como S(xi) = fi = yi = ai, temos que
fi + bi(xi+1 − xi) + ci(xi+1 − xi)2 + di(xi+1 − xi)3 = fi+1, (5.65)
pois S(xi+1) = ai+1 = fi+1.
De�nido-se hi = xi+1 − xi, a expressão (5.65) torna-se:
fi+1 = fi + bihi + cih
2
i + dih
3
i . (5.66)
Agora, como m = 3 devemos ter a continuidade nas derivadas até ordem dois.
Assim,
S ′i+1(xi+1) = S
′
i(xi+1), i = 0, 1, 2, . . . , n− 2, (5.67)
S ′′i+1(xi+1) = S
′′
i (xi+1), i = 0, 1, 2, . . . , n− 2. (5.68)
Da condição da derivada primeira, temos
bi+1 = bi + 2cihi + 3dih
2
i , (5.69)
e da segunda condição temos,
ci+1 = ci + 3dihi. (5.70)
Da condição (5.70) obtemos:
di =
ci+1 − ci
3hi
. (5.71)
Substituindo o valor de di dado em (5.71) na equação (5.66), temos
fi+1 = fi + bihi + cih
2
i +
ci+1 − ci
3hi
h3i ,
fi+1 = fi + bihi +
hi
3
(2ci + ci+1). (5.72)
134 cálculo numérico
Substituindo agora a equação (5.71) na equação (5.69), temos
bi+1 = bi + 2cihi + 3h
2
i
ci+1 − ci
3hi
,
bi+1 = bi + hi(ci + ci+1). (5.73)
Extraindo bi da equação (5.72), obtemos:
bi =
fi+1 − fi
hi
− hi
3
(2ci + ci+1), (5.74)
que fazendo i→ i− 1, temos
bi−1 =
fi − fi−1
hi−1
− hi−1
3
(2ci−1 + ci). (5.75)
Da equação (5.73) podemos escrever, tomando, i→ i− 1,
bi = bi−1 + hi−1(ci−1 + ci), (5.76)
que substituindo na equação (5.75) e igualando a bi dado na equação (5.74),
obtemos:
hi−1ci−1 + 2(hi−1 + hi)ci + hici+1 = 3
fi+1 − fi
hi
− 3fi − fi−1
hi−1
, (5.77)
com i = 1, 2, 3, . . . , n− 1 e onde usamos que ai = fi e ai+1 = fi+1.
Vemos que a expressão (5.77) gera (n − 1) equações para um total de n + 1
incógnitas. Portanto, ainda precisamos de duas condições adicionais para poder-
mos determinar os coe�cientes c0 e cn. Para isso, é comum adotar-se uma das
duas condições adicionais:
S ′′0 (x0) = S
′′
n−1(xn) = 0, (5.78)
ou
S ′0(x0) = f
′(x0), S ′n−1(xn) = f
′(xn). (5.79)
A condição (5.78) é conhecida como spline natural e a condição (5.79) é co-
nhecida como spline correto. A condição de spline natural resulta em:
interpolação 135
S ′′i (x) = 2ci + 6di(x− xi),
x = x0⇒ S ′′0 (x0) = 2c0 + 6d0(x0 − x0) = 0⇒ c0 = 0, (5.80)
e para
x = xn ⇒ S ′′n−1(xn) = 2cn−1 + 6dn−1(xn − xn−1) = 0,
que substituindo dn−1 dado em (5.71), temos
2cn−1 + 6
cn − cn−1
3hn−1
hn−1 = 0 ⇒ cn = 0. (5.81)
Agora, determinando-se os ci a partir das equações geradas por (5.77) e uma
das condições adicionais, os demais coe�cientes da spline serão determinados. A
condição de spline natural deve ser utilizada quando temos uma tabela contendo
pontos, pois neste caso não dispomos da função f que gerou a tabela.
Resumindo, as equações para determinar a spline cúbica:
Si(x) = fi + S
′
i(xi)(x− xi) +
zi
2
(x− xi)2 + zi+1 − zi
6hi
(x− xi)3, (5.82)
são:
S ′i(xi) = bi =
fi+1 − fi
hi
− zi+1hi
6
− zihi
3
, i = 0, 1, 2, . . . , n− 1, (5.83)
e com ci =
zi
2
, i = 0, 1, 2, . . . , n e xi ≤ x ≤ xi+1, hi = xi+1 − xi, para i =
0, 1, 2, . . . , n− 1; a equação para determinar os zi é dada por,
hizi + 2(hi + hi+1)zi+1 + hi+1zi+2 = 6
(
fi+2 − fi+1
hi+1
− fi+1 − fi
hi
)
, (5.84)
onde i = 0, 1, 2, . . . , n− 2, e assumindo a condição de spline natural z0 = zn = 0.
Exemplo 5.6 Sejam os pontos {(0, 1), (1, 0), (2, 1/2), (3, 1)}. Determine a spline
cúbica natural para os pontos dados.
Solução: Temos 4 pontos tabelados. Logo, com a imposição da spline natural
temos que z0 = z3 = 0. Temos também que:
136 cálculo numérico
h0 = x1 − x0 = 1, h1 = x2 − x1 = 1, h2 = x3 − x2 = 1,
f1 − f0 = −1, f2 − f1 = 1/2, f3 − f2 = 1/2.
Para i = 0, temos:
h0z0 + 2(h0 + h1)z1 + h1z2 = 6
(
f2 − f1
h1
− f1 − f0
h0
)
⇒ 4z1 + z2 = 9.
Para i = 1, temos:
h1z1 + 2(h1 + h2)z2 + h2z3 = 6
(
f3 − f2
h2
− f2 − f1
h1
)
⇒ z1 + 4z2 = 0.
Resolvendo o sistema linear para as variáveis z1 e z2, obtemos:
z1 =
12
5
, z2 = −3
5
. (5.85)
Agora, substituindo estes valores na equação (5.83), obtemos:
S ′0(x0) = b0 =
f1 − f0
h0
− z1h0
6
− z0h0
3
= −7
5
,
S ′1(x1) = b1 =
f2 − f1
h1
− z2h1
6
− z1h1
3
= −1
5
,
S ′2(x2) = b2 =
f3 − f2
h2
− z3h2
6
− z2h2
3
=
7
10
.
Portanto, substituindo em (5.82), temos:
S0(x) =
2
5
x3 − 7
5
x+ 1, x0 ≤ x ≤ x1,
S1(x) = −1
2
x3 +
27
10
x2 − 41
10
x+
19
10
, x1 ≤ x ≤ x2,
S2(x) =
1
10
(x3 − 9x2 + 59x− 85), x2 ≤ x ≤ x3.
Exercício 5.15 Aproxime a função f(x) = sen(x) por uma spline natural, con-
siderando os pontos x0 = 0, x1 = pi/4, x2 = pi/2. Veri�que o valor interpolado
para x = pi/6 e compare com o valor obtido diretamente da função.
interpolação 137
Neste capítulo, foram apresentados alguns métodos de interpolação polino-
mial. No entanto, há outros métodos de interpolação polinomial, como a aproxi-
mação de uma função por polinômios de Chebyshev, ou ainda por meio de funções
que não sejam polinômios, como, por exemplo, pela aproximação por funções ra-
cionais, cujo método é conhecido como aproximação de Padé. Um estudo sobre
essas novas técnicas está fora do escopo deste livro, e por isto não serão tratadas
aqui.
5.9 Exercícios propostos
1. Desenhe os grá�cos das funções f(x) = senx e g(x) = x− x3
6
+ x
5
120
e veri�que
em que intervalo o polinômio é uma boa aproximação da função sen (x).
2. Seja a tabela
x 0 0, 25 0, 5
y 1, 0 1, 064494458 1, 284025416
.
Encontre o polinômio interpolador quadrático para os pontos da tabela, e,
em seguida, compare os grá�cos do polinômio interpolador com o da função
f(x) = ex
2
. Determine o valor do polinômio em x = 0, 4 e estime o erro de
truncamento cometido pela aproximação.
3. Na série de �cção cientí�ca Star Trek, a nave Enterprise viaja com veloci-
dade medida em Wraps, onde 1 Wrap é igual à velocidade da luz no vácuo
c, e 10 Wraps é in�nitamente rápido. De acordo com o Star Trak: The
Next Generation Technical Manual, by Sternbach e Okuda, a relação entre
Wraps e a velocidade da luz c é dada pela tabela (veja [Etchells, 97]):
Wrap 1 2 3 4 5 6 7 8 9
c 1 10 39 102 214 392 656 1024 1516
.
Determine o polinômio interpolador de Lagrange para esses pontos e, em se-
guida, determine qual o valor da velocidade da Enterprise quando a mesma
viaja com uma velocidade de 5, 5 Wraps.
Nota: De acordo com a teoria da Relatividade Geral de Einstein, nada
pode viajar com uma velocidade superior à velocidade da luz no vácuo c,
embora haja uma teoria que propõe partículas com velocidades superiores
à da luz, chamadas de tachyons, mas estas ainda não foram comprovadas
experimentalmente ou observacionalmente.
4. A tabela a seguir apresenta o Produto Interno Bruto per Capita (PIBpC)
do Brasil, medido em US$. Determine o polinômio interpolador de Newton
138 cálculo numérico
nos pontos tabelados e estime o valor da PIBpC em 1964.
Ano 1900 1913 1950 1973 1987
PIBpC −BR 436 521 1073 2504 3417
Na tabela a seguir, o PIBpC dos Estados Unidos é apresentado em US$.
Observando que o intervalo entre os anos é constante, utilize o método de
interpolação de Gregory-Newton para encontrar o polinômio interpolador
referente a esta tabela. Em seguida, cálcule o PIBpC dos Estados Unidos
no ano de 1964 e compare ao valor brasileiro.
Ano 1890 1910 1930 1950 1970
PIBpC − US 3101 4538 5642 8605 12815
Que conclusões você pode tirar deste exercício?
5. O método da interpolação estudado neste capítulo pode também ser apli-
cado para determinar o valor de x para certo valor de y, quando temos uma
função da forma y = f(x). Esse procedimento é conhecido com interpolação
inversa, e é obtido com a troca dos papéis de x com y na interpolação direta.
Usando os valores tabelados a seguir, determine o polinômio interpolador
de Lagrange de ordem 3, e em seguida indique o valor do ângulo cujo seno
é 0.6. Qual o erro de truncamento?
y 0, 0 0, 5 0, 8660254037 1, 0
x = arcsen y 0, 0 pi
6
pi
3
pi
2
Capítulo 6
AJUSTE DE CURVAS
Neste capítulo, vamos estudar o método de ajuste de curvas (funções), uti-
lizando a técnica dos mínimos quadrados. Essa técnica de aproximação tem
características diferentes da interpolação polinomial.
Suponha que temos um conjunto de pontos tabelados da forma
{(x1, y1), (x2, y2), . . . , (xm, ym)}
e desejamos obter a expressão y = f(x), que relaciona x a y, e com esse resultado
desejamos determinar o valor de y para certo valor de x que não conste na tabela,
podendo o valor de x estar, inclusive, fora do intervalo [x1, xm].
Emmuitas ocasiões, o método da interpolação não é aconselhável. Em particu-
lar:
• Quando é preciso obter um valor aproximado da função para valores fora
do intervalo tabelado. Isso caracteriza uma extrapolação.
• Em experimentos físicos ou em alguma pesquisa onde existem erros ineren-
tes devidos aos instrumentos etc., os quais não são previsíveis.
Assim, não há necessidade de calcularmos exatamente a função f que origina
os pontos tabelados, e sim a função que melhor se ajusta aos pontos dados. Esse
ajuste dá a idéia de um comportamento médio da função.
Neste capítulo, vamos tratar apenas dos ajustes de curvas nos casos de pontos
discretos. Mas, qual o sentido da expressão �melhor se ajusta� aos pontos da
tabela?
Suponha que temos o seguinte caso visto na Figura 6.1. Como podemos dizer
qual das retas melhor se ajusta aos pontos dados? Alguns critérios para medir a
qualidade do ajuste podem ser propostos.
140 cálculo numérico
Figura 6.1: Ajuste por retas.
6.1 Critérios para medida da qualidade dos
ajustes
Se por algum processo determinarmos uma função f ∗ para a curva originada
a partir de uma tabela dada, podemos comparar o valor de f ∗(xi) com os valores
de yi.
De�nição 6.1 O erro ou resíduo de valor é dado por:
Ri = f
∗(xi)− yi.
Assim, podemos imaginar os processos de ajuste da forma:
1. Todos os erros devem tender a zero, isto é: Ri → 0. Esse critério não é in-
teressante,pois retornaríamos ao problema da interpolação, já que, quando
o resíduo se anula, teríamos: f ∗(xi) = yi = f(xi), ∀i, que é o resultado da
interpolação polinomial.
2. A soma dos erros deve ser tão pequena quanto possível. Em outras palavras,∑m
i=1Ri deve ser minimizado. Esse critério não é interessante, já que é
possível termos a soma dos resíduos nula sem que o ajuste seja bom. A
Figura 6.2 indica essa situação.
3. A soma dos resíduos em valor absoluto deve ser a menor possível. Isto é,∑m
i=1 |Ri| =
∑m
i=1 |f ∗(xi) − yi| deve ser mínima. Esse critério não é bom,
pois a soma não se anula, e a função valor absoluto não é derivável em seu
ajuste de curvas 141
Figura 6.2: Ajuste com a soma dos resíduos nula.
mínimo (x = 0). Por isso, teríamos di�culdade de determinar o mínimo de
tal soma.
4. Critério de Tschebyche�. Esse critério busca encontrar o valor mínimo do
máximo dos resíduos. Ou seja, max1≤i≤m |f ∗(xi)−yi| deve ser mínimo. Esse
critério possui uma solução dí�cil e por isso não é considerado.
5. O método dos mínimos quadrados procura minimizar a soma do quadrado
dos resíduos. Ou seja,
∑m
i=1R
2
i deve ser minimizada. Veja que nesse caso
nunca teremos uma soma nula (só se ocorrer interpolação), e a função qua-
drática é facilmente derivável. Assim, esse critério parece o mais adequado
para o ajuste de funções.
6.2 Método dos mínimos quadrados
O método dos mínimos quadrados é amplamente utilizado, sendo conhecido
também por otimização linear, análise de regressão e suavização de dados.
No caso de suavização de dados, quando dispomos de uma tabela de pontos,
a técnica dos mínimos quadrados é utilizada para determinarmos um conjunto de
parâmetros cj de uma função f
∗
que aproxima uma função desconhecida f . Seja
a função f ∗ dada por:
f ∗(x) = c1φ1(x) + c2φ2(x) + . . .+ cnφn(x), (6.1)
142 cálculo numérico
onde os cj são coe�cientes e as funções φj(x) são conhecidas e linearmente inde-
pendentes.
Os parâmetros cj surgem de forma linear na expressão (6.1), embora as funções
φi(x) possam ser não lineares em x. A escolha das funções φi(x) é feita de acordo
com a natureza da tabela de dispersão dos pontos.
A função f ∗(x) será determinada univocamente quando os valores dos parâme-
tros cj forem determinados de forma unívoca. Para calcularmos os cj, j = 1, . . . , n,
onde consideramos n� m, sabemos que:
Ri = f
∗(xi)− yi, i = 1, . . . ,m.
Seja {(xi, yi), i = 1, . . . ,m} um conjunto de pontos de uma tabela. A função
f ∗ que melhor se ajusta, no sentido dos mínimos quadrados, aos pontos da tabela
é de�nida como aquela cujos parâmetros cj são determinados de tal forma que a
soma dos quadrados dos resíduos seja mínima.
O resíduo é escrito como:
R =
m∑
i=1
R2i =
m∑
i=1
(f ∗(xi)− yi)2 (6.2)
=
m∑
i=1
(yi − f ∗(xi))2
=
m∑
i=1
(yi − c1φ1(xi)− c2φ2(xi)− . . .− cnφn(xi))2.
Vemos que R é uma função que depende dos parâmetros cj, isto é: R =
R(c1, c2, . . . , cn). Do cálculo diferencial sabemos que, para obtermos o ponto de
mínimo de uma função, temos que determinar seus pontos críticos. Assim, no
caso da função R(cj), devemos ter que:
∂R
∂cj
∣∣
(c1,..., cn) = 0. (6.3)
Logo, calculando as derivadas parciais, temos:
∂R
∂cj
= 2
m∑
i=1
(yi − c1φ1(xi)− . . .− cnφn(xi)) · (−φj(xi)); (6.4)
impondo a condição de nulidade das derivadas, obtemos:
m∑
i=1
(yi − c1φ1(xi)− . . .− cnφn(xi)) · (−φj(xi)) = 0, ∀j, j = 1, . . . , n. (6.5)
ajuste de curvas 143
Tomando os valores, obtemos as equações:
j = 1⇒
m∑
i=1
(yi − c1φ1(xi)− . . .− cnφn(xi)) · (−φ1(xi)) = 0,
j = 2⇒
m∑
i=1
(yi − c1φ1(xi)− . . .− cnφn(xi)) · (−φ2(xi)) = 0,
.
.
.
j = n⇒
m∑
i=1
(yi − c1φ1(xi)− . . .− cnφn(xi)) · (−φn(xi)) = 0.
As equações apresentadas podem ser reescritas da forma:
m∑
i=1
(φ1(xi)φ1(xi))c1 +
m∑
i=1
(φ2(xi)φ1(xi))c2 + . . .
+
m∑
i=1
(φn(xi)φ1(xi))cn =
m∑
i=1
(φ1(xi)yi),
.
.
. (6.6)
m∑
i=1
(φ1(xi)φn(xi))c1 +
m∑
i=1
(φ2(xi)φn(xi))c2 + . . .
+
m∑
i=1
(φn(xi)φn(xi))cn =
m∑
i=1
(φn(xi)yi).
O conjunto de equações (6.6) forma um sistema de equações algébricas lineares
nas variáveis cj. Essas equações são conhecidas na literatura como equações
normais. Temos n equações para n incógnitas.
Se chamarmos de
A =
 a11 a12 · · · a1n..
.
.
.
.
.
.
.
.
.
.
an1 an2 · · · ann
 ,
com
aij =
m∑
k=1
(φi(xk)φj(xk)) = aji,
C = (c1, c2, . . . , cn),
144 cálculo numérico
B = (b1, b2, . . . , bn),
com
bi =
m∑
k=1
ykφi(xk),
temos o sistema:
A ·C = B.
É possível mostrar que, se as funções φn(x) são linearmente independentes, o
determinante da matriz A é não nulo, det(A) 6= 0. Logo, o sistema possui solução
única. Tal solução minimiza a função R(c1, c2, . . . , cn) e é denominada a função
de melhor ajuste para a tabela dada.
6.3 Ajuste polinomial
O ajuste polinomial é obtido considerando-se uma função polinomial ou uma
combinação linear de polinômios da seguinte forma.
6.3.1 Ajuste por uma reta
O ajuste de funções por uma reta, também chamado de regressão linear, é
obtido considerando os pontos (xi, yi), i = 1, . . . ,m, e a função f
∗(x) = a0 + a1x
(equação de uma reta), assim:
Ri = yi − f ∗(xi) = yi − (a0 + a1xi).
Sabemos que
∑
R2i deve ser minimizado; então, comparando os termos, temos
que:
φ1(x) = 1, c1 = a0,
φ2(x) = x, c2 = a1.
Seguindo os resultados anteriores, temos que A ·C = B conduz a:
ajuste de curvas 145
a11 =
m∑
k=1
φ1(xk)φ1(xk) =
m∑
k=1
1 · 1 = m,
a12 =
m∑
k=1
φ1(xk)φ2(xk) =
m∑
k=1
1 · xk =
m∑
k=1
xk,
a22 =
m∑
k=1
φ2(xk)φ2(xk) =
m∑
k=1
xk · xk =
m∑
k=1
x2k,
b1 =
m∑
k=1
ykφ1(xk) =
m∑
k=1
1 · yk,
b2 =
m∑
k=1
ykφ2(xk) =
m∑
k=1
1yk · xk.
Na forma matricial,(
m
∑
k xk∑
k xk
∑
k x
2
k
)(
c1
c2
)
=
( ∑
k yk∑
k ykxk
)
. (6.7)
Utilizando, por exemplo, o método de Cramer para obter a solução, temos:
c1 =
∑
k yk ·
∑
k x
2
k −
∑
k ykxk ·
∑
k xk
m
∑
k x
2
k − (
∑
k xk)
2
, (6.8)
c2 =
m
∑
k ykxk −
∑
k xk ·
∑
k yk
m
∑
k x
2
k − (
∑
k xk)
2
. (6.9)
Com as relações (6.8) e (6.9) podemos expressar os termos a1, a2 da forma:
c2 = a1 =
∑
k ykxk −
∑
k xk·
∑
k yk
m∑
k x
2
k − (
∑
k xk)
2
m
, (6.10)
c1 = a0 = Y − a1X, (6.11)
onde
X =
∑
k xk
m
, (6.12)
Y =
∑
k yk
m
. (6.13)
146 cálculo numérico
Exercício 6.1 Deduza as relações para a1 e a2.
Exercício 6.2 Uma máquina sofre um desgaste ao longo do tempo de tal forma
que passou a ter a produção anual dada na tabela de dispersão a seguir:
x(anos) 0, 5 1, 0 1, 5 2, 0 2, 5 3, 0
y(produção) 3000 2700 2500 2000 1300 800
Desejamos saber, mantido esse ritmo, qual a produção da máquina no �nal do
quarto ano de operação.
6.3.2 Ajuste polinomial quadrático
O ajuste polinomial pode ser realizado com base em uma função polinomial
quadrática. Nesse caso, consideraremos a função de ajuste como:
f ∗(x) = a0 + a1x+ a2x2. (6.14)
Podemos, então, identi�car os termos da função (6.14) com os da função de
ajuste (6.1), resultando em:
c1 = a0, c2 = a1, c3 = a2,
φ1(x) = 1, φ2(x) = x, φ3(x) = x
2.
(6.15)
Assim, utilizando o resultado geral para as equações normais, temos:
ajuste de curvas 147
a11 =
m∑
k=1
φ1(x)φ1(x) =
m∑
k=1
1 · 1 = m,
a12 =
m∑
k=1
φ1(x)φ2(x) =
m∑
k=1
1 · xk =
m∑
k=1
xk,
a13 =
m∑
k=1
φ1(x)φ3(x) =
m∑
k=1
1 · x2k =
m∑
k=1
x2k,
a22 =
m∑
k=1
φ2(x)φ2(x) =
m∑
k=1
xk · xk =
m∑
k=1
x2k,
a23 =
m∑
k=1
φ2(x)φ3(x) =
m∑
k=1
xk · x2k =
m∑
k=1
x3k,
a33 =
m∑
k=1
φ3(x)φ3(x) =
m∑
k=1
x2k · x2k =
m∑
k=1
x4k,
b1 =
m∑k=1
ykφ1(x) =
m∑
k=1
yk,
b2 =
m∑
k=1
ykφ2(x) =
m∑
k=1
yk · xk,
b3 =
m∑
k=1
ykφ3(x) =
m∑
k=1
yk · x2k.
Logo, as equações normais são: m ∑k xk ∑k x2k∑
k xk
∑
k x
2
k
∑
k x
3
k∑
k x
2
k
∑
k x
3
k
∑
k x
4
k
 c1c2
c3
 =
 ∑k yk∑
k ykxk∑
k ykx
2
k
 . (6.16)
Calculando o determinante da matrizA, podemos veri�car que este é diferente
de zero se e somente se os pontos xk forem distintos. Assumindo que isso se
veri�ca na tabela de dispersão, o sistema possui solução única que corresponde
aos coe�cientes cj, j = 1, 2, 3, os quais estão relacionados aos coe�cientes ai, i =
0, 1, 2 da função de ajuste (6.14), e portanto o ajuste quadrático é determinado
univocamente.
148 cálculo numérico
Exercício 6.3 Escreva um operador para o ajuste polinomial quadrático; em se-
guida, determine o ajuste polinomial quadrático para o exemplo 6.2.
6.3.3 Ajuste polinomial geral
Analogamente aos casos anteriores, a função de melhor ajuste pode ser consi-
derada uma função polinomial de grau n. Ou seja,
f ∗(x) = a0 + a1x+ . . .+ anxn. (6.17)
Estabelecendo as equivalências entre os coe�cientes ai e os cj, e após algumas
operações, obtemos as equações normais:

m
∑
k xk · · ·
∑
k x
n
k∑
k xk
∑
k x
2
k · · ·
∑
k x
n+1
k
.
.
.
.
.
. · · · ...∑
k x
n
k
∑
k x
n+1
k · · ·
∑
k x
2n
k


c1
c2
.
.
.
cn
 =

∑
k yk∑
k ykxk
.
.
.∑
k ykx
n
k
 . (6.18)
O sistema (6.18) possui solução única desde que os pontos xi sejam distintos.
Como é assumido que isso se veri�ca na tabela de dispersão, a solução do sistema
existe e, portanto, a função de ajuste polinomial é obtida.
Exercício 6.4 Dada a tabela de dispersão
x 1 2 3 4 5 6 7 8
y 0, 5 0, 6 1, 0 1, 2 1, 6 2, 0 2, 5 3, 0
,
determine a reta e a parábola que melhor se ajustem aos pontos da tabela. Usan-
do uma calculadora compare os resultados, desenhando os grá�cos das curvas
encontradas e o grá�co dos pontos da tabela de dispersão.
6.4 Ajuste não linear
Como mencionado anteriormente, a função de melhor ajuste f ∗(x) é formada
com base nas funções φ(x), as quais podem ser funções não lineares do tipo:
φ(x) = ex, φ(x) = ln(x), φ(x) = cosx.
O tratamento, nesses casos, é idêntico ao caso do ajuste polinomial, e a função
de melhor ajuste é dada por (6.1).
ajuste de curvas 149
6.4.1 Casos redutíveis ao linear
Vejamos o caso inicial da função de ajuste dada pela função exponencial da
forma:
f ∗(x) = c1ec2x. (6.19)
Observe que a função acima não está descrita em conformidade com (6.1). O
procedimento a ser adotado para determinarmos os coe�cientes c1 e c2 é conside-
rarmos uma mudança de variável, na tentativa de reduzir o problema a um ajuste
linear.
Considerando a mudança:
z = ln f ∗(x) = ln y,
dessa relação podemos ver que:
z = ln(c1e
c2x) = ln c1 + ln e
c2x = ln c1 + c2x.
Fazendo c′1 = ln c1, reduzimos o problema ao caso linear, pois
z = c′1 + c2x ⇒ φ1(x) = 1, φ2(x) = x. (6.20)
Nas variáveis, x e z a função está descrita na forma linear. Comparando com
o ajuste realizado para a reta, temos que:
c′1 =
∑
k x
2
k ·
∑
k ln yk −
∑
k xk ·
∑
k xk ln yk
m
∑
k x
2
k − (
∑
k xk)
2
, (6.21)
c2 =
m
∑
k xk ln yk −
∑
k xk ·
∑
k ln yk
m
∑
k x
2
k − (
∑
k xk)
2
. (6.22)
Contudo, sabemos que c1 = e
c′1
. Então, uma vez obtidos os valores dos coe�-
cientes, podemos escrever a função exponencial de melhor ajuste como:
f ∗(x) = ec
′
1ec2x = ec
′
1+c2x. (6.23)
Exercício 6.5 Implemente computacionalmente um operador para determinar
a função de melhor ajuste não linear (6.23) e, em seguida, dada a tabela de
dispersão
x 0 1 2
y 1 2 6
,
determine a função y = c1e
c2x
que melhor se ajusta aos pontos dados.
150 cálculo numérico
Tabela 6.1: Tabela de funções não lineares.
Função y = f ∗(x) Mudanças de variáveis Forma linear y′ = ax′ + b
y = a
x
+ b x′ = 1
x
, y′ = y y = a 1
x
+ b
y = d
x+c
x′ = x y, y′ = y y = −1
c
(x y) + d
c
c = − 1
a
, d = − b
a
y = 1
ax+b
x′ = x, y′ = 1
y
1
y
= ax+ b
y = x
a+bx
x′ = 1
x
1
y
= a 1
x
+ b
y′ = 1
y
y = a ln(x) + b x′ = ln(x), y′ = y y = a ln(x) + b
y = ceax x′ = x, y′ = ln(y) ln(y) = ax+ ln(c)
c = eb
y = cxa x′ = ln(x), y′ = ln(y) ln(y) = a ln(x) + ln(c)
c = eb
y = 1
(ax+b)2
x′ = x 1√
y
= ax+ b
y′ = 1√
y
y = cxe−dx x′ = x, y′ = ln( y
x
) ln( y
x
) = −dx+ ln(c)
c = eb, d = −a
y = m
1+ceax
x′ = x, y′ = ln(m
y
− 1) ln(m
y
− 1) = ax+ ln(c)
c = eb,m =constant
Exercício 6.6 Determine as mudanças de coordenadas que linearizem as funções
de melhor ajuste dadas a seguir. Implemente computacionalmente tais ajustes.
f∗(x) = a1ax2, f
∗(x) > 0,
f∗(x) =
1
a1 + a2x
.
Na Tabela 6.1, apresentamos alguns casos de linearização para ajuste de fun-
ções não lineares.
Existem outras técnicas que permitem fazer o ajuste de curvas, como Séries
de Fourier e polinômios ortogonais. No entanto, tais técnicas estão fora do escopo
deste livro.
ajuste de curvas 151
6.5 Coe�ciente de determinação
A prática mostra que, em muitas situações de ajuste de polinomial, com po-
linômios de ordem moderada (> 8) a grande, a solução das equações normais
apresenta erros relativamente grandes. A origem desse problema reside no fato
do sistema ser mal-condicionado. Assim, é importante estabelecer algum meca-
nismo para inferir a qualidade de um ajuste polinomial.
No caso especí�co do ajuste linear, a qualidade desse ajuste pode ser medida
por meio de um coe�ciente, chamado de coe�ciente de determinação, o qual é
determinado por:
D2 =
[∑
k xkyk −
∑
k xk ·
∑
k yk
m
]2(∑
k x
2
k − (
∑
k xk)
2
m
)(∑
k y
2
k − (
∑
k yk)
2
m
) , (6.24)
onde 0 ≤ D ≤ 1.
Quanto melhor o ajuste, mais próximo o coe�ciente D estará da unidade.
Uma fórmula alternativa do coe�ciente de determinação é dada por:
D2 = 1−
∑
k(yk − y∗k)2∑
k y
2
k − (
∑
k yk)
2
m
, (6.25)
onde y∗k corresponde ao valor estimado de yk pela função de ajuste linear.
Exercício 6.7 Implemente computacionalmente o coe�ciente de determinação
linear e, em seguida, veri�que seu valor para o exemplo 6.2.
6.6 Exercícios propostos
1. Para determinar a função f(x) =
∑n
k=0 akPk(x), onde Pk(x) são polinômios
de Legendre, a fórmula de recursão deve ser utilizada:
bn+2 = bn+1 = b0
bk = ak +
2k + 1
k + 1
xbk+1 − k + 1
k + 2
bk+2 k = 0, . . . , n.
Implemente no Derive essa fórmula recursiva e mostre que f(x) = b0.
2. Um experimento em Física com base na Lei de Hooke F = kx gerou a
tabela de dados:
152 cálculo numérico
x 0, 2 0, 4 0, 6 0, 8 1, 0
F (x) 5, 5 10, 3 15, 8 21, 3 26, 5
.
Determine uma aproximação para o valor da constante de elasticidade da
mola k.
3. Encontre a melhor reta e a melhor parábola que se ajustem às tabelas
a seguir, e em seguida desenhe a curva para a tabela de dispersão e dos
polinômios encontrados.
a)
x −4 −2 0 2 4
y 1, 2 2, 8 6, 2 7, 8 13, 2
;
b)
x 1 2 3 4 5 6
y 1, 39 1, 95 2, 72 3, 79 5, 29 7, 39
.
4. No exercício proposto 4 do Capítulo 5 temos duas tabelas com os valores do
Produto Interno Bruno per Capita do Brasil e dos Estados Unidos durante
um conjunto de anos. Para ambas as tabelas, ajuste a melhor reta e a
melhor parábola e veri�que qual das duas curvas possui o menor resíduo.
Com base em seu resultado, veri�que qual o valor do PIBpC de ambos os
países no ano 2005.
5. A tabela de dispersão a seguir fornece o valor da população (em milhões de
habitantes) brasileira para alguns anos.
Ano 1900 1920 1940 1960 1980Habitantes 17, 4 30, 6 41, 2 70, 2 119, 9
Determine a equação logística P (t) do crescimento populacional que melhor
se ajusta à tabela, sendo:
P (t) =
500
1 + aebt
.
Qual a estimativa de população para o ano 2000?
Capítulo 7
MÉTODOS DE DERIVAÇÃO
NUMÉRICA
O objetivo deste capítulo é apresentar algumas técnicas para derivação numéri-
ca de funções, das quais são conhecidos apenas pontos discretos ou mesmo quando
desejamos obter apenas uma aproximação numérica. Em outras palavras, na
primeira situação, não temos a função e sim uma tabela de pontos, e na segunda
conhecemos a função, mas por alguma razão necessitamos de uma aproxima-
ção, como acontece, por exemplo, nos métodos de otimização, ou na solução de
equações diferenciais parciais.
7.1 Aproximação da derivada por diferenças
Seja f uma função, e vamos assumir que o valor da função f é conhecido para
os pontos (x0−h, f(x0−h)), (x0, f(x0)) e (x0+h, f(x0+h)). Com esses pontos,
gostaríamos de obter uma aproximação para o valor da derivada de f(x) no ponto
x0, isto é, f
′(x0).
Podemos estimar o valor da derivada pela inclinação da reta tangente no
ponto x0. Assim, em x0 podemos aproximar a derivada, considerando o valor de
h pequeno, por meio da razão incremental,
f ′(x0) ≈ f(x0 + h)− f(x0)
h
+ ET (f, h), (7.1)
onde ET corresponde ao erro de truncamento.
A aproximação dada pela equação (7.1) é conhecida como diferença progressiva
ou posterior, uma vez que para obtermos a estimativa no ponto x0 utilizamos o
ponto posterior a este. Denotamos esta derivada por D+(h).
Por outro lado, a aproximação poderia ser tomada, considerando a razão
incremental:
154 cálculo numérico
f ′(x0) ≈ f(x0)− f(x0 − h)
h
+ ET (f, h). (7.2)
Nesse caso, a equação (7.2) é uma aproximação da derivada em x0 pela es-
querda, conhecida como diferença regressiva ou anterior e denotada por D−(h).
Alternativamente, quando o valor de h é pequeno, podemos considerar uma
nova aproximação da derivada de f(x) no ponto x0 por meio da reta que passa
pelos pontos (x0 − h, f(x0 − h)) e (x0 + h, f(x0 + h)), resultando na diferença:
f ′(x0) ≈ f(x0 + h)− f(x0 − h)
2h
+ ET (f, h). (7.3)
Essa aproximação da derivada é conhecida como diferença central e deno-
tada por D0(h). A derivada central é uma medida da média entre as derivadas
regressiva e progressiva.
Para obtermos o erro de truncamento devido à aproximação pela diferença
central, vamos considerar a expansão da função f em uma série de Taylor para
f(x+ h) e f(x− h):
f(x+ h) = f(x) + f ′(x)h+
f ′′(x)h2
2
+
f ′′′(x)h3
6
+ · · · , (7.4)
e
f(x− h) = f(x)− f ′(x)h+ f
′′(x)h2
2
− f
′′′(x)h3
6
+ · · · . (7.5)
Subtraindo (7.5) de (7.4), obtemos:
f(x+ h)− f(x− h) = 2f ′(x)h+ 2f
′′′(x)h3
6
+ · · · . (7.6)
Se truncarmos a expressão anterior a partir da derivada terceira, e usando o
teorema de Taylor, temos que existe uma valor λ tal que |x − λ| < h de forma
que:
f(x+ h)− f(x− h) = 2f ′(x)h+ 2f
′′′(λ)h3
6
. (7.7)
Resolvendo a equação (7.7) para f ′(x), obtemos:
f ′(x) =
f(x+ h)− f(x− h)
2h
− h
2f ′′′(λ)
6
. (7.8)
O primeiro termo à direita da equação (7.8) corresponde à diferença central, e
o segundo termo, corresponde ao erro de truncamento ET (f, h) =
h2f ′′′(λ)
6
, o qual
tende a zero quando h→ 0.
métodos de derivação numérica 155
De maneira geral, o que desejamos saber é se a aproximação é boa. Essa
questão pode ser vista de outra forma. Ou seja, dada uma função f, para que
valor de h podemos dizer que a aproximação f ′(x0) é boa? A resposta é obtida
em termos de uma tolerância, em que, para uma seqüência de valores da diferença
central D0(hk), com k = 1, . . ., tivermos
|D0(hk+1)−D0(hk)| ≤ �. (7.9)
Na equação (7.9), a aproximação foi realizada considerando-se a diferença
central, no entanto podemos considerar, da mesma forma, as aproximações para
os demais casos das diferenças progressiva ou regressiva.
Exemplo 7.1 Seja f(x) = ex e o ponto x0 = 1. Determine o valor da derivada
da função no ponto x0 considerando a diferença central, assumindo hk = 12
−k
,
para k = 1, 2, 3. Se considerarmos uma tolerância � = 10−3, podemos garantir se
esta é alcançada com 3 iterações?
Solução: Para o valor de k = 1, temos que o passo é h1 = 1/12. Assim temos
D0(h1) =
e1+1/12 − e1−1/12
2 · 1/12 =
2.954511527− 2.500940013
1/6
= 2.721429080.
Para k = 2, temos h2 = 1/12
2 = 1/144. Agora,
D0(h2) =
e1+1/144 − e1−1/144
2 · 1/144 =
2.954511527− 2.500940013
1/72
= 2.718303676.
Para k = 3, temos h3 = 1/12
3 = 1/1728. Agora,
D0(h3) =
e1+1/1728 − e1−1/1728
2 · 1/1728 =
2.719855363− 2.716709203
1/864
= 2.718282012.
Para veri�carmos se a tolerância desejada já foi alcançada, tomamos |D0(h3)−
D0(h2)| = 2.166478807·10−5, o que mostra que a mesma foi alcançada na iteração
k = 3.
7.2 Aproximação por polinômios interpoladores
Suponha que conhecemos a tabela de pontos (xi, yi = f(xi)), i = 0, . . . , n, com
(n+1) pontos. Vimos no Capítulo 5, sobre interpolação, que podemos aproximar
a função f(x) pelo polinômio interpolador Pn(x). Então, é possível aproximarmos
a derivada da função f(x) por:
156 cálculo numérico
f ′(x) ∼= P ′n(x).
Se Pn(x) é o polinômio interpolador, o erro gerado pela interpolação é dado
por:
ET (x) = f(x)− Pn(x) = 1
(n+ 1)!
ϕ(x)f (n+1)(λ), λ ∈ [x0, xn],
onde ϕ(x) = (x − x0)(x − x1) · · · (x − xn). Então, a estimativa do erro para a
derivada é:
E ′T (x) = f
′(x)− P ′n(x)
=
1
(n+ 1)!
f (n+1)(λ)ϕ′(x), x = xi, λ ∈ [x0, xn].
Quando o espaçamento entre os pontos da tabela é uma constante h, o po-
linômio interpolador escolhido é um polinômio de Gregory-Newton,
Pn(z) = y0 +
z
1!
4y0 + z(z − 1)
2!
42y0 + . . .+
z(z − 1) . . . [z − (n− 1)]
n!
4ny0,
com xi+1 − xi = h e z = x−x0h .
Vamos considerar inicialmente o caso em que o polinômio interpolador é linear,
temos que:
P1(z) = y0 + z4y0,
e como f ′(x) = dz
dx
df
dz
= 1
h
df
dz
, obtemos:
f ′(x0) ∼= 1
h
dP1(z)
dz
=
1
h
4y0 = y1 − y0
h
.
Vemos que esse resultado corresponde à diferença progressiva da equação (7.1).
Fazendo o mesmo para o erro de truncamento, obtemos, neste caso:
ET (x) =
h
2
f ′′(λ), λ ∈ [x0, x1]. (7.10)
Observe que não sabemos nem o valor do ponto λ, nem a derivada segunda,
mas da expressão (7.10) vemos que o erro de truncamento é da ordem O(h). Se o
valor da derivada segunda não variar muito no intervalo, podemos reduzir o erro
pela metade tomando um novo valor de h como sendo h/2, e assim sucessivamente.
métodos de derivação numérica 157
Podemos considerar o mesmo procedimento, tomando agora polinômios de
ordem superior. No caso do polinômio de segunda ordem P2(z), obtemos para a
derivada de primeira ordem no ponto x0:
P2(z) = y0 + z4y0 + 1
2
z(z − 1)42y0
⇒ f ′(x) = 1
h
[4y0 + 1
2
(2z − 1)42y0]. (7.11)
Agora, considerando x = x0, obtemos z = 0, e então
f ′(x0) ∼= 1
2h
(4y1 − 3y0 − y2). (7.12)
Se desejarmos estimar a deriva no ponto x = x1, teremos z = 1 e então da
expressão (7.11) obtemos:
f ′(x1) ∼= 1
2h
(y2 − y0). (7.13)
Por �m, ainda podemos estimar a derivada primeira no ponto x = x2, onde
z = 2, resultando em
f ′(x2) ∼= 1
2h
(y0 − 4y1 + y2). (7.14)
Note que o resultado da deriva no ponto x = x0 é equivalente a tomarmos a
diferença progressiva para três pontos. É possível estimarmos a derivida primeira
em um ponto qualquer da tabela, ou seja, x ∈ [x0, x2] considerando o valor de
z = x−x0
h
.
Após alguma manipulação, podemos veri�car que o erro de truncamento para
a derivada primeira no ponto x0 é dado por:
ET (x) =
h2
3
f ′′′(λ), λ ∈ [x0, x2].
Veja que agora o erro é da ordem O(h2). Note que podemos ainda obter a
derivada primeira com base nos polinômios de ordens superiores.
Exercício 7.1 Deduzao resultado da derivação aproximada pela diferença cen-
tral para o caso de aproximação da função pelo polinômio de Gregory-Newton de
segunda ordem. Qual a expressão para o erro de truncamento?
158 cálculo numérico
7.3 Derivadas de ordem superior
A aproximação das derivadas de ordem superiores pode ser obtida seguindo-se
o mesmo raciocínio. Se considerarmos a aproximação da função por um polinô-
mio interpolador de Gregory-Newton de segunda ordem, neste caso teremos três
pontos, após algumas manipulações obtemos:
f ′′(x0) ∼= y2 − 2y1 + y0
h2
,
e o erro de truncamento associado será:
ET (x0) = −hf ′′′(λ).
Observe que podemos obter também ainda as derivadas segundas nos pontos
x1 e x2. De forma análoga, a derivada segunda pode ser obtida a partir do
polinômio de Gregory-Newton com ordens superiores a dois.
Para a estimativa da derivada terceira, devemos considerar, pelo menos, o
polinômio de ordem três. Neste caso, após algumas manipulações, obtemos:
f ′′′(x0) ∼= y3 − 3y2 + 3y1 − y0
h3
.
Observe que podemos obter também ainda as derivadas terceiras nos pontos
x1, x2 e x3. De forma análoga, a estimativa da derivada terceira pode ser obtida
a partir do polinômio de Gregory-Newton com ordens superiores a três.
Exercício 7.2 Deduza as aproximações e os erros de truncamentos para as de-
rivadas de ordem dois e três apresentadas acima e, determine também estas de-
rivadas considerando polinômios de Greogory-Newton de ordem imediatamente
superiores, nos respectivos casos.
Exemplo 7.2 Usando a tabela, determine o valor de f ′(1, 4).
x 1, 2 1, 3 1, 4 1, 5 1, 6
f(x) 1, 5095 1, 6984 1, 9043 2, 1293 2, 3756
Solução: considerando a aproximação por um polinômio de primeiro grau, a
diferença progressiva aproxima o valor da derivada por:
f ′(1, 4) ∼= f(1, 5)− f(1, 4)
0, 1
= 2, 2500.
Considerando a aproximação por um polinômio de grau dois, a derivada é
aproximada por uma diferença progressiva dada por
f ′(1, 4) ∼= 1
0, 2
[−3f(1, 4) + 4f(1, 5)− f(1, 6)] = 2, 1435.
métodos de derivação numérica 159
7.4 Extrapolação de Richardson
A partir da equação da diferença central (7.8), podemos de�nir o termo:
F (h) =
f(x+ h)− f(x− h)
2h
.
Se o erro de truncamento, quando h → 0, for conhecido podemos obter uma
boa aproximanção para F (0), que corresponde à derivada da função f(x), pois:
lim
h→0
F (h) = f ′(x).
A função F (h) pode ser escrita como
F (h) = f ′(x) +
h2f ′′′(λ)
6
+O(h4).
Se considerarmos um passo de comprimento 2h nessa expressão, temos:
F (2h) = f ′(x) +
4h2f ′′′(λ)
6
+O(h4).
Subtraindo as duas expressões, temos:
F (2h)− F (h) = 3h
2f ′′′(λ)
6
+O(h4)⇒
F (2h)− F (h)
3
=
h2f ′′′(λ)
6
+O(h4). (7.15)
A expressão
ET (F (h)) =
h2f ′′′(λ)
6
corresponde ao erro de truncamento associado à função F (h), o qual pode ser
estimado pela expressão do lado esquerdo da equação (7.15).
Usando a equação (7.15) na expressão para F (h), obtemos:
F (h) = f ′(x) +
F (2h)− F (h)
3
+O(h4),
que nos dá a derivada
f ′(x) = F (h) +
F (h)− F (2h)
3
+O(h4). (7.16)
Observe que a derivada na expressão (7.16) possui um erro de truncamento
da ordem de O(h4), em vez de O(h2) como na fórmula da diferença central (7.8).
160 cálculo numérico
O método para obtenção da derivada primeira de ordem superior no erro, com
base em uma fórmula de derivação de ordem inferior, é conhecido como extrapo-
lação. A derivada f ′(x) dada pela fórmula (7.16) é conhecida como extrapolação
de Richardson.
Podemos mostrar que o método de extrapolação de Richardson para derivadas
resulta em erros de truncamento que são sempre potências pares de h.
Exemplo 7.3 Seja f(x) = ex e x0 = 1. Se usarmos a diferença central para
aproximarmos a derivada da função f ′(x0) para os valores de h = 0, 2 e h = 0, 4,
obtemos para a função F(h), respectivamente,
h F(h)
0, 2 2, 736439985
0, 4 2, 791351458
O erro de truncamento em F(0, 2) é estimado como
ET(F(0.2)) =
F(0, 2)− F(0, 4)
3
= −0, 01830382415,
e agora podemos obter o valor da derivada da função f no ponto x0 = 1 :
f ′(1) ≈ F(0, 2) + ET(F(0, 2)) = 2, 718136161.
Observe que o valor absoluto do erro do cálculo da derivada f ′(1) pelo método
de Richardson é de 1, 456674580× 10−4.
7.5 Exercícios propostos
1. Implemente um operador para calcular as derivadas primeiras de uma fun-
ção pelo método das derivadas progressivas, central e regressiva.
2. Determine a derivada da função f(x) = cos(x)√
10−ex2
, no ponto x = 1, uti-
lizando os operadores de�nidos no exercício anterior, para os passos h =
1; 0, 1; 0, 001.
3. Considere as funções f(x) = sen x e g(x) = cosx e calcule o valor apro-
ximado da derivada primeira dessas funções no ponto x = pi/3, usando o
método da diferença central com h = 0, 01.
4. Determine a derivada segunda da função f(x) = e
x
cosx+senx
, no ponto x = 1,
para os passos h = 0, 2; 0, 1; 0, 05; 0, 01. Usando o Derive , determine a
derivada exata da função e em seguida veri�que o erro de truncamento no
ponto x = 1.
métodos de derivação numérica 161
5. Por meio de um experimento, observou-se que a corrente elétrica I(t) em
um circuito era dada pela tabela a seguir:
t 1, 0 1, 1 1, 2 1, 3 1, 4
I(t) 8, 23 7, 24 5, 99 4, 53 2, 91
Encontre o valor de I ′(1, 2) usando o método de Richardson. Qual será o
valor da voltagem para t = 1, 2 se a mesma é dada pela equação E(t) =
0, 05dI(t)
dt
+2I(t). Utilize o Derivepara resolver essa equação diferencial de
forma exata e compare com o resultado aproximado obtido.
162 cálculo numérico
Capítulo 8
MÉTODOS DE INTEGRAÇÃO
NUMÉRICA
Um dos resultados mais importantes do cálculo diferencial e integral é o que
relaciona uma função f(x) à sua primitiva F (x). Esse resultado é formalmente
construído por meio do teorema fundamental do cálculo, o qual é enunciado a
seguir:
Teorema 8.1 (Teorema Fundamental do Cálculo) Seja f(x) uma função
contínua em um intervalo [a, b] e F(x) a sua primitiva, isto é, dF(x)
dx
= f(x), então
F′(x) = f(x)⇔
∫ b
a
f(x)dx = F(b)− F(a).
O teorema transforma o problema da integração pela soma de Riemann no
problema da determinação da primitiva. No entanto, a determinação da função
primitiva F (x) nem sempre é uma tarefa fácil, ou possível analiticamente. Além
disso, em muitas situações práticas nem sempre temos a forma analítica da função
a ser integrada (integrando). O que conhecemos são apenas pontos de uma tabela,
o que torna inviável a utilização direta do teorema fundamental do cálculo.
Neste capítulo, vamos estudar alguns métodos numéricos para obtenção de
integrais aproximadas. Os métodos de integração numérica estão classi�cados
em duas categorias:
• Métodos de Newton-Côtes, que empregam os valores de f(x), onde os valo-
res de x estão uniformemente espaçados;
• Método da Quadratura Gaussiana, que utiliza os pontos x com espaça-
mentos distintos. Nesse método, o espaçamento é determinado por certas
propriedades de polinômios ortogonais.
164 cálculo numérico
Entre as técnicas do método de Newton-Côtes, veremos as seguintes:
• Regra dos trapézios simples e composta;
• Primeira e a segunda regras de Simpson, simples e composta.
Para a obtenção da fórmula de Newton-Côtes, utilizaremos o polinômio inter-
polador de Gregory-Newton para aproximar a função do integrando, tomando
Pn(z) = y0 +
z
1!
4y0 + z(z − 1)
2!
42y0 + . . .+
z(z − 1) . . . [z − (n− 1)]
n!
4ny0 +Rn, (8.1)
onde Rn é o resíduo da aproximação pela interpolação e z =
x−x0
h
. A expressão
do resíduo é dada por:
Rn =
z(z − 1)(z − 2) . . . (z − n)hn+1fn+1(λ)
(n+ 1)!
, a ≤ λ ≤ b. (8.2)
Fazendo a aproximação da função f(x) no integrando por um polinômio de
Gregory-Newton e, resolvendo a integral, obtemos as fórmulas de Newton-Côtes.
8.1 Regrados trapézios
Para determinarmos a regra mais simples de integração numérica, vamos con-
siderar o polinômio de Greogry-Newton de primeiro grau. Isso signi�ca que esta-
remos aproximando a função por uma reta. Assim, fazendo n = 1 na expressão
(8.1), temos:
P1(z) = y0 + z4y0, R1(z) = z(z − 1)f
′′(λ)
2!
. (8.3)
Substituindo este polinômio na integral
I =
∫ b
a
f(x)dx,
com f(x) ' P1(z), temos:
z =
x− x0
h
⇒ dz = 1
h
dx.
métodos de integração numérica 165
Tomando os pontos extremos a = x0 e b = x1, a integral transforma-se em
I =
∫ b
a
f(x)dx =
∫ z1
z0
(y0 + z4y0)hdz,
z0 =
x0 − x0
h
= 0, z1 =
x1 − x0
h
=
h
h
= 1.
Logo, a integral �ca:
I =
∫ 1
0
(y0 + z4y0)hdz = h[y0z +4y0 z
2
2
]
∣∣∣1
0
(8.4)
= h[y0 +
1
2
(y1 − y0)] = 1
2
h(y0 + y1).
Como o valor de h é conhecido e y0, y1 estão dados na tabela, então o valor
da integral é aproximado pela expressão (8.4), que é a Regra dos Trapézios para
integração.
A interpretação geométrica da regra dos trapézios é simples, a ilustração da
Figura 8.1 mostra-nos o porquê desse nome.
Figura 8.1: Regra dos trapézios.
A área compreendida pela curva da função f(x) é aproximada pela área do
trapézio formado pela reta P1(x). O valor dessa área é dado por:
166 cálculo numérico
A =
1
2
h (f(x0) + f(x1)) =
h
2
(y0 + y1),
que é o resultado da regra dos trapézios.
8.1.1 Erro de truncamento
A diferença entre o valor da área gerada por f(x) e a área gerada pela reta é
o erro de integração. Para determinarmos o erro de truncamento na integração
pela regra dos trapézios, devemos integrar o resíduo. Assim:
ET =
∫ b
a
R1dx =
∫ 1
0
z(z − 1)h2
2!
f ′′(λ)hdz (8.5)
=
h3
2!
f ′′(λ)
(
z3
2
− z
2
2
) ∣∣1
0
= −h
3
12
f ′′(λ), a ≤ λ ≤ b.
Observe que na expressão do erro dada em (8.5), se f ′′(λ) > 0, o erro será por
excesso, e se f ′′(λ) < 0, o erro será por falta.
Exemplo 8.1 Determinar o valor da integral
∫ 3,6
3,0
1
x
dx, utilizando a regra dos
trapézios.
Solução: O resultado é falcilmente obtido, pois sabemos que o resultado da
integral é dado por:
I =
h
2
(y0 + y1),
mas como y = 1
x
, obtemos facilmente os valores:
y0 =
1
3, 0
≈ 0, 333333,
y1 =
1
3, 6
≈ 0, 277777,
h = x1 − x0 = 3, 6− 3, 0 = 0, 6.
Logo:
I ≈ 0, 183333.
O cálculo do erro é:
métodos de integração numérica 167
ET = −h
3
12
2
λ3
.
Como sabemos que 3, 0 ≤ λ ≤ 3, 6, temos:
|f ′′(λ)|max =
2
λ3
=
2
33
=
2
27
.
Agora, o erro máximo será
ET = −0, 6
3
12
2
27
≈ −1, 33333× 10−3.
8.1.2 Fórmula composta dos trapézios
Uma forma de melhorar o valor aproximado da integral, por meio da regra
dos trapézios, é dividir o intervalo [a, b] em n partes iguais e aplicar a regra dos
trapézios a cada uma dessas n partes.
Como resultado da aplicação, teremos a soma das integrais aproximadas de
cada uma das n partes:
I =
∫ x1
x0
f(x) dx+
∫ x2
x1
f(x) dx+ · · ·+
∫ xn
xn−1
f(x) dx
=
h
2
(y0 + y1) +
h
2
(y1 + y2) + · · ·+ h
2
(yn−1 + yn)
=
h
2
(y0 + 2y1 + 2y2 + · · ·+ 2yn−1 + yn). (8.6)
A fórmula (8.6) é conhecida como regra dos trapézios composta.
O erro de truncamento é, então, a soma dos erros gerados pela aplicação da
regra simples dos trapézios para cada um dos n intervalos. Dessa forma, temos:
ET = ET0 + ET1 + · · ·+ ETn−1 ,
onde:
ETi = −
h3
12
f ′′(λi).
Logo:
ET = −h
3
12
n−1∑
i=0
f ′′(λi).
É possível mostrar que o erro total transforma-se na expressão
168 cálculo numérico
ET = −(b− a)
3
12n2
f ′′(λ), a ≤ λ ≤ b; f ′′(λ) =
∑n−1
i=0 f
′′(λi)
n
. (8.7)
onde n corresponde ao número de divisões consideradas do intervalo [a, b]. Vemos
que, quanto maior for o número n de divisões do intervalo, melhor é a aproximação
pela regra dos trapézios composta.
Exercício 8.1 Resolva, pela regra dos trapézios composta, a integral
∫ 3,6
3,0
1
x
dx, to-
mando o número de divisões do intervalo de integração igual a n = 6. Determine
o erro cometido.
8.2 Regras de Simpson
As regras de Simpson consideram a aproximação da função do integrando por
polinômios de Gregory-Newton de ordem superior.
8.2.1 Primeira regra de Simpson
Seja a integral
I =
∫ b
a
f(x)dx = F (b)− F (a).
A primeira regra de Simpson é obtida tomando a função f(x) por uma apro-
ximação polinomial, usando o polinômio de Gregory-Newton de grau dois, isto
é:
f(x) ≈ P2(x),
P2(z) = y0 + z4y0 + z(z − 1)
2!
42y0, z = x− x0
h
.
Assim, temos:
I =
∫ b
a
f(x)dx ≈
∫ b
a
P2(x)dx.
Na aproximação por um polinômio de segundo grau, temos 3 pontos igual-
mente espaçados. Considerando esses pontos como x0, x1, x2, vemos que para
x0 = a e x2 = b, e como h = xi+1 − xi, então x = a ⇒ z = a−ah = 0 e
x = b⇒ z = b−a
h
= 2h
h
= 2.
Logo, a integral �ca:
métodos de integração numérica 169
I ≈
∫ b
a
P2(x)dx =
∫ 2
0
(y0 + z4y0 + z(z − 1)
2!
42y0)hdz
≈ h
[
zy0 +
z2
2
4y0 +
(
z3
6
− z
2
4
)
42y0
] ∣∣2
0
≈ h
(
2y0 + 24y0 + 1
3
42y0
)
. (8.8)
Como sabemos que
4y0 = y1 − y0, 42y0 = y2 − 2y1 − y0,
substituindo na expressão da integral (8.8), obtemos
I ≈ h
3
(y0 + 4y1 + y2) , (8.9)
que é a primeira regra de Simpson ou também conhecida como a regra do 1/3.
O erro de truncamento do polinômio de segundo grau é dado por:
R2(z) =
z(z − 1)(z − 2)
3!
f ′′′(λ)h3.
Assim, o erro de truncamento da integral torna-se:
ET =
∫ 2
0
z(z − 1)(z − 2)
3!
f ′′′(λ)h4dz (8.10)
=
h4
3!
f ′′′(λ)
∫ 2
0
(z3 − 2z2 + 2z)dz
=
h4
3!
f ′′′(λ)(
z4
4
− z3 + z2) ∣∣20
= 0.
Vemos que o erro de truncamento não depende do R2. Dessa forma, devemos
então considerar um resíduo menor tomando R3(z). Nesse caso:
170 cálculo numérico
ET =
∫ 2
0
R3(z)dz (8.11)
=
∫ 2
0
z(z − 1)(z − 2)(z − 3)
4!
f iv(λ)h5dz
= −h
5
90
f iv(λ), a ≤ λ ≤ b.
Por meio dessa fórmula, vemos que, se a função f(x) for uma função polinomial
de grau três ou inferior, o cálculo da integral via primeira regra de Simpson é
exato, uma vez que f iv(λ) é zero para esses polinômios.
8.2.2 Primeira regra de Simpson composta
A regra de Simpson composta é obtida considerando o intervalo [a, b] e divi-
dindo-o em n subintervalos iguais com amplitudes h, e a cada par de subintervalos
aplicamos a regra de Simpson simples. Observe que o número n deve ser par para
termos um número par de subintervalos.
Se considerarmos o intervalo [a, b] dividido da forma
{[a = x0, x1], [x1, x2], · · · , [xn−2, xn−1], [xn−1, xn = b]}, sendo um número par,
aplicando para cada conjunto de dois subintervalos a primeira regra de Simpson,
temos:
I1 ≈ h
3
(y0 + 4y1 + y2), (8.12)
I2 ≈ h
3
(y2 + 4y3 + y4),
.
.
.
In/2 =
h
3
(yn−2 + 4yn−1 + yn).
Logo, o resultado da integral é a soma das várias subintegrais, resultando em:
I = I1 + I2 + · · ·+ In/2
=
h
3
(y0 + 4y1 + 2y2 + 4y3 + 2y4 + · · ·+ 2yn−2 + 4yn−1 + yn), (8.13)
métodos de integração numérica 171
que é a primeira regra de Simpson composta.
A expressão (8.13) da primeira regra de Simpson composta pode ser escrita
de forma compacta como:
I =
h
3
y0 + 4 n/2∑
i=1
y2i−1 + 2
n/2−1∑
i=1
y2i + yn
 . (8.14)
O erro de truncamento associado é determinado pela soma dos erros gerados
por cada uma das integrais calculadas em cada subintervalo. Dessa forma:
ET = ET1 + ET2 + · · ·+ ETn/2 .
Podemos demonstrar que o valor do erro é dado por:
ET = − h
5
180
nf iv(λ), (8.15)
ou, substituindo h = b−a
n
, obtemos:
ET = −(b− a)
5
180n4
f iv(λ), a ≤ λ ≤ b. (8.16)
Note que o erro de truncamento nesse caso diminui com a quartapotência do
número de intervalos (n4). Na fórmula do método dos trapézios, o erro caía com
o quadrado do número de intervalos (n2).
Exercício 8.2 Determine a integral
∫ 2
1
e2xdx, para n = 4. Quando n = 4, temos
n/2 = 4/2 = 2 pares de subintervalos. Qual o erro associado a integral?
Exercício 8.3 Conhecendo os pontos tabelados de uma função f(x), determine o
valor da integral
∫ 4
2
f(x)dx.
x 2, 0 2, 5 3, 0 3, 5 4, 0
y 41 77, 25 130 202, 25 298
8.2.3 Segunda regra de Simpson
Na primeira regra de Simpson, utilizamos o polinômio de
Gregory-Newton de segundo grau. Agora consideraremos o polinômio de Gregory-
Newton de grau três, P3(z). A integral é então aproximada da forma:
I =
∫ b
a
f(x)dx ≈
∫ b
a
P3(x)dx,
172 cálculo numérico
onde
P3(z) = y0 + z4y0 + z(z − 1)
2!
42y0 + z(z − 1)(z − 2)
3!
43y0, z = x− x0
h
.
Substituindo o polinômio de Gregory-Newton na integral, após algumas ma-
nipulações, obtemos:
I ≈ 3
8
h(y0 + 3y1 + 3y2 + y3), (8.17)
que é a segunda regra de Simpson ou regra dos 3/8.
O erro de truncamento para a segunda regra de Simpson é dado por:
ET = −3h
5
80
f iv(λ), a ≤ λ ≤ b. (8.18)
De maneira análoga, podemos determinar a segunda regra de Simpson com-
posta. Nesse caso, o número n de subintervalos deve ser múltiplo de três, pois
necessitamos de 4 pontos para determinarmos o polinômio de Gregory-Newton
de grau três.
8.2.4 Segunda regra de Simpson composta
De forma análoga à dedução realizada para obtenção da primeira regra de
Simpson composta, a segunda regra de Simpson composta é dada por:
I ≈ 3h
8
(y0+3y1+3y2+2y3+3y4+3y5+2y6+ · · ·+3yn−2+3yn−1+ yn) (8.19)
onde n é o número de subintervalos em que foi dividido o intervalo [a, b].
O erro de truncamento associado à segunda regra de Simpsom composta é
dado pelas somas dos erros para cada subintegral determinada. A expressão
geral do erro de truncamento torna-se:
ET = −(b− a)
5
80n4
f iv(λ), a ≤ λ ≤ b. (8.20)
Exercício 8.4 Implemente computacionalmente a segunda regra de Simpson sim-
ples e composta.
Há, ainda, outras técnicas para integração como a extrapolação de Romberg,
que utiliza a regra dos trapézios e a idéia da extrapolação de Richardson para
diminuir o erro de truncamento; a técnica da quadratura adaptativa, que utiliza
métodos de integração numérica 173
uma adpatação do tamanho do passo dependendo do intervalo que está sendo
considerado, em conjunto com a primeira regra de Simpson composta, para obter
a integral. Não apresentamos tais técnicas aqui, porém o leitor não terá di�culda-
des em aprendê-las a partir do conhecendo das técnicas que foram apresentadas
neste capítulo.
8.3 Quadratura Gaussiana
No método da quadratura Gaussiana, os pontos não são escolhidos por quem
está usando o método, mas por um critério de�nido pelo próprio método.
A idéia central do método da quadratura Gaussiana é obter a solução da
integral de uma função f(x) em termos de uma soma da forma:
I =
∫ b
a
f(x)dx = a0f(x0) + a1f(x1) + · · ·+ anf(xn) =
n∑
i=0
aif(xi), (8.21)
onde os termos ai e xi são valores a serem determinados.
A imposição que devemos fazer para obter a solução da integral é que o re-
sultado seja exato para funções polinomiais com graus ≤ (2n + 1). Observe que
temos na equação (8.21) um total de (2n+ 2) parâmetros a serem determinados.
O primeiro passo para estudar o método da quadratura Gaussiana é transfor-
marmos o intervalo [a, b] no intervalo [−1, 1]. Isso é obtido fazendo uma transfor-
mação da variável x para uma nova variável t, da forma:
x =
1
2
(b− a)t+ 1
2
(b+ a). (8.22)
Veja que para t = −1⇒ x = a e para t = 1⇒ x = b. Assim, a integral �ca:∫ b
a
f(x)dx =
∫ 1
−1
F (t)dt,
onde f(x) = f [1
2
(b− a)t+ 1
2
(b+ a)] e dx = 1
2
(b− a)dt.
Logo: ∫ b
a
f(x)dx =
1
2
(b− a)
∫ 1
−1
f [
1
2
(b− a)t+ 1
2
(b+ a)]dt,
F (t) =
1
2
(b− a)f [1
2
(b− a)t+ 1
2
(b+ a)].
A expansão em termos da função F (t), torna-se:
174 cálculo numérico
∫ b
a
f(x)dx =
∫ 1
1
F (t)dt = A0F (t0)+A1F (t1)+A2F (t2)+ · · ·+AnF (tn). (8.23)
8.3.1 Quadratura Gaussiana com n = 1
Consideremos o caso inicial para n = 1. Isso signi�ca que teremos dois pontos
(t0, t1) e a fórmula (8.23) deverá ser exata para polinômios de grau máximo três.
Podemos mostrar que os pontos ai e xi independem da função F . Assim, se
escolhermos a função F (t) tal que:
F (t) = tk, k = 0, 1, 2, 3,
teremos: ∫ 1
−1
F (t)dt = A0F (t0) + A1F (t1).
Agora,
k = 0⇒
∫ 1
−1
t0dt = A0t
0
0 + A1t
0
1,
k = 1⇒
∫ 1
−1
t1dt = A0t
1
0 + A1t
1
1,
k = 2⇒
∫ 1
−1
t2dt = A0t
2
0 + A1t
2
1,
k = 3⇒
∫ 1
−1
t3dt = A0t
3
0 + A1t
3
1.
Resolvendo as integrais do lado esquerdo, obtemos o sistema de equações não
lineares nas variáveis A0, A1, t0, t1.
A0 + A1 = 2, (8.24)
A0t0 + A1t1 = 0, (8.25)
A0t
2
0 + A1t
2
1 =
2
3
, (8.26)
A0t
3
0 + A1t
3
1 = 0. (8.27)
Multiplicando a equação (8.25) por t20, temos
métodos de integração numérica 175
t20(A0t0 + A1t1) = 0.
Subtraindo esse resultado da equação (8.27), obtemos:
(A1t1t
2
0 + A0t
3
0)− (A0t30 + A1t31) = 0,
A1t1(t1 − t0)(t1 + t0) = 0. (8.28)
A única solução viável da equação (8.28) é: t1 = −t0. A solução t1 = 0 ⇒
A0 = A1 = 0 e a solução t0 = t1 é inconsistente. Logo, tomando a única solução
viável e substituindo nas demais equações, obtemos:
A1 = A0 = 1, t0 = −t1 =
√
1/3. (8.29)
Retornando com os valores da solução (8.29) na fórmula da integral Gaussiana
para n = 1, vemos que: ∫ 1
−1
F (t)dt = F (
1√
3
) + F (− 1√
3
). (8.30)
A fórmula (8.30) é exata para F (t), sendo qualquer polinômio de grau ≤ 3.
Exemplo 8.2 Seja a integral
I =
∫ 2
−2
e−x
2/2dx
Determine o valor da integral usando a quadratura Gaussiana para n = 1.
Solução: Devemos inicialmente obter a função F(t), que resulta em:
F(t) =
2− (−2)
2
f
[
1
2
(2− (−2)) t + 1
2
(2 + (−2))
]
= 2f(2t) = 2e−2t
2
Como I = F(1/
√
3) + F(−1/√3), temos:
I = 2e−2(1/
√
3)2 + 2e−2(−1/
√
3)2 = 4e−2/3 ≈ 2, 053668476.
176 cálculo numérico
8.3.2 Quadratura gaussiana para n = 2
Consideremos o caso n = 2. Isso signi�ca que teremos três pontos (t0, t1, t2) e
a fórmula (8.23) deverá ser exata para polinômios de grau máximo cinco.
Considerando a função F (t) tal que:
F (t) = tk, k = 0, 1, 2, 3, 4, 5
teremos:
∫ 1
−1
F (t)dt = A0F (t0) + A1F (t1) + A2F (t2).
Seguindo o mesmo procedimento realizado para o caso n = 1, obtemos o
conjunto de equações não lineares:
A0 + A1 + A2 = 2,
A0t0 + A1t1 + A2t2 = 0
A0t
2
0 + A1t
2
1 + A2t
2
2 = 2/3
A0t
3
0 + A1t
3
1 + A2t
3
2 = 0
A0t
4
0 + A1t
4
1 + A2t
4
2 = 2/5
A0t
5
0 + A1t
5
1 + A2t
5
2 = 0,
cuja solução é
A0 = 8/9, A1 = A2 = 5/9, t0 = 0, t1 = −t2 =
√
3/5. (8.31)
A integral é, então, aproximada por:
∫ b
a
f(x) dx =
8
9
F (0) +
5
9
F (
√
3/5) +
5
9
F (−
√
3/5). (8.32)
Exercício 8.5 Resolva a intergal do Exemplo 8.2 utilizando a quadratura Gaus-
siana para n = 2.
métodos de integração numérica 177
8.3.3 Procedimento geral
O mesmo processo para obtermos a quadratura Gaussiana para n = 1 pode
ser estendido para determinar a fórmula geral para um n qualquer. Nesse caso,
temos: ∫ 1
−1
F (t)dt = A0F (t0) + A1F (t1) + · · ·+ AnF (tn).
Tomando agora F (t) = tk, k = 0, 1, . . . , (2n + 1), e seguindo o mesmo proce-
dimento anterior, obtemos o sistema de equações não lineares:
A0 + A1 + · · ·+ An = 2, (8.33)
A0t0 + A1t1 + · · ·+ Antn = 0, (8.34)
A0t
2
0 + A1t
2
1 + · · ·+ Ant2n = 2/3, (8.35)
.
.
.
A0t
2n+1
0 + A1t
2n+1
1 + · · ·+ Ant2n+1n = 0. (8.36)
A solução do sistema anterior para as variáveist, corresponde às raízes de um
conjunto de polinômios conhecidos como polinômios de Legendre, cuja de�nição
é:
De�nição 8.1 Os polinômios de Legendre são determinados pela relação de re-
corrência:
P0(x) = 1,
P1(x) = x,
Pm+1(x) =
1
m + 1
[(2m + 1)xPm(x)−mPm−1(x)] ,
com m = 1, 2, . . . .
Os polinômios de Legendre P2(x), P3(x) e P10(x) são apresentados abaixo.
P2(x) =
1
2
(3x2 − 1),
P3(x) =
x
2
(5x2 − 3),
P10 =
1
256
(46189x10 − 109395x8 + 90090x6 − 30030x4 + 3465x2 − 63).
Podemos determinar as soluções para as equações P2(x) = 0 e P3(x) = 0,
178 cálculo numérico
P2(x) = 0⇒ x = ±
√
1
3
, (8.37)
P3(x) = 0⇒ x = 0 ou x = ±
√
3
5
. (8.38)
Observe que as raízes dos polinômios de Legendre P2(x) e P3(x) correspondem
exatamente aos valores de t0 e t1 para a quadratura Gaussiana, quando n = 1 e
de t0, t1 e t2 para a quadratura Gaussiana, quando n = 2, respectivamente. A
solução do sistema é obtida após substituirmos os valores dos t′s e resolvermos
para os coe�cientes A′s.
Tabela 8.1: Quadratura Gaussiana.
n k tk (tk−1−i = −ti) Ak (Ak−1−i = Ai)
0 1 t0 = 0, 0 A0 = 2, 0
1 2 t1 = −t0 = 0, 5773502691 A0 = A1 = 1, 0
2 3
t0 = −t2 = −0, 7745966692
t1 = 0, 0
A0 = A2 = 0, 5555555555
A1 = 0, 8888888888
3 4
t0 = −t3 = −0, 8611363115
t1 = −t2 = −0, 3399810435
A0 = A3 = 0, 3478548451
A1 = A2 = 0, 6521451548
4 5
t0 = −t4 = −0, 9061798459
t1 = −t3 = −0, 5384693101
t2 = 0, 0
A0 = A4 = 0, 2369268850
A1 = A3 = 0, 4786286704
A2 = 0, 5688888888
A Tabela 8.1 mostra os valores para a quadratura Gaussiana até n = 4.
8.3.4 Erro de truncamento
O erro de truncamento para a quadratura Gaussiana com n = 1 (k = 2) é
dado por:
ET =
1
135
F iv(λ), −1 ≤ λ ≤ 1. (8.39)
No caso geral, o erro de truncamento para funções contínuas é determinado
pela relação a seguir, e a quadratura Gaussiana converge para o valor exato da
integral [Szidarovszky, 89], quando k →∞:
ET =
22k+1k!4
(2k + 1)[(2k)!]3
F 2k(λ), −1 ≤ λ ≤ 1, (8.40)
onde k corresponde ao número de pontos.
métodos de integração numérica 179
Exercício 8.6 Qual o valor do erro de truncamento para o exemplo 8.2 resolvido
anteriormente?
Exercício 8.7 Implemente computacionalmente o método da quadratura Gaus-
siana para qualquer valor de n dado na tabela. Em seguida, determine a integral
de f(x) = sen (5x), x = [0, pi], tomando a quadratura Gaussiana para n = 1, 2, 3, 4.
8.4 Integrais impróprias
Integrais impróprias surgem com muita frequência em diversos problemas apli-
cados. Tais integrais surgem quando o integrando apresenta uma singularidade
em um dos extremos do intervalo de integração ou ainda quando pelo menos um
dos extremos do intervalo de integração é in�nito. Em ambas as situações as téc-
nicas apresentadas para integrais próprias não podem ser diretamente aplicadas,
requerendo modi�cações para resolução das mesmas.
Vamos considerar os casos em que:
i) A integral a ser estimada é do tipo
∫ b
a
f(x)dx, onde o integrando não está
de�nido no ponto extremo x = b, mas é bem de�nida em qualquer intervalo
[a, b− �], com 0 < � < b− a. Estamos então supondo que a integral
lim
�→0
∫ b−�
a
f(x)dx, (8.41)
existe. Neste caso, denotamos (8.41) por
∫ b
a
f(x)dx e dizemos que a integral
converge. Um exemplo de integração com singularidade é
∫ 1
0
1√
x
dx = 2. Já
a integral
∫ 1
0
1
x
dx não converge para um valor �nito.
ii) A integral a ser estimada é do tipo
∫∞
a
f(x)dx, com o integrando está de�nido
sobre qualquer intervalo �nito [a, b] e
lim
b→∞
∫ b
a
f(x)dx, (8.42)
existe. Neste caso, denotamos (8.42) por
∫∞
a
f(x)dx e dizemos que a integral
converge. Um exemplo de uma integral com limite in�nito é
∫∞
1
1
x3
dx = 1
2
.
Uma maneira simples e algumas vezes útil para a resolução de ambos os casos
é fazer uma mudança apropriada de variável de modo a transformar a integral
imprópria em uma integral própria que possa ser resolvida por uma técnica nu-
mérica. Por exemplo, a integral imprópria
180 cálculo numérico
∫ 1
0
sen x√
1− xdx, (8.43)
pode ser transformada considerando-se a mudança de variável u =
√
1− x, com
du = − 1
2u
dx⇒ dx = −2du. Logo, a integral (8.43) torna-se∫ 1
0
sen x√
1− xdx = 2
∫ 1
0
sen (1− u2)du, (8.44)
que pode ser agora resolvida usando quadratura Gaussiana, por exemplo.
8.5 Integrais múltiplas
Nas seções anteriores vimos algumas técnicas de integração numérica, as quais
foram aplicadas a integrais simples de funções de uma variável. Nesta seção
veremos como é possível estender tais técnicas para o cálculo numérico de integrais
múltiplas , isto é, integrais de funções em duas ou três variáveis.
Consideremos inicialmente a integral dupla dada por,
I =
∫ ∫
R
f(x, y) dA, (8.45)
onde R = {(x, y); a ≤ x ≤ b, c ≤ y ≤ d}, com a, b, c e d constantes, de�nindo
uma região retangular no plano xy e dA é o elemento de área.
8.5.1 Aplicando a primeira regra de Simpson composta
Vamos utilizar a primeira regra de Simpson composta para ilustrar como po-
demos aproximar o valor da integral dupla (8.45). Para isso, vamos dividir a
região R em pequenos retângulos particionando o intervalo [a, b] em um número
n de partes iguais e de comprimento h, e o intervalo [c, d] em um número m de
partes iguais e de comprimento l, da forma:
b− a
n
= h,
d− c
m
= l. (8.46)
De acordo com a primeira regra de Simpson, os valores de n e m devem ser
par para podermos gerar um número par de subintervalos. Desta forma geramos
um conjunto de pontos x0, x1, . . . , xn e y0, y1, . . . , ym. Escrevendo a integral (8.45)
na sua forma iterada, temos:
I =
∫ ∫
R
f(x, y) dA =
∫ b
a
(∫ d
c
f(x, y) dy
)
dx. (8.47)
métodos de integração numérica 181
equation
Podemos considerar a integral na variável y e resolvê-la utilizando a primeira
regra de Simpson composta dada em (8.14). Fazendo yj = c + j l com j =
0, 1, . . . ,m, onde l é o tamanho do passo na direção y e considerando x constante,
temos:
∫ d
c
f(x, y) dy =
l
3
f(x, y0) + 2m/2−1∑
j=1
f(x, y2j) + 4
m/2∑
j=1
f(x, y2j−1) + f(x, ym)

+ET (f, l), (8.48)
com erro de truncamento ET (f, l) dado por,
ET = −(d− c)l
4
180
∂4f(x, µ)
∂y4
, c < µ < d. (8.49)
Agora, substituindo a expressão (8.48) na integral (8.47), temos:
I =
∫ b
a
 l
3
f(x, y0) + 2m/2−1∑
j=1
f(x, y2j)
+ 4
m/2∑
j=1
f(x, y2j−1) + f(x, ym)
+ ET (f, l)
 dx, (8.50)
resultando em
I =
l
3
∫ b
a
f(x, y0)dx+ 2
m/2−1∑
j=1
∫ b
a
f(x, y2j)dx+ 4
m/2∑
j=1
∫ b
a
f(x, y2j−1)dx
+
∫ b
a
f(x, ym)dx
]
− (d− c)l
4
180
∫ b
a
∂4f(x, µ)
∂y4
dx. (8.51)
Resolvendo cada uma das integrais da expressão (8.51) usando a primeira
regra de Simpson composta, considerando agora xi = a + ih, com i = 0, 1, . . . , n
e onde h é o tamanho do passo, teremos para cada j,
182 cálculo numérico
∫ b
a
f(x, yj)dx =
h
3
f(x0, yj) + 2 n/2−1∑
i=1
f(x2i, yj) + 4
n/2∑
i=1
f(x2i−1, yj) + f(xn, yj)

−(b− a)h
4
180
∂4f(λj, yj)
∂x4
, a < λj < b. (8.52)
Portanto, a aproximação da integral dupla iterada resulta em
∫ b
a
∫ d
c
f(x, y)dy dx ≈ hl
9

f(x0, y0) + 2 n/2−1∑
i=1
f(x2i, y0)
+ 4
n/2∑
i=1
f(x2i−1, y0) + f(xn, y0)

+2
m/2−1∑
j=1
f(x0, y2j) + 2
m/2−1∑
j=1
n/2−1∑
i=1
f(x2i, y2j)
+ 4
m/2−1∑
j=1
n/2∑
i=1
f(x2i−1, y2j) +
m/2−1∑
j=1
f(xn, y2j)

+4
m/2∑
j=1
f(x0, y2j−1) + 2
m/2∑
j=1
n/2−1∑
i=1
f(x2i, y2j−1)
+ 4
m/2∑
j=1
n/2∑
i=1
f(x2i−1, y2j−1) +
m/2∑
j=1
f(xn, y2j−1)

+
f(x0, ym) + 2 n/2−1∑
j=1
f(x2i, ym)
+ 4
n/2∑
i=1
f(x2i−1, ym) + f(xn, ym)
, (8.53)
com erro de truncamento dado, após alguns cálculos, por
métodos de integração numérica 183
ET = −(d− c)(b− a)
180
[
h4
∂4f(λ, µ)
∂x4
+ l4
∂4f(λ˜, µ˜)
∂y4
]
, (8.54)
with λ, µ, λ˜, µ˜ values in the region R.
Exemplo 8.3 Seja a função f(x, y) = exy com 0 ≤ x ≤ 1 e 0 ≤ y ≤ 1. Deter-
mine a integral dupla iterada utilizando a primeira regra de Simpson composta
com n = 4 e m = 2.
Solução: Como n = 4 temos h = 1−0
4
= 0, 25, e para m = 2 temos l =
1−0
2
= 0, 5. Assim, estamos dividindo o intervalo na direção x em quatro partes
iguais e na direção y em duas partes iguais, gerando os pontos {x0, x1, x2, x3, x4}
e {y0, y1, y2}. A integral a ser resolvida é então:
I =
∫ 1
0
∫ 1
0
ex ydy dx
Os valores da função em cada ponto (xi, yj), i = 0, . . . , 4, y = 0, 1, 2 são
obtidos tomando f(xi, yj) = e
xiyj .
De acordo com a equação (8.53), temos:
184 cálculo numérico
∫ 1
0
∫ 1
0
exiyjdy dx ≈ 0, 25 · 0, 5
9
{[
f(x0, y0) + 2
1∑
i=1
f(x2i, y0)
+ 4
2∑
i=1
f(x2i−1, y0) + f(x4, y0)
]
+2
[
0∑
j=1
f(x0, y2j) + 2
0∑
j=1
1∑
i=1
f(x2i, y2j)
+ 4
0∑
j=1
2∑
i=1
f(x2i−1, y2j) +
0∑
j=1
f(xn, y2j)
]
+4
[
1∑
j=1
f(x0, y2j−1) + 2
1∑
j=1
1∑
i=1
f(x2i, y2j−1)
+ 4
1∑
j=1
2∑
i=1
f(x2i−1, y2j−1) +
1∑
j=1
f(xn, y2j−1)
]
+
[
f(x0, ym) + 2
1∑
i=1
f(x2i, ym)
+ 4
2∑
i=1
f(x2i−1, ym) + f(xn, ym)
]}
.
Como temos apenas a aplicação da primeira regra de Simpson simples na dire-
ção y, pois m = 2, os termos com
∑0
j=1 não se aplicam, devendo ser considerados
iguais a zero na expressão acima. Portanto, calculando cada um dos termos da
expressão temos:
métodos de integração numérica 185
f(x0, y0) = e
x0·y0 = e0 = 1,
1∑
i=1
f(x2i, y0) = f(x2, y0) = e
0 = 1,
2∑
i=1
f(x2i−1, y0) = f(x1, y0) + f(x3, y0) = e0 + e0 = 2,
f(x4, y0) = e
0 = 1,
1∑
j=1
f(x0, y2j−1) = f(x0, y1) = e0 = 1,
1∑
j=1
1∑
i=1
f(x2i, y2j−1) = f(x2, y1) = e0,5·0,5 = 1, 284025416,
1∑
j=1
2∑
i=1
f(x2i−1, y2j−1) =
1∑
j=1
[f(x1, y2j−1) + f(x3, y2j−1)] = f(x1, y1) + f(x3, y1)
= e0,25·0,5 + e0,75·0,5 = 2, 588139867,
1∑
j=1
f(x4, y2j−1) = f(x4, y1) = e0,5 = 1, 648721270,
f(x0, y2) = e
0 = 1,
1∑
i=1
f(x2i, y2) = f(x2, y2) = e
0,5·1.0 = 1, 648721270,
2∑
i=1
f(x2i−1, y2) = f(x1, y2) + f(x3, y2) = e0,25·1,0 + e0,75·1,0
= 1, 284025416 + 2, 117000016 = 3, 401025432,
f(x4, y2) = e
1,0 = 2, 718281828.
Substituindo agora os valores acima na expressão (8.55), obtemos:
I =
∫ 1
0
∫ 1
0
ex ydy dx ≈ 1, 318016005.
Exercício 8.8 Resolva a intergal
∫ 1
0
∫ 2
0
cos (x+ y)dy dx, usando a primeira regra
de Simpson composta com n = 4 e m = 4.
Uma extensão da aplicação da primeira regra de Simpson composta pode ser
efetuada para obtenção da integral tripla iterada, utilizando para isso o mesmo
procedimento adotado.
186 cálculo numérico
∫ b
a
∫ d
c
∫ f
e
f(x, y, z)dz dy dx, (8.55)
Observe que neste caso, teremos ao �nal uma expressão formada por 64 ter-
mos. Da mesma forma, podemos também obter a aproximação das integrais
triplas iteradas utilizando a segunda regra de Simpson composta. As deduções
destas aproximações são deixadas como exercícios para o leitor.
8.5.2 Aplicando a quadratura Gaussiana
A resolução da integral dupla iterada pode ser efetuda utilizando-se também a
técnica da Quadratura Gaussiana, vista na Seção 8.3. A metodologia de aplicação
da quadratura Gaussiana é semelhante ao que foi realizado com a utilização da
primeira regra de Simpson composta.
Vejamos a aplicação para o caso da quadratura Gaussiana com n = 1, isto é,
utilizaremos o resultado apresentado na equação (8.30). Seja
I =
∫ b
a
∫ d
c
f(x, y)dy dx. (8.56)
Considerando, inicialmente, a integral na variável y, mantendo x constante,
temos que resolver, ∫ d
c
f(x, y)dy. (8.57)
Fazendo a mudança de variável
y =
1
2
(d− c)v + 1
2
(d+ c), (8.58)
temos: ∫ d
c
f(x, y)dy =
∫ 1
−1
1
2
(d− c) f [x, 1
2
(d− c)v + 1
2
(d+ c)] dv. (8.59)
De�nindo a função,
F (x, v) =
1
2
(d− c) f [x, 1
2
(d− c)v + 1
2
(d+ c)], (8.60)
e aplicando a quadratura para n = 1, obtemos:∫ d
c
f(x, y)dy = F (x, v0) + F (x, v1), (8.61)
métodos de integração numérica 187
onde usamos A0 = A1 = 1 e consideramos v0 = −v1 =
√
1/3, provenientes da
Tabela 8.1.
Agora a integral (8.56), torna-se
I =
∫ b
a
[F (x, v0) + F (x, v1)]dx. (8.62)
Considerando outra mudança de variável da forma
x =
1
2
(b− a)u+ 1
2
(b+ a), (8.63)
temos:
I =
∫ b
a
F (x, v0) dx+
∫ b
a
F (x, v1) dx
=
∫ 1
−1
1
2
(b− a)F [1
2
(b− a)u+ 1
2
(b+ a), v0] du
+
∫ 1
−1
1
2
(b− a)F [1
2
(b− a)u+ 1
2
(b+ a), v1] du. (8.64)
De�nindo-se,
G(u, v) =
1
2
(b− a)F [1
2
(b− a)u+ 1
2
(b+ a), v], (8.65)
a integral torna-se:
I =
∫ 1
−1
G(u, v0)du+
∫ 1
−1
G(u, v1)du, (8.66)
que utilizando a Tabela 8.1 para a quadratura Gaussiana com n = 1 na variável
u, obtemos:
188 cálculo numérico
I = G(u0, v0) +G(u1, v0) +G(u0, v1) +G(u1, v1)
=
1
4
(b− a)(d− c)f [1
2
(b− a)u0 + 1
2
(b+ a),
1
2
(d− c)v0 + 1
2
(d+ c)]
+
1
4
(b− a)(d− c)f [1
2
(b− a)u1 + 1
2
(b+ a),
1
2
(d− c)v0 + 1
2
(d+ c)]
+
1
4
(b− a)(d− c)f [1
2
(b− a)u0 + 1
2
(b+ a),
1
2
(d− c)v1 + 1
2
(d+ c)]
+
1
4
(b− a)(d− c)f [1
2
(b− a)u1 + 1
2
(b+ a),
1
2
(d− c)v1 + 1
2
(d+ c)].(8.67)
Substituindo na expressão (8.67) os valores de u0 = −u1 =
√
1/3, e v0 =
−v1 =
√
1/3, obtemos �nalmente a expressão da integral dupla iterada por meio
da Quadratura Gaussiana de ordem n = 1 para ambas as variáveis.
Exemplo 8.4 Seja a função f(x, y) = exy com 0 ≤ x ≤ 1 e 0 ≤ y ≤ 1. De-
termine a integral dupla iterada utilizando a Quadratura Gaussiana de ordem
n = 1.
Solução: Como n = 1 utilizaremos diretamente o resultado dado em (8.67).
Temos que, a = 0, b = 1, c = 0, d = 1 e f(x, y) = ex y. Assim,
G(u0, v0) =
1
4
f [
1
2
√
1/3 +
1
2
,
1
2
√
1/3 +
1
2
]
=
1
4
f [
√
1/12 + 1/2,
√
1/12 + 1/2]
=
1
4
e(
√
1/12+1/2)2 = 0, 4656663477,
G(u0, v1) = 0, 2614175968
G(u1, v0) = 0, 2614175968
G(u1, v1) = 0, 2614175968,
portanto, a integral resulta em
I =
∫ 1
0
∫ 1
0
ex ydy dx ≈ 1, 317764150.
métodos de integração numérica 189
Exercício 8.9 Resolva o exercício 8.8 usando a técnica da quadratura Gaussiana
com n = 1.
Exercício 8.10 Implemente computacionalmente a técnica da quadratura Gaus-
siana para n = 1.
Um extensão da quadratura Gaussiana para ordens superiores (n = 2, 3, · · · )
pode ser facilmente conduzida seguindo-se o mesmo procedimento realizado para
a obtenção da integral dada em (8.67). No entanto, o leitor deve estar atento à
ordem da expansão que foi escolhida, uma vez que os coe�cientes da expansão são
distintos e estão dados na Tabela 8.1. Para a integral dupla iterada, a quadratura
Gaussiana com n = 2 gera, ao �nal, uma expressão com 9 termos. O mesmo
procedimento pode ser aplicado para obtenção da aproximação para a integral
tripla iterada, que para n = 1 gera, ao �nal, 8 termos. Deixamos para o leitor a
tarefa de deduzir as expressões da quadratura Gaussiana para estes casos.
8.6 Exercícios propostos
1. Determine o valor da integral usando a regra dos trapézios simples e, em
seguida, a regra composta dos trapézios com h = 1.
I =
∫ 4
0
dx
1 + 3xex2
.
2. Qual o valor da integral
∫ 1
0
4
x2+1
dx, usando a primeira regra de Simpson?
Utilize o Derive para determinar o valor exato da integral e, em seguida,
compare ao valorobtido com a regra de Simpson.
3. Mostre que a primeira regra de Simpson é exata para polinômios cúbicos
no intervalo [−h, h].
4. O período de um pêndulo largado do repouso com um ângulo θ com respeito
à vertical é dado pela relação: P = 4
√
L
g
I, onde L é o comprimento do
pêndulo, g é a constante gravitacional, e I é a integral
I =
∫ pi/2
0
1√
1− a2sen 2(x)dx,
com a = sen (θ/2)
2
. Determine o valor da integral pela segunda regra de
Simpson.
190 cálculo numérico
5. Utilize a implementação da quadratura Gaussiana desenvolvida no exercício
8.7 para determinar as integrais dos exercícios 1 e 2, tomando dois e três
pontos (k = 2, 3). Em seguida, resolva a integral I do problema do pêndulo
acima para 5 pontos (k = 5).
6. Resolva as integrais utilizando a técnica da primeira regra de Simpson com-
posta com n = m = 4 e a técnica da quadratura Gaussiana com n = 1.
∫ 2.0
0
∫ 1.2
0
e2x+y
2
dy dx.
Capítulo 9
RESOLUÇÃO NUMÉRICA DE
EDO'S
Equações diferenciais surgem em muitas aplicações, nas mais diversas áreas
do conhecimento. Em particular, na Física, nas Engenharias, na Biomatemática
e na Economia, as equações diferenciais desempenham um papel fundamental na
formulação dos modelos.
Uma equação diferencial é uma equação que envolve uma função desconhecida
e suas derivadas. A equação diferencial é ordinária quando envolve apenas deriva-
das ordinárias da função. Quando derivadas parciais estão presentes na equação,
estas são chamadas de equações diferenciais parciais. A ordem de uma equação
diferencial é de�nida pela ordem mais elevada da derivada que está presente na
equação. Assim, a equação diferencial é de primeira ordem se existe apenas
derivada primeira da função na equação, e assim sucessivamente.
Neste capítulo, vamos estudar alguns métodos de resolução numérica de equa-
ções diferenciais ordinárias de primeira ordem e, posteriormente, de ordens supe-
riores.
Seja f(x, y) uma função real nas variáveis x e y.
De�nição 9.1 Uma equação diferencial ordinária de primeira ordem é dada por
y′ = f(x, y), (9.1)
onde y′ = dy
dx
e y = y(x) é uma função desconhecida.
Em geral, a equação (9.1) possui in�nitas soluções.
Exemplo 9.1 Seja a equação diferencial de primeira ordem y′ = y. Essa equa-
ção é satisfeita para y(x) = c ex, onde c é uma constante arbitrária. Temos,
portanto, uma família de soluções para a equação.
192 cálculo numérico
De�nição 9.2 Um problema do valor inicial é formado por uma equação dife-
rencial e uma condição inicial, de tal forma que:
y′ = f(x, y), y(x0) = y0. (9.2)
A solução única do problema do valor inicial é garantida pelo teorema de
Lipschitz.
Teorema 9.1 (Teorema de Lipschitz) Seja uma função f(x, y) de�nida e con-
tínua em um intervalo a ≤ x ≤ b e −∞ < y <∞, com a e b valores �nitos. Se
a função f satisfaz a condição de Lipschitz, de existir uma constante L tal que
|f(x, y)− f(x, y∗)| ≤ L|y − y∗|, ∀x ∈ [a, b], ∀y, y∗,
então para qualquer valor inicial y0 existe uma única solução do problema do
valor inicial
y′ = f(x, y), y(a) = y0.
Em outras palavras, o teorema de Lipschitz garante que, para todos os pontos
(x0, y0) com x0 ∈ [a, b], existe uma única função y(x) tal que a mesma satizfaz a
equação diferencial y′ = f(x, y).
Exemplo 9.2 Seja a equação diferencial do exemplo (9.1). Vemos que há in�ni-
tas soluções, pois c é uma constante arbitrária. No entanto, o problema do valor
inicial com a condição y(0) = 1 conduz a uma única solução dada por y(x) = ex.
9.1 Resolução do problema do valor inicial
O teorema de Lipschitz garante a existência e a unicidade da solução do pro-
blema do valor inicial, no entanto, não garante que teremos uma solução explícita
de forma fechada da equação. Assim, em muitas ocasiões a solução do problema
do valor inicial deve ser obtida de forma numérica.
Nesta seção, vamos estudar algumas técnicas que podem ser aplicadas para
resolver o problema do valor inicial de primeira ordem.
9.1.1 Método da série de Taylor
A série de Taylor de uma função f(x) pode ser empregada para determinar
de forma aproximada a solução de um problema do valor inicial dado por (9.2).
Para simpli�car a notação, vamos adotar aqui que a derivada parcial com res-
peito a uma variável é indicada pela letra correspondente à variável em subscrito.
Isto é, se temos a função f(x, y(x)), denotamos:
resolução numérica de edo's 193
fx(x, y) =
∂f(x, y)
∂x
, fy(x, y) =
∂f(x, y)
∂y
, fxy(x, y) =
∂2f(x, y)
∂y∂x
,
e assim sucessivamente.
Se considerarmos a equação diferencial em (9.2) e tomarmos as derivadas
sucessivas da expressão, teremos:
y′(x) = f(x, y(x)),
y′′(x) = fx(x, y(x)) + fy(x, y(x)) y′(x),
y′′′(x) = fxx(x, y(x)) + 2fxy(x, y(x)) y′(x), (9.3)
+ fyy(x, y(x)) y
′2(x) + fy(x, y(x)) y′′(x),
.
.
.
.
.
.
Calculando o valor dos termos nas equações (9.3) para x = x0 e y = y0,
podemos obter uma aproximação da função y(x) por meio da série de Taylor da
forma:
y(x) ≈ y(x0) + y
′(x0)
1!
(x− x0) + · · ·+ y
(k)(x0)
k!
(x− x0)k. (9.4)
Note que o erro de truncamento associado à equação (9.4) é da ordem de
O ((x− x0)k+1) . Em outras palavras, se tivermos a diferença |x − x0| muito
grande, o erro será também muito grande, e assim num intervalo [x0, b] de compri-
mento moderado podemos ter um erro relativamente grande, tornando a aplicação
do método insatisfatória.
Exemplo 9.3 Seja o problema do valor inicial
y′(x) = x2 + y2, y(0) = 0.
Usando o método da série de Taylor até a quinta ordem, temos que:
f(x, y(x)) = x2 + y2,
y′(0) = 02 + y(0)2 = 0,
y′′(x) = 2x + 2yy′ ⇒ y′′(0) = 2 · 0 + 2 · y(0) · y′(0) = 0,
y′′′(x) = 2 + 2y′2 + 2yy′′ ⇒ y′′′(0) = 2,
y(4)(x) = 6y′y′′ + 2yy(3) ⇒ y(4)(0) = 0,
y(5)(x) = 6y′′2 + 8y′y(3) + 2yy(4) ⇒ y(5)(0) = 0.
Substituindo os valores acima na equação (9.4), obtemos a solução aproximada
194 cálculo numérico
y(x) ≈ 2x
3
3!
=
x3
3
.
Vários sistemas computacionais dispõem de facilidades para resolução de equa-
ções diferenciais ordinárias. Hoje, temos alguns sistemas de computação algébrica
com enorme capacidade de resolução de equações diferenciais de forma puramente
simbólica, como por exemplo o maple e o mathematica.
Exercício 9.1 Implemente computacionalmente o método da série de Taylor.
Exercício 9.2 Veri�que que o problema do valor inicial y′ = x3 + y2, y(0) = 0
não possui solução analítica. Dessa forma, a solução aproximada numericamente
é importante. Qual a solução pelo método da série de Taylor?
Para contornar o problema do erro de truncamento citado, o método da série
de Taylor pode ser modi�cado de tal forma que sua acurácia seja melhorada.
Para isso, considera-se que a expansão da série é feita ao longo de uma seqüência
de valores de x, de tal forma que |xi+1 − xi| seja um valor pequeno.
Se de�nirmos o comprimento do intervalo por h = (b−x0)
n
, onde n > 1 é um
inteiro, e [x0, b] é o intervalo-solução, com base nessa de�nição, podemos obter a
seqüência de pontos
xi = x0 + ih, i = 0, · · · , n.
Portanto, entre os pontos xi e xi+1, a solução pode ser aproximada pela série
y(x) ≈ y(xi) + y
′(xi)
1!
(x− xi) + · · ·+ y
(k)(xi)
k!
(x− xi)k. (9.5)
A aproximação nos dá um método para determinarmos a solução aproximada
para o problema do valor inicial caminhando ao longo do eixo x com passos h,
partindo-se do ponto inicial x0. Assim, podemos ver que no intervalo [x0, x1] a
série de Taylor com i = 0 nos dá uma aproximação de y(x). Em particular, se
desejamos o valor para x = x1, obtemos:
y(x1) = y1 ≈ y0 + y
′(x0)
1!
h+ · · ·+ y
(k)(x0)
k!
hk.
Esse procedimento estabelece um algoritmo para obtermos os valores suces-
sivos de y(x) nos pontos da seqüência de tal forma que, para um valor y(xi+1),
temos:
yi+1 ≈ yi + y
′
i1!
h+ · · ·+ y
(k)
i
k!
hk, (9.6)
onde as derivadas são obtidas a partir da equação (9.3) avaliadas para os pontos
x = xi, y = yi.
resolução numérica de edo's 195
Exercício 9.3 Implemente computacionalmente a equação (9.6) para k = 3 ite-
rações.
9.1.2 Método de Euler
O método de Euler é bastante intuitivo e parte da idéia de que, se não é
possível determinarmos a solução y(x) para todos os valores de x ∈ [x0, b], en-
tão procuramos calcular aproximações yi da função y(x) para uma seqüência de
pontos xi, i = 1, . . . , n no intervalo.
O método assume que o espaçamento entre os pontos xi é mantido constante.
Assim, podemos escrever:
xi = x0 + ih, i = 1, . . . , n,
onde o valor h é denominado tamanho do passo. Observe que o tamanho do passo
é determinado da forma
h =
(b− a)
n
,
com n ≥ 1 um valor inteiro.
Se considerarmos a série de Taylor dada em (9.6), para o valor k = 1, temos
yi+1 = yi + hy
′
i.
Essa equação pode ser reescrita da forma
yi+1 = yi + hf(xi, yi), (9.7)
onde usamos y′i = f(xi, yi). A equação (9.7) é recursiva, podendo ser usada para
estimarmos y1, y2, . . ., partindo-se da condição inicial y0 = y(x0).
A fórmula recursiva (9.7) é chamada de método de Euler para solução do pro-
blema do valor inicial. Observe que, na recursão de Euler, não há necessidade de
fazermos qualquer derivação.
Embora o método de Euler seja bastante simples, o mesmo é pouco utilizado
para a solução numérica do problema do valor inicial, já que há outros métodos,
como veremos adiante, que possuem uma melhor e�ciência e acurácia. Como
tudo tem custos e benefícios, os outros métodos são mais complicados, porém
computacionalmente melhores.
Exercício 9.4 Implemente computacionalmente o método de Euler. A seguir,
determine a solução do problema do valor inicial y′ = x2 + y2, y(0) = 0, para o
intervalo [0, 1] com passo h = 0, 1.
196 cálculo numérico
Exemplo 9.4 O problema do valor inicial dado por y′ = Ry, y(0) = y0 no
intervalo [0, b] e com R uma constante é conhecido como modelo do juro composto
usado para determinar a correção de uma poupança, por exemplo, no período do
intervalo dado. Usando o método de Euler, determine o valor do investimento
inicial de cem reais, aplicado pelo período de cinco anos à taxa de 12% ao ano.
Solução: O problema é posto da forma:
y′ = 0, 12y; I = [0, 5]; y(0) = 100.
Assim, temos:
y1 = 100 + 1 · (0, 12 · 100) = 112.
y2 = 112 + 1 · (0, 12 · 112) = 125, 44.
y3 = 125, 44 + 1 · (0, 12 · 125, 44) = 140, 4928.
y4 = 140, 4928 + 1 · (0, 12 · 140, 4928) = 157, 3519.
y5 = 157, 3519 + 1 · (0, 12 · 157, 3519) = 176, 2341683.
Ao �nal do quinto ano a poupança terá um saldo de R$176,2341683. Porém,
como em moeda corrente temos apenas os valores dados com duas casas deci-
mais, referentes aos centavos, podemos perguntar o que acontece com o resíduo
se o cliente só recebe 176 reais e 23 centavos? Para uma economia em escala, a
soma desses valores residuais podem representar um grande lucro para o agente
�nanceiro.
Agora, podemos perguntar o que acontece se a correção for feita tomando-se
o juro composto mensalmente (passo mensal)? Fazendo-se os cálculos, obtemos
que ao �nal do quinto ano a poupança terá um saldo de R$181,6696698.
E se a correção for composta diariamente, qual seria o valor ao �nal dos cinco
anos? Executando-se os cálculos, obtemos o saldo da poupança em R$182,1939132.
Veja que neste último caso foram necessárias 1.825 iterações para obter-se o resul-
tado. Observe que o cliente teria mais vantagem se os bancos �zessem o cálculo
com a correção diária, mas isso nem sempre acontece.
A interpretação geométrica do método de Euler é ilustrada na Figura 9.1.
Vemos que a aproximação se dá por poligonais com relação à curva-solução do
problema. Cada poligonal é formada pela reta tangente ao ponto xi da seqüência
ao longo da curva-solução.
resolução numérica de edo's 197
Figura 9.1: Aproximação pelo método de Euler.
Erros no método de Euler
De forma geral, os erros de truncamento e arredondamento são os que mais
afetam os métodos numéricos de resolução de equações diferenciais. Os erros de
truncamento podem ser caracterizados como locais ou globais, de acordo com sua
forma.
Os erros locais têm suas origens na diferença causada entre a reta tangente à
curva-solução y(x) passando pelo ponto (xn, yn), e o valor calculado pela aproxi-
mação yn+1 no ponto xn+1. Olhando a ilustração da Figura 9.1, vemos que o erro
local acontece a cada passo.
De�nição 9.3 O valor do erro local pode ser determinado por:
yn+1 − y(xn + h) = −h
2
2
y′′(λ),
onde λ ∈ [xn, xn + h].
O erro de truncamento local é da ordem de O(h2).
O erro de truncamento global mede o desvio de um ponto ao longo da curva-
solução com relação a seu correspondente na curva poligonal gerada pela solução
aproximada.
De�nição 9.4 O erro de truncamento global no ponto xn+1 é de�nido como a
diferença
yn+1 − y(xn+1),
onde y(x) representa a solução do problema do valor inicial dado.
198 cálculo numérico
A ordem do erro de truncamento global é O(h). Em geral, as ordens dos erros
de truncamento local e global de métodos numéricos são dadas por O(hk+1) e
O(hk), respectivamente.
Exemplo 9.5 Seja o problema do valor inicial y′(x) = x y, y(0) = 1. A solução
analítica desse problema é dada por y(x) = e
x2
2
. Pelo método de Euler, a solução
deste problema até ordem 4 com o passo h = 0, 1 é y4 = 1, 061106. O erro de
truncamento global é dado por EG = |1, 061106−1, 083287067| = 0, 02218106699.
O método de Euler é a aproximação linear do método da série de Taylor.
As principais vantagens do método de Euler com relação ao método da série de
Taylor para ordens mais elevadas são: primeiro, não há necessidade de cálculos
de derivadas; segundo, é um método muito fácil de ser implementado computa-
cionalmente.
9.1.3 Métodos de Runge-Kutta
Vimos que o método da série de Taylor requer o cálculo de derivadas de
ordens elevadas da função f(x, y), o que torna o método complicado. No entanto,
é possível utilizarmos ainda esse método, mas sem o contratempo do cálculo das
derivadas.
Método de Heun
O princípio dessa nova técnica está no método de Euler. Nesse método, cami-
nhamos ao longo da direção da reta tangente à curva no ponto (xn, yn), durante
todo o intervalo de comprimento igual ao passo, enquanto a curva-solução começa
a desviar-se. Se, ao invés de considerarmos a derivada progressiva, tomarmos a
média das direções tangentes para os pontos (xn, yn) e (xn+1, y
(e)
n+1), onde o (e)
denota o resultado determinado para x = xn+1 pelo método de Euler, podemos
melhorar a aproximação.
A inclinação das duas retas tangentes é determinada por:
y′(xn, yn) = f(xn, yn), y′(xn+1, y
(e)
n+1) = f(xn+1, y
(e)
n+1).
Se de�nirmos os termos
k
(n)
1 = hf(xn, yn),
k
(n)
2 = hf(xn+1, y
(e)
n+1) = hf(xn + h, yn + k1),
então, podemos dar um passo h, a partir de (xn, yn) na direção da média das duas
retas tangentes, tomando
resolução numérica de edo's 199
yn+1 = yn +
1
2
(k
(n)
1 + k
(n)
2 ). (9.8)
Observe que, pelo método de Euler, temos y
(e)
n+1 = yn + hf(xn, yn).
A aproximação do problema do valor inicial via a fórmula (9.8) é conhecida
como método de Heun.
Exemplo 9.6 Seja o problema do valor inicial y′ = x−y
2
no intervalo [0, 3] e
y(0) = 1. Determine o valor da solução para um passo h = 0, 25 com duas
iterações.
Solução: temos para a primeira iteração:
k
(0)
1 = h
x0 − y0
2
= −0, 25
2
= −0, 125,
k
(0)
2 = h
(x0 + h)− (y0 + k(0)1 )
2
= −0, 078125,
y1 = y0 + 0, 5(k
(0)
1 + k
(0)
2 ) = 0, 8984375,
para a segunda iteração:
k
(1)
1 = h
x1 − y1
2
= −0, 0810546875,
k
(1)
2 = h
(x1 + h)− (y1 + k(1)1 )
2
= −0, 03967285156,
y2 = y1 + 0,5(k
(1)
1 + k
(1)
2 ) = 0, 8380737304.
O valor y2 corresponde a inclinação da tangente em (0, 5; y(0, 5)). Note que,
determinando a solução analítica deste problema do valor inicial e em seguida
calculando o valor de y(x) em x = 0, 5 temos y(0, 5) = 0, 8380737304.
O método de Heun possui um erro de truncamento global da ordem de O(h2).
Logo, podemos veri�car que, se diminuirmos o tamanho do passo de h para h/2,
o erro será reduzido de um fator 1/4, e assim sucessivamente.
Método clássico de Runge-Kutta
Os métodos de Heun e de Euler, vistos anteriormente, são conhecimdos como
fazendo parte dos métodos de Runge-Kutta. O método de Euler possui um erro
de truncamento da ordem O(h), enquanto o método de Heun possui um erro de
truncamento da ordem de O(h2), por isso estes são comumente conhecidos como
métodos de runge-Kutta de primeira e segunda ordens, respectivamente. Há
também o método de Runge-Kutta de terceira ordem, cujo erro de truncamento
é de O(h3). A equação de iteração deste método é dada por:
200 cálculo numérico
k
(n)
1 = hf(xn, yn),
k
(n)
2 = hf(xn +
h
2
, yn +
k
(n)
1
2
),
k
(n)
3 = hf(xn +
3h
4
, yn +
3k
(n)
2
4
),
yn+1 = yn +
1
9
(2k
(n)
1 + 3k
(n)
2 + 4k
(n)
3 ). (9.9)
Exercício 9.5 Resolva o Exemplo 9.6 utilizando o método de Runge-Kutta de
terceira ordem.
O método clássico de Runge-Kutta permite reduzir o erro global de trunca-
mento para O(h4). Da mesma forma que os demais, o intervalo [x0, b] é dividido
em n partes de comprimento h. Se calcularmos agora a função f(x, y) quatro
vezes em vez de apenas duas, como no método de Heun, ou três como o método
de terceira ordem, teremos o método clássico de Runge-Kutta dado a seguir:
k
(n)
1 = hf(xn, yn),
k
(n)
2 = hf(xn +
h
2
, yn +
k
(n)
1
2
),
k
(n)
3 = hf(xn +
h
2
, yn +
k
(n)
2
2
), (9.10)
k
(n)
4 = hf(xn + h, yn + k
(n)
3 ),
yn+1 = yn +
1
6
(k
(n)
1 + 2k
(n)
2 + 2k
(n)
3 + k
(n)
4 ).
Em virtude da ordem do erro de truncamento deste método ser O(h4), o
método de Runge-Kutta dado pelas equações em (9.10) é também conhecido
como Runge-Kutta de quarta ordem. Todos esses métodos operam com base
na informação de um passo apenas, ou seja, para computar (x1, y1), precisamos
apenas do ponto inicial (x0, y0), e assim sucessivamente. Por essa razão, todos
os métodos estudados até o momento pertencem à classe dos métodos de passo
simples.
Após a obtenção de certo número de pontos, por meio dos métodos de passo
simples, é natural que os valores já determinados possam ser utilizados para obter
os valores dos pontos subseqüentes. Os métodos que se baseiam nessa técnica são
conhecidos como métodos de passos múltiplos.
Uma vantagem dos métodos de passo simples é que estes são auto-inicializáveis,
já que a condição inicial é um dado do problema do valor inicial. Ao contrário,
resolução numérica de edo's 201
os métodos de múltiplos passos, embora mais re�nados, sofrem a desvantagem de
não serem auto-inicializáveis, pois se torna necessário informar a priori os valores
em mais pontos.
O desenvolvimento mais detalhado do método de Runge-Kutta e outros melho-
ramentos são deixamos como tarefa de pesquisa para o leitor, que pode encontrá-
los em alguns textos citados na lista bibliográ�ca.
Exemplo 9.7 Resolva o PVI, y′ = xy, y(0) = 1, usando a técnica Runge-Kutta
para uma iteração considerando um passo h = 0, 4; compare o resultado obtido
com o valor exato para x = 1, 6.
Solução: Temos que f(x, y) = xy, x0 = 0, y0 = 1. Assim,
k
(0)
1 = hf(x0, y0) = h · x0 · y0 = 0, 4 · 0 · 1 = 0;
k
(0)
2 = hf(x0 + h/2, y0 + k
(0)
1 /2) = 0, 4 · (0 + 0, 4/2) · (1 + 0/2) = 0, 08;
k
(0)
3 = hf(x0 + h/2, y0 + k
(0)
2 /2) = 0, 4 · (0 + 0, 4/2) · (1 + 0, 08/2) = 0, 0832;
k
(0)
4 = hf(x0 + h, y0 + k
(0)
3 ) = 0, 4 · (0 + 0, 4) · (1 + 0, 0832) = 0, 173312
y1 = y0 +
1
6
(k
(0)
1 + 2k
(0)
2 + 2k
(0)
3 + k
(0)
4 )
= 1 +
1
6
(0 + 2 · 0, 08 + 2 · 0, 0832 + 0, 173312) = 1, 083285.
Exercício 9.6 Utilize o método clássico de Runge-Kutta para resolver o problema
do Exemplo 9.6.
9.2 Métodos de passos múltiplos
Nesta seção, apresentaremos alguns dos métodos de passos múltiplos.
9.2.1 Método trapezoidal
Seja a equação diferencial de primeira ordem dada por
y′ = f(x, y).
Se integrarmos a equação acima no intervalo [xn, xn+1], temos:∫ xn+1
xn
y′dx =
∫ xn+1
xn
f(x, y(x))dx. (9.11)
O lado esquerdo da equação anterior resulta em∫ xn+1
xn
y′dx = y(xn+1)− y(xn),
202 cálculo numérico
porém, como não conhecemos a função y(x), a integral do lado direito da equação
(9.11) não pode ser determinada diretamente.
Uma forma de resolver o problema é considerarmos o método dos trapézios
de integração númerica, e então o lado direito pode ser aproximado da forma:∫ xn+1
xn
f(x, y(x))dx ≈ h
2
[f(xn, y(xn)) + f(xn+1, y(xn+1))] .
Se substituirmos y(xn), y(xn+1) pelo valor das aproximações respectivas yn,
yn+1, obtemos o método trapezoidal para resolução do problema do valor inicial:
yn+1 = yn +
h
2
[f(xn, yn) + f(xn+1, yn+1)] . (9.12)
O erro de truncamento global do método trapezoidal é de ordem O(h2). Ob-
serve que nos métodos de Runge-Kutta, para computarmos o valor de yn+1 as
equações dependem apenas dos valores anteriores, isto é, de xn e yn. Tais métodos
são também conhecidos como métodos explícitos. No entanto, quando olhamos
para o método trapezoidal, vemos que na equação (9.12) o lado direito depende
do termo yn+1. Ou seja, o método trapezoidal é um método implícito. Quando
a função f(x, y) é linear, o método requer a resolução de uma equação linear,
porém, quando a função é não linear em y(x), o método torna-se mais complexo,
devido à necessidade de resolução de uma equação não linear. Os exemplos a
seguir ilustram esses casos.
Exemplo 9.8 Seja o problema do valor inicial y′ = xy, y(0) = 1. A função
f(x, y) = xy é linear em y(x), assim é mais fácil de resolver para obter o valor
yn+1 quando tomamos um passo no método trapezoidal. Considerando um passo
h = 0, 2, determine a aproximação para duas iterações.
Solução: Usando a equação (9.12), temos
y1 = y0 +
h
2
(x0 · y0 + x1 · y1)
= 1 +
0, 2
2
(0 · 1 + 0, 2 · y1) = 1 + 0, 02y1
⇒ y1 ≈ 1, 020408.
Exemplo 9.9 Seja o problema do valor inicial y′ = e−y, y(0) = 1. Nesse caso,
temos que a função f(x, y) = e−y é não linear em y(x), o que conduz a resolução
de uma equação não linear. Considerando o passo h = 0, 2, apresentamos abaixo
o resultado para duas iterações.
Solução: Substituindo os valores na equação (9.12), temos:
resolução numérica de edo's 203
y1 = 0, 1 e
−y1 + 1, 03678.
Usando o método de Newton para resolução de equações transcendentais, consi-
derando a variável y1, aplicando a técnica do isolamento da raiz, vemos que no
intervalo [1, 2] existe uma única raiz. Então, a solução para a equação é
y1 = 1, 07105.
Agora, considerando a nova iteração, temos:
y2 = 0, 1 e
−y2 + 1, 10531,
que, utilizando novamente o método de Newton, obtemos:
y2 = 1, 13738.
Exercício 9.7 Procure implementar computacionalmente o método trapezoidal,
buscando um mínimo de iteratividade.
O método trapezoidal pode ser re�nado à medida que consideramos melhores
aproximações das soluções das equações não lineares.
Uma alternativa para a resolução da equação não linear é utilizarmos o método
iterativo do ponto-�xo, dado por:
y
(0)
n+1 = yn + hf(xn, yn),
y
(k+1)
n+1 = yn +
h
2
(
f(xn, yn) + f(xn+1, y
(k)
n+1)
)
, k = 0, 1, 2, . . .
É importante veri�car se a aplicação do método trapezoidal garantirá conver-
gência para o tamanho de passo escolhido. Para isso, podemos mostrar que a
condição de convergência para o método do ponto-�xo é dada por:∣∣∣∣h2∂f∂y
∣∣∣∣ < 1,
em uma vizinhança do ponto (xn+1, yn+1).
Exercício 9.8 Mostre que a condição de convergência é válida para o problema
do valor inicial do exemplo 9.9.
204 cálculo numérico
9.2.2 Método de Simpson
No método trapezoidal, aproximamos a integral considerando a regra dos tra-
pézios, porém é possível considerarmos a aproximação da intergal no intervalo
[xn, xn+2]. Neste caso, utilizamos a primeira regra de Simpson simples, obtendo:
∫ xn+2
xn
y′dx =
∫ xn+2
xn
f(x, y(x))dx
yn+2 − yn = h
3
[f(xn, yn) + 4f(xn+1, yn+1) + f(xn+2, yn+2)]
yn+2 = yn +
h
3
[f(xn, yn) + 4f(xn+1, yn+1) + f(xn+2, yn+2)]. (9.13)
Observe a equação (9.13) é implícita para yn+2. Além do mais, quando não
conhecemos o valor de y1, que deve ser conhecido a priori para que se possa
resolver a equação, em geral se utiliza um método explícito, como Euler, para se
determinar y1 e então substituí-lo na equação (9.13) para obtenção de y2, e assim
obter as demais soluções para n > 0.
9.2.3 Método de Adams-Basforth-Multon
Na equação (9.11), vimos que o lado direito não pode ser determinado ex-
plicitamente. Assim, se utilizarmos polinômios interpoladores de Lagrange para
aproximar f(x, y(x)), podemos obter uma aproximação para o ponto yn+1. Tais
métodos são conhecidos como métodos de Adams-Basforth-Multon. Nesses mé-
todos, é necessário primeiramente determinar o valor numérico da integral no in-
tervalo [xn, xn+1] para o polinômio gerado pelos pontos (xn−3, yn−3), (xn−2, yn−2),
(xn−1, yn−1), (xn, yn), que denotaremos por pn+1, e em seguida utilizar esse resul-
tado para gerar o valor de yn+1 para os pontos (xn−2, yn−2), (xn−1, yn−1),
(xn, yn), (xn+1, f(xn+1, pn+1)).
Para o caso de considerarmos quatro pontos (xn−3, yn−3), (xn−2, yn−2), (xn−1,
yn−1), (xn, yn), equivalentemente a quatro passos, o método de Adams-Basforth-
Multon é dado por:
yn+1 = yn +
h
24
(fn−2 − 5fn−1 + 19fn + 9fn+1), (9.14)
onde o termo fn+1 ≡ pn+1 é computado antecipadamente pela fórmula
pn+1 = yn +
h
24
(55fn − 59fn−1 + 37fn−2 − 9fn−3). (9.15)
As fórmulas (9.15) e (9.14) são conhecidas, respectivamente, como preditor e
corretor de Adams-Basforth-Multon de quarta ordem.
resolução numérica de edo's 205
Podemos mostrar que os erros locais de truncamento da integração numérica
para os cálculos do preditor e corretor são de ordem O(h5) e, determinados por:
|y(xn+1)− pn+1| = 251
720
∣∣y(5)(λ)∣∣h5,
|y(xn+1)− yn+1| = 19
720
∣∣y(5)(λ∗)∣∣h5,
para o previsor e corretor, respectivamente, com λ, λ∗ ∈ (0, 1).
Se supusermos que o passo h é bem pequeno e que a derivada y(5) é constante
ao longo do intervalo, então podemos ver que
|y(xn+1)− yn+1| ≈ 19
270
|yn+1 − pn+1|.
Dessa relação, podemos observar que o erro estimado entre os dois valores não
depende da derivada, mas apenas dos valores do preditor e corretor.
9.3 Equações de ordens superiores
As equações diferenciais ordinárias de ordem superior a um surgem em muitos
problemas. Na Física clássica, por exemplo, as equações de movimento são em
geral equações diferenciais de segunda ordem. Um caso bastante simples é o
estudo do oscilador harmônico, cuja equação é da forma:
mx′′(t) + bx′(t) + kx(t) = F (t), (9.16)
onde m representa a massa de partícula, b e k são constantes e F (t) é uma força
externa. Em geral, as condições
x(t0) = x0, x
′(t0) = y0 (9.17)
são dadas. Quando temos as condições dadas em (9.17), dizemos que temos um
problema do valor inicial de segunda ordem.
Resolvendo a equação (9.16) para a derivada segunda, podemos reescrever a
equação de uma forma mais geral como:
x′′(t) = f(t, x(t), x′(t)), x(t0) = x0, x′(t0) = y0. (9.18)
206 cálculo numérico
Por meio de uma transformação, podemos escrever o problema do valor inicial
de segunda ordem (9.18) como um sistema composto por duas equações diferen-
ciais de primeira ordem. Para isso, se considerarmos a mudança
x′(t) = y(t),
temos que x′′(t) = y′(t), e a equação diferencial (9.18) torna-se:
x′(t) = y, (9.19)
y′(t) = f(t, x, y), (9.20)
com as condições iniciais
x(t0) = x0, y(t0) = y0.
Agora, com base nesse sistema de duas equações de primeira ordem com con-
dições iniciais, podemos usar um método, como Runge-Kutta, para encontrar
duas seqüências xk e yk, em que a primeira corresponde à solução numérica do
problema do valor inicial de segunda ordem.
Em geral, o problema do valor inicial de segunda ordem pode ser expresso da
forma:
y′′(x) = f(x, y(x), y′(x)), y(x0) = y0, y′(x0) = v0. (9.21)
Seguindo o raciocínio anterior, podemos de�nir:
u1(x) = y(x), (9.22)
u2(x) = y
′(x). (9.23)
Agora, usando estas de�nições temos:
u′1(x) = y
′(x) = u2(x), e u1(x0) = y0, (9.24)
u′2(x) = y
′′(x) = f(x, y, y′) = f(x, u1(x), u2(x)), e u2(x0) = v0. (9.25)
Portanto, as equações (9.24) e (9.25) de�nem dois PVI de primeira ordem para
as funções u1(x) e u2(x). Estas equações estão acopladas.
A resolução destas equações utilizando o método de Runge-Kutta clássico, é
dada por:
resolução numérica de edo's 207
k
(n)
1,1 = hf1(xn, u1(xn), u2(xn)) = hu2(xn) (9.26)
k
(n)
2,1 = hf1(xn +
h
2
, u1(xn) +
k
(n)
1,1
2
, u2(xn) +
k
(n)
1,2
2
), (9.27)
k
(n)
3,1 = hf1(xn +
h
2
, u1(xn) +
k
(n)
2,1
2
, u2(xn) +
k
(n)
2,2
2
), (9.28)
k
(n)
4,1 = hf1(xn + h, u1(xn) + k
(n)
3,1 , u2(xn) + k
(n)
3,2 ), (9.29)
k
(n)
1,2 = hf2(xn, u1(xn), u2(xn)) (9.30)
k
(n)
2,2 = hf2(xn +
h
2
, u1(xn) +
k
(n)
1,1
2
, u2(xn) +
k
(n)
1,2
2
), (9.31)
k
(n)
3,2 = hf2(xn +
h
2
, u1(xn) +
k
(n)
2,1
2
, u2(xn) +
k
(n)
2,2
2
), (9.32)
k
(n)
4,2 = hf2(xn + h, u1(xn) + k
(n)
3,1 , u2(xn) + k
(n)
3,2 ), (9.33)
u1,n+1 = u1,n +
1
6
(k
(n)
1,1 + 2k
(n)
2,1 + 2k
(n)
3,1 + k
(n)
4,1 ), (9.34)
u2,n+1 = u2,n +
1
6
(k
(n)
1,2 + 2k
(n)
2,2 + 2k
(n)
3,2 + k
(n)
4,2 ), (9.35)
onde n = 0, 1, 2, · · · , e f1(x, u1, u2) = u2 e f2(x, u1, u2) = f(x, u1, u2).
Observe que por ser um sistema de equações acopladas, o cálculo dos k
(n)
i,j
devem ser realizados �xando-se i e variando o j, até obter-se todos os valores.
Exemplo 9.10 Seja o problema do valor inicial de segunda ordem y′′(x)+4y′(x)+
5y(x) = 0, y(0) = 3, y′(0) = −5. Determine o sistema de equações de primeira
ordem equivalente e em seguida use o método de Runge-Kutta para determinar a
seqüência de soluções no intervalo [0, 1], com passo h = 0, 1 para dez iterações.
Solução: a equação diferencial pode ser expressa da forma:
y′′(x) = f(x, y(x), y′(x)) = −4y′(x)− 5y(x).
De�nindo-se
u1(x) = y(x),
u2(x) = y
′(x),
u′2(x) = y
′′(x) = −4u2(x)− 5u1(x),
208 cálculo numérico
temos que:
u1(0) = y(0) = 3,
u2(0) = y
′(0) = −5.
Assim, os dois problemas do valor inicial de ordem um, são:
u′1(x) = u2(x), u1(0) = 3,
u′2(x) = −4u2(x)− 5u1(x), u2(0) = −5.
Considerando f1(x, u1, u2) = u2 e f2(x, u1, u2) = −4u2 − 5u1, e aplicando o
método de Runge-Kutta, para a iteração i = 0, temos:
k
(0)
1,1 = hf1 (x0, u1(x0), u2(x0)) = hu2(x0) = 0, 1 · (−5) = −0, 5,
k
(0)
1,2 = hf2 (x0, u1(x0), u2(x0)) = h(−4u2(x0)− 5u1(x0)) = 0, 5,
k
(0)
2,1 = hf1
(
x0 +
h
2
, u1(x0) +
1
2
k
(0)
1,1, u2(x0) +
1
2
k
(0)
1,2
)
= −0, 475,
k
(0)
2,2 = hf2
(
x0 +
h
2
, u1(x0) +
1
2
k
(0)
1,1, u2(x0) +
1
2
k
(0)
1,2
)
= 0, 525,
k
(0)
3,1 = hf1
(
x0 +
h
2
, u1(x0) +
1
2
k
(0)
2,1, u2(x0) +
1
2
k
(0)
2,2
)
= −0, 47375,
k
(0)
3,2 = hf2
(
x0 +
h
2
, u1(x0) +
1
2
k
(0)
2,1, u2(x0) +
1
2
k
(0)
2,2
)
= 0, 51375,
k
(0)
4,1 = hf1
(
x0 + h, u1(x0) + k
(0)
3,1, u2(x0) + k
(0)
3,2
)
= −0, 448625,
k
(0)
4,2 = hf2
(
x0 + h, u1(x0) + k(0)
3,1, u2(x0) + k
(0)
3,2
)
= 0, 531375.
Considerando as equações de iteração para as funções u1(x) e u2(x), temos:
u1,i+1 = u1,i +
1
6
(
k
(i)
1,1 + 2k
(i)
2,1 + 2k
(i)
3,1 + k
(i)
4,1
)
,
u2,i+1 = u2,i +
1
6
(
k
(i)
1,2 + 2k
(i)
2,2 + 2k
(i)
3,2 + k
(i)
4,2
)
.
resolução numérica de edo's 209
Substituindo os valores para i = 0, temos:
u1,1 = u1,0 +
1
6
(
k
(0)
1,1 + 2k
(0)
2,1 + 2k
(0)
3,1 + k
(0)
4,1
)
= 2, 525645833,
u2,1 = u2,0 +
1
6
(
k
(0)
1,2 + 2k
(0)
2,2 + 2k
(0)
3,2 + k
(0)
4,2
)
= −4, 481854166,
onde u1,0 = u1(x0) = 3 e u2,0 = u2(x0) = −5.
A solução para o problema original, quando x = x1 = 0, 1 é
y1 = y(x1) = y(0, 1) = u1(x1) = u1,1 = 2, 525645833.
Note que para obtermos a solução para o próximo passo, isto é, em y(x2) é
necessário que tenhamos computado o valor de u2,1, pois este valor será utilizado
nos cálculos dos k
(1)
m,n, m = 1, 2, 3, 4 e n = 1, 2.
Uma extensão da técnica aplicada para equações de segunda ordem pode ser
utilizada para equações diferenciais de ordem superiores. Em geral, uma equação
diferencial de ordem m pode ser escrita da forma:
u(m)(x) = f(x, u, u′, u′′, . . . , u(m−1)). (9.36)
A equação diferencial (9.36) pode ser transformada em um sistema equivalente
contendo m equações diferenciais de primeira ordem, tomando-se v1 = u, temos:
v′1 = u
′ = v2,
v′2 = u
′′ = v3,
v′3 = u
′′′ = v4,
.
.
. (9.37)
v′m−1 = u
(m−1) = vm,
v′m = u
(m) = f(x, u, u′, u′′, . . . , u(m−1)).
A equação diferencial (9.36) pode possuir m condições iniciais, as quais se
transformam para o sistema (9.37) em condições do tipo:
vk(x0) = ak, k = 1, . . . ,m.
A solução do sistema pode ser encontrada pela aplicação do método de Runge-
Kutta, analogamente ao realizado para o caso do problema do valor inicial de
segunda ordem.
210 cálculo numérico
Exemplo 9.11 Seja o problema do valor inicial de terceira ordem dado por:
y′′′ = x + y + 2y′ + y′′2, y(0) = y′(0) = y′′(0) = 0.
Encontre o sistema de primeira ordem equivalente.
Solução: Fazendo y(x) = v1, temos:
v′1 = v2, v1(0) = 0,
v′2 = v3, v2(0) = 0,
v′3 = x + v1 + 2v2 + v
2
3, v3(0) = 0.
Agora, podemos utilizar o método de Runge-Kutta para determinar a solução
do sistema acima, seguindo um raciocínio análogo ao empregado para a solução
do Exemplo 9.10.
9.4 Problema do valor de fronteira
Os métodos que vimos anteriormente são aplicados para a resolução do Pro-
blema do Valor Inicial. No entanto, há problemas de equações diferenciais de
segunda ordem onde as condições são atribuidas nas extreminades do intervalo.
Tais problemas são conhecidos como Problemas do Valor de Fronteira.
De�nição 9.5 O Problema do Valor de Fronteira de segunda ordem é de�nido
da forma:
y′′ = f(x, y, y′), y(a) = α, y(b) = β, (9.38)
onde x ∈ [a, b].
Vamos estudar aqui o problema do valor de fronteira caracterizado pela equa-
ção diferencial que pode ser posta na forma:
y′′ − q(x)y = f(x), y(a) = α, y(b) = β, (9.39)
onde a função q(x) deve satisfazer q(x) > 0 e f(x) é arbitrária.
Para resolvermos o problema do valor de fronteira (9.39), vamos utilizar o
método da diferença apresentado na Seção (7.3). Seja o intervalo I = [a, b].
Dividindo-se este intervalo em n partes iguais b−a
n
= h, temos que xi = a + ih,
com i = 0, 1, 2, . . . , n.
Seja yi = y(xi). Pelas condições de fronteira, sabemos que:
resolução numérica de edo's 211
y0 = y(x0) = y(a) = α, yn = y(xn) = y(b) = β.
Considerando a aproximação da derivada segunda pela diferença,
y′′(xi) ≈ yi+1 − 2yi + yi−1
h2
, (9.40)
podemos tomar esta equação para cada ponto xi, i = 1, . . . , n− 1. Substituindo
a relação (9.40) na equação (9.39), temos:
yi+1 − 2yi + yi−1
h2
− q(xi)yi = f(xi),
yi+1 − (2 + h2qi)yi + yi−1 = h2fi, i = 1, 2, . . . , n− 1. (9.41)
Para i = 1, a equação (9.41) torna-se:
y2 − (2 + h2q1)y1 + y0 = h2f1,
como y0 = α, temos
y2 − (2 + h2q1)y1 = h2f1 − α. (9.42)
Para i = n− 1, temos:
yn − (2 + h2qn−1)yn−1 + yn−2 = h2fn−1,
como yn = β, temos
−(2 + h2qn−1)yn−1 + yn−2 = h2fn−1 − β. (9.43)
Agora, de�nindo as matrizes, temos:
y =

y1
y2
.
.
.
yi−1
 (9.44)
212 cálculo numérico
A =

−(2 + h2q1) 1 0 · · · 0
1 −(2 + h2q2) 1 · · · 0
.
.
.
0 · · · 1 −(2 + h2qi−2) 1
0 · · · 1 −(2 + h2qi−1)
 ,
(9.45)
B =

h2f1 − α
h2f2
.
.
.
h2fi−2
h2fi−1 − β
 , (9.46)
escrevemos
A · y = B, (9.47)
que corresponde ao conjunto de equações dadas em (9.41). A solução deste
sistema será única desde que a condição q(x) > 0, x ∈ [a, b]. Assim, a solu-
ção desse sistema é solução do problema do valor de fronteira em cada ponto
xi, i = 1, . . . , n− 1.
Exemplo 9.12 Seja o problema do valor de fronteira dado por:
y′′ − y = 0, y(0) = 0, y(1) = 1, 175, h = 0, 25.
Encontre a solução utilizando o método estudado anteriormente.
Solução: Para resolver o problema, vamos escrever o sistema de equações
(9.47). As funções q(x) = 1 > 0, 0 ≤ x ≤ 1 e f(x) = 0. Neste caso as matrizes
tornam-se:
 −(2 + h2) 1 01 −(2 + h2) 1
0 1 −(2 + h2)
 ·
 y1y2
y3
 =
 00
−1, 175
 .
Resolvendo o sistema, obtemos:
y =
 0, 25280, 5214
0, 8225
 .
resolução numérica de edo's 213
Exercício 9.9 Resolva o probelma do valor de fronteira,
y′′ − x2y = 0, y(0) = 0, y(1) = 1, h = 0.2
9.5 Exercícios propostos
1. Seja o problema do valor inicial dado por y′ =
√
1− y2, y(0) = 0. Determine
a solução no intervalo [0, pi/4], usando o método de Taylor com ordem 5.
2. Use o método de Taylor para determinar a solução do problema do valor
inicial y′ = 1
t2+1
, y(0) = 0, até ordem 10.
3. Sejam os problemas do valor inicial dado a seguir. Use o método de Euler
para determinar as soluções:
a) y′ = 1
y
− x, y(1) = 2, h = 0, 1. Qual o valor de y′(2)?
b) y′ = x2y, y(1) = 1, h = 0, 1k, k = 1, 2, 3, 4, 5.
c) y′ = ycos(x), y(0) = 1, h = 0, 1k, k = 1, . . . , 10.
d) y′ = e−2x − 2y, y(0) = 0, 1, no intervalo [0; 0, 2], h = 0, 05
4. O crescimento populacional de certa espécie de bactéria aumenta a uma
taxa que é proporcional ao valor da própria população, e obedece ao pro-
blema do valor inicial y′(t) = 1, 8y(t), y(1) = 1, 9 × 108. Supondo um
período de cinco horas, determine, pelo método de Euler, a quantidade de
bactérias tomando passos h = 1 hora, h = 1/60 horas. Quanto tempo é
necessário para a duplicação da população?
5. Seja um projétil lançado verticalmente do solo e que cai verticalmente.
Sabemos que a resitência do ar é proporcional à velocidade do projétil, o
problema do valor inicial para a velocidade do projétil é dado por: v′(t) =
−32 − α
m
v, v(0) = v0, onde v0 é a velocidade de lançamento, m é a massa
do projétil e α é o coe�ciente de resistência do ar. Supondo que v0 = 4m/s
e
α
m
= 0, 15, use o método de Heun com passo h = 0, 5 para determinar a
solução do problema do valor inicial no intervalo t = [0, 30].
6. Um modelo ecológico para o crescimento de certo pássaro é dado pela equa-
ção diferencial
dN
dt
= 0, 89N − 0, 003N1,9, onde t é medido em meses. Qual
o número de pássaros ao �nal de um ano, quando o número inicial é de
100 pássaros? Utilize o método de Runge-Kutta para resolver a questão e
compare com outros métodos estudados neste capítulo.
214 cálculo numérico
7. O sistema de equações diferenciais descreve o modelo da presa-predador
para certa espécie de animais,
dx(t)
dt
= x(1− y2); x(0) = 5,
dy(t)
dt
= y(0, 75x− 1, 5); y(0) = 2.
Encontre a solução do sistema para t = 1, com h = 0, 1, usando o método
de Runge-Kutta.
8. Encontre a solução para os problemas do valor inicial de segunda ordem
dados por
a) y′′(x) + y(x)= 6 cos(x), y(0) = 2, y′(0) = 3. Use Runge-Kutta com
h = 0, 1 para 30 iterações.
b) L′′(t) + 20L′(t) + 125L(t) = 9sen (5t), L(0) = L′(0) = 0. Use Runge-
Kutta com h = 0, 05 para 50 iterações. Essa equação descreve um circuito
elétrico RLC.
Referências Bibliográ�cas
[Arenales, 07] ARENALES, S. e DAREZZO, A. Cálculo Numérico: Aprendiza-
gem com apoio de software. São Paulo : Thomson Learning, 2007.
[Barroso et al., 87] BARROSO, L. C. et al. Cálculo numérico com aplicações. São
Paulo : Harbra, 1987.
[Burden, 03] BURDEN, R. L. and FAIRES, J. D. Análise Numérica. São Paulo
: Thomson Learning, 2003.
[Campos, 07] CAMPOS FILHO, F. F., Algoritmos Numéricos. Rio de Janeiro :
Livros Técnicos e Cientí�cos Editora SA, 2007.
[Claudio, 94] CLÁUDIO, D. M., MARINS, J. M. Cálculo numérico computacio-
nal : teoria e prática. São Paulo : Atlas, 1994.
[Eldén, 90] ELDÉN, L., WITTMEYER-KOCH, L. Numerical analysis : an intro-
duction. Londres : Academic Press, 1990.
[Etchells, 97] ETCHELLS, T., BERRY, J. Learning numerical analysis through
Derive . Bolton : Chartwell-Bratt, 1997.
[Forsythe, 77] FORSYTHE, G., MALCOLM, M., MOLER, C. Computer
methods for mathematical computations. Englewood Cli�s : Prentice Hall,
1977.
[Ho�man, 01] HOFFMAN, J. D. Numerical methods for engineers and scientists.
Second Edition, New York : Marcel Dekker, Inc., 2001.
[Johnson, 77] JOHNSON, L. W., REISS, R. Numerical analysis. Reading, Mass
: Addison-Wesley, 1977.
[Kutzler, 00] KUTZLER, B., KOKOL-VOLJC, V. Introducão ao Derive 5. Linz
: Soft Warehouse Europe, Gutenberg-Werbering GmBH, 2000 (Tradução).
[Mathews, 87] MATHEWS, J. H. Numerical methods. New York : Prentice Hall,
1987.
216 cálculo numérico
[Ralston, 78] RALSTON, A., RABINOWITZ, P. A �rst course in numerical
analysis. New York : McGraw-Hill, 1978.
[Ruggiero, 96] RUGGIERO, M. A. G., LOPES, V. L. R. Cálculo numérico: as-
pectos teóricos e computacionais. São Paulo : Makron, 1996.
[Stoer, 89] STOER, J., BURLISCH, R. Introduction to numerical analysis. New
York : Springer Verlag, 1980.
[Süli, 03] SÜLI, E., MAYERS, D. F. An introduction to numerical analysis. New
York : Cambridge University Press, 2003.
[Szidarovszky, 89] SZIDAROVSZKY, F., YAKOWITZ, S. An Introduction to
Numerical Computations. New York : Macmillan Publishing Company, 1989.
Índice Remissivo
Ajuste
não linear, 156
polinomial geral, 155
polinomial quadrático, 154
por uma reta, 152
Análise de regressão, 149
Aproximação
de Chebychev, 144
de Padé, 144
Arredondamento
para número mais próximo
de máquina, 41
tipo corte, 41
unidade de, 43
Base de numeração, 20
Bolzano, 62
Coe�ciente de determinação, 158
Comprimento da palavra, 28
Computação algébrica, 31
Conversão
binário para decimal, 25
decimal para binário, 22
Corretor, 203
Determinante normalizado, 106
Diagonal dominante, 104
Diferença
central, 162
dividida, 138
�nita, 143
progressiva, 161
regressiva, 162
Dígitos signi�cativos, 29
ε da máquina, 44
Equações
algébricas, 51
normais, 151
transcendentais, 51
Erro
absoluto, 43
no modelo, 39
nos dados de entrada, 39
por arredondamento, 41
por truncamento, 39
relativo, 43
Exatidão, 44
Extrapolação de Richardson, 166
FORTRAN, 31
Função de iteração, 84
Gradiente, 112
Interpolação
de Gregory-Newton, 144
de Lagrange, 130
de Newton, 137
linear, 123
quadrática, 126
Jacobiano, 112
Mantissa, 29
Matriz ampliada, 92
Matriz de Vandermonde, 130
Matriz Jacobiano, 112
Método
da bisseção, 72
da iteração linear, 84
da pivotização completa, 98
da quadratura Gaussiana, 179
da série de Taylor, 188
das cordas, 78
218 cálculo numérico
das Splines, 144
de Adams-Basforth-Multon, 203
de Briot-Ru�ni, 55
de Euler, 191
de Heun, 197
de Horner, 58
de Newton-Côtes, 169
de Newton-Raphson, 81
de Newton-Raphson para sistemas
não lineares, 114
de passo simples, 198
de passos múltiplos, 198
de Runge-Kutta, 198
de Seidel para sistemas
não lineares, 113
direto de Gauss, 96
direto de Jordan, 100
do ponto �xo, 109
dos mínimos quadrados, 149
iterativo de Gauss-Seidel, 104
iterativo de Jacobi, 102
trapezoidal, 200
Multiplicidade, 53
Otimização linear, 149
Over�ow, 33
Pivotização, 98
Polinômios de Lagrange, 130
Polinômios de Legendre, 182
Precisão, 44
Preditor, 203
Primeira regra de Simpson, 175
Problema do valor inicial, 188
Re�namento de soluções, 101
Regra
da Lacuna, 65
de Descartes, 63
de du Gua, 64
de Simpson composta, 176
dos trapézios, 171
dos trapézios composta, 174
Relações de Girard, 67
Representação
compacta, 31
em ponto �xo, 29
em ponto �utuante, 29
Segunda regra de Simpson, 178
Segunda regra de Simpson
composta, 178
Sistema
compatível, 93
decimal, 20
determinado, 93
de equações algébricas
lineares, 91
de equações algébricas
não lineares, 107
de ponto �utuante, 31
equivalente, 95
incompatível, 93
indeterminado, 93
hexadecimal, 28
homogêneo, 93
mal-condicionado, 106
octal, 26
triangular inferior, 94
triangular superior, 94
Sistema binário, 21
Sistema de numeração, 19
não posicional, 19
posicional, 19
Suavização de dados, 149
Transformações elementares, 95
Under�ow, 33
Unidade de arredondamento, 43

Mais conteúdos dessa disciplina