Você está na página 1de 63

NOTAS DE AULA

Cálculo Numérico

Prof. Dr. Ranon de Souza Gomes

Macapá, 2023
Sumário
1 Preliminares Matemáticos e Análise de Erros 3
1.1 Polinômios e Séries de Taylor . . . . . . . . . . . . . . . . . . . . 3
1.2 Erros de arredondamento e aritmética no computador . . . . . . . . 8
1.3 Números de máquina decimais . . . . . . . . . . . . . . . . . . . . 9
1.4 Erro real, erro absoluto e erro relativo . . . . . . . . . . . . . . . . 10
1.5 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Soluções de equações em uma variável 14


2.1 O método da bissecção . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Convergência usando o método de Newton . . . . . . . . . . . . . . 23

3 Interpolação e aproximação polinomial 25


3.1 Interpolação e polinômios de Lagrange . . . . . . . . . . . . . . . . 25

4 Derivação e integração numérica 31


4.1 Derivação numérica . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Extrapolação de Richardson . . . . . . . . . . . . . . . . . . . . . 39
4.3 Elementos de integração numérica . . . . . . . . . . . . . . . . . . 43
4.4 Polinômios de Legendre . . . . . . . . . . . . . . . . . . . . . . . 49
4.5 Quadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . 52

5 Problemas de valor inicial para equações diferenciais ordinárias 57


5.1 Problemas bem-postos . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3 Método de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.4 Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . 64
5.5 Métodos de Runge-Kutta de ordens superiores . . . . . . . . . . . . 71
5.6 Equações de ordem superior e sistemas de equações diferenciais . . 76
5.7 Métodos explı́citos de Adams-Bashforth . . . . . . . . . . . . . . . 80
5.8 O método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . 84

1
Capı́tulo 1

Preliminares Matemáticos e
Análise de Erros
1.1 Polinômios e Séries de Taylor
Os polinômios de Taylor são amplamente usados na análise numérica.
Para as definições que veremos a seguir, denotaremos o conjunto de todas as
funções que têm n derivadas contı́nuas em X como Cn (X), e o conjunto das funções
que têm derivadas de todas as ordens em X será denotado por C∞ (X). Funções poli-
nomiais, racionais, trigonométricas, exponenciais e logarı́tmicas estão em C∞ (X),
onde X consiste em todos os números para os quais as funções estão definidas.
Quando X for um intervalo da reta real, omitiremos os parênteses nessa notação.

Teorema de Taylor: Suponha que f ∈ Cn [a, b], que f (n+1) exista em [a, b] e que
x0 ∈ [a, b]. Para todo x ∈ [a, b], existe um número ξ (x) entre x0 e x com

f (x) = Pn (x) + Rn (x)

onde

′ f ′′ (x0 ) 2 f (n) (x0 )


Pn (x) = f (x0 ) + f (x0 )(x − x0 ) + (x − x0 ) + · · · + (x − x0 )n
2! n!
e
f (n+1) (ξ (x))
Rn (x) = (x − x0 )n+1
(n + 1)!
Aqui, Pn (x) é chamado polinômio de Taylor de ordem n (ou enésimo polinômio
de Taylor) e Rn (x) é chamado resto (ou erro de truncamento) relativo a Pn (x).
A série infinita obtida pelo limite de Pn (x) quando n → ∞ é chamada de série
de Taylor de f em x0 . No caso de x0 = 0, o polinômio de Taylor é frequentemente
chamado polinômio de Maclaurin e a série de Taylor é geralmente chamada série
de Maclaurin.
O termo erro de truncamento no polinômio de Taylor refere-se ao erro envol-
vido na utilização de uma adição truncada ou finita para aproximar a soma de uma

2
série infinita.

Exemplo: Sejam f (x) = cos x e x0 = 0. Determine:


(a) o segundo polinômio de Taylor de f em x0 .
(b) o terceiro polinômio de Taylor de f em x0 .
Solução: O polinômio de Taylor de grau 2 e 3 são definidos por:
′′′
′ f ′′ (x0 ) f (ξ )
P2 (x) = f (x0 ) + f (x0 )(x − x0 ) + (x − x0 )2 + (x − x0 )3
2! 3!
′′′
′ f ′′ (x0 ) 2 f (x0 ) 3 f (4) (ξ )
P3 (x) = f (x0 )+ f (x0 )(x−x0 )+ (x−x0 ) + (x−x0 ) + (x−x0 )4
2! 3! 4!
Para x0 = 0, temos
f ′′ (0) 2 f ′′′ (ξ ) 3
P2 (x) = f (0) + f ′ (0)x + x + x
2 6
′′′
f ′′ (0) 2 f (0) 3 f (4) (ξ ) 4

P3 (x) = f (0) + f (0)x + x + x + x
2 6 24
Assim, sabemos que f (x) = cos x, logo

f ′ (x) = − sen x, f ′′ (x) = − cos x, f ′′′ (x) = sen x e f (4) (x) = cos x

e
f (0) = 1, f ′ (0) = 0, f ′′ (0) = −1 e f ′′′ (0) = 0
a) O polinômio de Taylor de ordem 2 fica:

f ′′ (0) 2 f ′′′ (ξ (x)) 3


P2 (x) = f (0) + f ′ (0)x + x + x
2 6
1 1
cos x = 1 − x2 + x3 sen ξ (x)
2 6
em que ξ (x) é algum número (geralmente desconhecido) entre 0 e x.
b) O polinômio de Taylor de ordem 3 fica:
′′′
f ′′ (0) 2 f (0) 3 f (4) (ξ ) 4

P3 (x) = f (0) + f (0)x + x + x + x
2! 6 24
1 1
cos x = 1 − x2 + x4 cos(ξ )
2 24
em que ξ (x) é algum número (geralmente desconhecido) entre 0 e x.
Quando x = 0, 01, ele se torna

1 2 1 3 10−6
cos(0, 01) = 1 − (0, 01) + (0, 01) sen ξ (0, 01) = 0, 99995 + sen ξ (0, 01)
2 6 6

3
A aproximação para cos(0, 01) determinada pelo polinômio de Taylor é, portanto,
0, 99995. O erro de truncamento, ou resto, relativo a essa aproximação é

10−6
sen ξ (0, 01) = 0, 16 × 10−6 sen ξ (0, 01)
6
onde usamos a barra sobre o 6 em 0, 16 para indicar que esse algarismo repete-se
indefinidamente. Assim, o erro que ocorre se usarmos a aproximação 0,99995 para
o valor do cos(0, 01) é limitado por

| cos(0, 01) − 0, 99995| = 0, 16 × 10−6 | sen ξ (0, 01)| ≤ 0, 16 × 10−6

Consequentemente, a aproximação 0,99995 é igual pelo menos aos primeiros


cinco algarismos do cos(0, 01). Ou ainda, poderı́amos ter usado o fato que | sen x| ≤
|x|, produzindo um erro limitante 0, 16 × 10−8 .
(b) Como f ′′′ (0) = 0, o polinômio de Taylor de ordem três com o termo de resto
em x0 = 0 é
1 1
cos(0, 01) = 1 − x2 − x4 cos ξ (x)
2 24
O polinômio aproximador permanece o mesmo e a aproximação ainda é 0,99995,
mas agora temos muito mais segurança de precisão. Como | cos ξ (x)| ≤ 1 para todo
x, temos
1 4 1
x cos ξ (x) ≤ (0, 01)4 (1) ≈ 4, 2 × 10−10
24 24
Assim,
| cos(0, 01) − 0, 99995| ≤ 4, 2 × 10−10
O Exemplo anterior ilustra os dois objetivos da análise numérica:
(i) Determinar uma aproximação para a solução de um dado problema.
(ii) Determinar um limitante para o erro da aproximação.
Os polinômios de Taylor em ambas as partes fornecem a mesma resposta para (i),
mas o polinômio de Taylor de ordem três fornece uma resposta muito melhor para
(ii) que o polinômio de Taylor de ordem dois. Podemos também usar os polinômios
de Taylor para obter aproximações para integrais.

4
Exemplo: Vamos usar o terceiro polinômio de Taylor e seu resto, encontrados no
Z 0,1
exemplo anterior, para aproximar cos xdx.
0
Solução: Temos
Z 0,1 Z 0,1 
1 0,1 4

1 2
Z
cos x dx = 1 − x dx + x cos ξ (x) dx
0 0 2 24 0
1 3 0,1 1 0,1 4
  Z
= x− x + x cos ξ (x) dx
6 0 24 0
1 1 0,1 4
Z
3
= 0, 1 − (0, 1) + x cos ξ (x) dx
6 24 0
Portanto, Z 0,1
1
cos x dx ≈ 0, 1 − (0, 1)3 = 0, 09983
0 6
Um limitante para o erro nessa aproximação é determinado pela integral do resto
de Taylor e o fato de que | cos ξ (x)| ≤ 1 para todo x:
Z 0,1
1 1 0,1 4
Z
4
x cos ξ (x) dx ≤ x | cos ξ (x)| dx
24 0 24 0
1 0,1 4 (0, 1)5
Z
≤ x dx = = 8, 3 × 10−8
24 0 120
Como o valor verdadeiro da integral é
Z 0,1 i0,1
cos x dx = sen x = sen (0, 1) = 0, 099833416647
0 0

o erro real da aproximação é 8, 3314 × 10−8 , o qual está dentro da limitação do erro.

EXERCÍCIOS:
1. Seja f (x) = x3 .
a) Determine o polinômio de Taylor de ordem dois P2 (x) em torno de x0 = 0.
b) Determine R2 (0, 5) e o erro real ao usar P2 (0, 5) para aproximar f (0, 5).
c) Repita a parte (a) usando x0 = 1.
d) Repita a parte (b) usando o polinômio da parte (c).

2. Determine o polinômio
√ de Taylor
√ de
√ ordem três
√ 3 P (x) para a função f (x) = x+1
em x0 = 0. Aproxime 0, 5, 0, 75, 1, 25 e 1, 5 usando P3 (x) e determine os er-
ros reais.

3. O polinômio de Taylor de ordem n de uma função f em x0 é às vezes conhe-


cido como o polinômio de grau no máximo n que ”melhor”aproxima f perto de
x0 . Determine o polinômio quadrático que melhor aproxima uma função f perto de
x0 = 1 se a reta tangente em x0 = 1 tem a equação y = 4x + 1 e se f ′′ (1) = 6.

5
1.2 Erros de arredondamento e aritmética no compu-
tador
A aritmética executada por uma calculadora ou computador é diferente daquela dos
nossos cursos de álgebra e cálculo. Você pode esperar que tenhamos
√ 2 sempre como
afirmações verdadeiras coisas como 2 + 2 = 4, 4 · 8 = 32 e ( 3) . Entretanto, na
√ 2 resultados exatos para 2 + 2 = 4, 4 · 8 = 32,
aritmética computacional, esperamos
mas não temos precisamente ( 3) .
Em nosso mundo da matemática tradicional, permitimos números com uma √ quan-
tidade infinita de algarismos. A aritmética que usamos nesse mundo define 3 como
o único número positivo que, quando multiplicado por si mesmo, produz o inteiro
3. No mundo da computação, entretanto, cada número representável tem apenas um
número fixo e finito de algarismos.
O erro que é produzido quando uma calculadora ou um computador é usado
para realizar cálculos com números reais é chamado erro de arredondamento. Isso
ocorre porque a aritmética efetuada em uma máquina envolve apenas números com
uma quantidade finita de algarismos, com o resultado de que os cálculos são efetua-
dos apenas com representações aproximadas dos números corretos.

1.3 Números de máquina decimais


Consideraremos, por simplicidade, que os números de máquina sejam representados
na forma normalizada de ponto flutuante decimal

±0, d1 d2 · · · dk × 10n , 1 ≤ d1 ≤ 9 e 0 ≤ di ≤ 9

para cada i = 2, · · · , k. Os números dessa forma são chamados números de máquina


decimais de k algarismos.
Qualquer número real positivo dentro do intervalo numérico da máquina pode
ser normalizado na forma

y = 0, d1 d2 · · · dk dk+1 dk+2 · · · × 10n

A forma em ponto flutuante de y, denotada por f l(y), é obtida terminando a


mantissa de y em k algarismos decimais. Há duas maneiras de realizar isso. Um
método, chamado truncamento, é simplesmente cortar (ou truncar) os algarismos
dk+1 dk+2 · · · . Isso produz a forma em ponto flutuante

y = 0, d1 d2 · · · dk × 10n

O outro método, chamado arredondamento, adiciona 5 × 10n−(k+1) a y e então

6
trunca o resultado para obter um número da forma

f l(y) = 0, σ1 σ2 · · · σk × 10n

Desse modo, ao arredondar, se dk+1 ≥ 5, adicionamos 1 a dk ; para obter f l(y);


isto é, arredondamos para cima. Quando dk+1 < 5, simplesmente cortamos tudo
menos os primeiros k algarismos; logo, arredondamos para baixo.

1.4 Erro real, erro absoluto e erro relativo


Definição: Ao supor que p∗ é uma aproximação de p, o erro real é p − p∗ , o erro
|p − p∗ |
absoluto é |p − p∗ | e o erro relativo é , contanto que p ̸= 0.
|p|
Exemplo: Determine os erros real, absoluto e relativo ao aproximar p por p∗ quando:
a) p = 0, 3000 × 101 e p∗ = 0, 3100 × 101 ;
b) p = 0, 3000 × 10−3 e p∗ = 0, 3100 × 10−3 ;
c) p = 0, 3000 × 104 e p∗ = 0, 3100 × 104 ;
Solução: a) Erro real é −0.1, o erro absoluto é 0, 1 e o erro relativo é 0, 3333 × 10−1 .
b) Erro real é −0.1 × 10−4 , o erro absoluto é 0.1 × 10−4 e o erro relativo é
0, 3333 × 10−1 .
c) Erro real é −0.1×103 , o erro absoluto é 0.1×103 e o erro relativo é novamente
0, 3333 × 10−1 .
Esse exemplo mostra que o mesmo erro relativo, 0, 3333 × 10−1 , ocorre para
erros absolutos muito variados. Como uma medida de precisão, o erro absoluto
pode ser enganoso e o erro relativo pode ser mais significativo, já que este leva em
consideração o próprio valor.

Definição: Diz-se que o número p∗ aproxima p até t algarismos significativos (ou


posições) se t for o maior inteiro não negativo para o qual

|p − p∗ |
≤ 5 × 10−t
|p|

1.5 Algoritmos
Ao longo do texto examinaremos os procedimentos de aproximação, chamados al-
goritmos, envolvendo sequências de cálculos. Um algoritmo é um procedimento que
descreve, sem ambiguidades, uma sequência finita de passos a serem feitos em uma
ordem especı́fica. O objetivo do algoritmo é implementar um procedimento para
resolver um problema ou aproximar uma solução do problema.
Usamos um pseudocódigo para descrever os algoritmos. Esse pseudocódigo es-
pecifica a forma da entrada a ser fornecida e a forma de saı́da desejada. Nem todos
os procedimentos numéricos fornecem saı́das satisfatórias para entradas arbitrari-

7
amente escolhidas. Como consequência, uma técnica de parada independente da
técnica numérica é incorporada em cada algoritmo para evitar laços infinitos.
Dois sı́mbolos de pontuação são usados nos algoritmos:
• Um ponto final (.) indica o término de um passo.
• Um ponto-e-vı́rgula (;) separa tarefas dentro de um passo.
Técnicas de laços nos algoritmos são ou controladas por um contador, como em

Para i = 1, 2, ..., n
Faça xi = ai + i · h

ou controladas por uma condição, como em


Quando i < N faça os Passos 3 − 6.
Para permitir a execução condicional, usamos as construções padrão.
Se ... então ou Se ... então (senão)
Os passos nos algoritmos seguem as regras de construção de programas estrutu-
rados. Eles foram organizados de maneira que haja dificuldade mı́nima na tradução
do pseudocódigo para qualquer linguagem de programação adequada a aplicações
cientı́ficas.
Os algoritmos são amplamente mesclados com comentários. Esses são escritos
em itálico, entre parênteses, para se distinguirem das instruções do algoritmo.
N
O seguinte algoritmo calcula x1 + x2 + · · · + xN = ∑ , dados N e os números
i=1
x1 , x2 , ..., xN .
ENTRADA N, x1 , x2 , ..., xn .
SAÍDA SOMA = ∑N i=1 xi .
Passo 1 Faça SOMA = 0. (Inicializar acumulador.)
Passo 2 Para i = 1, 2, ..., N faça SOMA = SOMA + xi . (Adicionar o próximo
termo.)
Passo 3 SAÍDA (SOMA);
PARE.

EXERCÍCIOS:
1. Utilize o MATLAB (ou Scilab) para programar a seguinte soma:
N
∑ i2
i=1

para N = 100, N = 1 000 e N = 10 000.

8
Capı́tulo 2

Soluções de equações em uma


variável
O crescimento de uma população pode ser modelado por curtos perı́odos, supondo
que a população cresça continuamente com o tempo, a uma taxa proporcional ao
número presente naquele instante. Se supusermos que N(t) denota o número de
indivı́duos no instante t, e λ , a taxa de natalidade constante da população, então essa
população satisfaz a equação diferencial

dN(t)
= λ N(t)
dt
A solução dessa equação é N(t) = N0 eλt , onde N0 denota a população inicial.
Esse modelo exponencial é válido apenas quando a população é isolada, sem imigração.
Se a imigração for permitida a uma taxa constante v, a equação diferencial se torna

dN(t)
= λ N(t) + v
dt
cuja solução é
v
N(t) = N0 eλt + (eλt − 1)
λ
Suponha que uma população tenha inicialmente N(0) = 1.000.000 indivı́duos,
que 435.000 imigrem para a comunidade no primeiro ano, e que N(1) = 1.564.000
indivı́duos estejam presentes ao fim de um ano. Para determinar a taxa de natalidade
dessa população, precisamos determinar λ na equação
435.000 λ
1.564.000 = 1.000.000eλ + (e − 1)
λ
Não é possı́vel isolar λ nesta equação, mas os métodos numéricos discutidos
neste capı́tulo podem ser usados para encontrar soluções aproximadas de equações
deste tipo com precisão arbitrariamente alta.

9
2.1 O método da bissecção
Aqui consideramos um dos problemas básicos mais importantes da aproximação
numérica, o problema da determinação de uma raiz. Esse processo envolve a
determinação de uma raiz, ou solução, de uma equação da forma f (x) = 0, para
dada função f . Uma raiz dessa equação também é denominada zero da função f .

Técnica da bissecção:
A primeira técnica, com base no teorema do valor intermediário, é denominada
método da bissecção.
Suponha que f seja uma função contı́nua definida no intervalo [a, b], com f (a) e
f (b) de sinais opostos. De acordo com o teorema do valor intermediário, existe um
número p em (a, b) com f (p) = 0.
Para simplificar o problema, suponhamos que a raiz nesse intervalo seja única,
apesar de o procedimento poder ser aplicado quando existir mais de uma raiz no
intervalo (a, b). O método requer repetidas divisões na metade de subintervalos de
[a, b] e, a cada passo, a localização da metade contendo p.
Inicialmente, defina a1 = a e b1 = b e considere p1 o ponto médio de [a, b], ou
seja,
b1 − a1 a1 + b1
p1 = a1 + =
2 2
• Se f (p1 ) = 0, então p = p1 e resolvemos o problema.
• Se f (p1 ) ̸= 0, então f (p1 ) tem o mesmo sinal de f (a) ou de f (b).
– Se f (p1 ) e f (a1 ) têm o mesmo sinal, p ∈ (p1 , b1 ). Definimos a2 = p1 e
b2 = b1 .
– Se f (p1 ) e f (a1 ) têm sinais opostos, p ∈ (a1 , p1 ). Definimos a2 = a1 e
b2 = p1 .
Depois, reaplicamos o processo ao intervalo [a2 , b2 ].

ALGORITMO - Bissecção:
Para determinar uma solução de f (x) = 0, dada a função contı́nua f no intervalo
[a, b], onde f (a) e f (b) têm sinais opostos.
ENTRADA extremidades a, b; tolerância T OL; número máximo de iterações
N0
SAÍDA solução aproximada p ou mensagem de erro.
Passo 1 Faça i = 1;
FA = f (a)
Passo 2 Enquanto i ≤ N0 , execute os passos 3 a 6.
Passo 3 Faça p = a + (b − a)/2; (Calcule pi )

10
FP = f (p).
Passo 4 Se FP = 0 ou (b − a)/2 < T OL, então
SAÍDA (p); (Procedimento concluı́do com sucesso.)
PARE.
Passo 5 Faça i = i + 1.
Passo 6 Se FA · FP > 0, então faça a = p; (Calcule ai , bi )
FA = FP.
senão faça b = p. (FA não muda)

Passo 7 SAÍDA (’O método falhou após N0 iterações, N0 =’, N0 )


(O procedimento não foi bem-sucedido.)
PARE.

Outros procedimentos de parada podem ser aplicados no Passo 4 do Algoritmo,


por exemplo, o erro relativo:

|pN − pN−1 |
<ε com ε > 0
|pN |
Quando um computador é utilizado para gerar aproximações, é boa prática definir
um limite superior para o número de iterações. Isso foi efetuado no Passo 2 do
Algoritmo, no qual o limite N0 foi definido e o procedimento encerrado se i > N0 .
Observe que, para iniciarmos o algoritmo de bissecção, devemos determinar um
intervalo [a, b] com f (a) · f (b) < 0. Em cada passo, o comprimento do intervalo que
contém um zero de f é reduzido por um fator 2 e, desse modo, é vantajoso escolher
o menor intervalo inicial [a, b] possı́vel.

Exemplo: Mostre que f (x) = x3 + 4x2 − 10 = 0 tem uma raiz em [1, 2] e use o
método da bissecção para determinar uma aproximação da raiz que tenha precisão
de pelo menos 0,002.
Solução: O passo a passo fica da seguinte forma:

11
1. Como f (1) = −5 < 0 e f (2) = 14 > 0, o teorema do valor intermediário ga-
rante que essa função contı́nua tenha uma raiz em [1, 2].

2. Calculamos o ponto médio de [1, 2] ⇒ p1 = 1, 5, temos f (1, 5) = 2, 375 >


0. Isso indica que devemos escolher o intervalo [1, 1, 5] para nossa segunda
iteração.

3. Calculamos o ponto médio de [1, 1, 5] ⇒ p2 = 1, 25. Assim, encontramos que


f (1, 25) = −1, 796875, de modo que nosso intervalo se torna [1, 25, 1, 5], cujo
ponto médio é p3 = 1, 375.

Após 3 iterações, p3 = 1, 375 se aproxima da raiz p com um erro relativo:

|p3 − p2 | |1, 375 − 1, 25|


= = 0, 09090 > 0, 002
|p3 | |1, 375|

4. Calculamos o ponto médio de [1, 25, 1, 5] ⇒ p3 = 1, 375, temos f (1, 375) =


0, 16211 > 0. Isso indica que devemos escolher o intervalo [1, 25, 1, 375].

5. Calculamos o ponto médio de [1, 25, 1, 375] ⇒ p4 = 1, 3125. Assim, encon-


tramos que f (1, 3125) = −0, 84839, de modo que nosso intervalo se torna
[1, 3125, 1, 375], cujo ponto médio é p5 = 1, 34375.

Após 5 iterações, p5 = 1, 34375 se aproxima da raiz p com um erro relativo:

|p5 − p4 | |1, 34375 − 1, 3125|


= = 0, 02325 > 0, 002
|p5 | |1, 34375|
Ao continuar dessa maneira, encontramos os valores na seguinte Tabela.

Após 9 iterações, p9 = 1, 365234375 se aproxima da raiz p com um erro relativo:

|p9 − p8 | |1, 365234375 − 1, 36328125|


= = 0, 00143 < 0, 002
|p9 | |1, 365234375|

12
EXERCÍCIOS: √
1. Utilize o método da bissecção para determinar p3 para f (x) = x −cos x em [0, 1].
2. Seja f (x = 3(x + 1)(x − 12 )(x − 1) = 0. Utilize o método da bissecção nos
intervalos a seguir para determinar p3 .
a) [−2, 1, 5] b) [−1, 25, 2, 5]
3. Utilize o método da bissecção para determinar as soluções com precisão de
−2
10 para x3 − 7x2 + 14x − 6 = 0 em cada intervalo.
a) [0, 1] b) [1, 3, 2] c) [3, 2, 4]
4. Utilize o método da bissecção para determinar as soluções com precisão de
−2
10 para x4 − 2x3 − 4x2 + 4x + 4 = 0 em cada intervalo.
a) [−2, −1] b) [0, 2] c) [2, 3] d) [−1, 0]

2.2 Método de Newton


O método de Newton (ou Newton-Raphson) é um dos métodos numéricos mais efi-
cientes e conhecidos para a solução de um problema de determinação de raiz e pode
ser introduzido de várias formas.
Suponha que f ∈ C2 [a, b]. Seja p0 ∈ [a, b] uma aproximação para p tal que
f ′ (p0 ) ̸= 0 e |p − p0 | seja ”pequeno”. Considere o primeiro polinômio de Taylor
de f (x) expandido em torno de p0 e calculado em x = p:

(p − p0 )2 ′′
f (p) = f (p0 ) + (p − p0 ) f ′ (p0 ) + f (ξ (p))
2
onde ξ (p) está entre p e p0 . Uma vez que f (p) = 0, essa equação fornece

(p − p0 )2 ′′
0 = f (p0 ) + (p − p0 ) f ′ (p0 ) + f (ξ (p))
2
Para deduzir o método de Newton, vamos supor que, como |p − p0 | é pequeno, o
termo envolvendo (p − p0 )2 será muito menor, de modo que

0 ≈ f (p0 ) + (p − p0 ) f ′ (p0 )

Isolando p, obtemos
f (p0 )
p ≈ p0 − ≡ p1
f ′ (p0 )
Isso fornece a estrutura para a aplicação do método de Newton, que começa com
uma aproximação inicial p0 e gera a sequência {pn }∞n=0 por

f (pn−1 )
pn ≈ pn−1 − , para n ≥ 1
f ′ (pn−1 )
A Figura abaixo mostra como as aproximações são obtidas por meio de tan-

13
gentes sucessivas. Começando com a aproximação inicial p0 , a aproximação p1 é a
interseção da reta tangente ao gráfico de f em (p0 , f (p0 )) com eixo x, a aproximação
p2 é a intersecção da reta tangente ao gráfico de f em (p1 , f (p1 )) com o eixo x, e
assim por diante.

Algoritmo - Método de Newton:


Para determinar uma solução para f (x) = 0, dada uma aproximação inicial p0 :
ENTRADA aproximação inicial p0 ; tolerância T OL; número máximo de
iterações N0
SAÍDA solução aproximada p ou mensagem de erro.
Passo 1 Faça i = 1.
Passo 2 Enquanto i ≤ N0 , execute os passos 3 a 6.
Passo 3 Faça p = p0 − f (p0 )/ f ′ (p0 ). (Calcule pi )
Passo 4 Se |p − p0 | < T OL, então
SAÍDA (p); (Procedimento concluı́do com sucesso.)
PARE.
Passo 5 Faça i = i + 1.
Passo 6 Faça p0 = p. (Atualize p0 )

Passo 7 SAÍDA (’O método falhou após N0 iterações, N0 =’, N0 )


(O procedimento não foi bem-sucedido.)
PARE.

Exemplo: Considere a função f (x) = cos x − x = 0. Aproxime a raiz de f utili-


zando o Método de Newton.
Solução: Temos f ′ (x) = − sen x − 1. Vamos iniciar em p0 = π/4 ≈ 0, 7853981635:

f (pn−1 ) cos(pn−1 ) − pn−1


pn = pn−1 − = pn−1 −
f ′ (pn−1 ) − sen (pn−1 ) − 1

14
Assim,

cos(p0 ) − p0 π cos π4 − π4
p1 = p0 − = − ≈ 0, 7395361337
− sen (p0 ) − 1 4 − sen π4 − 1

cos(p1 ) − p1 cos(0, 7395361337) − 0, 7395361337


p2 = p1 − = 0, 7395361337 −
− sen (p1 ) − 1 − sen (0, 7395361337) − 1
≈ 0, 7390851781

cos(p2 ) − p2 cos(0, 7390851781) − 0, 7390851781


p3 = p2 − = 0, 7390851781 −
− sen (p2 ) − 1 − sen (0, 7390851781) − 1
≈ 0, 7390851332

cos(p3 ) − p3 cos(0, 7390851332) − 0, 7390851332


p4 = p3 − = 0, 7390851332 −
− sen (p3 ) − 1 − sen (0, 7390851332) − 1
≈ 0, 7390851332

2.3 Convergência usando o método de Newton


A dedução do método de Newton por séries de Taylor no começo da seção mostra a
importância de uma aproximação inicial precisa. A hipótese essencial é que o termo
que envolve (p − p0 )2 seja, em comparação com |p − p0 |, tão pequeno que possa ser
desprezado. Isso será claramente falso, a menos que p0 seja uma boa aproximação
de p. Caso p0 não esteja suficientemente próximo da raiz real, há poucos motivos
para suspeitar que o método de Newton convergirá para a raiz. Entretanto, em alguns
casos, mesmo aproximações iniciais pouco precisas produzirão a convergência.
O teorema da convergência para o método de Newton a seguir enfatiza a im-
portância teórica da escolha de p0 .

Teorema: Seja f ∈ C2 [a, b]. Se p ∈ (a, b) tal que f (p) = 0 e f ′ (p) ̸= 0, então,
existe um δ > 0, tal que o método de Newton gera uma sequência {pn }∞ n=1 que con-
verge para p para qualquer aproximação inicial p0 ∈ [p − δ , p + δ ].

EXERCÍCIOS:
1. Utilize o método de Newton para encontrar soluções com precisão de 10−4 (ou
n = 5) para os problemas a seguir.
a) x3 − 2x2 − 5 = 0, [1, 4]
b) x3 + 3x2 − 1 = 0, [−3, −2]
c) x − cos x = 0, [0, π/2]

15
d) x − 0, 8 − 0, 2 sen x = 0, [0, π/2]
e) ex + 2−x + 2 cos x − 6 = 0, [1, 2]
f) ln(x − 1) + cos(x − 1) = 0, [1, 3, 2]
(Dica: escolha o p0 sendo o ponto médio do intervalo)

16
Capı́tulo 3

Interpolação e aproximação
polinomial
Um censo da população norte-americana é realizado a cada dez anos. A tabela a
seguir fornece a população, em milhares de pessoas, de 1960 a 2010.

Revendo esses dados, poderı́amos perguntar se eles podem ser utilizados para
fornecer uma estimativa razoável da população, digamos, em 1975 ou até mesmo no
ano de 2020. Previsões desse tipo podem ser obtidas utilizando-se uma função que
ajuste os dados fornecidos. Esse processo é chamado interpolação.

3.1 Interpolação e polinômios de Lagrange


Uma das classes mais conhecidas e úteis de funções que levam o conjunto dos
números reais em si mesmo é a classe dos polinômios algébricos, ou seja, o con-
junto de funções da forma

Pn (x) = an xn + an−1 xn−1 + · · · + a1 x + a0

onde n é um inteiro não negativo e a0 , ..., an são constantes reais. Uma razão para
sua importância é que eles aproximam as funções contı́nuas uniformemente. Dada
qualquer função definida e contı́nua em um intervalo fechado e limitado, existe um
polinômio que está tão próximo da função dada quanto quisermos.
Teorema da aproximação de Weierstrass: Suponha que f seja definida e contı́nua
em [a, b]. Para cada ε > 0, existirá um polinômio P(x), com a propriedade que

| f (x) − p(x)| < ε para todo x em [a, b].

17
Polinômios interpoladores de Lagrange:
O problema de determinação de um polinômio de grau um que passa pelos pon-
tos distintos (x0 , y0 ) e (x1 , y1 ) é o mesmo que aproximar uma função f para a qual
f (x0 ) = y0 e f (x1 ) = y1 por meio de um polinômio interpolador de primeiro grau, ou
seja, um polinômio que coincida com os valores de f nos pontos estipulados. O uso
deste polinômio para aproximar dentro do intervalo determinado pelas extremidades
é chamado interpolação polinomial.
Em primeiro lugar, definimos as funções:
x − x1 x − x0
L0 (x) = e L1 (x) =
x0 − x1 x1 − x0
O polinômio interpolador de Lagrange linear por (x0 , y0 ) e (x1 , y1 ) é
x − x1 x − x0
P(x) = L0 (x) f (x0 ) + L1 (x) f (x1 ) = f (x0 ) + f (x1 )
x0 − x1 x1 − x0
Observe que

L0 (x0 ) = 1, L0 (x1 ) = 0, L1 (x0 ) = 0, e L1 (x1 ) = 1

o que implica que

P(x0 ) = 1 · f (x0 ) + 0 · f (x1 ) = f (x0 ) = y0

e
P(x1 ) = 0 · f (x0 ) + 1 · f (x1 ) = f (x1 ) = y1
Assim, P é o único polinômio de grau no máximo 1 que passa por (x0 , y0 ) e
(x1 , y1 ).

Enésimo polinômio interpolador de Lagrange:


Teorema: Se x0 , x1 ,...,xn são n + 1 números distintos, e f é uma função cujos valores
são dados por esses números, então existe um único polinômio P(x) de grau no
máximo n
f (xk ) = P(xk ), para cada k = 0, 1, 2, ..., n.
Esse polinômio é dado por
n
P(x) = f (x0 )Ln,0 (x) + · · · f (xn )Ln,n (x) = ∑ f (xk )Ln,k (x)
k=0

18
onde, para cada k = 0, 1, 2, ..., n

(x − x0 )(x − x1 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )


Ln,k (x) =
(xk − x0 )(xk − x1 ) · · · (xk − xk−1 )(xk − xk+1 ) · · · (xk − xn )
n
(x − xi )
= ∏
i=0,i̸=k xk − xi

Escreveremos Ln,k (x) simplesmente como Lk (x) quando não houver nenhuma
confusão quanto ao seu grau.

Exemplo: (a) Usar os números (ou nós) x0 = 2, x1 = 2, 75 e x2 = 4 para determinar


1
o segundo polinômio interpolador para f (x) = .
x
(b) Use este polinômio para aproximar f (3) = 1/3.
Solução: Observe que:

2
P(x) = ∑ f (xk )Lk (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x)
k=0

(a) Primeiramente determinamos os coeficientes polinomiais L0 (x), L1 (x) e L2 (x).

(x − x1 )(x − x2 ) (x − 2, 75)(x − 4) 2
L0 (x) = = = (x − 2, 75)(x − 4)
(x0 − x1 )(x0 − x2 ) (2 − 2, 75)(2 − 4) 3

(x − x0 )(x − x2 ) (x − 2)(x − 4) 16
L1 (x) = = = − (x − 2)(x − 4)
(x1 − x0 )(x1 − x2 ) (2, 75 − 2)(2, 75 − 4) 15
(x − x0 )(x − x1 ) (x − 2)(x − 2, 75) 2
L2 (x) = = = (x − 2)(x − 2, 75)
(x2 − x0 )(x2 − x1 ) (4 − 2)(4 − 2, 75) 5
Além disso, como f (x) = 1/x, temos:

• f (x0 ) = f (2) = 1/2

• f (x1 ) = f (2, 75) = 4/11

• f (x2 ) = f (4) = 1/4

19
de modo que

P(x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (x2 )L2 (x)
     
1 2 4 16
= (x − 2, 75)(x − 4) + − (x − 2)(x − 4)
2 3 11 15
  
1 2
+ (x − 2)(x − 2, 75)
4 5
1 64 1
= (x − 2, 75)(x − 4) − (x − 2)(x − 4) + (x − 2)(x − 2, 75)
3 165 10
1 2 35 49
= x − x+
22 88 44
(b) Uma aproximação para f (3) = 1/3 = 0, 33333333... é
9 105 49 29
f (3) ≈ P(3) = − + = ≈ 0, 32955
22 88 44 88
O próximo passo é calcular um resto ou limitante para o erro envolvido na
aproximação de uma função por um polinômio interpolador.

Teorema: Suponha que x0 , x1 , ..., xn sejam números distintos no intervalo [a, b] e


que f ∈ Cn+1 [a, b]. Então, para cada x em [a, b], existe um número ξ (x)(geralmente
desconhecido) entre min{x0 , x1 , ..., xn } e o max{x0 , x1 , ..., xn } e consequentemente
em (a, b), com

f (n+1)(ξ (x))
f (x) = P(x) + (x − x0 )(x − x1 ) · · · (x − xn )
(n + 1)!

onde P(x) é o polinômio interpolador.

EXERCÍCIOS:
1. Para as funções f (x) dadas, sejam x0 = 1, x1 = 1, 25 e x2 = 1, 6. Construa po-
linômios interpoladores de grau no máximo um e no máximo dois para determinar
uma aproximação de f (1, 4), e encontre o erro absoluto.
a) f (x) = √
sen πx
b) f (x) = 3 x − 1
c) f (x) = e2x − x

2. Utilize polinômios interpoladores de lagrange de graus um, dois e três adequa-


dos para aproximar cada um dos seguintes:
a) f (8, 4) se f (8, 1) = 16, 94410, f (8, 3) = 17, 56492, f (8, 6) = 18, 50515 , f (8, 7) =
18, 82091
b) f (0, 25) se f (0, 1) = 0, 62049958, f (0, 2) = −0, 28398668, f (0, 3) = 0, 00660095,
f (0, 4) = 0, 24842440

20
Capı́tulo 4

Derivação e integração
numérica
Mencionamos, anteriormente, que a razão para a utilização de polinômios algébricos
para obter uma aproximação de um conjunto de dados arbitrário é que, dada qual-
quer função contı́nua definida em um intervalo fechado, existe um polinômio que
é arbitrariamente próximo à função em todos os pontos do intervalo. As derivadas
e as integrais dos polinômios também são facilmente obtidas e calculadas. Não é
surpreendente, então, que a maioria dos procedimentos para obter aproximações de
integrais e derivadas use os polinômios que aproximam a função.

4.1 Derivação numérica


A derivada da função f em x0 é

f (x0 + h) − f (x0 )
f ′ (x0 ) = lim
h→0 h
Essa fórmula fornece uma maneira óbvia de gerar uma aproximação de f ′ (x0 );
simplesmente calcule
f (x0 + h) − f (x0 )
h
para valores pequenos de h. Embora isso pareça óbvio, não é muito bem-sucedido
em razão dos nossos velhos erros de arredondamento. Mas certamente é o melhor
lugar para começar.
Para obter uma aproximação de f ′ (x0 ), suponha primeiro que x0 ∈ (a, b), onde
f ∈ C2 [a, b], e que x1 = x0 + h para algum h ̸= 0 que seja suficientemente pequeno
para garantir que x1 ∈ [a, b]. Construı́mos o primeiro polinômio de Lagrange P0,1 (x)

21
para f determinado por x0 e x1 , com seu termo de erro:

(x − x0 )(x − x1 ) ′′
f (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + f (ξ (x))
2!
x − x1 x − x0 (x − x0 )(x − x1 ) ′′
= f (x0 ) + f (x1 ) + f (ξ (x))
x0 − x1 x1 − x0 2
x − (x0 + h) x − x0 (x − x0 )(x − (x0 + h)) ′′
= f (x0 ) + f (x0 + h) + f (ξ (x))
x0 − (x0 + h) (x0 + h) − x0 2
f (x0 )(x − x0 − h) f (x0 + h)(x − x0 ) (x − x0 )(x − x0 − h)) ′′
= + + f (ξ (x))
−h h 2
x[ f (x0 + h) − f (x0 )] − x0 [ f (x0 + h) − f (x0 )] + h f (x0 )
= +
h
(x − x0 )(x − x0 − h)) ′′
+ f (ξ (x))
2
para algum ξ (x) entre x0 e x1 .
A derivação resulta em
 
′ f (x0 + h) − f (x0 ) (x − x0 )(x − x0 − h)) ′′
f (x) = + Dx f (ξ (x))
h 2
f (x0 + h) − f (x0 ) 2(x − x0 ) − h ′′ (x − x0 )(x − x0 − h))
= + f (ξ (x)) + Dx [ f ′′ (ξ (x))]
h 2 2
Quando x é x0 a fórmula é simplificada para

f (x0 + h) − f (x0 ) h ′′
f ′ (x0 ) = − f (ξ )
h 2
Para pequenos valores de h, o quociente de diferenças [ f (x0 + h) − f (x0 )]/h pode
ser usado para obter uma aproximação de f ′ (x0 ) com um erro limitado por M|h|/2,
em que M é um limitante de | f ′′ (x)| para x entre x0 e x0 + h. Essa fórmula é conhe-
cida como fórmula de diferenças progressivas se h > 0 e fórmula de diferenças
regressivas se h < 0.

22
Exemplo: Use a fórmula de diferenças progressivas para aproximar a derivada de
f (x) = ln x em x0 = 1, 8 usando h = 0, 1, h = 0, 05, e h = 0, 01 e determine limitantes
para os erros de aproximação.
Solução: A fórmula de diferenças progressivas

f (1, 8 + h) − f (1, 8)
h
com h = 0, 1 dá
ln 1, 9 − ln 1, 8 0, 64185389 − 0, 58778667
= = 0, 5406722
0, 1 0, 1

Como f ′′ (x) = −1/x2 e 1, 8 < ξ < 1, 9, um limitante para este erro de aproximação

|h f ′′ (ξ )| |h| 0, 1
= 2< = 0, 0154321
2 2ξ 2(1, 8)2
As aproximações e os limitantes de erro quando h = 0, 05 e h = 0, 01 são encon-
trados de forma parecida, e os resultados são mostrados na Tabela

Como f ′ (x) = 1/x, o valor exato de f ′ (1, 8) é 0, 555... e os limitantes de erro são
bastante próximos do erro de aproximação verdadeiro.
Para obter fórmulas gerais de aproximação de derivadas, suponha que {x0 , ..., xn }
são (n + 1) números distintos em certo intervalo I e que f ∈ Cn+1 (I). Temos
n
(x − x0 ) · · · (x − xn ) (n+1)
f (x) = ∑ f (xk )Lk (x) + f (ξ (x))
k=0 (n + 1)!

para algum ξ (x) em I. Derivando essa expressão, obtemos


n f (n+1) (ξ (x j )) n
f (x j ) = ∑ f (xk )Lk′ (x j ) + ∏ (x j − xk )
k=0 (n + 1)! k=0,k̸ =j

que é chamada fórmula de (n + 1) pontos para obter uma aproximação de f ′ (x j ).


Em geral, a utilização de mais pontos produz maior precisão, embora o número
de cálculos de funções e o crescimento de erros de arredondamento desencorajem
um pouco isso. As fórmulas mais comuns são aquelas que envolvem três e cinco
pontos.

23
Primeiro, deduziremos algumas fórmulas de três pontos úteis e consideraremos
aspectos de seus erros. Como

(x − x1 )(x − x2 ) 2x − x1 − x2
L0 (x) = , temos L0′ (x) =
(x0 − x1 )(x0 − x2 ) (x0 − x1 )(x0 − x2 )
Analogamente,
2x − x0 − x2 2x − x0 − x1
L1′ (x) = e L2′ (x) =
(x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
Consequentemente,
   
′ 2x j − x1 − x2 2x j − x0 − x2
f (x j ) = f (x0 ) + f (x1 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 )

2x j − x0 − x1
 2
1 (3)
+ f (x2 ) + f (ξ j ) ∏ (x j − xk )
(x2 − x0 )(x2 − x1 ) 6 k=0,k̸= j

Fórmulas de três pontos:


Utilizando a Equação anterior com x j = x0 , x1 = x0 + h e x2 = x0 + 2h, chegamos em

• Fórmula de três pontos na extremidade:

1 h2
f ′ (x0 ) = [−3 f (x0 ) + 4 f (x0 + h) − f (x0 + 2h)] + f (3) (ξ0 )
2h 3
e
′ 1 h2 (3)
f (x0 ) = [ f (x0 − 2h) − 4 f (x0 − h) + 3 f (x0 )] + f (ξ0 )
2h 3
• Fórmula de três pontos no ponto médio:

1 h2
f ′ (x0 ) = [ f (x0 + h) − f (x0 − h)] − f (3) (ξ1 )
2h 6

24
Fórmula de cinco pontos:
O termo de erro para essas fórmulas é O(h4 ). Uma fórmula de cinco pontos comum
é usada para determinar aproximações para a derivada no ponto médio.

• Fórmula de cinco pontos no ponto médio:

′ 1 h4 (5)
f (x0 ) = [ f (x0 − 2h) − 8 f (x0 − h) + 8 f (x0 + h) − f (x0 + 2h)] + f (ξ )
12h 30

• Fórmula de cinco pontos na extremidade:


1
f ′ (x0 ) = [−25 f (x0 ) + 48 f (x0 + h) − 36 f (x0 + 2h) + 16 f (x0 + 3h)
12h
h4
−3 f (x0 + 4h)] + f (5) (ξ ), com ξ ∈ (x0 , x0 + h)
5

Fórmula da segunda derivada no ponto médio:

′′ 1 h2 (4)
f (x0 ) = 2 [ f (x0 − h) − 2 f (x0 ) + f (x0 + h)] − f (ξ )
h 12
para algum ξ em x0 − h e x0 + h.

Exemplo: São dados valores para f (x) = xex . Utilize todas as fórmulas de três e
cinco pontos aplicáveis para aproximar f ′ (2, 0).

Solução: i) Usando a fórmula na extremidade com h = 0, 1, obtemos

1
f ′ (2, 0) = [−3 f (2, 0) + 4 f (2, 0 + h) − f (2, 0 + 2h)]
2h
1
= [−3 f (2, 0) + 4 f (2, 1) − f (2, 2)]
0, 2
= 5[−3(14, 778112) + 4(17, 148957) − 19, 855030]
= 22, 032310

25
ii) Usando a fórmula no ponto médio com h = 0, 1, obtemos
1
f ′ (2, 0) = [ f (2, 0 + h) − f (2, 0 − h)]
2h
1
= [ f (2, 1) − f (1, 9)]
0, 2
= 5(17, 148957 − 12, 703199)
= 22, 228790

iii) A única fórmula de cinco pontos para a qual a tabela fornece pontos suficien-
tes é a fórmula de ponto médio com h = 0, 1. Isto dá
1
f ′ (2, 0) = [ f (2, 0 − 2h) − 8 f (2, 0 − h) + 8 f (2, 0 + h) − f (2, 0 + 2h)]
12h
1
= [ f (1, 8) − 8 f (1, 9) + 8 f (2, 1) − f (2, 2)]
1, 2
1
= [10, 889365 − 8(12, 703199) + 8(17, 148957) − 19, 855030]
1, 2
= 22, 166999

O valor verdadeiro é f ′ (2, 0) = (2 + 1)e2 = 22, 167168.

EXERCÍCIOS:
1. Use as fórmulas de diferenças progressivas e regressivas para completar as seguin-
tes tabelas:

2. Use a fórmula de três pontos mais precisa para completar as seguintes tabelas.

26
3. Em um circuito com voltagem aplicada ε(t) e indutância L, a primeira lei de
Kirchhoff fornece a relação di
ε(t) = L + Ri
dt
onde R é a resistência no circuito e i é a corrente. Suponha que medimos a corrente
em vários valores de t e obtivemos em que t é medido em segundos, i em amperes, a

indutância L é uma constante de 0,98 henries e a resistência é 0,142 ohms. Obtenha


uma aproximação da voltagem ε(t) quando t = 1, 00, 1, 01, 1, 02, 1, 03 e 1, 04.

4.2 Extrapolação de Richardson


A extrapolação de Richardson é utilizada para gerar resultados de alta precisão ao
usar fórmulas de ordem baixa.
A extrapolação pode ser aplicada sempre que se souber que uma técnica de
aproximação tem um termo de erro com uma forma previsı́vel, que dependa de um
parâmetro, normalmente o tamanho do passo h.
Suponha que, para cada número h ̸= 0, tenhamos uma fórmula N1 (h) que apro-
xime um valor M desconhecido e que o erro de truncamento envolvido na aproximação
tenha a forma
M − N1 (h) = K1 h + K2 h2 + K3 h3 + · · ·
para alguma coleção de constantes desconhecidas K1 , K2 , K3 ,...
O objetivo da extrapolação é encontrar uma forma fácil de combinar as aproximações
O(h), bastante imprecisas, de uma maneira apropriada para gerar fórmulas com erro
de truncamento de ordem mais alta.
Pela Extrapolação de Richardson, podemos obter uma fórmula de aproximação
O(h2 ) para M, fazendo:
K2 2 3K3 3
M = N2 (h) − h − h −···
2 4
com      
h h
N2 (h) = N1 + N1 − N1 (h)
2 2

27
onde N1 (h) é uma aproximação inicial para um determinado passo h.

Exemplo: Num Exemplo anterior, usamos o método de diferenças progressivas com


h = 0, 1 e h = 0, 05 para encontrar aproximações para f ′ (1, 8) com f (x) = ln(x). Su-
ponha que esta fórmula tenha erro de truncamento O(h). Use extrapolação nesses
valores para ver se isto resulta em uma aproximação melhor.
Solução: Temos, para h = 0, 1,
     
0, 1 0, 1
f ′ (1, 8) ≈ N2 (0, 1) = N1 + N1 − N1 (0, 1)
2 2
= N1 (0, 05) + [N1 (0, 05) − N1 (0, 1)]

Usando diferenças progressivas para h = 0, 1, resulta

f (1, 8 + h) − f (1, 8) ln(1, 9) − ln(1, 8)


f ′ (1, 8) = = = 0, 5406722
h 0, 1
e com h = 0, 05,
f (1, 8 + h) − f (1, 8) ln(1, 85) − ln(1, 8)
f ′ (1, 8) = = = 0, 5479795
h 0, 05
Isso implica que

N1 (0, 1) = 0, 5406722 e N1 (0, 05) = 0, 5479795

A extrapolação desses resultados fornece a nova aproximação

N2 (0, 1) = N1 (0, 05) + [N1 (0, 05) − N1 (0, 1)]


= 0, 5479795 + (0, 5479795 − 0, 5406722) = 0, 555287

Como f ′ (x) = 1/x, o valor exato de f ′ (1, 8) é 0, 555555....

A extrapolação pode ser usada sempre que o erro de truncamento da fórmula


tiver a forma
m−1
∑ K j hα j
+ O(hαm )
j=1
Definindo      
h 1 h
N2 (h) = N1 + N1 − N1 (h)
2 3 2
obtemos a fórmula de aproximação com erro de truncamento O(h4 ):

h4 5h6
M = N2 (h) − K2 − K3 +···
4 16

28
Definindo      
h 1 h
N3 (h) = N2 + N2 − N2 (h)
2 15 2
obtemos a fórmula de aproximação com erro de truncamento O(h6 ):

h6
M = N3 (h) − K3 + · · ·
64
Continuando esse processo, obtemos, para cada j = 2, 3, ..., a aproximação O(h2 j ):

N j−1 (h/2) − N j−1 (h)


 
h
N j (h) = N j−1 +
2 4 j−1 − 1
Tabela:

DICAS PARA CALCULAR O N3(h):


• Primeiro escreva a fórmula do N3 (h) que pretende calcular. Por exemplo, para
h = 0, 4, temos:
1
N3 (0, 4) = N2 (0, 2) + [N2 (0, 2) − N2 (0, 4)]
15

• Observe que para o calculo do N3 (0, 4) precisamos conhecer o N2 (0, 4) e o


N2 (0, 2). Então agora escreva as fórmulas para N2 (0, 4) e N2 (0, 2) e veja quais
valores de N1 (h) eu precisará:
1
N2 (0, 4) = N1 (0, 2) + [N1 (0, 2) − N1 (0, 4)]
3
e
1
N2 (0, 2) = N1 (0, 1) + [N1 (0, 1) − N1 (0, 2)]
3
• Ou seja, para calcular o N3 (0, 4) eu precisa-se do N2 (0, 4) e N2 (0, 2), e para o
cálculo destes, precisará do N1 (0, 4), N1 (0, 2) e N1 (0, 1).

• Então a sequência de cálculos seguirá da seguinte forma:

N1 (0, 4); N1 (0, 2); N1 (0, 1) ⇒ N2 (0, 4); N2 (0, 2) ⇒ N3 (0, 4)

29
EXERCÍCIOS:
1. Aplique o processo de extrapolação descrito no Exemplo anterior para determi-
nar N3 (h), uma aproximação para f ′ (x0 ), para as funções e os tamanhos de passo a
seguir.
a) f (x) = ln x, x0 = 1, 0, h = 0, 4
b) f (x) = x + ex , x0 = 0, h = 0, 4
c) f (x) = 2x sen x, x0 = 1, 05, h = 0, 4
d) f (x) = x3 cos x, x0 = 2, 3, h = 0, 4

4.3 Elementos de integração numérica


Frequentemente é necessário o cálculo da integral definida de uma função que não
tenha primitiva explı́cita ou cuja primitiva não seja fácil de obter. O método básico
Z b
envolvido na aproximação de f (x)dx é chamado quadratura numérica. Os
a
métodos de quadratura nesta seção são baseados nos polinômios interpoladores.

A regra do trapézio:
Para deduzir a regra do trapézio, sejam x0 = a, x1 = b, h = b − a, e vamos utilizar o
polinômio linear de Lagrange:

(x − x1 ) (x − x0 )
P1 (x) = f (x0 ) + f (x1 )
(x0 − x1 ) (x1 − x0 )
Assim,
Z b Z x1  
(x − x1 ) (x − x0 )
f (x)dx = f (x0 ) + f (x1 ) dx
a x0 (x0 − x1 ) (x1 − x0 )
1 x1 ′′
Z
+ f (ξ (x))(x − x0 )(x − x1 )dx
2 x0
x1
(x − x1 )2 (x − x0 )2 h3 ′′

= f (x0 ) + f (x1 ) − f (ξ )
2(x0 − x1 ) 2(x1 − x0 ) x0 12
(x1 − x0 ) h3
= [ f (x0 ) + f (x1 )] − f ′′ (ξ )
2 12
Como h = x1 − x0 , temos a seguinte regra:

h3 ′′
Z b
h
f (x)dx = [ f (x0 ) + f (x1 )] − f (ξ )
a 2 12
Para generalizar esse procedimento para uma integral arbitrária, escolha um in-
teiro n. Subdivida o intervalo [a, b] em n subintervalos.

30
Teorema: Sejam f ∈ C2 [a, b], h = (b − a)/n e x j = a + jh para todo j = 0, 1, ..., n.
Existe um µ ∈ (a, b) para o qual a regra do trapézio composta para n subintervalos
pode ser escrita com seu termo de erro como
Z b n−1
h b − a 2 ′′
f (x)dx = [ f (a) + 2 ∑ f (x j ) + f (b)] − h f (µ)
a 2 j=1 12

Regra de Simpson:
A regra de Simpson resulta da integração em [a, b] do segundo polinômio de La-
grange com nós igualmente espaçados x0 = a, x2 = b e x1 = a + h, em que h =
(b − a)/2.
Z b Z x2 
(x − x1 )(x − x2 ) (x − x0 )(x − x2 )
f (x)dx = f (x0 ) + f (x1 )
a x0 (x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 )

(x − x0 )(x − x1 )
+ f (x2 )
(x2 − x0 )(x2 − x1 )
Z x2
(x − x0 )(x − x1 )(x − x2 ) (3)
+ f (ξ (x))dx
x0 6
Isso resulta na regra de Simpson:

h5 (4)
Z x2
h
f (x)dx = [ f (x0 ) + 4 f (x1 ) + f (x2 )] − f (ξ )
x0 3 90
Para generalizar esse procedimento para uma integral arbitrária, escolha um in-
teiro n par. Subdivida o intervalo [a, b] em n subintervalos e aplique a regra de
Simpson em cada par consecutivo de subintervalos.

Teorema: Sejam f ∈ C4 [a, b], n par, h = (b − a)/n e x j = a + jh para todo j =


0, 1, ..., n. Existe um µ ∈ (a, b) para o qual a regra de Simpson composta para n

31
subintervalos pode ser escrita com seu termo de erro como
Z b (n/2)−1 n/2
h b − a 4 (4)
f (x)dx = [ f (a) + 2 ∑ f (x2 j ) + 4 ∑ f (x2 j−1 ) + f (b)] − h f (µ)
a 3 j=1 j=1 180

INTERPRETANDO OS TEOREMAS:

Teorema - Regra do Trapézio:


Z b n−1
h b − a 2 ′′
f (x)dx = [ f (a) + 2 ∑ f (x j ) + f (b)] − h f (µ)
a 2 j=1 12

Para n = 4:
Z b
h b − a 2 ′′
f (x)dx = [ f (x0 ) + 2 f (x1 ) + 2 f (x2 ) + 2 f (x3 ) + f (x4 )] − h f (µ)
a 2 12

Teorema - Regra de Simpson:


Z b (n/2)−1 n/2
h b − a 4 (4)
f (x)dx = [ f (a) + 2 ∑ f (x2 j ) + 4 ∑ f (x2 j−1 ) + f (b)] − h f (µ)
a 3 j=1 j=1 180

Para n = 4:
Z b
h b − a 4 (4)
f (x)dx = [ f (x0 ) + 4 f (x1 ) + 2 f (x2 ) + 4 f (x3 ) + f (x4 )] − h f (µ)
a 3 180

Exemplo: Utilize a regra do trapézio composta e a regra de Simpson composta com

32
n = 4 para obter uma aproximação da seguinte integral:
Z 2
ln x dx
1

Solução a): Para n = 4, temos

b−a 2−1 1
h= = = = 0, 25
n 4 4
Pela Regra do Trapézio:
Z b
h b − a 2 ′′
f (x)dx = [ f (x0 ) + 2 f (x1 ) + 2 f (x2 ) + 2 f (x3 ) + f (x4 )] − h f (µ)
a 2 12
Assim,
Z 2
0, 25
ln x dx = [ f (1) + 2 f (1, 25) + 2 f (1, 5) + 2 f (1, 75) + f (2)]
1 2
Temos
• f (1) = ln 1 = 0
• f (1, 25) = ln 1, 25 = 0, 2231435513142
• f (1, 5) = ln 1, 5 = 0, 4054651081081
• f (1, 75) = ln 1, 75 = 0, 55961578793542
• f (2) = ln 2 = 0, 6931471805599
Assim
Z 2
0, 25
ln x dx = [ f (1) + 2 f (1, 25) + 2 f (1, 5) + 2 f (1, 75) + f (2)])
1 2
0, 25
= [ln(1) + 2 ln(1, 25) + 2 ln(1, 5) + 2 ln(1, 75) + ln(2)])
2
= 0, 383699509409442

O valor exato da integral é


Z 2 h i2
ln x dx = x ln x − x = (2 ln 2 − 2) − (−1) = 0, 386294361119891
1 1

Solução b): Para n = 4, temos h = 0, 25. Pela Regra de Simpson, temos


Z b
h b − a 4 (4)
f (x)dx = [ f (x0 ) + 4 f (x1 ) + 2 f (x2 ) + 4 f (x3 ) + f (x4 )] − h f (µ)
a 3 180
33
Assim,
Z 2
0, 25
ln x dx = [ f (1) + 4 f (1, 25) + 2 f (1, 5) + 4 f (1, 75) + f (2)])
1 3
0, 25
= [ln(1) + 4 ln(1, 25) + 2 ln(1, 5) + 4 ln(1, 75) + ln(2)])
3
= 0, 386259562814394

O valor exato da integral é


Z 2 h i2
ln x dx = x ln x − x = (2 ln 2 − 2) − (−1) = 0, 386294361119891
1 1

EXERCÍCIOS:
1. Utilize a regra do trapézio composta e a regra de Simpson composta com os valo-
res indicados de n para obter uma aproximação das seguintes integrais.
Z 2
a) x ln x dx n=4
Z1 2
b) x3 ex dx n=4
Z −2
2 2
c) 2
dx n = 6
Z0 π x + 4
d) x2 cos x dx n = 6
Z 02
e) e2x sen 3x dx n=8
0

4.4 Polinômios de Legendre


As fórmulas anteriores foram deduzidas pela integração de polinômios interpola-
dores. Essa técnica poderia ser utilizada para determinar os nós e os coeficientes
para fórmulas que forneçam resultados exatos para polinômios de grau maior, mas
um método alternativo pode obtê-los mais facilmente. O conjunto relevante para
o nosso problema a seguir é o conjunto dos polinômios de Legendre, uma coleção
{P0 (x), P1 (x), ..., Pn (x), ...} com as propriedades:
1. Para cada n, Pn (x) é um polinômio mônico de grau n (Os polinômios mônicos
têm o coeficiente dominante igual a 1).
Z 1
2. P(x)Pn (x)dx = 0 sempre que P(x) for um polinômio de grau menor que n.
−1

Os primeiros polinômios de Legendre são


1
P0 (x) = 1, P1 (x) = x, P2 (x) = x2 −
3
34
3 6 3
P3 (x) = x3 − x e P4 (x) = x4 − x2 +
5 7 35
As raı́zes desses polinômios são distintas, estão no intervalo (−1, 1), têm simetria
em relação à origem e, mais importante, são a escolha correta para a determinação
dos parâmetros que resolvem nosso problema.
Os nós x1 , x2 , ..., xn necessários para produzir uma fórmula de aproximação inte-
gral que forneça resultados exatos para todo polinômio de grau menor ou igual a 2n
são as raı́zes do polinômio de Legendre de grau n. Isso é estabelecido pelo resultado
a seguir.

Teorema: Suponha que x1 , x2 , ..., xn sejam as raı́zes do enésimo polinômio de Le-


gendre Pn (x) e que para todo i = 1, 2, ..., n, os números ci sejam definidos por
Z 1 n x−xj
ci = ∏ dx
−1 j=1, j̸=i xi − x j

Se P(x) é qualquer polinômio de grau menor que 2n, então


Z 1 n
P(x)dx = ∑ ci P(xi )
−1 i=1

As constantes ci necessárias para a regra de quadratura podem ser geradas a partir


da equação no Teorema, mas tanto essas constantes quanto as raı́zes dos polinômios
de Legendre são extensivamente tabuladas. A Tabela abaixo lista esses valores para
n = 2, 3, 4 e 5.

35
Z 1
Exemplo: Obtenha uma aproximação de ex cos xdx utilizando a quadratura
−1
de Gauss (teorema anterior) com n = 3.
Solução: Os itens da tabela para n = 3 fornecem:

Assim,
Z 1
ex cos xdx ≈ c1 f (x1 ) + c2 f (x2 ) + c3 f (x3 )
−1
= (0, 555...)e0,7745596692 cos(0, 7745596692) + (0, 888...)e0 cos(0)
+(0, 555...)e−0,7745596692 cos(−0, 7745596692)
= 1, 9333904

O valor verdadeiro pode ser encontrado utilizando integração por partes, e é


1, 9334214, de modo que o erro absoluto será menor que 3, 2 × 10−5 .

4.5 Quadratura de Gauss


Z b
Uma integral f (x)dx sobre um [a, b] arbitrário pode ser transformada em uma
a
integral sobre [−1, 1] utilizando a mudança de variáveis:
2x − a − b 1
t= ⇔ x = [(b − a)t + a + b]
b−a 2
Isso permite que a quadratura de Gauss seja aplicada a todo intervalo [a, b], já
que
Z b Z 1  
(b − a)t + (b + a) (b − a)
f (x)dx = f dt
a −1 2 2
Z 3
Exemplo: Considere a integral x6 −x2 sen (2x)dx = 317, 3442466. Compare esse
1
resultado com a aproximação da Quadratura de Gauss com n = 3.
Solução: A quadratura de Gauss aplicada a este problema exige que primeiro a in-
tegral seja transformada em um problema cujo intervalo de integração seja [−1, 1].
Assim, com a = 1 e b = 3, temos
2(1) − 1 − 3 2 − 4
• Quando x = 1, temos t= = = −1.
3−1 2
2(3) − 1 − 3 6 − 4
• Quando x = 3, temos t= = = 1.
3−1 2

36
• Além disso, temos
1 1 2(t + 2)
x = [(b − a)t + a + b] = x = [(3 − 1)t + 1 + 3] = = t +2
2 2 2
e
(b − a) (3 − 1) 2
dx = dt = dt = dt = dt
2 2 2
Logo,
Z 3 Z 1  
(b − a)t + (b + a) (b − a)
x6 − x2 sen (2x)dx = f dt
1 −1 2 2
Z 1
= f (t + 2)dt
−1

Como f (x) = x6 − x2 sen (2x), temos

F(t) = f (t + 2) = (t + 2)6 − (t + 2)2 sen (2(t + 2))

Logo,
Z 3 Z 1
6 2
x − x sen (2x)dx = F(t)dt
1 −1
≈ c1 F(x1 ) + c2 F(x2 ) + c3 F(x3 )

Pela Tabela, temos

Portanto,
Z 3 Z 1
6 2
x − x sen (2x)dx = F(t)dt
1 −1
≈ c1 F(x1 ) + c2 F(x2 ) + c3 F(x3 )
≈ (0, 555...)F(0, 7745966692) + (0, 888...)F(0)
+(0, 555...)F(−0, 7745966692)
≈ 317, 2641516.

Com erro absoluto de 0, 080095.


Z 1
Exemplo: Considere a integral x2 sen (2x)dx. Compare esse resultado com a
0
aproximação da Quadratura de Gauss com n = 2 e 3.

37
Solução: A quadratura de Gauss aplicada a este problema exige que primeiro a in-
tegral seja transformada em um problema cujo intervalo de integração seja [−1, 1].
Assim, com a = 0 e b = 1, temos
1 1 1
x = [(b − a)t + a + b] = x = [(1 − 0)t + 0 + 1] = (t + 1)
2 2 2
e
(1 − 0) 1
dx = dt = dt
2 2
Logo,
Z 1 Z 1  
2 (b − a)t + (b + a) (b − a)
x sen (2x)dx = f dt
0 −1 2 2
Z 1  
1 1
= f (t + 1) dt
−1 2 2
| {z }
F(t)

Como f (x) = x2 sen (2x), segue que

t +1 2
     
1 1 t +1 1
F(t) = f (t + 1) = sen 2
2 2 2 2 2
11
= (t + 1)2 sen (t + 1)
24
1
= (t + 1)2 sen (t + 1)
8
Logo, para n = 2, temos
Z 1 Z 1
2
x sen (2x)dx = F(t)dt
0 −1
≈ c1 F(x1 ) + c2 F(x2 )

Pela Tabela, temos

38
Portanto,
Z 1 Z 1
2
x sen (2x)dx = F(t)dt
0 −1
≈ c1 F(x1 ) + c2 F(x2 )
≈ (1, 0000)F(0, 5773502692) + (1, 0000)F(−0, 5773502692)
≈ (1)(0, 310997554529097) + (1)(0, 009158915562088)
≈ 0, 320156470091185

Para n = 3, temos

Logo,
Z 1 Z 1
2
x sen (2x)dx = F(t)dt
0 −1
≈ c1 F(x1 ) + c2 F(x2 ) + c3 F(x3 )
≈ (0, 5555555)F(0, 7745966692) + (0, 8888888)F(0)
+(0, 555555555556)F(−0, 7745966692)
≈ (0, 5555555)(0, 38550239734) + (0, 8888888)(0, 10518387310)
+(0, 555555555556)(0, 001419407984973)
≈ 0, 308453334601614

O valor exato da integral é ≈ 0, 30868....

EXERCÍCIOS:
1. Obtenha uma aproximação das integrais a seguir utilizando a quadratura de Gauss
com n = 2, 3 e 4 e compare seus resultados aos valores exatos das integrais.
Z 1,5
a) x2 ln x dx
Z1 1
b) x2 e−x dx
Z 00,35
2
c) dx
Z0
x2 − 4
π/4
d) x2 sen x dx
0

39
Capı́tulo 5

Problemas de valor inicial para


equações diferenciais
ordinárias
Qualquer livro-texto sobre equações diferenciais ordinárias detalha inúmeros métodos
para encontrar explicitamente soluções para problemas de valor inicial de primeira
ordem. Na prática, porém, poucos dos problemas que se originam do estudo de
fenômenos fı́sicos podem ser resolvidos exatamente.
Na maioria das situações da vida real, a equação diferencial que modela o pro-
blema é complicada demais para ser resolvida exatamente, e uma entre duas aborda-
gens é aplicada para aproximar a solução.

• A primeira abordagem é simplificar a equação diferencial para uma que possa


ser resolvida exatamente e depois usar a solução da equação simplificada para
aproximar a solução da equação original.

• A outra abordagem, que examinaremos neste capı́tulo, usa métodos de aproximação


da solução do problema original. Essa é a abordagem empregada mais comu-
mente, uma vez que os métodos de aproximação fornecem resultados mais
precisos e informações mais realı́sticas sobre erros.

Os métodos que consideramos neste capı́tulo não produzem uma aproximação


contı́nua para a solução do problema de valor inicial. Em vez disso, as aproximações
são encontradas em determinados pontos especificados e, muitas vezes, igualmente
espaçados.
Precisamos de algumas definições e resultados da teoria das equações diferenci-
ais ordinárias antes de considerar métodos para a aproximação de soluções de pro-
blemas de valores iniciais.

Definição: Uma função f (t, y) satisfaz uma condição de Lipschitz na variável y


em um conjunto D ⊂ R2 se existir uma constante L > 0 tal que

| f (t, y1 ) − f (t, y2 )| ≤ L|y1 − y2 |

40
sempre que (t, y1 ) e (t, y2 ) estiverem em D. A constante L é chamada de constante
de Lipschitz para f .

Definição: Um conjunto D ⊂ R2 é dito convexo se, sempre que (t1 , y1 ) e (t2 , y2 )


pertencerem a D, então ((1 − λ )t1 + λt2 , (1 − λ )y1 + λ y2 ) também pertencer a D
para todo λ em [0, 1].

Teorema: Suponha que f (t, y) esteja definido em um conjunto convexo D ⊂ R2 .


Se existir uma constante L > 0 tal que

∂f
(t, y) ≤ L, para todo (t, y) ∈ D
∂y
então f satisfaz uma condição de Lipschitz em D na variável y, com constante de
Lipschitz L.

Teorema: Suponha que D = {(t, y)| a ≤ t ≤ b e − ∞ < y < ∞} e que f (t, y) seja
contı́nua em D. Se f satisfizer uma condição de Lipschitz em D na variável y, então
o problema de valor inicial

y′ (t) = f (t, y), a ≤ t ≤ b, y(a) = α

tem uma única solução y(t) para a ≤ t ≤ b.

5.1 Problemas bem-postos


Precisamos saber se pequenas variações no enunciado de um problema de valor ini-
cial introduzem variações correspondentemente pequenas na solução. Isto também é
importante por causa dos erros de arredondamento.

Definição: O problema de valor inicial

y′ (t) = f (t, y), a ≤ t ≤ b, y(a) = α

é considerado um problema bem-posto se:

• Existir uma única solução, y(t), para o problema, e

• Existirem constantes ε0 > 0 e k > 0 tais que, para qualquer ε, em (0, ε0 ), sem-
pre que δ (t) for contı́nua com |δ (t)| < ε para todo t em [a, b] e quando |δ0 | < ε,
o problema de valor inicial
dz
= f (t, z) + δ (y), a ≤ t ≤ b, z(a) = α + δ0
dt

41
tem uma única solução z(t) que satisfaz

|z(t) − y(t)| < kε pata todo t em [a, b]

O problema especificado acima é chamado de problema perturbado associado


ao problema original.
Os métodos numéricos sempre estarão ligados à resolução de um problema per-
turbado, já que qualquer erro de arredondamento introduzido na representação per-
turba o problema original.
A menos que o problema original seja bem-posto, há poucas razões para esperar
que a solução numérica de um problema perturbado aproxime de modo preciso a
solução do problema original.
O teorema a seguir especifica condições que asseguram que um problema de va-
lor inicial seja bem-posto.

Teorema: Suponha que D = {(t, y)| a ≤ t ≤ b e − ∞ < y < ∞}. Se f for contı́nua e
satisfizer a uma condição de Lipschitz na variável y no conjunto D, então o problema
de valor inicial
dy
= f (t, y), a ≤ t ≤ b, y(a) = α
dt
é bem-posto.

5.2 Método de Euler


Apesar de o método de Euler ser raramente usado na prática, a simplicidade de sua
dedução pode ser utilizada para ilustrar as técnicas envolvidas na construção de al-
gumas das técnicas mais avançadas, sem a álgebra incômoda que acompanha essas
construções.
O objetivo do método de Euler é obter uma aproximação para a solução do pro-
blema de valor inicial bem-posto
dy
= f (t, y), a ≤ t ≤ b, y(a) = α
dt
Na realidade, não será obtida uma aproximação contı́nua para a solução y(t); em
vez disso, aproximações de y serão geradas em vários valores, chamados pontos da
malha, no intervalo [a, b].
Uma vez que a solução aproximada é obtida nos pontos, a solução aproximada
em outros pontos no intervalo pode ser encontrada por meio da interpolação.
Em primeiro lugar, estipulamos que os pontos de malha sejam igualmente dis-
tribuı́dos por todo o intervalo [a, b]. Essa condição é assegurada por meio da escolha
de um número inteiro positivo N, tomando h = (b − a)/N, e pela seleção dos pontos
de malha
ti = a + ih

42
para cada i = 0, 1, 2, 3, ..., N. A distância comum entre os pontos h é chamada tama-
nho do passo.
Usaremos o Teorema de Taylor para deduzir o método de Euler. Suponha que
y(t), a única solução da equação diferencial, tenha duas derivadas contı́nuas em [a, b],
de forma que, para cada i = 1, 2, ..., N − 1,

′ (ti+1 − ti )2 ′′
y(ti+1 ) = y(ti ) + (ti+1 − ti )y (ti ) + y (ξi )
2
para algum número ξi em (ti ,ti+1 ). Como h = ti+1 − ti , temos

′ h2 ′′
y(ti+1 ) = y(ti ) + hy (ti ) + y (ξi )
2
e, como y(t) satisfaz a equação diferencial,

h2 ′′
y(ti+1 ) = y(ti ) + h f (ti , y(ti )) + y (ξi )
2
O método de Euler constrói wi ≈ y(ti ) para cada i = 1, 2, ..., N, desprezando o
resto. Assim, o método de Euler é

w0 = α
wi+1 = wi + h f (ti , wi )

para cada i = 0, 1, 2, 3, ..., N − 1.

Exemplo: Use o Método de Euler para a aproximar a solução da Equação Dife-


rencial:
y′ = y − t 2 + 1, 0 ≤ t ≤ 2, y(0) = 0, 5
em t = 2 usando h = 0, 5.
Solução: Para este problema, f (t, y) = y − t 2 + 1; assim, para t0 = 0, 0; t1 = 0, 5;
t2 = 1, 0; t3 = 1, 5 e t4 = 2, 0. A condição inicial nos dá:

w0 = y(0) = 0, 5

Pelo Método de Euler:

wi+1 = wi + h f (ti , wi ) para cada i = 0, 1, 2, 3, ..., N − 1

Para i = 0, segue que:

w1 = w0 + h f (t0 , w0 )
= 0, 5 + 0, 5(0, 5 − (0, 0)2 + 1)
= 1, 25

43
Seguindo para i = 1, 2, 3 e utilizando o resultado anterior, w1 = 1, 25, resulta:

w2 = w1 + 0, 5(w1 − (t1 )2 + 1) = 1, 25 + 0, 5(2, 0) = 2, 25;


w3 = w2 + 0, 5(w2 − (t2 )2 + 1) = 2, 25 + 0, 5(2, 25) = 2, 375;
w4 = w3 + 0, 5(w3 − (t3 )2 + 1) = 3, 375 + 0, 5(2, 125) = 4, 4375.

Portanto, y(2) ≈ w4 = 4, 4375.

ALGORITMO - Método de Euler:


Para encontrar uma aproximação da solução do problema de valor inicial
dy
= f (t, y), a ≤ t ≤ b, y(a) = α
dt
em (N − 1) números igualmente espaçados no intervalo [a, b]:
ENTRADA extremidades a, b; número inteiro N; condição inicial α.
SAÍDA aproximação w de y nos (N − 1) valores de t.
Passo 1 Faça h = (b − a)/N;
t = a;
w=α
SAÍDA(t, w).
Passo 2 Para i = 1, 2, ..., N, execute os passos 3 e 4.
Passo 3 Faça w = w + h f (t, w); (Calcule wi )
t = a + ih. (Calcule ) ti .
Passo 4 SAÍDA(t,w).
Passo 5 PARE.

EXERCÍCIOS:
1. Use o método de Euler para obter uma aproximação para as soluções de cada um
dos seguintes problemas de valor inicial.
a) y′ = te3t − 2y, 0 ≤ t ≤ 1, y(0) = 0, com h = 0, 5.
b) y′ = 1 + (t − y)2 , 2 ≤ t ≤ 3, y(2) = 1, com h = 0, 5.
c) y′ = 1 + y/t, 1 ≤ t ≤ 2, y(1) = 2, com h = 0, 25.
d) y′ = cos 2t + sen 3t, 0 ≤ t ≤ 1, y(0) = 1, com h = 0, 25.
e) y′ = et−y , 0 ≤ t ≤ 1, y(0) = 1, com h = 0, 5.

44
5.3 Método de Taylor
O método de Taylor de ordem n é

w0 = α
wi+1 = wi + hT (n) (ti , wi ), para cada i = 0, 1, ..., N − 1

em que

h hn−1 (n−1)
T (n) (ti , wi ) = f (ti , wi ) + f ′ (ti , wi ) + · · · + f (ti , wi )
2 n!
O método de Euler é o método de Taylor de primeira ordem.

5.4 Métodos de Runge-Kutta


Os métodos de Runge-Kutta têm o erro de truncamento local de alta ordem ao mesmo
tempo que eliminam a necessidade de calcular as derivadas de f (t, y).
Antes de apresentar as ideias por trás de sua dedução, precisamos enunciar o
Teorema de Taylor em duas variáveis.
No final do século XIX, Carl Runge (1856-1927) usou métodos similares àqueles
apresentados nesta seção para deduzir diversas fórmulas para encontrar uma aproximação
da solução dos problemas de valor inicial.
Em 1901, Martin Wilhelm Kutta (1867-1944) generalizou os métodos que Runge
desenvolveu em 1895, para incorporar sistemas de equações diferenciais de pri-
meira ordem. Estas técnicas são ligeiramente diferentes daquelas que chamamos
hoje em dia de métodos de Runge-Kutta.

Teorema: Suponha que f (t, y) e que todas as suas derivadas parciais de ordem me-
nor ou igual a n + 1 sejam contı́nuas em D = {(t, y) | a ≤ t ≤ b, c ≤ y ≤ d}, e seja
(t0 , y0 ) ∈ D. Para cada (t, y) ∈ D, existem ξ entre t e t0 e µ entre y e y0 tais que

f (t, y) = Pn (t, y) + Rn (t, y)

em que
 
∂f ∂f
Pn (t, y) = f (t0 , y0 ) + (t − t0 ) (t0 , y0 ) + (y − y0 ) (t0 , y0 )
∂t ∂y
 2
(t − t0 ) ∂ f2 ∂2 f
+ (t0 , y0 ) + (t − t0 )(y − y0 ) (t0 , y0 )
2! ∂t 2 ∂t∂ y
(y − y0 )2 ∂ 2 f

+ (t0 , y0 ) + · · ·
2! ∂ y2
" #
1 n n nf
 

+ ∑ (t − t0 )n− j (y − y0 ) j n− j j (t0 , y0 )
n! j=0 j ∂t ∂ y

45
e
n+1 
∂ n+1 f

1 n+1 n+1− j j
Rn (t, y) = ∑ j (t − t0)
(n + 1)! j=0
(y − y0 ) n+1− j j (ξ , µ)
∂t ∂y
A função Pn (t, y) é chamada de enésimo polinômio de Taylor em duas variáveis
para a função f em torno de (t0 , y0 ) e Rn (t, y) é o resto associado à Pn (t, y).

Métodos de Runge-Kutta de segunda ordem:


O primeiro passo na dedução de um método Runge-Kutta é determinar valores para
a1 α1 e β1 com a propriedade de que a1 f (t + α1 , y + β1 ) forneça uma aproximação
de
h
T (2) (t, y) = f (t, y) + f ′ (t, y)
2
com erro não maior que O(h2 ). Como

df ∂f ∂f
f ′ (t, y) = (t, y) = (t, y) + (t, y) · y′ (t) e y′ (t) = f (t, y)
dt ∂t ∂y
temos
h∂ f h∂ f
T (2) (t, y) = f (t, y) + (t, y) + (t, y) · f (t, y)
2 ∂t 2 ∂y
Expandindo a1 f (t + α1 , y + β1 ) em seu polinômio de Taylor de primeiro grau em
torno de (t, y), teremos

∂f ∂f
a1 f (t + α1 , y + β1 ) = a1 f (t, y) + a1 α1 (t, y) + a1 β1 (t, y) + a1 R1
∂t ∂y
Igualando os coeficientes de f e de suas derivadas nas equações anteriores, obte-
mos as três equações
h h
a1 = 1, α1 = e β1 = f (t, y)
2 2
de modo que  
(2) h h
T (t, y) = f t + , y + f (t,t) − R1 [O(h2 )]
2 2
Este é um método de Runge-Kutta especı́fico conhecido como o método do ponto
médio.

Método do Ponto Médio:

w0 = α  
h h
wi+1 = wi + h f ti + , wi + f (ti , wi ) , para cada i = 0, 1, ..., N − 1
2 2

46
Apenas três parâmetros estão presentes em a1 f (t + α1 , y + β1 ) e todos são ne-
cessários na aproximação de T (2) (t, y). A forma mais apropriada com quatro parâmetros
para a aproximação de

h h2
T (3) (t, y) = f (t, y) + f ′ (t, y) + f ′′ (t, y)
2 6

a1 f (t, y) + a2 f (t + α2 , y + δ2 f (t, y))
O fato de a equação acima ter quatro parâmetros dá uma flexibilidade à sua esco-
lha, de modo que diversos métodos O(h2 ) podem ser deduzidos. Um dos mais impor-
1
tantes é o método de Euler modificado, o qual corresponde às escolhas a1 = a2 =
2
e α2 = δ2 = h e tem a seguinte forma de equação de diferença.

Método de Euler Modificado:


Para cada i=0,1,...,N-1:

w0 = α
h
wi+1 = wi + [ f (ti , yi ) + f (ti+1 , wi + h f (ti , wi ))]
2
Exemplo: Use o método do ponto médio e o método de Euler modificado com
N = 10, h = 0, 2, ti = 0, 2i e w0 = 0, 5 para aproximar a solução da EDO:

y′ = y − t 2 + 1, 0 ≤ t ≤ 2, y(0) = 0, 5

Solução: Vamos determinar as equações produzidas pelos métodos:

• Método do ponto médio:


 
h h
wi+1 = wi + h f ti + , wi + f (ti , wi )
2 2
= wi + 0, 2 f (ti + 0, 1; wi + 0, 1 f (ti , wi ))
 
2
= wi + 0, 2 f 0, 2i + 0, 1; wi + 0, 1[wi − (0, 2i) + 1]
= 1, 22wi − 0, 0088i2 − 0, 008i + 0, 218

Assim,

– Para i = 0:

w1 = 1, 22(0, 5) − 0, 0088(0)2 − 0, 008(0) + 0, 218 = 0, 828

47
– Para i = 1:

w2 = 1, 22(0, 828) − 0, 0088(1)2 − 0, 008(1) + 0, 218 = 1, 21136

• Método de Euler modificado:


h
wi+1 = wi + [ f (ti , yi ) + f (ti+1 , wi + h f (ti , wi ))]
2
= 1, 22wi − 0, 0088i2 − 0, 008i + 0, 216

Assim,

• Para i = 0:

w1 = 1, 22(0, 5) − 0, 0088(0)2 − 0, 008(0) + 0, 216 = 0, 826

• Para i = 1:

w2 = 1, 22(0, 826) − 0, 0088(1)2 − 0, 008(1) + 0, 216 = 1, 20692

Para cada i = 2, 3, ..., 9. Os resultados restantes encontram-se na tabela abaixo:

Solução 02: Método de Euler modificado:

h
wi+1 = wi + [ f (ti , wi ) + f (ti+1 , wi + h f (ti , wi ))]
2
Sabemos que f (t, y) = y − t 2 + 1, h = 0, 2, w0 = 0, 5 e ti = 0, 2i. Assim,

48
• Para i = 0:
h
w1 = w0 + [ f (t0 , w0 ) + f (t1 , w0 + h f (t0 , w0 ))]
2
0, 2
= 0, 5 + [ f (0; 0, 5) + f (0, 2; 0, 5 + 0, 2 · f (0; 0, 5))]
2
0, 2 h 2 2
i
= 0, 5 + [0, 5 − 0 + 1] + f (0, 2; 0, 5 + 0, 2 · [0, 5 − 0 + 1])
2
= 0, 5 + 0, 1 [1, 5 + f (0, 2; 0, 8)]
= 0, 5 + 0, 1 [3, 26]]
= 0, 5 + 0, 326
= 0, 826

E assim repete para i = 1, i = 2, i = 3,...

EXERCÍCIOS:
1. Use o método de Euler modificado e o método do ponto médio para encontrar
aproximações das soluções de cada um dos seguintes problemas de valor inicial e
compare os resultados com os valores reais.
a) y′ = te3t − 2y, 0 ≤ t ≤ 1, y(0) = 0, com h = 0, 5; solução real y(t) =
1 3t 1 3t 1 −2t
te − e + e .
5 25 25
b) y′ = 1 + (t − y)2 , 2 ≤ t ≤ 3, y(2) = 1, com h = 0, 5; solução real
1
y(t) = 2t + .
1−t
y
c) y′ = 1 + , 1 ≤ t ≤ 2, y(1) = 2, com h = 0, 25; solução real y(t) =
t
t lnt + 2t.

5.5 Métodos de Runge-Kutta de ordens superiores


O termo T (3) (t, y) pode ser aproximado com erro O(h3 ) por uma expressão da forma

f (t + α1 , y + δ1 f (t + α2 , y + δ2 f (t, y)))

envolvendo quatro parâmetros e a álgebra envolvida na determinação de α1 , δ1 , α2 e


δ2 é bem complicada.
Os métodos de Runge-Kutta de terceira ordem em geral não são usados. O
método de Runge-Kutta mais comumente usado é o de quarta ordem na forma de
equações de diferença.

49
Método de Runge-Kutta de quarta ordem:
Para cada i = 0, 1, ..., N − 1:

w0 = α
k1 = h f (ti , wi ),
 
h 1
k2 = h f ti + , wi + k1 ,
2 2
 
h 1
k 3 = h f t i + , wi + k 2 ,
2 2
k4 = h f (ti + h, wi + k3 ) ,
1
wi+1 = wi + (k1 + 2k2 + 2k3 + k4 )
6
Esse método tem erro de truncamento local O(h4 ), desde que a solução y(t) tenha
cinco derivadas contı́nuas. O motivo para apresentação da notação k1 , k2 , k3 e k4 no
método é para eliminar a necessidade de encaixes sucessivos na segunda variável de
f (t, y).

ALGORITMO - Método de Runge-Kutta (quarta ordem):


Para aproximar da solução do problema de valor inicial

y′ = f (t, y), a ≤ t ≤ b, y(a) = α

em (N + 1) números igualmente espaçados no intervalo [a, b]:


ENTRADA extremidades a, b; número inteiro N; condição inicial α.
SAÍDA aproximação wpara y nos (N + 1) valores de t.
Passo 1 Faça h = (b − a)/N;
t = a;
w=α
SAÍDA (t, w).
Passo 2 Para i = 1, 2, ..., N, execute os passos 3 a 5.
Passo 3 Faça K1 = h f (t, w);
K2 = h f (t + h/2, w + K1 /2);
K3 = h f (t + h/2, w + K2 /2);
K4 = h f (t + h, w + K3 );
Passo 4 Faça w = w + (K1 + 2K2 + 2K3 + K4 )/6; (Calcule wi )
t = a + ih. (Calcule ti ).
Passo 5 SAÍDA(t, w).
Passo 6 PARE.

Exemplo: Use o método de Runge-Kutta de quarta ordem com N = 10, h = 0, 2,

50
ti = 0, 2i e w0 = 0, 5 para aproximar a solução da EDO:

y′ = y − t 2 + 1, 0 ≤ t ≤ 2, y(0) = 0, 5

Solução: O método de Runge-Kutta de quarta ordem para i = 0 é dado por:

w0 = 0, 5
k1 = h f (t0 , w0 )
 
h 1
k2 = h f t0 + , w0 + k1
2 2
 
h 1
k3 = h f t0 + , w0 + k2
2 2
k4 = h f (t0 + h, w0 + k3 )
1
w1 = w0 + (k1 + 2k2 + 2k3 + k4 )
6
Assim, para h = 0, 2, t0 = 0 e f (t, y) = y − t 2 + 1, temos:

w0 = 0, 5
k1 = h f (t0 , w0 ) = 0, 2 f (0, 0, 5) = 0, 2(1, 5) = 0, 3
 
h 1
k2 = h f t0 + , w0 + k1 = 0, 2 f (0, 1, 0, 65) = 0, 328
2 2
 
h 1
k3 = h f t0 + , w0 + k2 = 0, 2 f (0, 1, 0, 664) = 0, 3308
2 2
k4 = h f (t0 + h, w0 + k3 ) = 0, 2 f (0, 2, 0, 8308) = 0, 35816
1
w1 = w0 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0, 5 + (0, 3 + 2(0, 328) + 2(0, 3308) + 0, 35816)
6
= 0, 8292933.

51
Para i = 1, resulta:

w1 = 0, 8292933
k1 = h f (t1 , w1 ) = 0, 2 f (0, 0, 5) = 0, 2(1, 5) = 0, 3
 
h 1
k2 = h f t1 + , w1 + k1 = 0, 2 f (0, 1, 0, 65) = 0, 328
2 2
 
h 1
k3 = h f t1 + , w1 + k2 = 0, 2 f (0, 1, 0, 664) = 0, 3308
2 2
k4 = h f (t1 + h, w1 + k3 ) = 0, 2 f (0, 2, 0, 8308) = 0, 35816
1
w2 = w1 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0, 8292933 + (0, 3 + 2(0, 328) + 2(0, 3308) + 0, 35816)
6
= 1, 2140762.

Os resultados restantes encontram-se na tabela abaixo:

Comparações computacionais:
O principal esforço computacional na aplicação dos métodos de Runge-Kutta é o
cálculo de f . Nos métodos de segunda ordem, o erro de truncamento local é O(h2 ) e
o custo é de dois cálculos da função por passo. O método de Runge-Kutta de quarta
ordem requer quatro cálculos de função por passo, e o erro de truncamento local é
O(h4 ).
Butcher estabeleceu a relação entre o número de cálculos de função por passo e
a ordem do erro de truncamento local exibida na Tabela abaixo.
Essa tabela indica por que os métodos de ordem menor que cinco com tamanho
de passo menor são preferı́veis aos métodos de ordem superior usando um tamanho
de passo maior.

52
EXERCÍCIOS:
1. Use o método de Runge-Kutta de quarta ordem para encontrar aproximações das
soluções de cada um dos seguintes problemas de valor inicial e compare os resulta-
dos com os valores reais.
a) y′ = te3t − 2y, 0 ≤ t ≤ 1, y(0) = 0, com h = 0, 5; solução real y(t) =
1 3t 1 3t 1 −2t
te − e + e .
5 25 25
b) y′ = 1 + (t − y)2 , 2 ≤ t ≤ 3, y(2) = 1, com h = 0, 5; solução real
1
y(t) = 2t + .
1−t
y
c) y′ = 1 + , 1 ≤ t ≤ 2, y(1) = 2, com h = 0, 25; y(t) = t lnt + 2t.
t
d) y′ = et−y , 0 ≤ t ≤ 1, y(0) = 1, com h = 0, 5; solução real y(t) =
ln(et + e − 1).
2 − 2ty 2t + 1
e) y′ = 2 , 0 ≤ t ≤ 1, y(0) = 1, com h = 0, 1; y(t) = 2 .
t +1 t +1

5.6 Equações de ordem superior e sistemas de equações


diferenciais
Esta seção contém uma introdução à solução numérica de problemas de valor inicial
de ordem superior. As técnicas discutidas são limitadas àquelas que transformam
uma equação de ordem superior em um sistema de equações diferenciais de primeira
ordem.
Um sistema de ordem m de problemas de valor inicial de primeira ordem tem a
forma
du1
= f1 (y, u1 , u2 , ..., um ),
dt
du2
= f2 (y, u1 , u2 , ..., um ),
dt
..
.
dum
= fm (y, u1 , u2 , ..., um ),
dt

53
para a ≤ t ≤ b, com condições iniciais

u1 (a) = α1 , u2 (a) = α2 , ··· um (a) = αm

O objetivo é encontrar m funções u1 (t), u2 (t), ..., um (t) que satisfaçam cada uma
das equações diferenciais junto com todas as condições iniciais.
Os métodos para resolver sistemas de equações diferenciais de primeira ordem
são generalizações dos métodos para uma única equação de primeira ordem apresen-
tados anteriormente neste capı́tulo.
Por exemplo, o método clássico de Runge-Kutta de quarta ordem é generalizado
como segue:
Escolha um número inteiro N > 0 e tome h = (b − a)/N. Divida o intervalo [a, b]
em N subintervalos com os pontos de malha

t j = a + jh

Use a notação wi j para cada j = 0, 1, ..., N e i = 1, 2, ..., m, para denotar uma


aproximação para ui (t j ). Isto é, wi j aproxima a i-ésima solução do sistema no j-
ésimo ponto da malha t j . Como condições iniciais, tome

w1,0 = α1 , w2,0 = α2 , ··· wm,0 = αm

Suponha que os valores w1, j , w2, j , ..., wm, j tenham sido calculados. Temos

k1,i = h fi (t j , w1, j , w2, j , ..., wm, j ),


 
h 1 1 1
k2,i = h fi t j + , w1, j + k1,1 , w2, j + k1,2 , ..., wm, j + k1,m ,
2 2 2 2
 
h 1 1 1
k3,i = h fi t j + , w1, j + k2,1 , w2, j + k2,2 , ..., wm, j + k2,m ,
2 2 2 2

k4,i = h fi t j + h, w1, j + k3,1 , w2, j + k3,2 , ..., wm, j + k3,m

para cada i = 1, 2, ..., m e então


1
wi, j+1 = wi, j + (k1,i + 2k2,i + 2k3,i + k4,i )
6
para cada i = 1, 2, ..., m. Observe que todos os valores k1,1 , k1,2 , ..., k1,m devem
ser calculados antes que quaisquer termos da forma k2,i possam ser determinados.

Exemplo: Transforme o problema de valor inicial de segunda ordem

y′′ − 2y′ + 2y = e2t sen t, para 0 ≤ t ≤ 1, com y(0) = −0, 4, y′ (0) = −0, 6

em um sistema de problemas de valor inicial de primeira ordem e use o método


Runge-Kutta com h = 0, 1 para obter a aproximação da solução.
Solução: Sejam u(t) = y(t) e v = y′ (t). Isso transforma a equação de segunda ordem

54
no sistema
du
= v
dt
dv
= e2t sen t − 2u + 2v
dt
com condições iniciais u(0) = −0, 4 e v(0) = −0, 6. Temos f1 (t, u, v) = v e f2 (t, u, v) =
e2t sen t − 2u + 2v. Além disso, w1,0 = −0, 4 e w2,0 = −0, 6.
Sabendo que f1 (t, u, v) = v, f2 (t, u, v) = e2t sen t − 2u + 2v e, além disso, w1,0 =
−0, 4 e w2,0 = −0, 6, o método de Runge-Kutta fornece:

k1,1 = h f1 (t0 , w1,0 , w2,0 ) = hw2,0 = −0, 06


k1,2 = h f2 (t0 , w1,0 , w2,0 ) = h[e2t0 sen t0 − 2w1,0 + 2w2,0 ] = −0, 04
 
h 1 1
k2,1 = h f1 t0 + , w1,0 + k1,1 , w2,0 + k1,2 = −0, 062
2 2 2
 
h 1 1
k2,2 = h f2 t0 + , w1,0 + k1,1 , w2,0 + k1,2 = −0, 03247644757
2 2 2
 
h 1 1
k3,1 = h f1 t0 + , w1,0 + k2,1 , w2,0 + k2,2 = −0, 066162832238
2 2 2
 
h 1 1
k3,2 = h f2 t0 + , w1,0 + k2,1 , w2,0 + k2,2 = −0, 031524092337
2 2 2

k4,1 = h f1 t0 + h, w1,0 + k3,1 , w2,0 + k3,2 = −0, 06315240924

k4,2 = h f2 t0 + h, w1,0 + k3,1 , w2,0 + k3,2 = −0, 02178637298

Portanto,
1
w1,1 = w1,0 + (k1,1 + 2k2,1 + 2k3,1 + k4,1 ) = −0, 4617333423
6
e
1
w2,1 = w2,0 + (k1,2 + 2k2,2 + 2k3,2 + k4,2 ) = −0, 6316312421
6
O valor w1,1 aproxima u(0, 1) = y(0, 1).
Os demais valores da aproximação estão na tabela:

EXERCÍCIOS:
1. Use o método de Runge-Kutta para sistemas para encontrar a aproximação da
solução do seguinte sistema de equações diferenciais de primeira ordem e compare
o resultado à solução real.

u′ = 3u + 2v − (2t 2 + 1)e2t , u(0) = 1


v′ = 4u + v + (t 2 + 2t − 4)e2t , v(0) = 1

com 0 ≤ t ≤ 1 e h = 0, 2.

55
2. Use o Algoritmo de Runge-Kutta para sistemas para encontrar uma aproximação
da solução do seguinte sistema de equações diferenciais de ordem superior e compare
os resultados à solução real.

y′′ − 2y′ + y = tet − t 0 ≤ t ≤ 1, y(0) = y′ (0) = 0


1
com h = 0, 1 e solução real y(t) = t 3 et − tet + 2et − t − 2.
6

5.7 Métodos explı́citos de Adams-Bashforth


Os métodos discutidos até este ponto são chamados métodos de passo único, pois
a aproximação no ponto da malha, ti+1 , envolve informações de somente um dos
pontos anteriores de malha ti .
Métodos que usam a aproximação em mais de um ponto anterior da malha para
determinar a aproximação no próximo ponto são chamados métodos de passo múltiplo.
A definição precisa desses métodos vem a seguir junto com a definição de dois tipos
de métodos de passo múltiplo.

Definição: Um método de passo múltiplo de m passos para a solução de um pro-


blema de valor inicial

y′ = f (t, y), a ≤ t ≤ b, y(a) = α

tem uma equação de diferença para encontrar a aproximação wi+1 no ponto ti+1 da
malha representada pela equação a seguir, em que m é um número inteiro maior que
1:

wi+1 = am−1 wi + am−2 wi−1 + · · · + a0 wi+1−m + h[bm f (ti+1 , wi+1 ) +


+bm−1 f (ti , wi ) + · · · + b0 f (ti+1−m , wi+1−m )]

56
para i = m − 1, m, ..., N − 1, em que h = (b − a)/N e a0 , a1 , ..., am−1 e b0 , b1 , ..., bm
são constantes, e os valores iniciais

w0 = α, w1 = α1 , w2 = α2 , ··· wm−1 = αm−1

são especificados.
Quando bm = 0 o método é chamado explı́cito ou aberto, pois a equação anterior
fornece então wi+1 explicitamente em termos de valores previamente determinados.
Quando bm ̸= 0 o método é chamado implı́cito ou fechado, pois wi+1 ocorre em
ambos os lados da equação anterior e somente é especificado implicitamente.
Alguns dos métodos de passo múltiplo explı́citos, junto com seus valores iniciais
necessários e seus erros de truncamento locais, estão a seguir:

Método explı́cito de Adams-Bashforth de dois passos:


w0 = α, w1 = α1
h
wi+1 = wi + [3 f (ti , wi ) − f (ti−1 , wi−1 )]
3
em que i = 1, 2, ..., N − 1. O erro de truncamento local é
5 ′′′
τi+1 (h) = y (µi )h2
12
para algum µi ∈ (ti−1 ,ti+1 ).

Método explı́cito de Adams-Bashforth de três passos:


w0 = α, w1 = α1 , w2 = α2
h
wi+1 = wi + [23 f (ti , wi ) − 16 f (ti−1 , wi−1 ) + 5 f (ti−2 , wi−2 )]
12
em que i = 2, 3, ..., N − 1. O erro de truncamento local é
3
τi+1 (h) = y(4) (µi )h3
8
para algum µi ∈ (ti−2 ,ti+1 ).

Método explı́cito de Adams-Bashforth de quatro passos:


w0 = α, w1 = α1 , w2 = α 2 , w3 = α 3
h
wi+1 = wi + [55 f (ti , wi ) − 59 f (ti−1 , wi−1 ) + 37 f (ti−2 , wi−2 ) − 9 f (ti−3 , wi−3 )]
24

57
em que i = 3, 4, ..., N − 1. O erro de truncamento local é
251 (5)
τi+1 (h) = y (µi )h4
720
para algum µi ∈ (ti−3 ,ti+1 ).

Exemplo: Utilize o método de quarta ordem de Adams-Bashforth para obter a


aproximações de y(0, 8) e y(1, 0) do problema de valor inicial

y′ = y − t 2 + 1, 0 ≤ t ≤ 2, y(0) = 0, 5

Solução: De acordo com o método de quarta ordem de Adams-Bashforth, temos:

h
wi+1 = wi + [55 f (ti , wi ) − 59 f (ti−1 , wi−1 ) + 37 f (ti−2 , wi−2 ) − 9 f (ti−3 , wi−3 )]
24
E para n = 3, segue que:
h
w4 = w3 + [55 f (t3 , w3 ) − 59 f (t2 , w2 ) + 37 f (t1 , w1 ) − 9 f (t0 , w0 )]
24
As primeiras quatro aproximações já encontramos anteriormente utilizando o
Método de Runge-Kutta de ordem 4 com h = 0, 2. Temos:

• y(0) = w0 = 0, 5

• y(0, 2) ≈ w1 = 0, 8292933

• y(0, 4) ≈ w2 = 1, 2140762

• y(0, 6) ≈ w3 = 1, 6489220

Assim, sendo f (t, y) = y − t 2 + 1, resulta


h
y(0, 8) ≈ w4 = w3 + [55 f (t3 , w3 ) − 59 f (t2 , w2 ) + 37 f (t1 , w1 ) − 9 f (t0 , w0 )]
24
0, 2
= 1, 6489220 + [55 f (0, 6; 1, 6489220) − 59 f (0, 4; 1, 2140762)
24
+37 f (0, 2; 0, 8292933) − 9 f (0; 0, 5)]
= 2, 1272892

e
h
y(1, 0) ≈ w5 = w4 + [55 f (t4 , w4 ) − 59 f (t3 , w3 ) + 37 f (t2 , w2 ) − 9 f (t1 , w1 )]
24
= 2, 6410533

EXERCÍCIOS:

58
1. Use todos os métodos de Adams-Bashforth para encontrar aproximações das
soluções dos problemas de valor inicial. Em cada caso, use valores iniciais exatos e
compare os resultados com os valores reais.
a) y′ = te3t − 2y, 0 ≤ t ≤ 1, y(0) = 0, com h = 0, 2; solução real y(t) =
1 3t 1 3t 1 −2t
te − e + e .
5 25 25
b) y′ = 1 + (t − y)2 , 2 ≤ t ≤ 3, y(2) = 1, com h = 0, 2; solução real
1
y(t) = t + .
1−t
y
c) y′ = 1 + , 1 ≤ t ≤ 2, y(1) = 2, com h = 0, 2; solução real y(t) =
t
t lnt + 2t.

5.8 O método de Gauss-Seidel


Técnicas iterativas são raramente utilizadas para a solução de sistemas lineares de
pequena dimensão, já que o tempo necessário para obter precisão suficiente excede
o necessário por técnicas diretas, tais como a eliminação de Gauss.
Para grandes sistemas com alta porcentagem de elementos 0, todavia, essas técnicas
são eficientes em termos tanto de armazenamento no computador quanto de cálculos.
Sistemas desse tipo surgem frequentemente em análise de circuitos e na solução
numérica de problemas de contorno e equações diferenciais parciais.
Uma técnica iterativa para a solução do sistema linear, Ax = b, n × n, começa
com uma aproximação inicial x(0) para a solução x e gera uma sequência de vetores
{x(k) }∞k=0 que converge para x.

O método de Gauss-Seidel:
(k)
As componentes de x(k−1) são utilizadas para calcular todas as componentes xi de
(k) (k)
x(k) . Mas, para i > 1, as componentes x1 , ..., xi−1 de x(k) já foram calculadas e são
(k−1) (k−1)
aproximações melhores para as soluções verdadeiras x1 , ..., xi−1 que x1 , ..., xi−1 .
(k)
Assim, parece mais razoável calcular xi usando estes valores mais recentemente
calculados. Isto é, podemos utilizar
" #
i−1 n
(k) 1 (k) (k−1)
xi = − ∑ (ai j x j ) − ∑ (ai j x j ) + bi
aii j=1 j=i+1

para cada i = 1, 2, ..., n. Esta modificação é denominada a técnica iterativa de


Gauss-Seidel e está ilustrada no seguinte exemplo.

Exemplo: Use a técnica iterativa de Gauss-Seidel para encontrar soluções apro-

59
ximadas de
10x1 − x2 + 2x3 = 6
−x1 + 11x2 − x3 + 3x4 = 25
2x1 − x2 + 10x3 − x4 = −11
3x2 − x3 + 8x4 = 15
começando com x = (0, 0, 0, 0)t e iterando até k = 5.
Solução: Para o método de Gauss-Seidel, escrevemos o sistema, para cada k =
1, 2, ..., como

(k) 1 (k−1) 1 (k−1) 3


x1 = x − x +
10 2 5 3 5
(k) 1 (k) 1 (k−1) 3 (k−1) 25
x2 = x + x3 − x +
11 1 11 11 4 11
(k) 1 (k) 1 (k) 1 (k−1) 11
x3 = − x1 + x + x −
5 10 2 10 4 10
(k) 3 (k) 1 (k) 15
x4 = − x + x +
8 2 8 3 8
Para k = 1, temos
(1) 1 (0) 1 (0) 3
x1 = x − x +
10 2 5 3 5
(1) 1 (1) 1 (0) 3 (0) 25
x2 = x + x3 − x +
11 1 11 11 4 11
(1) 1 (1) 1 (1) 1 (0) 11
x3 = − x1 + x + x −
5 10 2 10 4 10
(1) 3 (1) 1 (1) 15
x4 = − x + x +
8 2 8 3 8
E assim, temos:
(1)
x1 = 0, 600
(1)
x2 = 2, 3272
(1)
x3 = −0, 9873
(1)
x4 = 0, 8789

60
Para k = 2, temos
(2) 1 (1) 1 (1) 3
x1 = x − x +
10 2 5 3 5
(2) 1 (2) 1 (1) 3 (1) 25
x2 = x + x3 − x +
11 1 11 11 4 11
(2) 1 (2) 1 (2) 1 (1) 11
x3 = − x1 + x + x −
5 10 2 10 4 10
(2) 3 (2) 1 (2) 15
x4 = − x + x +
8 2 8 3 8
E, assim, temos:
(2)
x1 = 1, 030
(2)
x2 = 2, 037
(2)
x3 = −1, 014
(2)
x4 = 0, 9844

As iterações subsequentes fornecem os valores na Tabela:

EXERCÍCIOS:
1. Encontre as 3 primeiras iterações do método de Gauss-Siedel para os seguintes
sistemas lineares, utilizando x(0) = 0:
3x1 − x2 + x3 = 1
a) 3x1 + 6x2 + 2x3 = 0
3x1 + 3x2 + 7x3 = 4

10x1 − x2 = 9
b) −x1 + 10x2 − 2x3 = 7
− 2x2 + 10x3 = 6

61
Referências Bibliográficas
[1] Burden, Richard L., J. Douglas Faires, Annette M. Análise Numérica -
Tradução da 10ª edição norte-americana. Cengage Learning, 2015.

[2] Dennis G. Zill. Equações Diferenciais com aplicações em Modela-


gem. Editora Thomson, 2003.

[3] William E. Boyce, Richard C. Diprima. Equações diferenciais ele-


mentares e problemas de valores de contorno. Edição 9. Editora. Livros
Técnicos e Cientı́ficos, 2002.

62

Você também pode gostar