Você está na página 1de 79

ão


Notas de Aula de

Cálculo Numérico
or
ab

Edson Leite Araújo


El

Lino Marcos da Silva


Sergio Floquet Sales
Em
Sumário

ão

1 Sistemas Numéricos 1
1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Sistemas Binário e Decimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Representação de Inteiros . . . . . . . . . .
or . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 Conversão Binário para Decimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 Conversão Decimal para Binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 ExercÃcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.7 Representação de Frações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
ab
1.8 ExercÃcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.9 Aritmética de Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.10 Instabilidades Numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.11 ExercÃcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
El

2 Zeros Reais de Funções Reais 17


2.1 Fase I: Isolamento das Raízes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Fase II: Refinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Método da Bissecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Estimativa do Número de Iterações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Método da Posição Falsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Método do Ponto Fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Em

2.7 Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


2.8 Método da Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.9 Métodos Estudados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Sistemas de Equações Lineares 28


3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Sistemas Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Resolução de Sistemas Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4 Métodos Diretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4 Introdução à Resolução de Sistemas Não Lineares 35


4.1 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Método de Newton Modificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Interpolação 40
5.1 Interpolação Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Formas para se obter o polinômio interpolador Pn (x) . . . . . . . . . . . . . . . . . . . . . 41
ii
Sumário iii

5.3 Resolução do Sistema Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41


5.4 Forma de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.5 Forma de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.6 Forma de Newton para pn (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.7 Estudo do Erro na Interpolação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.8 Interpolação Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.9 Fenômeno de Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.10 Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.11 Spline Linear Interpolante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.12 Spline Cúbica Interpolante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

ão
6 Ajuste de Curvas pelo Método dos Mínimos Quadrados 61
6.1 Método dos Mínimos Quadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7 Soluções Numéricas para Equações Diferenciais Ordinárias 66


7.1 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67


7.2 Método de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.3 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Índice Remissivo 75
or
ab
El
Em
Em
El
ab
or

ão
1
Sistemas Numéricos

ão

1.1 Introdução
Nos computadores e em máquinas de calcular, em geral os números são representados de maneira limitada.
Dificuldades relacionadas ao armazenamento em memória, velocidade de processamento e padronização,

sejam necessários.
or
fazem com que estudos detalhados sobre a representação dos números em ambientes computacionais,

Neste capítulo, pretendemos entender de que maneira esta representação é possível, qual a melhor em
cada situação e quais as limitações de cada uma deles.
ab
1.2 Sistemas Binário e Decimal
De um modo geral, os números inteiros são representados no sistema decimal. Por exemplo, o número
El

428

na verdade, significa
428 = 4 · 102 + 2 · 101 + 8 · 100

Cada digito possui um valor valor posicional e é determinado pelo seu valor absoluto multiplicado por
uma potência de 10, escolhida de acordo com sua posição. Assim, o 4 em 428 está na posição 2, contando
Em

a partir do algarismo das unidades e tendo o 0 como valor inicial, e portanto seu valor é 4 · 102 = 400.
Tudo indica que a escolha da base 10 como sistema mais usado pela humanidade tenha se dado pelo
simples fato de termos dez dedos e isto induzir a base 10 como forma natural de se realizar os cálculos
em geral.
Apesar de toda nossa familiaridade com o sistema decimal, este não se adequa aos limites e imposição
feitas pelos mecanismos e circuitos que compõem o interior de um computador. Vejamos porquê.
As máquinas, em geral, entendem os números através de pulsos de corrente elétrica. Tem-se o 1
quando há e o 0 quando não há corrente elétrica. De forma que o sistema binário é o sistema numérico
natural para se representar os números em máquinas. Uma vez que tal limitação não surgiu apenas com
os números inteiros, tal sistema é usado, na verdade, para se tentar representar todos os números reais.

1.3 Representação de Inteiros


Um dado inteiro N no sistema binário é representado da seguinte forma:

N = an 2n + an 2n−1 + ... + a2 22 + a1 21 + a0 20
2 1. Sistemas Numéricos

onde os ai são zeros ou uns, e sua escrita na base 2 é dada por:

an an−1 ...a1 a0

Usaremos o sublinhado para distinguir a representação binária da decimal.


Exemplo 1.3.1
1=1
2=2
3 = 101

ão
100 = 1100100

1.4 Conversão Binário para Decimal


Como nós, humanos, estamos habituados a pensar os números no sistema decimal e as máquinas os
entendem, de um modo geral, no sistema binário, é necessário que exista uma forma de conversão entre
estes sistemas, caso queiramos nos comunicar com eles.
Considere N sendo um número inteiro não negativo, cuja representação no sistema binário é dada por
or
N = an a1 ...a0 ,

onde ai = 1 ou 0, para i = 0, ..., n, ou seja


ab
N = an 2n + an−1 2n−1 + ... + a1 21 + a0

Observe que
N = p(2)
El

sendo
p(x) = an xn + an−1 xn−1 + ... + a1 x + a0

perceba ainda que o polinômio p pode ser reescrito da seguinte maneira


Em

p(x) = an xn−1 + an−1 xn−2 + ... + a1 x + a0




an xn−2 + an−1 xn−3 + ... + a2 x + a1 x + a0


 
=

  
    
  
    
    
  
=  an x + an−1  x + an−2 x + ... + a2  x + a1 
x + a0
 
|{z}
 
 b0
   
| {z }
      
  
b1
| {z }
  
b2
| {z }
bn−1

Esta forma de enxergar o polinômio p, torna possível colocar na forma de algoritmo, o cálculo de p(2).
1.5. Conversão Decimal para Binário 3

x=2
b 0 = an
b1 = b0 · x + an−1
b2 = b1 · x + an−2
..
.
bn = bn−1 · x + a0

ão
Algoritmo 1: Binário → Decimal

Entrada: N = a1 an−1 · · · a0
início
x = 2; b0 = an ;


para i = 1; i 6 n; i + + faça
bi = bi−1 · x + an−i ;
fim
retorne bn ;
fim or
1.5 Conversão Decimal para Binário
ab
Para a conversão de inteiros do sistema decimal para o binário convém observarmos que, o último dígito
de um dado inteiro N é zero, se e somente se, N é par. O dígito seguinte, do mesmo modo, será zero
se, e somente se, N−a
2
0
é par, e assim sucessivamente.
Desta forma, um algoritmo possível para a conversão de decimal para binário seria:
El

Algoritmo 2: Decimal → Binário

Entrada: N (na forma decimal)


Saída: a; Obs: a indexação de a não é a mesma utilizada em C/C#;
início
n = N; i = 0;
Em

enquanto n > 1 faça


se n%2 == 0 então
ai = 0;
fim
senão
ai = 1;
fim
(n − ai )
n= ;
2
fim
retorne a;
fim

O algoritmo anterior pode ser melhor compreendido através de um esquema prático que veremos a
seguir, na forma de um exemplo:
Exemplo 1.5.1
4 1. Sistemas Numéricos

N = 50
50 2
0 25 2
↑ 1 12 2
a5 ↑ 0 6 2
a4 ↑ 0 3 2
a3 ↑ 1 1
a2 ↑ ↑
a1 a0
N = a0 a1 a2 a3 a4 a5 = 110010

ão
1.6 ExercÃcios


1.6.1 ???

1.7 Representação de Frações


or
Uma fração binária (aqui estaremos pensando apenas em números menores que 1) é um número que
pode ser escrito na forma
ab
0 · a−1 a−2 a−3 · · · a−n = a−1 2−1 + a−2 2−2 + ... + a−n 2−n
X
n
= a−1 2−i
i=1

onde os coeficientes ai ∈ {0, 1}.


El

Observação 1.7.1 Um fato interessante é que uma dada fração pode ter duas representações
diferentes. Por exemplo
Em

1
0.5 = = 2−1 = 0.1
2
Por outro lado, temos também

0.5 = 0.0111111...
1.7. Representação de Frações 5

Uma vez que:

0.0111111... = 2−2 + 2−3 + 2−4 + ... + 2−n + ...

1
= 4
1
 (Usando a soma de uma P.G)
1− 2

1
4
= 1
2

ão
1
=
2

= 0.5


Tal característica não é exclusiva da representação binária uma vez que, no sistema decimal, por
exemplo:
1 = 0.9999...

dada fração.
or
Entre as duas possibilidades, em ambos os sistemas, opta-se pela mais simples para representar uma


Uma fração binária, dada por


ab
z = 0.a−1 a−2 · · · a−n
pode ser vista como o valor do polinômio

p(x) = a−1 x + a−2 x2 + · · · + a−n xn


El

= a−n xn + a−n+1 xn−1 + · · · + a−2 x2 + a−1 x

em x = 21 . Assim, procedendo-se de maneira semelhante à dedução do Algoritmo 1, teremos o seguinte


algoritmo:
Em

Algoritmo 3: Binário → Decimal (Frações)

Entrada: N = 0 · a−1 a−2 · · · a−n


início
x = 1/2; b0 = a−n ; a0 = 0
para i = 1; i 6 n; i + + faça
bi = bi−1 x + a−n+i ;
fim
retorne bn ;
fim

Exemplo 1.7.1
???
6 1. Sistemas Numéricos

Observação 1.7.2 Sendo z = 0.a−1 a−2 · · · a−n uma fração binária, outro modo de convertê-la para
uma fração decimal, consiste em converter o inteiro

2n . z = a−1 a−2 · · · a−n

para decimal, e dividir o resultado por 2n . 

Precisamos agora, pensar em como seria a conversão de uma fração decimal para fração binária.
Para isto, considere z ∈ R, tal que 0 6 z 6 1 e suponha que após convertido, sua representação no sistema
binário seja:
z = 0.a−1 a−2 a−3 · · · a−n

ão
tal representação pode também ser vista como:

z = a−1 2−1 + a−2 2−2 + a−3 2−3 + · · · + a−n 2−n


Observe que

2z = 2 a−1 2−1 + a−2 2−2 + a−3 2−3 + ... + a−n 2−n




or
= a−1 20 + a−2 2−1 + a−3 2−2 + ... + a−n 2−n+1

= a−1 . a−2 a−3 ... a−n


ab
Ou seja, ao multiplicarmos o número z por 2, fazemos com que sua representação binária se desloque
uma posição para a esquerda. Com isto podemos concluir que:

2z > 1 ⇒ a−1 = 1
El

2z 6 1 ⇒ a−1 = 0
Repetindo este procedimento consecutivamente, tomando o cuidado de remover, a cada repetição, a
parte inteira de z, teremos então um algoritmo para a conversão do número z numa fração binária.

Algoritmo 4: Decimal → Binário (Frações)


Em

Entrada: z ∈ R, 0 6 z < 1
início
α = z; i = 1
enquanto α > 0 faça
α = 2α;
se α > 1 então
a−i = 1;
fim
senão
a−i = 0;
fim
α = α − parteInteira(α);
fim
retorne a[ ];
fim
1.8. ExercÃcios 7

Exemplo 1.7.2

i α 2α a−i
1 0.7 1.4 1
2 0.4 0.8 0
Converter 0.7 para binário. 3 0.8 1.6 1
Na Tabela 1.1, temos em cada linha, o que seria a execu- 4 0.6 1.2 1
ção de cada iteração do laço existente no algoritmo anterior. 5 0.2 0.4 0
Perceba, que a partir da sexta linha, teremos a repetição das
6 0.4 0.8 0
linhas 2, 3, 4 e 5, ou seja, temos uma dízima periódica. .. .. .. ..
. . . .
0.7 = 0 · 101100 01100 · · ·

ão
Tabela 1.1: Decimal →
Binário

Observe que o Algoritmo 4 possui uma falha, uma vez que em geral as frações decimais, quando
escritas na forma binária possui uma quantidade infinita de dígitos após a vírgula. São dízimas periódicas


em sua grande maioria.
Há portanto a necessidade, por questões de armazenamento em memória, de se limitar (truncar) esta
representação, determinando para isto um número máximo de dígitos após a vírgula.
Concluimos esta seção observando que, em posse dos quatro algoritmos apresentados, estamos aptos
or
à conversão de qualquer número real do sistema binário para o decimal e vice-versa. Bastando para isso
apenas uma decomposição deste número em suas partes inteiras e fracionárias.

1.8 ExercÃcios
ab
1.8.1 ???

1.9 Aritmética de Ponto Flutuante


El

Os números reais, apesar do nome, apresentam-se impossíveis de serem representados no mundo real
dos computadores. Entretanto, muitos métodos têm sido propostos para aproximar o sistema numérico
real usando representações finitas. O método utilizado em quase todos os computadores, hoje em dia, é
conhecido como Aritmética de Ponto Flutuante.
Nesta representação, um número x ∈ R, possui três partes:
Em

- sinal
- mantissa
- expoente
e escreve-se

z}|{
expoente

± .d1 d2 · · · dt · β e
x = |{z}
| {z }
sinal mantissa

onde

• β: base do sistema (2 em geral)

• t: número de dígitos na mantissa (precisão)

• e: expoente

• d0i s: dígito da mantissa, sendo d1 6= 0 e 0 6 di 6 β − 1, i = 2, ..., t.


8 1. Sistemas Numéricos

Por razões de precisão, que ficarão claras mais adiante, é comum que a representação em ponto
flutuante seja normalizada, ou seja, a mantissa é maior ou igual a 1.

Observação 1.9.1 Numa representação normalizada, atenção especial deve ser dada ao número
zero. Em geral usa-se

di = 0, i = 1, ..., t
e = 0 (menor expoente não negativo)

Uma consequência interessante da normalização, para sistemas de base 2, é que o primeiro dígito da

ão
mantissa é sempre "1" e, assim sendo, não há necessidade de armazená-lo. Em muitos sistemas computa-
cionais, isto é o que, de fato, é feito. Este bit1 é conhecido como bit oculto ou bit implícito.

Quantidade de Números


Considere um sistema (uma aritmética) de ponto flutuante na base β com t dígitos na mantissa e expoente
e ∈ [emin , emax ]. De agora em diante denotaremos um tal sistema por F(β, t, emin , emax ). Um número
x ∈ R neste sistema, supondo representação normalizada terá o seguinte formato:

or
x = ± d1 .d2 d3 ... dt · βe
Para sabermos quantos números podem ser representados neste sistema, observe que para o dígito d1
existem β − 1 possibilidades2 , para os t − 1 dígitos restantes, tem-se β possibilidades para cada um. Ou
seja, com t dígitos disponíveis na mantissa, podemos representar (β − 1)βt−1 números. Levando-se em
conta o sinal, que pode ser “+” ou “−”, esta quantidade passa a ser
ab
2(β − 1)βt−1
Para o expoente e ∈ [emin , emax ] teremos
El

emax − emin + 1
possíveis números. Portanto, a quantidade de números representáveis numa aritmética F(β, t, emin , emax )
incluindo a representação especial para o número zero, é
Em

2(β − 1)βt−1 (emax − emin + 1) + 1


O que nos leva à conclusão já esperada, que o conjunto F é um subconjunto finito dos números reais,
tendo o valor β1−t como menor distância possível entre os números representáveis na mantissa.

Exemplo 1.9.1
Consideremos o sistema F(2, 3, −1, 3). Neste sistema temos β = 2, t = 3, emin = −1, e emax = 3.
Logo, supondo representação normalzada, a mantissa deste sistema terá a forma

d1 · d2 d3 d1 6= 0, d2 , d3 ∈ {0, 1}

ou seja, temos as seguintes possibilidades:


1
A palavra bit é uma abreviação de binay digit, que significa dígito binário, do inglês
2
O zero está excluido pela normalização
1.9. Aritmética de Ponto Flutuante 9

1.00 1.00
1.01 1.25
1.10 1.50
1.11 1.75
binário decimal

Tabela 1.2: Conversão

Para os expoentes, temos


e = −1, 0, 1, 2, 3
Calculando os números positivos deste sistema teremos

ão
e
−1 0 1 2 3
1.00 · 2e ⇒ 0.5 1 2 4 8
1.25 · 2e ⇒ 0.625 1.25 2.5 5 10


1.5 · 2e ⇒ 0.75 1.5 3 6 12
1.75 · 2e ⇒ 0.875 1.75 3.5 7 14

Tabela 1.3: Números positivos do sistema

Dispondo numa reta,


0.5 1.5 2.5 3.5
or
x
0 1 2 3 4 5 6 7 8 10 12 14
ab
Observe que, de acordo com o que foi dito antes, a qantidade total de números deste sistema é:

2(β − 1)βt−1 (emax − emin + 1) = 2 · 1 · 22 · 5 + 1 = 41

Além disso,
El

β1−t = 2−2 = 0.25 (menor distância possível)

1.11 · 23 = 1.75 · 8 = 14 (maior número possível)

1.00 · 2−1 = 0.5 (menor número possível)


Em

Overflow e Underflow
Como pôde ser visto no exemplo anterior, 1.9.1, a quantidade de números possíveis em F(β, t, emin , emax )
é finito e, diante disto, fica clara a impossibilidade de representar a continuidade dos números reais.
Qualquer número maior que o valor máximo do sistema F, não é representável em F. Esta limitação
leva aos fenômenos conhecidos como overflow. Para muitos propósitos, tal impossibilidade também se
apresenta para números diferentes de zero e menores que o menor valor de F. Este tipo de ocorrência é
também conhecida como underflow.
Estas limitações ocorrem por dois motivos:

i) Os expoentes de F estão num intervalo limitado;

ii) Número finito de dígitos para a mantissa, o que leva a valores para a mesma, no intervalo [β−1 , β − β−t ]
10 1. Sistemas Numéricos

Exemplo 1.9.2
Considere o sistema F(10, 4, −5, 5) e sejam x = 875 e y = 3172. Vejamos o que ocorre quando
calcula-se x · y. Observe inicialmente que os números x e y, representados em F, possuem o seguinte
formato:

x = 8.750 × 102
y = 3.172 × 103

xy = 2.776 · 106 (Overflow)

ão
uma vez que o expoente máximo do sistema é 5. 

Exemplo 1.9.3
Considere novamente o sistema F(10, 4, −5, 5) e sejam x = 0.0064 e y = 7312. Desejamos agora,


observar o que ocorre quando calculamos x/y. Escrevendo x e y no sistema F, teremos

x = 6.400 × 10−3
y = 7.312 × 103
or
Assim:
x
= 8.753 · 10−7 (Underflow)
y
ab
Pois, o menor expoente possível em F é −5. 

Na ocorrência de overflow e underflow, cada implementação reage de alguma forma. As principais são:

• Overflow
El

– interrompe-se o cálculo;
– retorna o número que representa o infinito da máquina.

• Underflow

– interrompe-se o cálculo;
Em

– arredonda-se o resultado para zero;


– arredonda-se para um número subnormal3 .

As duas maneiras como as máquinas tratam o overflow possuem aspectos indesejáveis. O primeiro
caso não apresenta resposta enquanto que, no segundo caso, apesar de dar uma resposta, não é muito útil,
exceto para interpretações físicas ou aplicações específicas, uma vez que tal resposta não possui valor
numérico.
Na ocorrência de underflow, o primeiro caso, pelo mesmo motivo apresentado para o overflow, é
também indesejado. Os segundo e terceiro casos resultam em respostas úteis embora exista o perigo de,
numa operação subsequente, ocorrer um overflow.
Em geral, tenta-se evitar o overflow e underflow em implementações computacionais e, uma maneira
prática de se fazer isto é utilizando uma técnica conhecida como escalonamento.

Exemplo 1.9.4 (Escalonamento)

3
Veremos posteriormente o que são números subnormais.
1.9. Aritmética de Ponto Flutuante 11


Considere o sistema F(10, 10, −99, 99) e os números a = 1060 e b = 1060 . Calcular c = a2 + b 2 .
Observe que, o maior número deste sistema é
−99 99 100
10
| − 10{z . 10 } = 10 − 1
(β−β−emin ) . βemax

a2 = b2 = 10120 (overflow)

Porém,

ão
p p
c= a2 + b2 = 2 . 101 20 = 2 . 1060

é representável em F. Para evitar este problema, o escalonamento consiste em observar que


p
c = a2 + b2


r
(a2 + b2 )
= s2
s2

=s
or
s
 a 2
s
+
 2
b
s
(1.9.1)

Com isto, se tomarmos


ab
s = |a| + |b| = 2 · 1060
teremos !
1060 b2
 
a b 1 a2
= = = ⇒ = = 0.125
s s 2 · 1060 2 s s
El

2 2
Portanto, s, as e bs são todos representáveis em F e em consequência disto, o número escrito na
forma 1.9.1, também.

Erros
Em

Chamamos de número de máquina a todo número que pode ser exatamente representado na aritmética
de ponto flutuante em consideração.
Em geral, operações aritméticas envolvendo números da máquina, podem ainda assim, ter como re-
sultados, números que não são exatamente representáveis. Surge portanto a necessidade de se aproximar
tais resultados por números da máquina, gerando com isto, erros de aproximação ou erros de arre-
dondamento.
Existem 4 maneiras para se realizar esta aproximação. Sendo x um número a ser aproximado, pode-se
utilizar os seguintes métodos:

• Truncamento: O valor escolhido, denotado aqui por ∇(x) é o maior número da máquina menor
que x.
• Arredondamento: Consiste em escolher o menor número da máquina maior que x. Denota-se ∆(x).
• Em direção ao 0: Denotado por Z(x), é igual a ∇(x) se x > 0 e igual a ∆(x) se x < 0
• Vizinho mais próximo: Consiste em escolher o número de máquina, denotado por N(x), que está
mais próximo de x. Se x estiver exatamente no meio de dois números da máquina, qualquer um dos
dois pode ser o escolhido.
12 1. Sistemas Numéricos

∇(x) ∆(x) ∇(x) ∆(x) ∇(x) ∆(x)


0 x 0 0
x

Z(x), N(x) Z(x) N(x) N(x) Z(x)

(a) (b) (c)

Erros Absoluto e Relativo


A exatidão de qualquer método de aproximação é medida em termos do erro cometido. Existem duas

ão
maneiras de se especificar o erro: erro absoluto e erro relativo.
Sendo x um número real e x uma aproximação, define-se erro absoluto, como:

Ea = |x − x|


e o erro relativo como:

|x − x| Ea
Er = =
|x| |x|
O erro absoluto mede a magnitude do erro, enquanto o erro relativo determina o quão grande é o erro
or
cometido em relação ao valor correto.
Exemplo 1.9.5
Sejam x = 100 e y = 0.0006 e suponha que estes números foram aproximados por x = 100.1 e
y = 0.0004. Observe que
ab
Eax = |x − x| = 0.1

Eay = |y − y| = 0.0002
El

ou seja, o erro absoluto cometido na aproximação de y é muito menor do que o erro absoluto cometido
na aproximação feita para x. Por outro lado, temos que:
Eax 0.1
Erx = = = 0.001
|x| 100
Em

Eay 0.0002 1
Ery = = =
|y| 0.0006 3

Desta forma, podemos concluir que a aproximação feita para x é melhor que a aproximação feita para
y. 

Precisão da Máquina
O maior erro relativo possível, cometido quando um número real é apresentado numa aritmética de ponto
flutuante é chamado de precisão da máquina. Como é comum usar o símbolo  para denotar a precisão
da máquina, é também usual se referir a este número como epsílon da máquina.
Outros autores definem o  da máquina como o menor número, tal que
1+>1
Proposição 1.9.1. Seja F(β, t, emin , emax ) uma aritmética de ponto flutuante. Então
1
 6 β1−t
2
1.9. Aritmética de Ponto Flutuante 13

Demonstração. Suponha que um dado x ∈ R seja aproximado por

x = a1 · a2 a3 · · · at · βe

onde e ∈ [emin , emax ]. O erro absoluto cometido será

|x − x| < 0| · 00 ‘
{z· · · 0} β · β
e
(1.9.2)
t

onde β‘ é o dígito na base β tal que


β
β‘ =
2

ão
ou seja
β −t e 1 1−t e
|x − x| < ·β ·β = β ·β
2 2
Observe que, para todo x escrito na forma (1.9.2), tem-se que


βe < |x| < βe+1

e disto segue-se que:


1 or 1 1
< < e
βe+1 |x| β
Logo,
1 1−t
|x − x| 2β · βe 1
= < = β1−t
|x| βe 2
ab


Embora o  da máquina esteja, conforme vimos, precisamente especificado numa aritmética de ponto
flutuante, não é crucial que o usemos de forma exata. É comum que seu valor seja aproximado por um
número calculado através do seguinte código:
El

Algoritmo 5: Epsilon da Máquina

Entrada: eps = 1; eps1 = 0;


início
Em

repita
eps = 0.5 · eps;
eps1 = eps + 1;
até (eps1 < 1.0);
retorne eps;
fim

Números Subnormais e Exceções


Em sistemas de ponto flutuante, números subnormais são aqueles que estão no espaço vazio em torno do
zero. Portanto, qualquer número diferente de zero, com módulo menor que o menor número normalizado
do sistema é um número subnormal.
Em aritméticas de ponto flutuante normalizadas, o primeiro dígito da mantissa é sempre diferente
de zero. Com o intuito de amenizar o underflow, os números subnormais são implementados com
expoente 0 e mantissa não normalizada.
Também são implementadas representações especiais para algumas exceções, tais como:
14 1. Sistemas Numéricos

√ ∞
• NaN (Not a Number)4 é o resultado de operações aritméticas inválidas, por exemplo, −5, ∞ ,···;

• ± ∞ resultante de um overflow ou divisão por zero;

• ± 0 resultante de um underflow, ou divisão por ±∞.

1.10 Instabilidades Numéricas


De um modo informal, podemos dizer que um processo numérico é instável se pequenos erros cometidos
em algum estágio do processo, são ampliados em estágios subsequentes e degradam seriamente o resultado
final.

ão
Como ilustração deste conceito, considere a sequência de números reais definida indutivamente por:


 x0 = 1





 1
x1 = (1.10.1)


 3






 xn+1 = 13 xn − 4 xn−1 , n > 1
3 3
Esta relação de recorrência gera a sequência or
 n
1
xn =
3

se usarmos a relação de recorrência (1.10.1), para calcular os termos desta sequência, numa aritmética de
ab
ponto flutuante F(24, 2, −64, 64)5 , teremos os seguintes resultados, já convertidos para o sistema decimal:

x0 = 1.0000000
x1 = 0.3333333 (7 dı́gitos corretos)
El

x2 = 0.1111112 (6 dı́gitos corretos)


x3 = 0.0370373 (6 dı́gitos corretos)
x4 = 0.0123466 (5 dı́gitos corretos)
x5 = 0.0041187 (5 dı́gitos corretos)
x6 = 0.0013857 (4 dı́gitos corretos)
Em

x7 = 0.0005131 (0 dı́gitos corretos)


..
.
x15 = 3.6574980 (erro relativo de 108 )

Este algoritmo é portanto instável. Qualquer erro presente em xn é multiplicado por 13 3 ao calcular
xn+1 . Existe portanto a possibilidade de que o erro cometido no cálculo de x1 seja propagado para x15
14
com um fator de ampliação de 13 3 .
Um processo é classificado como numericamente instável ou não, em função do erro relativo final,
cometido em sua execução. Assim, mesmo o erro absoluto sendo grande, seu resultado pode ser aceitável,
desde que se trate de um valor alto.
No exemplo anterior, considere x0 = 1 e x1 = 4 em (1.10.1). A relação de recorrência permanece a
mesma e os erros serão propagados e ampliados do mesmo modo. Entretanto, a sequência gerada, agora é

xn = 4n
4
Não é um número, em inglês.
5
Sistema Binário de 32 bits.
1.10. Instabilidades Numéricas 15

e os resultados obtidos, quando calculamos os termos dessa sequência, usando (1.10.1), são, por exemplo:

x1 = 4.000006
..
.
x10 = 1.048576 × 106
..
.
x20 = 1.099512 × 1012

ão
E neste caso, em razão da grandeza dos números obtidos, os erros cometidos são relativamente pequenos,
e portanto negligenciáveis.

Condicionamento


O termo condicionamento é em geral, utilizado para indicar a sensibilidade da solução de um problema
em relação à pequenas alterações nos dados de entrada. Um problema é considerado mal condicionado
se pequenas mudanças nos dados resultam em grandes mudanças nas respostas do mesmo.
Em certos problemas, é possível definir um número de condicionamento. Quando este número é
grande, indica um problema mal condicionado. or
Como ilustração, considere o problema de se calcular uma função f, de uma variável, em x. Qual é
o efeito de uma pequena perturbação em x, no cálculo de f(x)? se quisermos calcular o erro absoluto,
usando o Teorema do Valor Médio, temos que
ab
f(x + ∆x) − f(x) = f0 (ξ) · ∆x ≈ f0 (x) · ∆x

Portanto, se f0 (x) não é muito grande, o efeito desta perturbação em f(x) será pequeno. Ao realizar uma
∆x
perturbação ∆x em x temos um erro relativo de . Do mesmo modo, quando f(x) é perturbada e torna-se
x
f(x + ∆x), o erro relativo será
El

∆x · f0 (x)
 0 
f(x + ∆x) − f(x) xf (x) ∆x
≈ = ·
f(x) f(x) f(x) x
E assim, o fator
xf0 (x)
Em

f(x)
funciona como um número de condicionamento para este problema.

Exemplo 1.10.1
Qual é o número de condicionamento no cálculo da função arcsen(x)? Considere

f(x) = arcsen(x)

De acordo com o que vimos anteriormente, o número de condicionamento para este tipo de problema
é o fator:
xf 0 (x) x
= √
f(x) arcsen(x) 1 − x2
π
Assim, para x próximo de 1, por exemplo, temos arcsen(x) ≈ e o número de condicionamento tende
2
a +∞ à medida que x tende a 1. Portanto, pequenas perturbações em x produzam grandes alterações
em f(x), quando está próximo de 1.
16 1. Sistemas Numéricos

1.11 ExercÃcios
1.11.1 ???

ão

or
ab
El
Em
2
Zeros Reais de Funções Reais

ão

Em diversas áreas da ciências ocorre situações que é necessário obter um determinado valor de uma função,
recaindo numa equação do tipo

f(x) = 0
or
os valores de x que anulam a função são chamados de raízes ou zeros da função.
As equações de 1◦ , 2◦ , 3◦ e 4◦ grau possuem soluções exatas, para o caso em que o grau > 5◦ não há
solução geral. Nestes casos o problema só pode ser resolvido numericamente.
ab
Exemplo 2.0.1
FIGURA

ξ = Ri + g(i)
El

ξ − Ri − g(i) = 0
| {z }
f(i) = 0
Meu problema de encontrar a corneta do circuito se reduz a encontrar as raízes da função f(i).

Podemos analisar exemplos envolvendo a bolsa de valores, produção de objetos, e assim por diante.
Em

Nosso trabalho será obter as raízes reais desta função. A partir dos métodos numéricos, podemos
encontrar soluções com a precisão desejada.
Os métodos consistem de duas fases:
Fase I - Localização ou Isolamento das Raízes: encontrar um intervalo que contém a raíz.
Fase II - Refinamento: melhorar sucessivamente a solução até a precisão desejada.

2.1 Fase I: Isolamento das Raízes


Nesta fase devemos determinar a região que iremos procurar a raiz.

Teorema 2.1.1 Seja f(x) uma função contínua em [a, b]. Se f(a) · f(b) < 0 então existe pelo menos um
ponto x = ξ entre a e b que f(ξ) = 0.
Ideia: FIGURA

f(a) · f(b) < 0


17
18 2. Zeros Reais de Funções Reais


 f(a) > 0 e f(b) < 0
ou

f(a) < 0 e f(b) > 0
Como é contínua, em algum momento ela passou pelo zero.

Observação 2.1.1 Se f(a) · f(b) < 0 e f 0 (x) preservar o sinal, para todo x ∈ (a, b) então a raiz é
única.

crescente, f 0 (x) > 0


A derivada f 0 (x) preservar o sinal implica na função ser unicamente no
decrescente, f 0 (x) < 0

ão
intervalo.
Como a função só cresce (ou decresce) no intervalo:
FIGURA
Uma forma de se isolar as raízes de f(x) é analisar um conjunto de valores para a função f(x) e sua


derivada f 0 (x).
Exemplo 2.1.1

a) f(x) = x3 − 9x + 3 ; f 0 (x) = 3x2 − 9


FIGURA

x −100 −10 −5 −3
or −1 0 1 2 3 4 5
− − − + + + − − + + +
ab
f(x)
−907 −77 3 11 3 −5 −7 3 31 83
+ + + + − − − + + + +
f 0 (x)
299 16 18 −6 −9 −6 3 18 39 66
| {z } | {z } | {z }
El

Nessa região a função mudou de sinal, ou seja, há uma raiz,


e a derivada não altera o sinal, então a função é crescente
durante todo o intervalo, ou seja, só há uma raiz.

Como o polinômio é de grau 3, possui no máximo 3 raízes.


Em

√ 1
b) f(x) = x − 5e−x ; f 0 (x) = √ + 5e−x
x

x 0 1 2 3 4
− − + + +
f(x)
−5 −0, 84 0, 74 3, 48 1, 91
+ + +
f 0 (x) Inf
2, 34 1, 03 0, 54 0, 34

Só há uma raiz.
FIGURA
2.2. Fase II: Refinamento 19

Observação 2.1.2 É equivalente analisar as funções f(x) = 0 ou f(x) = g(x) − h(x) = 0 ⇒ g(x) =
h(x), ou seja

a) f(x) = x3 − 9x + 3 = 0 ou x3 = 9x − 3 FIGURA
√ √
b) x − 5e−x ou x = 5e−x

2.2 Fase II: Refinamento


Após definir a região onde há uma raiz, vamos encontrar o valor a partir do Método Iterativo.

ão
O Método Iterativo consiste num procedimento ou uma sequência de instruções, reduzidas passo a
passo. Cada iteração (ciclo de procedimentos) baseia-se no resultado anterior, para encontrar o próximo.
Os métodos iterativos em geral seguem o seguinte diagrama de fluxo:
DIAGRAMA
O critério de parada pode ser:



i) |x − ξ| <   x é a raiz aproximada
; ξ é a raiz exata
ii) |f(x)| <  
 é a precisão desejada
or
Observação 2.2.1 Apesar da opção i) da a impressão de termos que conhecer a raíz, o que estamos
na verdade requerindo é que a raíz aproximada esteja em um intervalo de confiança.
ab
FIGURA
Os critérios i) e ii) nem sempre são satisfeitos simultaneamente, podem haver casos como
FIGURA
|f(x)| < , satisfeito
.
|x − ξ| > , não satisfeito
El

FIGURA
|x − ξ| < , satisfeito
.
|f(x)| > , não satisfeito

2.3 Método da Bissecção


Em

Seja f(x) contínua no intervalo [a, b] e f(a) · f(b) < 0. Vamos supor (por simplicidade) que só existe uma
raiz neste intervalo e que f(a) < 0 e f(b) > 0.
FIGURA
O primeiro método de solução consiste em ir dividindo sucessivamente o intervalo ao meio, até

• Encontrar a raiz (sorte);

• Obter a precisão requerida x, ou seja, x ∈ ]ξ − ; ξ + [.



a+b então a raiz está entre a e x0 ;
f(a0 ) < 0 ξ ∈ ]a0 ; x0 [
x0 = f(b0 ) > 0 ; a1 = a0
2  novo intervalo:
f(x0 ) > 0 b1 = x0

a1 + b 1  então a raiz está entre x1 e b1 ;
f(a1 ) < 0 ξ ∈ ]x1 ; b1 [
x1 = f(b1 ) > 0 ; x1 = a2
2  novo intervalo:
f(x1 ) < 0 b1 = b2
20 2. Zeros Reais de Funções Reais


a2 + b2 
f(a2 ) < 0 ξ ∈ ]x2 ; b2 [
x2 = f(x2 ) < 0 ; a3 = x2
2  novo intervalo:
f(b2 ) > 0 b3 = b2

Observação 2.3.1 Se eu quero uma precisão de , meu intervalo tem que ter no máximo tamanho
, ou seja

bn − an = .

Exemplo 2.3.1

ão
Seja f(x) = x logx −1
FIGURA
f(2) = −0, 40 < 0 ; f(3) = 0, 43 > 0. Então ξ ∈ [2; 3], a0 = 2; b0 = 3.

a0 + b 0 2+3  f(2) = −0, 4 a1 = 2, 5
x0 = = = 2, 5


2 2 f(2, 5) = −0, 0051 b1 = 3

f(3) = 0, 4 x ∈ ]2, 5; 3[

a1 + b 1  f(2, 5) = −0, 0051 a2 = 2, 5
x1 = = 2, 75
2 f(2, 75) = 0, 21
or b2 = 2, 75

f(3) = 0, 4 x ∈ ]2, 5; 2, 75[

a2 + b 2  f(2, 5) = −0, 0051 a3 = 2, 5
x2 = = 2, 625
2 f(2, 625) = 0, 10 b3 = 2, 625

ab
f(2, 75) = 0, 4 x ∈ ]2, 5; 2, 625[

a3 + b 3  f(2, 5) = −0, 0051 a4 = 2, 5
x3 = = 2, 5625
2 f(2, 5625) = 0, 047 b4 = 2, 5625

f(2, 625) = 0, 10 x ∈ ]a4 ; b4 [
El

..
.
Até encontrar a raiz na precisão desejada, isto é,

x ∈ ]an , bn [; tal que bn − an = .


Em

2.4 Estimativa do Número de Iterações


Uma pergunta que surge é, quantas iterações serão necessárias para atingir uma certa precisão?
Como vamos dividindo o intervalo sucessivamente ao meio

bk−1 − ak−1 b 0 − a0
bk − ak = =
2 2k
Para termos um precisão de , temos que

b0 − a0
b k − ak <  ⇒ <
2k
2k
⇒ >
b0 − a0
b 0 − a0
⇒ 2k >

2.5. Método da Posição Falsa 21

aplicando o logarítmo

 
b 0 − a0
k
log 2 > log ⇒ k log2 > log(b0 −a0 ) − log

log(b0 −a0 ) − log
k>
log(2)

Portanto, no Exemplo 2.3.1, com f(x) = x log x − 1 e x ∈ [2, 3], para termos uma precisão de

•  = 10−2 :

ão
−2
log(3−2) − log10 0 + 2 log10
k> =
log2 log2


= 6, 64 ⇒ k > 7

•  = 10−4 :

3 or
k> = 13, 28 ⇒ k > 14
log2
ab
Observação 2.4.1 É um método simples, que não envolve cálculos laboriosos, mas em contrapartida,
a convergência é muito lenta, já que vamos sempre dividindo o intervalo ao meio.

Exemplo 2.4.1
Se b0 − a0 = 10 e  = 10−8
El

−8
log(b0 −a0 ) − log log(10) − log10
k> =
log(2) log(2)
1+8
=
Em

log(2)
9
= = 29, 89 ⇒ k > 30
log(2)

2.5 Método da Posição Falsa


Seja novamente f(x) contínua no intervalo [a, b] e f(a) · f(b) < 0, com uma única raiz neste intervalo.
an + b n
No método da bissecção consideramos xn = a cada iteração. Em vez de considerar a média
2
aritmétrica entre a e b podemos considerar média ponderada, levando em conta a posição relativa dos
pontos.

a|f(b)| + b|f(a)|
x=
|f(b)| + |f(a)|
Se f(b) > 0 e f(a) < 0, podemos reescrever a relação como
22 2. Zeros Reais de Funções Reais

af(b) − bf(a)
x= , para f(b) > 0 e f(a) < 0.
f(b) − f(a)
Graficamente, esse ponto x é a reta que passa por (a, f(a)) e (b, f(b)) em y = 0.
FIGURA
af(b) − bf(a)
x=
f(b) − f(a)
De fato, seja

y = y0 + α · x
então,

ão
−y0
y=0⇒x=
α
f(a) = y0 + α · a
Como a reta passa por (a, f(a)) e (b, f(b)),
f(b) = y0 + α · b


f(b) − f(a)
• f(b) − f(a) = α(b − a) ⇒ α =
b−a



 b · f(a) = y0 · b + αab

or a · f(b) − b · f(a) = y0 (a − b)
 a · f(b) − b · f(a)
a · f(b) = y0 · a + αab y0 =
a−b
ab
Portanto,

a · f(b) − b · f(a)
a−b a · f(b) − b · f(a)
x= =
El

f(b) − f(a) f(b) − f(a)


b−a
Exemplo 2.5.1
Seja f(x) = x log(x) − 1, com uma raiz entre [2, 3], então a0 = 2, b0 = 3.
Em

f(2) = −0, 40 ; f(3) = 0, 43

a · |f(b)| + b · f|a| 2 · 0, 43 + 3 · 0, 40
x0 = = = 2, 48
|f(b)| + |f(a)| 0, 40 + 0, 43


 f(2) = −0, 40 < 0 a1 = 2, 48 f(2, 48) = −0, 02
f(2, 48) = −0, 022 < 0 b1 = 3 f(b1 ) = −0, 43

f(3) = 0, 43 > 0 f(a1 ) = −0, 02

a · |f(b)| + b · f|a| 2, 48 · 0, 43 + 3 · 0, 02
x1 = = = 2, 50
|f(b)| + |f(a)| 0, 43 + 0, 02


 f(2, 48) = −0, 022 < 0 a2 = 2, 50 f(2, 50) = −0, 0051
f(2, 50) = −0, 0051 < 0 b2 = 3 f(b2 ) = 0, 43

f(3) = 0, 43 > 0 f(a2 ) = −0, 0051
2.6. Método do Ponto Fixo 23

a · |f(b)| + b · f|a| 2, 50 · 0, 43 + 3 · 0, 0051


x2 = = = 2, 51
|f(b)| + |f(a)| 0, 43 + 0, 0051


 f(2, 50) = −0, 0051 < 0 a3 = 2, 50 f(2, 51) = 0, 0032
f(2, 51) = −0, 0051 > 0 a4 = 3

f(3) = 0, 43

Observação 2.5.1 A aproximação que estamos tomando influência o resultado.

ão
2.6 Método do Ponto Fixo

 Método do Ponto Fixo


Os três próximos métodos Método de Newton são baseados na definição de ponto fixo, ou seja,

Método das Secantes
f(x) = x, e no seguinte Teorema:

Teorema 2.6.1 (Ponto Fixo) Seja f(x) : [a, b] → [a, b] uma função contínua com |f 0 (x)| < 1, ∀ x ∈
or
[a, b], então

(i) Existe um único ponto fixo x∗ ∈ [a, b], ou seja, f(x∗ ) = x∗ ;

(ii) Qualquer sequência da forma xn+1 = f(xn ) com x0 ∈ (a, b) converge para o ponto fixo x∗ .
ab
Exemplo 2.6.1
Seja f(x) = x2 com x ∈ − 21 , 12 . f(0) = 0 é um ponto fixo e f 0 (x) = 2x < 1, ∀ x ∈ − 12 , 12 então
 
El

 
1 1 1
x = ; x1 = f(x0 ) = f = = 0, 0625
4 4 16
 
1 1
x2 = f(x1 ) = f = = 0, 0039
16 256
 
1 1
x3 = f(x2 ) = f = = 0, 000015
Em

256 65536

Os próximos 3 métodos consistiram em reescrever a função f(x) de forma a explicitar um ponto fixo e
em seguida calcula-se a partir de diversas iterações.

f(x) = 0 ⇔ ϕ(x) = x
a função ϕ(x) é chamada de função de iteração.
Exemplo 2.6.2
Seja f(x) = x2 + x − 6 = 0, podemos ter várias funções de iteração.

i) Com x2 + x − 6 = 0 ⇒ x = 6 − x2 , temos a função de iteração ϕ1 (x) = 6 − x2


√ √
ii) Com x2 + x − 6 = 0 ⇒ x2 = 6 − x ⇒ x = ± 6 − x, temos a função de iteração ϕ2 (x) = ± 6 − x
iii) Com x2 + x − 6 = 0 ⇒ x2 = 6 − x ⇒ x = 6−x
x = 6
x − 1, temos a função de iteração ϕ3 (x) = 6
x −1

iv) Com x2 + x − 6 = 0 ⇒ x(x + 1) = 6 ⇒ x = x+1 ,


6
temos a função de iteração ϕ4 = 6
x+1
24 2. Zeros Reais de Funções Reais

De modo geral, as funções de iteração ϕ(x) são da forma ϕ(x) = x + A(x)f(x); ϕ(ξ) = ξ em que
f(ξ) = 0 e A(ξ) 6= 0.

Observação 2.6.1 A segunda condição é importante, pois implica em

f(ξ) = 0 ⇔ ϕ(ξ) = ξ
⇒ ϕ(ξ) = ξ + A(ξ)f(ξ) = ξ
⇒ A(ξ)f(ξ) = 0

como A(ξ) 6= 0 temos que f(ξ) = 0.

ão
Portanto, satisfazendo estas condições, temos a equivalência.

Observação 2.6.2 Dada uma função f(x), podemos ter infinitas funções de iteração ϕ(x) para a


equação f(x) = 0, mas só utilizaremos as que satisfazem as condições do Teorema do Ponto Fixo.

Graficamente:

• f(x) satisfaz a condição de que |f 0 (x)| < 1. A inclinação da curva é menor que a da bissetriz. FIGURA
or
• f(x) satisfaz a condição de que |f 0 (x)| > 1.
FIGURA

A condição de que |f 0 (x)| < 1 implica na convergência do valor.


ab
Observação: no exemplo anterior f(x) = x2 + x − 6, sabendo que há uma raiz entre [1, 3], temos que
f(1) = −4
f(3) = 6
0
i) ϕ3 (x) = 6 − x2 ⇒ ϕ3 (x) = −2x;
El

√ 0 −1 0
ii) ϕ2 (x) = 6 − x ⇒ ϕ2 (x) = √ ; |ϕ2 (x)| < 1, ∀ x ∈ [1, 3];
2 6−x
0 −6
iii) ϕ3 (x) = 6
x − 1 ⇒ ϕ3 (x) = (não satisfaz a condição para o intervalo [1, 3]) Observação: pode ser
x2
útil para a outra raiz ξ = −3 ∈ [−3, 5; 2, 5];
Em

6 −6
iv) ϕ4 (x) = ⇒ ϕ 0 (x) =
x+1 (x + 1)2
−6
– Para a região [1, 3], não satisfaz ϕ 0 (x) =
4
−6
– Para a região [1, 5, 3] satisfaz ϕ (1, 5) =
0 −6
= 6,25 = −0, 96
2, 52

Então ii) ϕ2 (x) = 6 − x; x ∈ [1, 3]. Escolhendo um número aleatório entre 1 e 3.

x0 = 2, 2
x1 = ϕ(x0 ) = ϕ(2, 2) = 1, 949
x2 = ϕ(x1 ) = ϕ(1, 949) = 2, 0127
x3 = ϕ(x2 ) = 1, 996822
x4 = ϕ(x3 ) = 2, 000794
2.7. Método de Newton-Raphson 25

6
iv) ϕ4 (x) = ; x ∈ [1, 5; 3] ; x0 = 2, 2
x+1

x1 = ϕ(x0 ) = 1, 875
x2 = ϕ(x1 ) = 2, 08696
x3 = ϕ(x2 ) = 1, 94366
x4 = ϕ(x3 ) = 2, 03828

ão
Observação 2.6.3 Ordem de convergência pode ser obtida analisando que
ϕ(xk ) − ϕ(ξ) = xk+1 − ξ ; já que xk+1 = ϕ(xk ) e ϕ(ξ) = ξ
então xk+1 −ξ = ϕ(k)−ϕ(ξ) =
ϕ(xk ) − ϕ(ξ) = ϕ 0 (ck ) · (xk − ξ)
xk+1 − ξ xk+1 − ξ = ck+1
ϕ 0 (ck )(xk − ξ) ⇒ = ϕ 0 (ck ) < 1. Denotando o erro na iteração k + 1
xk − ξ = ck


xk − ξ
e na iteração k respectivamente, temos que
ck+1
ck = ϕ 0 (ck ) < 1 ⇒ ck+1 ≈ c · ck a

tomando o limite de k → +∞ or
ck+1
lim = lim ϕ 0 (ck ) = ϕ 0 (ξ) (em torno da raiz)
k→+∞ ck k→+∞

Portanto, após um número grande de iterações (k → +∞) a iteração anterior é proporcional a


ab
iteração posterior, com a constante de proporcionalidade sendo ϕ 0 (ξ).
a
A aproximação é dita ser linear já que ck+1 ≈ ccpk com p = 1, onde p é o denominador de ordem de convergência.

2.7 Método de Newton-Raphson


El

No método a convergência depende de ϕ 0 (ξ). O método de Newton consiste em tomar ϕ 0 (ξ) = 0, a fim
de acelerar a convergência.
Seja ϕ(x) = x + A(x) + f(x) a função de iteração

ϕ 0 (x) = 1 + A 0 (x)f(x) + A(x)f 0 (x),


Em

tomando x = ξ,

ϕ 0 (ξ) = 1 + A 0 (ξ)f(ξ) + A(ξ)f 0 (ξ) ⇒ ϕ 0 (ξ) = 1 + A(ξ)f 0 (ξ)


Para ϕ 0 (ξ) = 0 temos que

−1
0 = 1 + A(ξ)f 0 (ξ) ⇒ A =
f 0 (ξ)
O oposto inverso da derivada de f(x).
−1
Se considerarmos A(x) = 0 temos que
f (x)
f(x)
ϕ(x) = x − 0 , com f 0 (x) 6= 0, x ∈ [a, b].
f (x)
Portanto, o método de Newton-Raphson consiste em fixar uma função de iteração em que

f(xk )
xk+1 = xk −
f 0 (xk )
26 2. Zeros Reais de Funções Reais

Exemplo 2.7.1
Seja f(X) = x2 + x − 6; f 0 (x) = 2x + 1. Então,

x2 + x − 6
ϕ(x) = x − , seja x0 = 2, 2
2x + 1

4, 84 + 2, 2 1, 04
x1 = ϕ(x0 ) = 2, 2 − = 2, 2 −
4, 4 + 1 5, 4
= 2, 2 − 0, 19259 = 2, 0074

ão
2, 00742 + 2, 0074 − 6
x2 = ϕ(x1 ) = 2, 0074 −
2(2, 0074) + 1
0, 03705
= 2, 0074 − = 2, 00001092
5, 0148


Com duas iterações, conseguimos uma grande aproximação da raiz real, que é 2.

2.8 Método da Secante


or
Uma grande desvantagem no Método de Newton-Raphson é a necessidade de se obter f 0 (x). Uma forma
de se contornar tal problema é substituir a derivada f 0 (x) pelo quociente das diferenças.
ab
f(xk ) − f(xk−1
f 0 (xk ) =
xk − xk−1
A função de iteração é:
El

f(xk ) xk (f(xk ) − f(xk−1 )) − f(xk )(xk − xk−1 ) xk−1 f(xk ) − f(xk−1 )xk
ϕ(xk ) = xk − f(xk )−f(xk−1 )
= =
f(xk ) − f(xk−1 ) f(xk − f(xk−1 )
xk −xk−1

Observação 2.8.1 São necessários dois pontos iniciais, para se iniciar o método.
Em

Exemplo 2.8.1

 f(x0 ) = −2, 25
−3
Seja f(x) = x2 + x − 6, raízes , tomando x0 = 1, 5 e x1 = 1, 7, f(x1 ) = −1, 41 , então
2 
f(x2 ) = 0, 17983
xk−1 f(xk ) − f(xk−1 )xk
xk+1 =
f(xk ) − f(xk−1 )

x0 f(x1 ) − f(x0 )x1 1, 5x(−1, 41) − 1, 7(−2, 25)


x2 = = = 2, 03571
f(x1 ) − f(x0 ) −1, 41 + 2, 25
x1 f(x2 ) − f(x1 )x2 1, 7x(0, 17983) − (−1, 41)(2, 03575)
x3 = = = 1, 99774 ; f(x3 ) = −0, 01131
f(x2 ) − f(x1 ) 0, 17983 − (−1, 41)
Com poucas iterações, temos uma boa convergência!

x2 f(x3 ) − f(X2 )x3 2, 03571(−0, 01131 − 0, 17983(1, 99774)


x4 = = = 1, 99999
f(x3 ) − f(x2 ) −0, 01131 − 0, 17983
2.9. Métodos Estudados 27

2.9 Métodos Estudados


ak + b k
• Método da Bissecção: xk = (ζ ∈ [a, b])
a
ak f(bb ) − bk f(ak )
• Método da Posição Falsa: xk =
f(bk ) − f(ak )
• Método do Ponto Fixo: xk+1 = ϕ(xk ) ; com |ϕ 0 (x)| < 1 (função de iteração)
f(xk )
• Método de Newton: xk+1 = xk −
f 0 (xk )

ão
f(xk ) xk−1 f(xk ) − xk f(xk−1 )
• Método da Secante: xk+1 = xk − f(xk )−f(xk−1 )
=
f(xk ) − f(xk−1 )
xk −xk−1


Observação 2.9.1 Na implementação dos métodos deve ser levado em conta o esforço computaci-
onal. A escolha do método está diretamente ligado a equação que queremos resolver.

or
ab
El
Em
3
Sistemas de Equações Lineares

ão

3.1 Introdução
A solução de muitos problemas oriundos das Engenharias necessitam da resolução de um ou mais sistemas
lineares. Por exemplo, os problemas de cálculo de estruturas na engenharia civil; o cálculo da intensidade
or
de corrente elétrica em uma malha, em engenharia elétrica; e o problema de programação linear, em
engenharia de produção, são exemplos de situações nas quais a resolução de pelo menos um sistema linear
pode ser necessária.
Neste capítulo, trataremos da resolução numérica de sistema lineares que possuem o número de equa-
ções igual ao número de incógnitas. Serão abordados três métodos diretos, (Eliminação Gaussiana, Fato-
ab
ração LU e Fatoração de Cholesky) e dois métodos iterativos (o método de Gauss-Jacobi e o método de
GAuss-Sidel).

3.2 Sistemas Lineares


El

Definição 3.2.1 Um sistema de equações lineares, ou simplismente sistema linear, com n equações
e n incógnitas é um conjunto de equações do tipo:


 a11 x1 + a12 x2 + · · · + a1n xn = b1

 a21 x1 + a22 x2 + · · · + a2n xn = b2
Em

.. (3.2.1)

 .


an1 x1 + an2 x2 + · · · + ann xn = bn

sendo aij números reais e 1 6 i 6 n e 1 6 j 6 n. No caso em que b1 = b2 = · · · = bn = 0, o


sistema linear é chamado de Sistema Linear Homogêneo. Uma solução do sistema 3.2.1 é uma n-upla
(x1 , x2 , . . . , xn ) de números reais que satisfazem as n equações simultaneamente.

O sistema linear 3.2.1 também pode ser representado por meio da seguinte equação matricial
    
a11 a12 · · · a1n x1 b1
 a21 a22 · · · a2n 
  x2   b2 
   
 .. .. .. .. . = .  (3.2.2)

 . . . .   ..   .. 
   

an1 an2 · · · ann xn bn


| {z } | {z } | {z }
A x b
onde A é chamada de matriz dos coeficientes, x a matriz das incógnitas e b a matriz dos termos
independentes. Algumas vezes nos referimos ao sistema linear 3.2 na forma matricial simplificada.
28
3.2. Sistemas Lineares 29

Ax = b (3.2.3)
A matriz C que obtemos ao escrevermos numa única matriz a matriz A e a matriz b é chamada de
matriz ampliada do sistema linear, escrevemos

C = [Ab]
ou
 
a11 a12 ··· a1n b1
 a21 a22 ··· a2n b2 
C= .. .. .. .. .. (3.2.4)

ão
 
. . . . .

 
an1 an2 · · · ann bn
Exemplo 3.2.1

 x1 + 12x2 + 3x3 = 8


O sistema linear 2x + 5x2 + 4x3 = 8 é representado na forma matricial por
 1
3x1 + 14x2 + 6x3 = 12
    
1 2 3 x1 8
 2 5 4   x2  =  8 

e sua matriz ampliada é


3 4 6
or

x3


12

1 2 3 8
ab
C= 2 5 4 8 
3 4 8 12

Existência e Unicidade da Solução de um Sistema Linear


El

Quanto à existência e número de soluções um sistema linear é classificado do seguinte modo:

Impossível. Quando não existe solução

Possível e determinado. Quando existe uma única solução


Em

Possível e indeterminado. Quando existem infinitas soluções.

Transformações Elementares
De um modo geral, os sistemas lineares que cuja matriz dos coeficientes são matrizes triangulares, inferior
ou superior, são mais simples de resolver.
Exemplo 3.2.2
A solução (x1 , x2 , x3 ) do sistema linear

 x1 + 2x2 + 3x3 = 8
x2 − x3 = −8 (3.2.5)

−7x3 = −28
pode facilmente ser encontrada, substituindo o valor de x3 na equação 3.2 para encontrar o valor de
x2 ; e em seguida substituindo os valores de x2 e x3 na primeira equação para calcular o valor de x1 .
Dessa maneira, ao fim de dois passos a solução do sistema 3.2.2 é calculada. Verifique que a solução
encontrada é (−4, 0, 4).
30 3. Sistemas de Equações Lineares

Os métodos diretos para resolução de sistemas lineares que estudamos aqui procuram transformar
a matriz dos coeficientes em uma matriz triangular para em seguida resolver o sistema triangular e se
baseiam no fato de que dado um sistema linear Ax = b podemos, através de certas operações, obter outro
sistema linear Ax = b, com A sendo uma matriz triangular e com a mesma solução do sistema Ax = b.

Transformações de matrizes
Seja A uma matriz de ordem m × n. Definimos as transformações, ou operações, elementares nas linhas
de A do seguinte modo

(i) Troca das linhas i e k: Li ⇔ Lk ;

ão
(ii) Multiplicação de uma linha Li por um número real c diferente de zero: Li → cLi ;

(iii) Substituição de uma linha Li pela soma desta linha com um múltiplo de outra linha: Li → Li + cLk

Teorema 3.2.1 Seja C = [Ab] a matriz ampliada do sistema linear Ax = b e seja C = [Ab] a


matriz obtida a partir da matriz C através da aplicação sucessiva de um número finito de transformações
elementares, então a solução do sistema linear Ax = b é igual a solução do sistema Ax = b.
Exemplo 3.2.3
O sistema linear do Exemplo 3.2.2 foi obtido do sistema linear do Exemplo 3.2.1 a partir de
or
transformações elementares nas linhas de sua matriz ampliada, do seguinte modo:
1 2 3 | 8

C= 2 5 4 | 8 
3 4 6 | 12
ab
Multiplicamos a primeira linha por −2 e somamos à segunda linha da matriz C; multiplicamos a
primeira linha por −3 e somamos à terceira linha, assim obtemos:

3 |
 
1 2 8
 0 1 −2 | −8 
0 −2 −3 | −12
El

Agora multiplicamos a 2◦ linha por 2 e somamos à 3◦ linha. Obtemos a matriz

2 3 |
 
1 8
 0 1 −2 | −8 
0 0 −7 | −28

Em

 x1 + 2x2 + 3x3 = 8
que é a matriz ampliada do seguinte sistema linear triangular superior: x2 − 2x3 = −8

−7x3 = −28

3.3 Resolução de Sistemas Lineares


Sistema Triangular Inferior
A solução de um sistema triangular inferior como


 a11 x1 = b1

 a21 x1 + a22 x2 = b2
.. ..

 . .


an1 x1 + an2 x2 + · · · + ann xn = bn
pode ser calculada efetuando-se substituições sucessivas do seguinte modo:
3.3. Resolução de Sistemas Lineares 31

b1
x1 =
a11
b2 − a21 x1
x2 =
a22
b3 − (a31 x1 + a32 x2 )
x3 =
a33
..
.
bn − (an1 x1 + an2 x2 + · · · + ann−1 xn−1 )

ão
xn =
ann

De um modo geral, para i = 1, 2, . . ., n


X
i−1
bi − aij
j=1
xi =
or aii

Algoritmo 6: Sistema Triangular Inferior

Entrada: aij , 1 6 i 6 n e i > j


ab
bi , 1 6 i 6 n
Saída: x1 , x2 , . . . , xn
início
b1
x1 = ;
a11
El

para i = 2, 3, . . . , n faça
soma = 0;
para j = 1, 2, . . . , i − 1 faça
soma = soma − aij ;
fim
bi − soma
xi = ;
aii
Em

fim
fim

Sistema Triangular Superior


A solução de um sistema triangular superior



 a11 x1 + a12 x2 + · · · + a1n xn = b1

 a22 x2 + · · · + a2n xn = b2
..

 .


ann xn = bn

pode ser calculada através de substituição retroativas, do seguinte modo:


32 3. Sistemas de Equações Lineares

bn
xn =
ann
bn−1 − an−1n xn
xn−1 =
an−1 an−1
..
.
b1 − (a12 x2 + a13 x3 + · · · + a1n xn )
x1 =
a11

Generalizando, para i = n, n − 1, . . ., 1

ão
X
n
bi − aij
j=i+1
xi =
aii


Algoritmo 7: Substituição Retroativa

Entrada: aij , 1 6 i 6 n e i 6 j
bi , 1 6 i 6 n or
Saída: x1 , x2 , . . . , xn
início
bn
xn = ;
an1
ab
para i = n − 1, n − 2, . . . , 1 faça
soma = 0;
para j = i + 1, . . . , n faça
soma = soma − aij ;
fim
bi − soma
El

xi = ;
aii
fim
fim
Em

Número de Operações
n2
Tanto o algoritmo de substituições numéricas quanto o de substituições retroativas realizam 2 + n
2 −1
2
adições, nn − n2 multiplicações e n divisões, totalizando, cada um n2 + n − 1 operações.

3.4 Métodos Diretos


Métodos diretos são aqueles que resolvem o sistema linear Ax = b realizando um número finito de passos.
Nesta seção estudaremos o método da Eliminação Gaussiana, a Fatoração LU e a Fatoração de Cholesky.
Esses métodos realizam duas fases distintas para calcular a solução de um sistema linear. Primeiro, efetua-
se transformações elementares nas matrizes do sistema de modo a triangularizar a amtriz dos coeficientes;
e em seguida resolve-se um ou mais sistemas triangulares.

Eliminação Gaussiana
Considere um sistema linear de ordem 4 cuja matriz ampliada é dada por
3.4. Métodos Diretos 33

|
 
a11 a12 a13 a14 b1
 a21 a22 a23 a24 | b2 
C=
|

 a31 a32 a33 a34 b3 
a41 a42 a43 a44 | b4
A primeira fase da eliminação Gaussiana consiste na triangularização dessa matriz, o que é feito por
erapas.

Etapa 1. Eliminação da variável x1 nas equações 2, 3 e 4.


Para isso calcularesmo os multiplicadores m21 , m31 e m41 do seguinte modo:

ão
a21 a31 a41
m21 = , m31 = e m41 = .
a11 a11 a11

Os elementos da 1◦ coluna que estão abaixo de a11 serão zerados com as seguintes transformações
elementares:


(1) (1) (1)
L2 = L2 − m21 L1 ; L3 = L3 − m31 L1 e L4 = L4 − m41 L1 .

Ao final dessa etapa, obteremos a matriz or | b1


 
a11 a12 a13 a14
(1) (1) (1) (1)
 0 a22 a23 a24 | b2 
C(1) = 
 
(1) (1) (1) (1)
0 a32 a33 a34 | b3

ab
 
(1) (1) (1) (1)
0 a42 a43 a44 | b4

Etapa 2. Nesta etapa o objetivo é a eliminação dos coeficientes x2 nas linhas 3 e 4 da matriz C(1) .
(1) (1)
a32 a42
Os multiplicadores são m32 = e m42 = e as transformações elementares são:
El

(1) (1)
a22 a22

(2) (1) (1) (2) (1) (1)


L3 = L3 − m32 L2 e L4 = L4 − m42 L2

ao final da etapa 2, teremos a matriz


Em

| b1
 
a11 a12 a13 a14
(1) (1) (1) (1)
 0 a22 a23 a24 | b2 
C(2) = 
 
(2) (2) (2)
0 0 | b3

 a33 a34 
(2) (2) (2)
0 0 a43 a44 | b4

Por fim, temos a Etapa 3. O objetivo desta etapa é eliminar o coeficiente de x3 da linha 4 de C(2) .
a43 (3) (2) (2)
Nesta etapa, o multiplicador é m43 = e a transformação elementar é L4 = L4 − m43 L3 .
a44
Dessa forma, ao final da etapa 3 teremos a matriz

| b1
 
a11 a12 a13 a14
(1) (1) (1) (1)
 0 a22 a23 a24 | b2 
C(3) = 
 
(2) (2) (2)
0 0 | b3

 a33 a34 
(3) (3)
0 0 0 a44 | b4
e o processo de triangularização está finalizado.
34 3. Sistemas de Equações Lineares

(1) (2) (3)


Os elementos a11 , a22 , a33 e a44 que aparecem na diagonal principal da matriz C(k) , a cada etapa
k, são chamados de pivôs. Se em alguma dessas etapas, o pivô se anular, devemos efetuar uma troca
de linhas, antes de começar a etapa seguinte. Sempre deve-se escolher linhas abaixo da diagonal
principal para não perder a eliminação realizada na etapa anterior.
Ao final do processo de triangularização, o sitema triangular superior obtido
    b 
a11 a12 a13 a14 x1 1
(1) (1) (1) (1)
 0 a22 a23 a24   x2 
  b 
 2(2)
=
 
(2) (2)
0 0  x3
  
 a33 a34   b3 
(3) x4 (3)
0 0 0 a44 b4

ão
é resolvido através do Algoritmo 7 (distribuição retroativa).

Algoritmo 8: Eliminação Gaussiana sem troca de linhas

Entrada: aij , 1 6 i 6 n e 1 6 j 6 n


bi , 1 6 i 6 n
para k = 1, 2, . . . , n − 1 faça
para i = k + 1, . . . , n faça
aik
m= (supondo akk 6= 0); or
akk
para j = k + 1, k + 2, . . . , n faça
aij = aij − m × akj ;
fim
bi = bi − m × bk ;
ab
fim
fim
El
Em
4
Introdução à Resolução de Sistemas
Não Lineares

ão

Dada uma função não linear Fξ : U → Rn em que F = (f1 , f2 , f3 , . . . , fn ), nossoobjetivo é resolver o sistema
com n funções e n variáveis.


 f1 (x1 , x2 , . . . , xn ) = 0

 f2 (x1 , x2 , . . . , xn ) = 0
or
..

 .


fn (x1 , x2 , . . . , xn ) = 0
ab
Definição 4.0.1 O vetor gradiente de fi (x) é o vetor formado pelas derivadas parciais de fi (x).
 
∂fi ∂fi ∂fn
∇fi (x) = ; ; .
∂x1 ∂x2 ∂xn
El

Definição 4.0.2 A matriz Jacobiana, ou somente o Jacobiano, é a matriz


∂f1 ∂f1 ∂f1 ∂f1
 
···
Em

   ∂x ∂x2 ∂x3 ∂xn 


∇f1 (x)  ∂f21 ∂f2 ∂f2 ∂f2 
 ∇f2 (x)   ∂x1 ∂x2 ∂x3 ··· ∂xn 

   ∂f3 ∂f3 ∂f3 ∂f3 
J(x) =  ∇f3 (x) ···
 
=
 
..   ∂x1 ∂x2 ∂x3 ∂xn 
.  .. .. .. .. .. 

 
 . . . . . 
 
∇fn (x)  ∂f ∂fn ∂fn ∂f 
n n
···
∂x1 ∂x2 ∂x3 ∂xn

Exemplo 4.0.1
x31 − 3x1 x22 + 1 = 0 ⇔ f1 (x1 , x2 ) = 0
Seja F(x) = . Calcule o Jacobiano.
3x21 x2 − x32 = 0 ⇔ f2 (x1 , x2 ) = 0
 2
3x1 − 3x22

−6x1 x2
J(x) =
6x1 x2 3x1 2 − 6x22

Para obtermos a solução de sistemas não lineares, utilizaremos métodos iterativos, isto é, a partir de
um ponto inicial x(0) , geramos uma sequência de vetores que convergem para a solução.
35
36 4. Introdução à Resolução de Sistemas Não Lineares

4.1 Método de Newton


Similar ao que foi feito, para se definir a função de iteração no calcular da raiz, pelo método de Newton,
em que f(x) = 0 vamos aproximar o sistema de equações lineares a partir das primeiras derivadas das
funções, então


 f1 (xi ) = 0

 f2 (xi ) = 0
fi (x) = f1 (xk ) + ∇fi (ci ) + (x − xk ) ; F(x) = ..

 .


fn (xi ) = 0
tomando ∇fi (xi ) podemos aproximar a função fi (x) como e escrevendo na forma matricial.

ão
F(x) ≈ Lk (x) = F(xk ) + J(xk )(x − xk )
onde Lk (x) é a aproximação da função F(x).
Como F(x) = 0, a aproximação Lk (x) = 0 ⇒ 0 = F(xk ) + J(xk )(x − xk ) ⇒


J(xk )(x − xk ) = −F(xk )
Portanto, temos que resolver esse sistema linear com xk+1 = xk .
Para simplificar a notação podemos denotar sk = x − xk , então
or
J(xk )sk = −F(xk ) e xk+1 = sk + xk
ou seja, resolvemos o sistema linear J(xk )sk = −F(xk ) e com o resultado somamos o ponto xk , isto é,
xk+1 = sk + xk .
ab
Observação 4.1.1 Para que seja garantida a convergência da solução, é necessário que a aproxi-
mação inicial seja próxima da solução.

Exemplo 4.1.1
El

 
x1 + x2 − 3 = 0 1
Determine a solução do sistema não linear com x0 = .
x21 + x22 − 9 = 0 5
∂f1 ∂f1
 
 ∂x1 ∂x2 
O Jacobiano do sistema é J(x) =  ∂f ∂f2 
2
Em

∂x1 ∂x2
   
1 1 0 1 1
J(x) = ⇒ J(x ) =
2x1 2x2 2 10
 
3
F(x0 ) =
17

Resolvendo o sistema J(x0 )s = −F(x0 ):

s01
    
1 1 −3
=
2 10 s02 −17
Utilizando a eliminação de Gauss

1 1 | −3
 

2 1 | −17

Pivô é a11 = 1 ; m21 = a21


a11 = 2 ; m21 ( 1 1 | 0 ) = ( −2 −2 | 6 )
4.1. Método de Newton 37

1 1 | −3 (0)
 
8s2 = −11 ⇒ s2 = −11/8

0 8 | −11 s1 + s2 = −3 ⇒ s1 = −13/8
Logo
     
1 0 0 1 −13/8 −0, 625
x =x +s = + = ⇒
5 −11/8 3, 625
 
−5/8
x1 = 29/8

2◦ Iteração:

ão
   
1 1 0
1
J(x ) = ; F(x1 ) = 290 ; J(x1 )s = −F(x1 )
−5/4 29/4
64
! 
  (1) 
1 1 s1 0
(1) =
−5/4 29/4
s2 −290/64


a21
Eliminação de Gauss. Pivô a11 = 1, m21 = a = − 45 = 5/4 5/4 | 0

11

1 | 1 1 |
   
1 0 0
= ⇒
−5/4 29/4 | −290/64 0 34/4 | −290/64

34
4
s2 =
290
64
or
ab
145
s2 = − ≈ −0, 53 ⇒
(16 × 17)

s1 + s 2 = 0 ⇒
El

145
s1 = ≈ −0, 53
(16 × 17)
     
2 (1) (1) +0, 53 −5/8 0 0, 09
x =s +x = + 29/8
⇒x =
−0, 53 3, 098
3◦ Iteração:
Em

   
1 1 0, 18
2
J(x ) = ; F(x ) =
2 ; J(x2 )s = −F(x2 )
0, 18 6, 18 0, 56
| −0, 18
 
1 1
Logo, .
0, 18 6, 18 | −0, 56
Eliminação de Gauss, pivô a11 = 1, m21 = a a11 = 0, 18 ; m21 −0, 18 −0, 18 | 0, 01
21


1 1 | −0, 18 (2) (2)


 
6s2 = 0, 53 ⇒ s2 = −0, 09

0 6 | −0, 53 s1 + s2 = 0, 18 ⇒ s1 = −0, 09
     
2 2 −0, 09 0, 09 0, 00
x(3) =s +x = + =
−0, 09 3, 09 3, 00
Na 3◦ iteração, conseguimos encontrar a solução, com erro na segunda casa decimal!

Observação 4.1.2 O Método de Newton converge bem, mas é trabalhoso resolver o sistema linear
a cada iteração.
38 4. Introdução à Resolução de Sistemas Não Lineares

Observação 4.1.3 Se para resolvermos o sistema linear utilizamos algum método iterativo, o método
recebe o nome de Método de Newton Iterativo.

4.2 Método de Newton Modificado


Para simplificar a solução de um sistema linear, para cada iteração do método de Newton, é feita uma
modificação

J(x0 )s = −F(xk )

ão
fixando o Jacobiano J(x0 )m da iteração inicial, ao invés de J(xk ) para cada ponto. Dessa forma, a matriz
Jacobiana é avaliada somente uma vez. Esse método é denominado de Método de Newton Modificado.
Exemplo 4.2.1
Aplicando o método de  Newton
 Modificado na solução
 do exemplo anterior, até a 3 iteração, com



x1 + x2 − 3 = 0 1 1 1
2 2 e x0 = , J(x) =
x1 + x2 − 9 = 0 5 2x1 2x2
   
1 1 3
A primeira iteração é feita da mesma forma: J(x0 ) = e F(x ) =
0 , então
2 10 17

1 1
2 10
 (0)
s1
(0)
s2
! or
3
17

⇒s=

−13/8
−11/8


   
−5/8 −0, 625
Com x1
ab
= 29/8
=
3, 625

2◦ iteração: ! 
    (1) 
0 0 1 1 1 s1 0
f(x1 ) = 290 ⇒ J(x )s = −F(x ) ⇒ (1) =
/64 2 10 s2 −4, 53
El

Eliminação de Gauss, pivô a11 = 1 ⇒ m21 = a a21


11
= 2, m21 ( −2 −2 | 0 )

1 1 |
 
0 290
⇒ s2 = − = −0, 57 ⇒ s1 + s2 = 0 ⇒ s1 = +0, 57
0 8 | −290/64 64 × 8
   
2 1 1
 −6, 625 −6, 06
x = s + x = 0, 57 −0, 57 + =
Em

3, 625 3, 06
3◦ iteração:
 
0
f(x2 ) = ⇒ J(x0 )s = −F(x2 )
0, 37
  2   
1 1 s1 0
=
2 10 s21 −0, 37
  2   
1 1 s1 0
=
0 8 s22 −0, 37
Eliminação de Gauss, m21 = 2, m21 ( −2 −2 | 0 )

8s2 = −0, 37 ⇒ s22 = −0, 05 ; s1 + s2 = 0 ⇒ s1 = −s2 = 0, 05

   
3 2 2 0, 05 3 −0, 01
x =s +x = ⇒x =
−0, 05 3, 01
4.2. Método de Newton Modificado 39

O Método de Newton Modificado não converge tão rápido quanto o Método de Newton, mas em
compensação só é necessário calcular uma matriz Jacobiana.
Uma outra modificação feita no método de Newton é aproximar a matriz Jacobiana J(xk ) por uma
matriz B(k) , muito útil em situações onde calcular a derivada pode ser custoso computacionalmente.
Esses métodos são chamados de Quase-Newton.
Para sistemas nãolineares
  2, podemos obter uma
2×  expressãomais simples
 para a inversa
 da matriz
a b d −b d −b
Jacobiana, já que A = , então A−1 = detA
1 1
= ad−bc .
c d −c a −c a
 
∂x f1 ∂y f1
Uma vez calculado o Jacobiano J =
∂x f2 ∂y f2
Jsk = −f(xk ) ⇒ sk = −J−1 F(xk )

ão
Logo,

xk+1 = sk + xk = xk − J−1 F(x) ⇒


F1 (xk )
  
1 ∂x f1 ∂y f1
xk+1 = xk −
∂x f1 ∂y f2 − ∂y f1 ∂x f2 ∂x f2 ∂y f2 F2 (xk )

xk+1
=

xk
1
xk
2


1
or
∂x f1 ∂y f2 − ∂y f1 ∂x f2

F1 (xk )∂x f1 + F2 (xk )∂y f1
F1 (xk ∂x f2 + F2 (xk )∂y f2

ab
El
Em
5
Interpolação

ão

Interpolar uma função f(x) consiste em aproximar essa função por uma outra, g(x), escolhida entre um
classe de funções definidas previamente. Assim, a análise de f(x) é substituida pela análise de g(x).

x −20 −12 −10 −5 0 2 8 16


f(x) 54 13 12

Qual seria o valor de x = −3, x = −2, x = 5?


1
or −1 12 14 26

 g(−3) ≈ f(−3)
f(x) ≈ g(x) e a partir do cálculo de
ab
g(−2) ≈ f(−2)

g(5) ≈ f(5)


 (x0 , f(x00 ))

 (x1 , f(x1 )
Sejam (m + 1) pontos distintos, da forma .. esses pontos são chamados de nós da inter-

 .

El


(xn , f(xn ))
polação.
 Uma forma de se obter a interpolação é requisitando que g(x) coincida com f(x) nos pontos conhecidos

 g(x0 ) = f(x0 )



 g(x 1 ) = f(x1 )
g(x2 ) = f(x2 )
Em


 .. ..

 . .


g(xn ) = f(xn )
FIGURA

Observação 5.0.1 Existem outras formas para se obter critério para interpolação, como por exem-
plo, a série de Taylor.

Ao longo do curso, utilizaremos g(x) como uma função polinomial, mas vale a pena solicitar que a
função g(x) pode ser funções de Hermite, ou funções trigonométricas.

5.1 Interpolação Polinomial


Sejam (x0 , f(x0 ), (x1 , f(x1 ), . . . , (xn , f(xn )) m+1 pontos, então efetuar uma interpolação polinomial consiste
em aproximar f(x) por um polinômio de grau menor ou igual a n, com p(x) = a0 +a1 x+a2 x2 +· · ·+an xn ,
onde queremos obter os coeficientes ak , k = 0, 1, . . . , m, então
40
5.2. Formas para se obter o polinômio interpolador Pn (x) 41



 f(xk ) = p(xk ), para k = 0, 1, . . . , n logo



 f(x0 ) = a0 + a1 x0 + a2 x20 + · · · + an x2n

 f(x1 ) = a0 + a1 x1 + a2 x2 + · · · + an x2
1 1
f(x ) = a + a x + a x2 + · · · + a x2

 2 0 1 2 2 2 n 2

 ..

 .


f(xn ) = a0 + a1 xm + a2 x2m + · · · + an x2n
um sistema com n + 1 equações e n + 1 variáveis.

Observação 5.1.1 Se aumentamos o grau do polinômio, não temos como obter uma solução para

ão
o sistema acima.

Representando na forma matricial

x20 · · · xn
    
f(x0 ) 1 x0 0 a0


 f(x1 )  
   1 x1 x21 · · · xn1

 a1 

 f(x2 )  
= 1 x2 x22 · · · xn2
 a2 
 ..   .. .. .. .. .. ..
  
 .   . . . . . .
 
 
f(xn ) 1 xn x2n · · · xnn an
| {z
or }
A matriz dos coeficientes

Então, determinar os coeficientes (a0 , a1 , . . . , an ) é equivalente a resolver o sistema acima. A matriz


A é uma matriz de Vondermonde, e desde que xi 6= xj , ∀ i, j = 0, 1, 2, . . . , n temos que det(A) 6= 0. Com
ab
isso, podemos afirmar que

Teorema 5.1.1 Existe um único polinômio pn (x), de grau 6 n, tal que pn (xk ) = f(xk ), k = 0, 1, 2, . . . , n,
desde que xi 6= xj ∀ i, j.
El

5.2 Formas para se obter o polinômio interpolador Pn (x)



 ·Resolução do Sistema Linear;
Verem os três formas equivalentes de se obter o polinômio interpolador que são: ·Método de Lagrange;

·Método de Newton.
Em

Observação 5.2.1 Os três métodos conduzem ao mesmo polinômio interpolador.

5.3 Resolução do Sistema Linear


Como o próprio título indica, vamos obter o polinômio interpolador, resolvendo o sistema linear.
Exemplo 5.3.1
A partir dos dados abaixo, responda:

x −1 0 2
f(x) 4 1 −1

a) Qual é o maior grau do polinômio interpolador?


b) Determine o polinômio interpolador;
c) Estime o valor da função f(x), para x = 1.
42 5. Interpolação

a) Com 3 pontos distintos, o grau de polinômio é 2

p(x) = a0 + a1 x + a2 x2

x0 = −1 x1 = 0 x2 = 2
b) Para ; ; , como f(xk ) = p(xk )
f(x0 ) = 4 f(x1 ) = 1 f(x2 ) = −1


 3 = −a1 + a2
 4 = a0 − a1 + a2 ⇒
−2 = 2a1 + 4a2

 1 = a0

−1 = a0 + 2a1 + 4a2

ão
6 = −2a1 + 2a2 4 2
⇒ 4 = 6a2 ⇒ a2 = =
−2 = 2a1 + 4a2 6 3

7 0
a =1
2


a1 = −3 + a2 = −3 + = − a1 = −7/3
3 3
a2 = 2/3

7 2
Logo, p2 (x) = 1 − x + x2
3 3 or
c) Para x = 1 temos que p2 (1) = 1 − 7
3 + 2
3 = 3−7+2
3 = − 32 . Então f(1) ≈ p2 (1) = − 23 então
f(1) ≈ − 23 .
ab
5.4 Forma de Lagrange
Sejam (x0 , f(x0 )), (x1 , f(x1 )), . . ., (xn , f(xn )), n + 1 pontos distintos. A forma de Lagrange consiste em
escrever o polinômio interpolador de grau n, de forma
El

pn (x) = f(x0 )L0 (x) + f(x1 )L1 (x) + f(x2 )L2 (x) + · · · + f(xn )Ln (x)
onde os polinômios Lk (x) são de grau n. Para cada xi , queremos que p(xi ) = f(xi )

p(xi ) = f(x0 )L0 (xi ) + f(x1 )L1 (xi ) + · · · + L(xn )Ln (xi ) = f(xi ), ∀ i = 0, 1, 2, . . . , n.
Em

0, se k 6= i
Uma forma de se obter essa condição é impor que Lk (xi ) = e definirmos
1, se k = i
(x − x0 )(x − x1 )(x − x2 ) . . . (x − xk−1 )(x − xk+1 ) . . . (x − xn )
Lk (x) =
(xk − x0 )(xk − x1 ) . . . (xk − xk−1 )(xk − xk+1 ) . . . (xk − xn )
um produto com todos os pontos, menos o com índice k

Y
n
(x − xi )
Lk (x) = , então
(xk − xi )
i=0
i6=k

 (xk − x0 )(xk − x1 ) . . . (xk − xk−1 )(xk − xk+1 ) . . . (xk − xn )
·Lk (xk ) = =1
(xk − x0 )(xk − x1 ) . . . (xk − xk−1 )(xk − xk+1 ) . . . (xk − xn )

·Lk (xi ) = 0, se i 6= k.
Portanto, o polinômio interpolador a partir da forma de Lagrange é

X
n Y
n
(x − xi )
pn (x) = f(xk )Lk (x), com Lk (x) =
(xk − xi )
k=0 i=0
5.4. Forma de Lagrange 43

X
n Y f(xk )(x − xi )
" n #
pn (x) =
(xk − xi )
k=0 i=0

Exemplo 5.4.1 (Interpolação Linear pela Forma de Lagrange)


Sejam (x0 , f(x0 )) e (x1 , f(x1 )) dois pontos distintos, então o polinômio interpolador pn (x) deve ser
de grau 1.

p1 (x) = f(x0 )L0 (x) + f(x1 )L1 (x)


Y
1
(x − xi ) (x − x1 ) Y
1
(x − x1 ) (x − x0 )
L0 (x) = = L1 (x) = =
(x0 − xi ) (x0 − x1 ) (x1 − xi ) (x1 − x0 )
i=0 i=0

ão
i6=0 i6=o
Logo

(x − x1 ) (x − x0 )
p1 (x) = f(x0 ) + f(x1 ) ⇒
x0 − x1 x1 − x0


f(x0 )(x − x1 ) + f(x1 )(x − x0 )
p1 (x) = − ⇒
x1 − x0
(x1 − x)f(x0 ) + (x − x0 )f(x1 )
p1 (x) =
x1 − x0
or
que é a equação da reta que passa pelos pontos

(x0 , f(x0 ))
(x1 , f(x1 ))
ab
Exemplo 5.4.2
Seja
El

x −1 0 2
f(x) 4 1 −1

determine o polinômio interpolador pela forma de Lagrange.


Como temos 3 pontos, pn (x) é de grau 2.
Em

p2 (x) = f(x0 )L0 (x) + f(x1 )L1 (x) + f(x2 )L2 (x)

com f(x0 ) = 4 ; f(x1 ) = 1 e f(x2 ) = −1.


Os polinômios Li (x) são

Y
2
(x − xi ) (x − x1 )(x − x2 ) (x − 0)(x − 2)
• L0 (x) = = =
(x0 − xi ) (x0 − x1 )(x0 − x2 ) (−1 − 0)(−1 − 2)
i=0
i6=0

x(x − 2) x2 − 2x
L0 (x) = =
3 3

Y
2
(x − xi ) (x − x0 )(x − x2 ) (x + 1)(x − 2)
• L1 (x) = = =
(x1 − xi ) (x1 − x0 )(x1 − x2 ) (0 + (−1))(0 − 2)
i=0
i6=0

(x + 1)(x − 2) x2 − x − 2
L1 (x) = =
−2 −2
44 5. Interpolação

Y
2
(x − xi ) (x − x0 )(x − x1 ) (x + 1)(x)
• L2 (x) = = =
(x2 − xi ) (x2 − x0 )(x2 − x1 ) (2 − (−1))(2 − 0)
i=0
i6=0

x2 + x
L2 (x) =
6
Logo,

p2 (x) = 4L0 (x) + 1L1 (x) − 1L2 (x) ⇒


(x2 − 2x) x2 − x − 2 (x2 + x)

ão
p2 (x) = 4 + + (−1) ⇒
3 −2 6
8x2 − 16x − 3x2 + 3x + 6 − x2 − x
p2 (x) = ⇒
6
4x2 − 14x + 6
p2 (x) = ⇒


6
2 7
p2 (x) = x2 − x + 1
3 3
Igual ao polinômio obtido resolvendo o sistema linear!

5.5 Forma de Newton


or
A partir de n + 1 pontos (x0 , f(x0 )), (x1 , f(x1 )), . . ., (xn , f(xn )) o polinômio interpolador pn (x) será
ab
pn (x) = d0 + d1 (x − x0 ) + d2 (x − x0 )(x − x1 ) + · · · + dn (x − x0 )(x − x1 )(x − x2 ) . . . (x − xn−1 )

onde di são os operadores de diferenças divididas que veremos a seguir.


El

Operador de Diferenças Divididas


Seja f(x) uma função tabelada em n + 1 pontos distintos: x0 , x1 , . . ., xn . Definiremos o operador de
diferenças divididas como:
Em

• Ordem Zero:
f[x0 ] = f(x0 )

• Ordem 1:
f[x1 ] − f[x0 ] f(x1 )f (x0 )
f[x0 , x1 ] = =
x1 − x0 x1 − x0
• Ordem 2:
f(x2 )−f(x1 ) f(x1 )−f(x0 )
f[x1 , x2 ] − f[x0 , x1 ] x2 −x1 − x1 −x0
f[x0 , x1 , x2 ] = =
x2 − x0 x2 − x0
• Ordem 3:
f[x1 , x2 , x3 ] − f[x0 , x1 , x2 ] f[x2 , x3 ] − f[x1 , x2 ] f[x1 , x2 ] − f[x0 , x1 ]
f[x0 , x1 , x2 , x3 ] = = =
x3 − x0 (x3 − x1 )(x3 − x0 ) (x2 − x0 )(x3 − x0 )
• Ordem 4:
f[x0 , x1 , x2 , x3 , x4 ] − f[x0 , x1 , x2 , x3 ]
f[x1 , x2 , x3 , x4 ] =
x4 − x0
5.5. Forma de Newton 45

• Ordem n:
f[x1 , x2 , . . . , xn ] − f[x0 , x1 , . . . , xn−1 ]
f[x0 , x1 , x2 , . . . , xn ] =
xn − x0
Para calcular as diferenças divididas utiliza-se a tabela para facilitar os cálculos.

x Ordem 0 Ordem 1 Ordem 2 Ordem n


x0 f[x0 ] f[x0 , x1 ] f[x0 , x1 , x2 ]
x1 f[x1 ] f[x1 , x2 ] f[x1 , x2 , x2 ]
x2 f[x2 ] f[x2 , x3 ] f[x2 , x3 , x4 ]
f[x0 , x1 , . . . , xn ]

ão
x3 f[x3 ] f[x3 , x4 ] f[x3 , x4 , x5 ]
.. .. .. ..
. . . .
xn f[xn ] f[xn−1 , xn ] f[xn−2 , xn−1 , xn ]


Observação 5.5.1 A diferença dividida são simétricas, ou seja, qualquer troca nos valores de xi
não altera o resultado, isto é,

f[x0 , x1 ] =
f[x1 ] − f[x0 ]
x1 − x0
or
=
f[x0 ] − f[x1 ]
x0 − x1
= f[x1 , x0 ]

f[x0 , x1 , x2 ] = f[x2 , x0 , x1 ] = f[x1 , x0 , x2 ]


ab
= f[x0 , x2 , x1 ] = f[x1 , x2 , x0 ] = f[x2 , x1 , x0 ]

válido para qualquer combinação entre xi .

Exemplo 5.5.1
El

Seja

x −1 0 1 2 3
f(x) 1 1 0 −1 −2
x0 x1 x2 x3 x4
Em

então as diferenças divididas são:

• Ordem 0:
f[x0 ] = 1 ; f[x1 ] = 1 ; f[x2 ] ; f[x3 ] = −1 ; f[x4 ] = 0
x0 = −1 ; x1 = 0 ; x2 = 1 ; x3 = 2 ; x4 = 3

• Ordem 1:
f[x1 ] − f[x0 ] 1−1
f[x0 , x1 ] = = =0
x1 − x0 0 − (−1)
f[x2 ] − f[x1 ] 0−1
f[x1 , x2 ] = = = −1
x2 − x1 1−0
f[x3 ] − f[x2 ] −1 − 0
f[x2 , x3 ] = = = −1
x3 − x2 2−1
46 5. Interpolação

f[x4 ] − f[x3 ] −2 − (−1)


f[x3 , x4 ] = = = −1
x4 − x3 3−2
• Ordem 2:
f[x1 , x2 ] − f[x0 , x1 ] −1 − 0 1
f[x0 , x1 , x2 ] = = =−
x2 − x0 1 − (−1) 2
f[x2 , x3 ] − f[x1 , x2 ] −1 − (−1)
f[x1 , x2 , x3 ] = = =0
x3 − x1 2−0
f[x3 , x4 ] − f[x2 , x3 ] −1 − (−1)
f[x2 , x3 , x4 ] = = =0
x4 − x2 3−1
• Ordem 3:

ão
0 − − 21

f[x1 , x2 , x3 ] − f[x0 , x1 , x2 ] 1
f[x0 , x1 , x2 , x3 ] = = =
x3 − x0 2 − (−1) 6
f[x2 , x3 , x4 ] − f[x1 , x2 , x3 ] 0−0
f[x1 , x2 , x3 , x4 ] = = =0
x4 − x1 3−0


• Ordem 4:
0 − 61

f[x1 , x2 , x3 , x4 ] − f[x0 , x1 ], x2 , x3 ] 1
f[x0 , x1 , x2 , x3 , x4 ] = = =−
x4 − x0 3 − (−1) 24

A tabela de diferenças divididas é:

x Ordem 0 Ordem 1
or Ordem 2 Ordem 3 Ordem 4
x0 = −1 f[x0 ] = 1
ab
f[x0 , x1 ] = 0
x1 = 0 f[x1 ] = 1 − 12 1
−1 6 1
x2 = 1 f[x2 ] = 0 0 − 24
−1 0
x3 = 2 f[x3 ] = −1 0
−1
x4 = 3 f[x4 ] = −2
El

5.6 Forma de Newton para pn (x)


Seja f(x) uma função contínua e derivável em [a, b], com n + 1 pontos
Em

a = x0 < x1 < x2 < . . . < xn = b


ordenados de forma crescente. Recursivamente, temos que

• Para n = 0, o polinômio de grau 0 que interpola f(x) em x = x0 , então

p0 (x) = f(x0 ) = f[x0 ] Diferença dividida de ordem zero.


então para qualquer x ∈ [a, b], x 6= x0

f[x] − f[x0 ] f(x) − f(x0 )


f[x0 , x] = = ⇒
x − x0 x − x0
f(x) = f(x0 ) + [x − x0 ] · f[x0 , x] ⇒
| {z } | {z }
p(x0 ) E0 (x) é o erro cometido ao se
aproximar f(x) por p0 (x), dado por
5.6. Forma de Newton para pn (x) 47

E0 (x) = f(x) − p(x0 ) com p0 (x) = f(x0 ).

• Para n = 1, o polinômio de grau 1 que interpola f(x) em x0 e x1 , temos que

f[x]−f[x0 ]
f[x0 , x] − f[x1 , x0 ] (x−x0 ) − f[x1 , x0 ] f(x) − f[x0 ] − f[x1 , x0 ](x − x0 )
f[x0 , x1 , x] = f[x1 , x0 , x] = = = ⇒
x − x1 x − x1 (x − x1 )(x − x0 )
f(x) = f[x0 ] + (x − x0 )f[x1 , x0 ] + (x − x0 )(x − x1 )f[x0 , x1 , x]
| {z } | {z }
p1 (x) polinômio de grau 1 E1 (x) é o erro ao se interpolar f(x) por p1 (x)

ão
então p1 (x) = f(x0 ) + (x − x0 )f[x0 , x1 ]
| {z } | {z }
p0 (x) q1 (x)


é o polinômio de grau 1 que passa por (x0 , f(x0 )) e (x1 , f(x1 ) já que

 p1 (x0 ) = f(x0 ) + (x0 − x0 )f[x0 , x1 ] = f(x0 )
or
 p1 (x1 ) = f(x0 ) + (x1 − x0 ) f[x1 ] − f[x0 ] = f(x1 )
x1 − x0

• Para n = 2, o polinômio de grau 2 que interpola f(x) em x0 , x1 e x2 , com


ab
f[x0 ,x]−f[x1 ,x0 ]
f[x1 , x0 , x] − f[x2 , x1 , x0 ] (x−x1 ) − f[x2 , x1 , x0 ]
f[x0 , x1 , x2 , x] = f[x2 , x1 , x0 , x] = =
x − x2 x − x2
El

f(x) − f(x0 ) − f[x1 , x0 ](x − x0 ) − (x − x0 )(x − x1 )f[x2 , x1 , x0 ]


= ⇒
(x − x0 )(x − x1 )(x − x0 )

f(x) = f[x0 ] + f[x1 , x0 ](x − x0 ) + f[x2 , x1 , x0 ](x − x0 )(x − x1 ) + f[x0 , x1 , x2 , x](x − x0 )(x − x1 )(x − x2 )
| {z } | {z }
p2 (x) E2 (x) é o erro ao se interpolar f(x) por p2 (x)
Em

p2 (x) = f[x0 ] + (x − x0 )f[x1 , x0 ] + (x − x0 )(x − x1 )f[x2 , x1 , x0 ]


| {z } | {z }
p1 (x) p2 (x)

Então, de modo geral o polinômio

pk (x) = pk−1 (x) + qk (x)


Aplicando sucessivamente o mesmo raciocínio para um polinômio de grau n, que interpola f(x) em
x0 , x1 , x2 , . . . , xn obtemos que

pn (x) = f(x0 ) + (x − x0 )f[x0 , x1 ] + (x − x0 )(x − x1 )f[x0 , x1 , x2 ]+


(x − x0 )(x − x1 )(x − x2 )f[x0 , x1 , x2 , x3 ] + · · · + (x − x0 )(x − x1 ) . . . (x − xn−1 )f[x0 , x1 , x2 , . . . , xn ],
onde o erro na aproximação de f(x) por pn (x) é

En = (x − x0 )(x − x1 ) . . . (x − xn )f[x0 , x1 , x2 , . . . , xn , x]
48 5. Interpolação

Portanto, pn (x) construído pela forma de Newton passa pelos n+1 pontos (x0 , f(x0 )), (x1 , f(x1 )), . . . , (xn , f(xn ))
já que

f(x) = pn (x) + En (x), então

f(xk ) = pn (xk ) + En (xk ) e como En (xk ) = 0, ∀ k = 0, 1, 2, . . . , n

f(xk ) = pn (xk )

ão
Observação 5.6.1 Ao utilizarmos a forma de Newton para o polinômio interpolador, obtemos uma
expressão para o erro obtido na interpolação.

Exemplo 5.6.1
Usando a forma de Newton, obtenha o polinômio p2 (x) que interpola f(x) nos pontos


x −1 0 2
f(x) 4 1 −1

o polinômio p0 (x) pela forma de Newton é:


or
p2 (x) = f[x0 ] + (x − x0 )f[x0 , x1 ] + (x − x0 )(x − x1 )f[x0 , x1 , x2 ]
ab
Montando a tabela de diferenças divididas:

x Ordem 0 Ordem 1 Ordem 2


x0 = −1 f(x0 ) = 4 1−4
f[x0 , x1 ] = 0−(−1) = −3 −1−(−3) 2
x1 = 0 f(x1 ) = 1 f[x0 , x1 , x2 ] = =
El

2−(−1) 3
f[x1 , x2 ] = −1−1
2−0 = −1
x2 = 2 f(x2 ) = −1

Logo,

2
Em

p2 (x) = 4 + (x − x0 )(−3) + (x − x0 )(x − x1 )


3
2
p2 (x) = 4 − 3(x + 1) + (x + 1)x
3
2 2 2 2
= 4 − 3x − 3 + x + x ⇒
3 3
7 2 2
p2 (x) = 1 − x + x
3 3
o mesmo polinômio obtido pela forma de Lagrange.

5.7 Estudo do Erro na Interpolação


Sempre que aproximamos uma função f(x), com n + 1 pontos, por um polinômio interpolador de grau n
comete-se um erro

En = f(x) − pn (x)
5.8. Interpolação Inversa 49

FIGURA
Fizendo os n + 1 pontos temos um único polinômio pn (x), mas temos uma infinidade de funções que
passam pelos pontos.
Pela forma de Newton obtivemos uma expressão para o erro, dado a partir das diferenças divididas

En = (x − x0 )(x − x1 ) . . . (x − xn )f[x0 , x1 , . . . , xn , x]
mas para calcular o erro devemos conhecer a função f(x), o que nem sempre é possível. Um outro resultado,
na mesma perspectiva é que:

Teorema 5.7.1 Sejam a = x0 < x1 < . . . xn = b n + 1 pontos e f(x) contínua e derivável em [a, b], com
polinômio interpolador pn (x), então

ão
fn+1 (ξ)
En = f(x) − pn (x) = (x − x0 )(x − x1 ) . . . (x − xn )
(n + 1)!
com ξ ∈ [a, b] um ponto do intervalo.


Observação 5.7.1 o Teorema 5.7.1 só garante a existência de ξ, não como obtê-lo.

Comparando o erro pela forma de Newton, com o Teorema anterior, obtemos uma relação entre as
or
diferenças divididas de ordem n + 1 com a derivada de ordem n + 1 de f(x)

f(n+1) (ξ)
f[x0 , x1 , x2 , . . . , xn , x] = , com ξ ∈ [a, b]
(n + 1)!
ab
Quando a função f(x) é dada na forma de tabela, o valor do erro só pode ser estimado pois não
podemos calcular sua diferença dividida, nem as suas derivadas.
Uma estimativa para o erro consiste em utilizar o maior valor em método da tabela das diferenças
divididas, como aproximação para as derivadas de ordem n + 1.
Então
El

|En (x) ≈ (x − x0 )(x − x1 ) . . . (x − xn )| max{diferenças divididas}


Exemplo 5.7.1
No exemplo anterior, uma estimativa para o erro seria

|E2 (x)| = (x + 1) · (x) · (x − 2) · |{z}


Em

4
f[x0 ], o maior valor da
tabela de diferenças di-
vididas

5.8 Interpolação Inversa


O problema da interpolação inversa consiste em, a partir de um conjunto de dados:

x x0 x1 x2 ··· xn
f(x) f(x0 ) f(x1 ) f(x2 ) ··· f(xn )

Dado y ∈ [f(x0 ); f(xn )] obter x tal que f(x) = y.


Podemos resolver este problema de duas formas:

i) Obter o polinômio pn (x) que interpola x0 , x1 , . . . , xn e determinar o x tal que p(x) = y.


50 5. Interpolação

Observação 5.8.1 Seja y ∈ [f(xi ); f(xi+1 )] podemos tomar pn como um polinômio de grau 1
que passa por (xi , f(xi )) e (xi+1 , f(xi+1 )) ou qualquer outro polinômio.

ii) Se f(x) for crescente ou decrescente no intervalo em análise, podemos supor que f(x) é inversível
nesta região e consequentemente interpolar a função inversa.

f(x) f(x0 ) f(x1 ) f(x2 ) ··· f(xn )


f−1 (f(x)) =x x0 x1 x2 ··· xn

Exemplo 5.8.1

ão
A prtir da tabela

x 0, 5 0, 6 0, 7 0, 8 0, 9 1, 0
f(x) 1, 65 1, 82 2, 01 2, 23 2, 46 2, 72


obtenha uma estimativa para x, em que f(x) = 2, 1 utilizando

i) Um polinômio de grau 1;
or
ii) A interpolação inversa. Forneça uma estimativa para o erro.


x2 = 0, 7
i) 2, 1 ∈ (2, 01; 2, 23) com o polinômio linear pode ser obtido por qualquer método.
ab
x3 = 0, 8

p1 (x) = f(x0 ) + (x − x0 )f[x0 , x1 ] Newton
p1 (x) = f(x0 )L0 (x) + f(x1 )L1 (x) Lagrange
El

f[x1 ] − f[x0 ]
⇒ p1 (x) = 2, 01 + (x − 0, 7) = 0, 7 + (x − 0, 7) · 2, 2 = 2, 2x + 0, 147
x1 − x0
(x − x1 ) (x − x0 )
⇒ p1 (x) = 2, 01 + 2, 23
x0 − x1 x1 − x0
2, 01 (x − 0, 7)
= (x − 0, 8) + 2, 23
Em

−0, 1 0, 1
(2, 23 − 2, 01) 2, 23(x − 0, 7) 2, 23 · 0, 7
= x+ −
0, 1 0, 1 0, 1
= 2, 2x + 0, 47

Portanto, o x tal que p1 (x) = 2, 1 é 2, 1 = 2, 2x + 0, 47

2, 1 − 0, 47
x= = 0, 741
2, 2
Por esse método não temos como avaliar o erro ao calcularmos x = 0, 741.

ii) Efetuando a interpolção inversa, já que a função é crescente no intervalo [0, 5; 1, 0], logo

y 1, 65 1, 82 2, 01 2, 23 2, 46 2, 72
g(y) 0, 5 0, 6 0, 7 0, 8 0, 9 1, 0
5.9. Fenômeno de Runge 51

Obtemos p5 (x) pelo Método de Newton, a fim de estimar o erro no cálculo do processo.

x f(x) Ordem 1 Ordem 2 Ordem 3 Ordem 4 Ordem 5


x0 = 1, 65 f(x0 ) = 0, 5
0, 59
x1 = 1, 82 f(x1 ) = 0, 6 −0, 17
0, 53 −0, 05
x2 = 2, 01 f(x2 ) = 0, 7 −0, 20 0, 37
0, 45 0, 25 −0, 68
x3 = 2, 23 f(x3 ) = 0, 8 −0, 04 −0, 36
0, 43 −0, 08
x4 = 2, 46 f(x4 ) = 0, 9 −0, 1
0, 38
x5 = 2, 72 f(x5 ) = 1, 0

ão
p5 (x) = g(y0 ) + (y − y0 )g[y0 , y1 ] + (y − y0 )(y − y1 )g[y0 , y1 , y2 ]


+ (y − y0 )(y − y1 )(y − y2 )g[y0 , y1 , y2 , y3 ]
+ (y − y0 )(y − y1 )(y − y2 )(y − y3 )g[y0 , y1 , y2 , y3 , y4 ]
+ (y − y0 )(y − y1 )(y − y2 )(y − y3 )(y − y4 )g[y0 , y1 , y2 , y3 , y4 , y5 ]

Logo, para y = 2, 1, temos que


or
ab
p5 (x) = 0, 5 + (y − 1, 65)0, 59 + (y − 1, 65)(y − 1, 82)(−0, 17)
+ (y − 1, 65)(y − 1, 82)(y − 2, 01)(−0, 05)
+ (y − 1, 65)(y − 1, 82)(y − 2, 01)(y − 2, 23)(0, 37)
+ (y − 1, 65)(y − 1, 82)(y − 2, 01)(y − 2, 23)(y − 2, 43)(−0, 68)
El

Logo

p(2, 1) = 0, 742636735
com uma diferença na 3a casa decimal.
Pelo método de Newton somos capazes de estimar o erro, que é dado por
Em

E(y) ≈ |(y − y0 )(y − y1 )(y − y2 )(y − y3 )(y − y4 )(y − y5 )| (máximo {|diferençasdivididas|}) = 1

E(2, 1) = 3, 2904 × 10−4


≈ 4 × 10−4 = 0, 0004

5.9 Fenômeno de Runge


Ao efetuarmos uma interpolação de uma função f(x) num intervalo [x0 , xn ] pode decorrer um erro ao se
calcular os valores nas bordas do intervalo.
Mesmo aumentando o grau do polinômio pn , este erro persiste FIGURA e consiste em estarmos
utilizando polinômios para aproximar uma função.
52 5. Interpolação

Este comportamento de pn (x) nas bordas aumenta cada vez mais com o grau de pn (x) e é conhecido
como fenômeno de Runge.
Este fenômeno pode ser contornado de três formas:

i) Tomando como base outras funções, diferentes dos polinômios (o que está fora do nosso curso).


Funções racionais
Trigonométricas

ii) Escolher os pontos de forma diferente, para tornar o erro mais homogêneo. Como exemplo temos os

ão
pontos de Chebyshev:

 
x0 + xn xn − x0 2i + 1
xi = + · cos π
2 2 2π + 2


ii) Usa funç eos Spline, que são um conjunto de funções com um grau menor, e impor condições para
que as aproximações sejam contínuas e com derivadas contínuas.

5.10 Spline
Seja f(x) uma função com
or
ab
x x0 x1 x2 ... xn
f(x) f(x0 ) f(x1 ) f(x2 ) ... f(xn )

construiremos uma função Sp (x) que interpola f(x) num grupo de pontos.
El

Definição 5.10.1 Seja f(x) uma função com n + 1 pontos (x0 , f(x0 ), . . . , (xn , f(xn )), a função Sp (x)
é denominada de Spline interpolante se:

i) Para cada [xi , xi+1 ] Sp (x) é um polinômio de grau p · sp (x);


Em

ii) Sp (x) é contínua e tem derivadas contínuas até a ordem (p − 1) em [x0 , xn ];

iii) Sp (x) = f(xi ) ∀ i ∈ {0, 1, 2, . . . , n}

FIGURA(caso de spline linear)




 s1 (x), se x ∈ [x0 , x1 ]





 s (x), se x ∈ [x1 , x2 ]
 2
Sp = s3 (x), se x ∈ [x2 , x3 ]

 ..



 .


 s (x), se x ∈ [x
n n−1 , xn ]

 Dividimos os pontos em grupos e calculamos os polinômios de grau k nessas regiões pedindo que
Sk (x) seja contínua e com derivadas
contínuas até ordem (k − 1).
5.11. Spline Linear Interpolante 53

5.11 Spline Linear Interpolante


Consideraremos o caso do Spline ser uma função linear, ou seja, de grau 1 agrupando os pontos em pares.
Então

 (x − xi ) (x − xi−1 )
S1 (x) = si (x) = f(xi − 1) + f(xi ) , ∀ x ∈ [xi−1 , xi ]
 x − xi xi − xi−1
| i−1 {z }
Polinômio de Lagrande que passa por xi−1 e xi
Portanto, agrupamos os pontos em pares de calculamos a reta que passa por xi−1 e xi para cada
intervalo.
FIGURA

ão
Exemplo 5.11.1
Determine a função spline linear que interpola a função

x0 x1 x2 x3


x 1 2 5 7
f(x) 1 2 3 2, 5

Basta determinar as 3 retas que passam por or




 (x0 , f(x0 )); (x1 , f(x1 )) 7→ s1 (x)



 (x , f(x )); (x , f(x )) 7→ s (x)
1 1 2 2 2

ab

 (x2 , f(x2 )); (x3 , f(x3 )) 7→ s3 (x)


 (x , f(x )); (x , f(x )) 7→ s (x)
3 3 4 4 4

dados pela Forma de Lagrange de grau 1.


x − xi x − xi−1
• si (x) = f(xi )
El

+ f(xi )
xi−1 − xi xi − xi−1
(x − 2) (x − 1)
s1 (x) = 1 +2 = −x + 2 + 2x − 2 = x
1−2 2−1
logo, s1 (x) para x ∈ [1, 2].
(x − 5) (x − 2) 2 1
Em

• s2 (x) = 2 +3 = (5 − x) + x − 2 = (x + 4) ⇒
2−5 5−2 3 3
1 4
s2 (x) = x + se x ∈ [2, 5].
3 3
(x − 7) (x − 5) 1
• s3 (x) = 3 + 2, 5 = (−0, 5x + 8, 5) ⇒
5−7 7−5 2
1 17
s3 (x) = − x + , se x ∈ [5, 7].
4 4



 grau 1



 grau 2
Observação 5.11.1 Podemos ter splines interpolante de diversos graus . Nos ateremos

 grau 3



 grau n
54 5. Interpolação

ao grau 1, que é a linear.

5.12 Spline Cúbica Interpolante


• A Spline Linear tem a desvantagem de 1◦ derivada ser descontínua nos pontos xi , i ∈ {1, . . . , n}.

• A Spline Quadrática tem a desvantagem da 2◦ derivada (concavidade de função) ser descontínua


nos pontos xi , i ∈ {1, . . . , n}.

FIGURA
Para que não haja
! descontinuidade na 1 derivada (crescente ou decrescente) ou na 2 derivada
◦ ◦

ão

( concavidade analisaremos a Spline Cúbica, S3 (x).

A Spline Cúbica Interpolante S3 (x) é:


 s1 (x); x ∈ [x0 , x1 ]





 s2 (x); x ∈ [x1 , x2 ]
S3 (x) = ..

 .



 s (x); x ∈ [x
n n−1 , xn ]
or
Observação 5.12.1 Vamos tomar uma função para cada subintervalo e utilizar as informações
adicionais para fixar a continuidade das derivadas.
ab
Observação 5.12.2
El

 
função definida
• Spline
por partes contínua
 
as funções sk (x)
• Cúbica
são de grau 3
Em

 
S3 (xi ) = f(xi )
• Interpolante
∀i = 0, . . . , n

Por simplicidade, denotaremos sk (x) da forma

sk (x) = ak (x − xk )3 + bk (x − xk )2 + ck (x − xk ) + dk
Com 4 constantes {ak , bk , ck e dk } a serem determinadas para cada k, então no total temos 4 n
variáveis a determinar!
 Para obter a expressão da Spline Cúbica Interpolante, vamos impor as condições de continuidade para

 Os pontos

1◦ derivada


 2◦ derivada

i) s3 (xi ), i = 0, 1, 2, . . . , n ⇒ n + 1 condições;
5.12. Spline Cúbica Interpolante 55

ii) sk (xk ) = sk+1 (xk ), i = 1, 2, 3, . . . , n − 1 ⇒ n − 1 condições;


0 0
iii) sk (xk ) = sk+1 (xk ), i = 1, 2, 3, . . . , n − 1 ⇒ n − 1 condições;
00 00
iv) sk (xk ) = sk+1 (xk ), k = 1, 2, 3, . . . , n − 1 ⇒ condições.

No total, temos 4n − 2 condições e 4n variáveis, ou seja, temos duas condições em aberto que teremos
que definir para fixar a função (pode ser definida a partir de alguma característica do problema).

Obtendo um expressão para sk (x)





 hk = xk − xk−1

ão
00
Seja sk (x) = ak (x − xk ) + bk (x − xk ) + ck (x − xk ) + dk denotando
3 2
sk (xk ) = gk


 f(x ) = g
k k

• Pela condição i), que S3 (xi ) = f(xi ), i = 0, 1, 2, . . . , n.


– Para k = 1, 2, 3, . . . , n (sem o zero)

sk (xk ) = f(xk ) = dk , então se dk = f(xk )n condições k = 1, 2, . . . , n

– Para k = 0, temos que S3 (x0 ) = s1 (x0 ) = f(x0 )


or
s1 (x0 ) = a1 (x0 − x1 )3 +b1 (x0 − x1 )2 +c1 (x0 − x1 ) +f(x1 ) = f(x0 )
| {z } | {z } | {z }
ab
−h1 −h1 −h1

−ah31 + b1 h21 − c1 h1 + f(x1 ) = f(x0 )1 condição

• Pela ii) Como [pela condição i)] já temos que sk (xk ) = f(xk ), para que sk+1 (xk ) = sk (xk ) basta
El

que sk+1 (xk ) = f(xk ) tambémo seja. Logo

sk+1 (xk ) = ak+1 (xk − xk+1 )3 + bk+1 (xk − xk+1 )2 + ck (xk − xk+1 ) + f(xk+1 ) = f(xk ) ⇒
Em

−ak+1 h3k+1 + bk+1 h2k+1 + ck hk + f(xk+1 ) = f(xk ) com k = 1, 2, 3, . . . , n − 1. n − 1 condições

00
• Pela iv) sk (xk ) = sk+1 (xk ), k = 1, 2, . . . , n − 1.
00
Como sk (x) = 6ak (x − xk ) + 2bk , então

00
00 s (xk ) gk
sk (xk ) = 2bk ⇒ bk = k =
2 2

00
sk (xk−1 ) = 6ak (xk−1 − xk ) +2bk = −6ak hk + 2bk
| {z }

−hk

00 00 00
2bk − sk (xk−1 ) s (xk ) − s (xk−1 )
ak = = k
6hk 6hk
e como queremos a continuidade da segunda derivada
56 5. Interpolação

00 00
sk (xk ) = sk+1 (xk ) ou sk−1 (xk−1 ) = sk (xk−1 )

00 00
s (xk ) − sk−1 gk − gk−1
ak = k = , n − 1 condições
6hk 6hk

00
Observação 5.12.3 Para k − 1, introduzimos uma variável g0 = s0 (x0 )) que não existia
anteriormente.

Reoganizando os termos, para obter ck em termos de gk .

ão
Como sk+1 (xk ) = f(xk ) [condição ii)] temos

ak+1 (xk − xk+1 )3 + bk (xk − xk+1 )2 + ck (xk − xk+1 ) + dk = f(xk ) ⇒


−ak+1 h3k+1 + bk+1 h2k+1 − ck+1 hk+1 + dk+1 = f(xk )

Que é equivalente a
or
−ak h3k + bk h2k − ck hk + dk = f(xk−1 )

dk − f(xk − 1) − ak h3k + bk h2k


ab
ck =
hk
Substituindo
gk − gk−1 gk
ak = bk = dk = f(xk = yk
6hk 2
El

k (g −g
k−1 k h3 g h2
gk − gk−1 − 6hk + k2 k
ck = +
hk hk
gk − gk−1 (−gk + gk−1 + 3gk )
Em

ck = + hk ⇒
hk 6
gk − gk−1 2gk + gk−1
ck = + hk
hk 6

Assim podemos calcular todos os coeficientes, de sk (x), sabendo o valor de gk , k = 0, 1, 2, . . . , n.


0
• Pela condição iii): sk (xk ) = sk+1
0 (xk ), k = 1, 2, 3, . . . , n − 1. A derivada de sk é sk0 (x) = 3ak (x −
xk ) + 2bk(x − xk ) + ck . Logo sk (xk ) = ck
2 0

sk+1 (xk ) = 3ak+1 (xk − xk+1 )2 + 2bk+1 (xk − xk+1 ) + ck+1


= 3ak+1 h2k+1 − 2bk+1 hk+1 + ck+1 = ck

Logo,

ck+1 = ck − 3ak+1 h2k+1 + 2bk+1 hk+1


5.12. Spline Cúbica Interpolante 57




gk −gk−1
 ak = 6hk
Substituindo as expressões para ab = g2k


 c = gk −gk−1 +
h i
2gk +gk−1 hk
k hk 6

gk+1 − yk (2gk+1 + gk )hk+1 gk − gk−1 (2gk + gk−1 )hk (gk+1 − gk hk+1 gk+1 hk+1
+ = + −3 +2
hk+1 6 hk 6 6hk+1 2

yk+1 − yk −yk + yk+1


6 +6 = −2yk+1 hk+1 −yk hk+1 −yk hk+1 +2yk hk +yk+1 hk −3yk+1 hk+1 +3yk hk+1 +6yk+1 hk+1
hk+1 hk

ão
yk+1 − yk yk − yk−1
yk+1 hk+1 + 2yk (hk + hk+1 ) + gk−1 hk = 6 −6
hk+1 hk



n + 1 incógnitas {y0 , y1 , y2 , . . . , yn }
Um sistema com
n − 1 equações k = 1, 2, 3, . . . , n − 1.
Portanto indeterminado

or
[A]n−1×(n+1) [x]n+1×1 = [b](n−1)×1
Ax = b
ab
 
h1 2(h1 + h2 ) h2 0 0 ... 0
 

 0 h2 2(h2 + h3 ) h3 0 ... 0 
0 0 h3 2(h3 + h4 ) h4 ... 0 
 

A= .. .. .. .. .. .. .. 
.
 
 . . . . . . 
El

 

 0 0 0 hn−2 2(hn−2 + hn−1 ) hn−1 0 
0 0 0 0 hn−1 (2h3 + hn−1 ) hn

 
y0
 
y2 −y2 (y1 −y0 )
y1 
 
h2 h1

Em

  (y2 −y1 )
y3 −y2
 
x=
 y2  
h3 h2

b=
 
 ..  .. 
.  .
   
  
yn −yn−1 (yn−1 −yn−2 )
yn hn hn−1

Para obter uma solução unívoca, temos que fixar duas condições:

- Se y0 = 0 e yn = 0, a Spline é chamada de natural (equivalente a supor que nos extremos a aproximação


é linear);
- Se y0 = y1 e yn = yn−1 ;
- Podemos inserir outros valores para y0 e yn , a depender do problema analisado.

Para o caso em que temos o mesmo espacamento entre os pontos,



hk = h, ∀ k = 1, 2, 3, . . . , n
e y0 = yn = 0, temos a seguinte expressão com k = 1, 2, 3, . . . , n − 1
com y0 = 0 e yn = 0.
58 5. Interpolação

6
hyk−1 + 4hgk + hgk+1 = (yk+1 − 2yk + y0 )
h


 4hy1 + hy0 = h6 (y2 − 2y1 + y0 )



 hy1 + 4hy2 + hy3 = h6 (y3 − 2y2 + y1 )




 hy2 + 4hy2 + hy3 = 6 (y3 − 2y2 + y1 )
h
 ..

 .



 hyn−3 + 4hyn−2 + hyn−1 = h6 (yn−1 − 2yn−2 + yn−3 )




hyn−2 + 4hyn−1 = h6 (yn − 2yn−1 + yn−2 )

ão

    
4h h 0 0 0 ... 0 0 y1 y2 − 2y1 + y0
    



 h 4h h 0 0 ... 0 0   y2
 


 y3 − 2y2 + y1 

0 h 4h h 0 ... 0 0   y3 y4 − 2y3 + y2
    
   
   6 
 0 0 h 4h h ... 0 0   y4

= 
  y5 − 2y4 + y3 
 h
 
 .. .. .. .. .. .. .. 
 .
..   .. 
. . . . . . . .   .. .
   
   


 0
0
0
0
0
0
0
0
0
0
h
...
4h
h
h 
4h
or

  yn−2

yn−1




 yn−1 − 2yn−2 + yn−3

yn − 2yn−1 + yn−2


Portanto, dado um conjunto de pontos igualmente espaçados, e com a condição que y0 = 0 e yn = 0, obtemos
um sistema linear com n − 1 incógnitas e n − 1 equações cuja solução permite obter os coeficientes da Spline
ab
Cúbica Interpolante S3 (x).

yk − yk−1 yk
ak = bk =
6h 2
El

yk − yk−1 2yk + yk−1


d k = yk ck = + h
h 6
Exemplo 5.12.1
Obtenha a Spline Cúbica Interpolante do conjunto de dados
Em

x 0 0, 5 1, 0 1, 5 2, 0
f(x) y0 = 3 y1 = 2 y2 = −1 y3 = −4 y4 = −9

Como temos S pontos, temos 4 regiões, então

 Como o espaçamento é constante



 s1 (x), x ∈ [0; 0, 5] h = 0, 5 para obter os coeficientes de



 s (x), sk (x) precisamos resolver o sistema.
2 x ∈ [0, 5; 1, 0]
S3 (x) =

 s3 (x), x ∈ [1, 0; 1, 5]



 s (x),
4 x ∈ [1, 5; 2, 0]

6
hyk−1 + 4hyk + hyk+1 = (yk+1 − 2yk + y0 )
h
5.12. Spline Cúbica Interpolante 59

 
6  6

 4hy1 + hy2 = (y2 − 2y1 + y0 ) 
 2y1 + 0, 5y2 = [(−1) − 2 · 2 + 3] = −24
k=1 

 h 

 0, 5
6 6
k=2 hy1 + 4hy2 + hy3 = (y3 − 2y2 + y1 ) ⇒ 0, 5y1 + 2y2 + 0, 5y3 = [(−4) − 2(−1) + 2] = 0

 h 
 0, 5
k=3 

 6
hy2 + 4hy3 = (y4 − 2y3 + y2 )



 0, 5y2 + 2y3 =
6
[(−9) − 2(−4) − 1] = +24
h 0, 5


 4y1 + y2 = −48

y1 + 4y2 + y3 = 0


 y2 + 4y3 = 48

ão


 4y1 + y2 = −48

−4y1 − 16y2 − 4y3 = 0 ⇒


 y2 + 4y3 = 48


y0 = 0 y1 = −12 y2 = 0 y3 = 12
y4 = 0

Logo ak =

• s1 (x)
yk − yk−1
6h
; bk =
yk
2
or
; d k = y k ck =
yk − yk−1 2hyk + yk−1 h
h
+
6
ab
y1 − y0 −12 − 0
a1 = = = −4;
6h 6 × 0, 5
y1
b1 = = −6;
2
El

d1 = y1 = 2;
y1 − y0 y1 + y0 2−3 (−12)
c1 = +2 h= +2 · 0, 5
h 6 0, 5 6
= −2 − 2 = −4
Em

s1 (x) = −4(x − 0, 5)3 − 6(x − 0, 5)2 − 4(x − 0, 5)2

• s2 (x)

y2 − y1 12
a2 = = = 4;
6h 6 × 0, 5
y2
b2 = = 0;
2
d2 = −1;
y2 − y1 y2 + y1 −1 − 2 (0 − 12)
c2 = +2 h= +2 · 0, 5
h 6 0, 5 6
= −6 − 1 = −7

s2 (x) = −4(x − 1)3 − 7(x − 1) − 1


60 5. Interpolação

• s3 (x)

y3 − y2 12
a3 = = = 4;
6h 6 × 0, 5
y3
b3 = = 6;
2
d3 = y3 = −4;
y3 − y2 y3 + y2 −4 + 1 (12)
c3 = +2 h= +2 · 0, 5
h 6 0, 5 6
= −6 + 2 = −4

ão
s3 (x) = 4(x − 1, 5)3 + 6(x − 1, 5)2 − 4(x − 1, 5) − 4

• s4 (x)


y4 − y3 −12
a4 = = = −4;
6h 6 × 0, 5
y4 or
b4 = = 0;
2
d4 = y4 = −9;
y4 − y3 y4 + y3 −9 − (−4) (12)
c4 = +2 h= +2 · 0, 5
h 6 0, 5 6
ab
= −10 + 1 = −9

s4 (x) = −4(x − 2)3 − 9(x − 2) − 9


El

Portanto a Spline Cúbica Interpolante para esse conjunto de dados é:




 s1 (x) = −4(x − 0, 5)3 − 6(x − 0, 5)2 − 4(x − 0, 5) + 2, se x ∈ [0; 0, 5]



 s2 (x) = 4(x − 1)3 − 7(x − 1) − 1, se x ∈ [0, 5; 1, 0]
S3 (x) =

 s3 (x) = 4(x − 1, 5)3 + 6(x − 1, 5)2 − 4(x − 1, 5) − 4, se x ∈ [1, 0; 1, 5]


Em


 s4 (x) = −4(x − 2)3 − 9(x − 2) − 9, se x ∈ [1, 5; 2, 0]
6
Ajuste de Curvas pelo Método dos
Mínimos Quadrados

ão

Uma outra forma de se analisar um conjunto de dados (x1 , f(x1 ), . . . , (xn , f(xn )) é tentar ajustar um
conjuntos de curvas que melhor aproximam estes dados.
Portanto, fixando n funções conhecidas y1 (x), y2 (x), . . . , yn (x) contínuas em [a, b] com xi ∈ [a, b] ∀
i ∈ {1, 2, . . . , n}, podemos obter as constantes α1 , α2 , . . . , αn tais que
or
ϕ(x) = α1 y1 (x) + α2 y2 (x) + α3 y3 (x) + · · · + αn yn (x)

aproxime a função f(x) dos dados.


ab
Observação 6.0.1 As funções yi (x) são escolhidas a partir de observações dos conjuntos dos dados
ou utilizando uma fundamentação teórica.
El

Exemplo 6.0.1
FIGURAS

Portanto, nosso objetivo é encontrar os melhores parâmetros α1 , . . . , αn que ajustam as funções co-
nhecidas y1 (x), . . . , yn (x) aos (x1 , f(x1 )), (x2 , f(x2 )), . . . , (αn , f(xn )), isto é, os melhores parâmetros que
Em

aproximam ϕ(x) = α1 y1 (x) + α2 y2 (x) + · · · + αn yn (x) a função f(x).


Existem diversas formas de se obter esses parâmetros, mas estudaremos o Método dos Mínimos Qua-
drados.

Observação 6.0.2 Também podemos propor o mesmo problema para analisar uma função contínua,
mas não abordaremos tal tema neste curso.

6.1 Método dos Mínimos Quadrados


Sejam m pontos (x1 , f(x1 )), . . . , (xn , f(xn )) e n funções conhecidas y1 (x), y2 (x), . . . , yn (x), com m > n,
queremos encontrar os parâmetros α1 , α2 , . . . , αn que melhor aproxima a função ϕ(x) = α1 y1 (x) + · · · +
αn yn (x) a f(x).
Definindo dk = f(xk ) − ϕ(xk ), o método dos mínimos quadrados consiste em obter os αi de forma
que a soma dos quadrados dos desvios seja mínima.
61
62 6. Ajuste de Curvas pelo Método dos Mínimos Quadrados

X
m X
m
F(α1 , α2 , . . . , αn ) = a2k = (f(xk ) − ϕ(xk ))2 )
k=1 k=1
Xm
= [f(xk ) − α1 y1 (xk ) − α2 y2 (xk ) − · · · − αn yn (xk )]2
k=1

Observação 6.1.1 Se ϕ(x) for o polinômio interpolador de grau m, que passa por todos os pontos,
então ϕ(xk ) = f(xk ) e consequentemente o desvio dk = ϕ(xk ) − ϕ(xk ) = 0 ⇒ F(α1 , α2 , . . . , αn ) = 0.

ão
Logo a interpolação polinomial é um caso especial para o ajuste de funções

Para encontrar o mínimo de F(α1 , . . . , αn ) vamos derivar em relação aos parâmetros e igualar a zero.

∂F X m


=2· [f(xk ) − α1 y1 (xk ) − · · · − αn yn (xk )][−yj (xk )]
∂αj
k=1
∂F
e como = 0 temos que
∂αj
Xm or
[f(xk ) − α1 y1 (xk ) − · · · − αn yn (xk )] · yj (xk ) = 0
k=1
Fazendo isso para todos os parâmetros j = 1, 2, . . . , n
 m
ab
 X



 [f(xk ) − α1 y1 (xk ) − · · · − αn yn (xk )] · y1 (xk ) = 0



 k=1

 Xm

 [f(xk ) − α1 y1 (xk ) − · · · − αn yn (xk )] · y2 (xk ) = 0


k=1
..
El


 .



 X


m

 [f(xk ) − α1 y1 (xk ) − · · · − αn yn (xk )] · yn (xk ) = 0

k=1
Efetuando o produto
 m
X X X
Em

m m



 f(xk )y1 (xk ) − α1 y1 (xk )y1 (xk ) − · · · − αn yn (xk )y1 (xk ) = 0






k=1
Xm
k=1
Xm
k=1
Xm


 f(xk )y2 (xk ) − α1 y1 (xk )y2 (xk ) − · · · − αn yn (xk )y1 (xk ) = 0


k=1
..
k=1
..
k=1
..

 . . .



 X X X


m m m

 f(xk )yn (xk ) − α1 y1 (xk )yn (xk ) − · · · − αn yn (xk )y1 (xk ) = 0

k=1 k=1 k=1

que irá formar um sistema


P linear, com incógnitasPαi , i = {1, n}
Denotando aij = m k=1 yi (xk )yj (xk ) e bi =
m
k=1 f(xk )yi (xk ).


 a11 α1 + a12 α2 + a13 α3 + · · · + a1n αn = b1



 a21 α1 + a22 α2 + a23 α3 + · · · + a2n αn = b2
 ..

 .


 a α + a α + a α + ··· + a α = b
n1 1 n2 2 n3 3 nn n n
6.1. Método dos Mínimos Quadrados 63

Esse sistema de equações lineares recebe o nome de equações normais e é possível mostrar que a sua
solução é realmente um mínimo e existe se yi (x), . . . , yn (x) são funções linearmente independentes.
Se analisarmos (yi (x1 ), yi (x2 ), . . . , yi (xn )) como um vetor os elementos aij podem ser vistos como
produtos escalares.

yi = (yi (x1 ), yi (x2 ), . . . , yn (xm ))


então

X
m
aij = yi yj =< yi ; yj >= yi (xk )yj (xk )
k=1

ão
Observação 6.1.2 aij = aji , então a matriz [A] é simétrica, ou seja, A = AT .


Definição 6.1.1 Os vetores y1 , . . . , yn com yi = (yi (x1 ), . . . , yi (xn )) não ditos ortogonais, e conse-
quentemente, as funções y1 (x), . . . , yn (x) não ortogonais, se

Xm or
xk = 0, sei 6= j
< yi ; yj >= yi (xk )yj =
k=1 6= 0, sei = j
Para polinômios ortogonais, o sistema anterior se torna diagonal, com solução direta
ab
< f; yi >
αi =
< yi ; yi >

Exemplo 6.1.1
Seja
El

x −1 −0, 5 0 0, 5 1
f(x) 2, 05 0, 4 0 0, 55 2

determine o melhor ajuste pelo método dos mínimos quadrados para o conjunto de dados acima,
para as funções
Em


y1 (x) = 1
a) ou seja, encontrar a melhor reta da forma
y2 (x) = x

ϕ(x) = α1 y1 (x) + α2 y2 (x)


ϕ(x) = α1 + α2 x

yi = (yi (x1 ), yi (x2 ), . . . , yi (x5 )


y1 = (1, 1, 1, 1, 1); y1 (x) = 1
y2 = (−1; −0, 5; 0; 0, 5; 1); y2 (x) = x
64 6. Ajuste de Curvas pelo Método dos Mínimos Quadrados




 a11 = y1 · y1 = (1, 1, 1, 1, 1)(1, 1, 1, 1, 1) = 5
a12 = y1 · y2 = (1, 1, 1, 1, 1)(−1; −0, 5; 0; 0, 5; 1) = 0


 a = y · y = 1 + 0, 52 + 0 + 0, 52 + 1 = 2, 5
22 2 2

f = (2, 05; 0, 4; 0; 0, 51; 2)


então

b1 = f · y1 = 2, 05 + 0, 4 + 0, 51 + 2 = 4, 96

ão
b2 = f · y2 = −2, 05 − 0, 4 · 0, 5 + 0 + 0, 51 · 0, 5 + 2 · 1 = 0, 005

a11 α1 + a12 α2 = b1
logo
a21 α1 + a22 α2 = b2


 4, 96
α1 = = 0, 992
5α1 = 4, 96 5
or ⇒
2, 5α2 = 0, 005

α2 = 0, 002

portanto,
ab
ϕ(x) = 0, 992 + 0, 002x

y1 (x) = x y1 = (−1; −0, 5; 0; 0, 5; 1)
b) Se , então
El

y2 (x) = x2 −1 y2 = (0; −0, 75; −1; −0, 75; 0)

a11 = y1 · y1 = 1 + 0, 52 + 0 + 0, 52 + 1 = 2, 5
a12 = y1 · y2 = 0, 5 · 0, 75 − 0, 5 · 0, 75 = 0
a22 = y2 · y2 = 2, 125
Em

b1 = f · y1 = −2, 05 − 0, 2 + 0, 255 + 2 = 0, 005


b2 = f · y2 = −0, 4 · 0, 75 − 0, 75 · 0, 51 = 0, 6825

portanto,

 2, 5α1 = 0, 005 ⇒ α1 = 0, 002


a11 α1 + a12 α2 = b1

a21 α1 + a22 α2 = b2

2, 125α2 = 0, 6825 ⇒ α2 = 0, 321

Com isso,
6.1. Método dos Mínimos Quadrados 65

ϕ(x) = α1 y1 (x) + α2 y2 (x) = α1 x + α2 x2 − α2 ⇒


ϕ(x) = −0, 321 + 0, 002x + 0, 321x2

ão

or
ab
El
Em
7
Soluções Numéricas para Equações
Diferenciais Ordinárias

ão

Equações Diferenciais são equações que envolvem derivadas das funções

dy d2 y dy
= y + x2 ; + +y=2
dx dx2 dx
y2
∂y(x, t) ∂y(x, t)
∂x
+
∂t
−2=0
or
Quando a função só possui uma variável, a equação diferencial é chamada de Equação Diferencial
Ordinário (EDO). Se a ED envolve mais de uma variável dependente, temos Equações Diferenciais Parciais
(EDP). Neste curso analisaremos somente as EDO. A ordem de uma equação diferencial é a ordem de
ab
maior derivada.
Exemplo 7.0.1
y 00 (x) + xy 0 = 5 (EDO de 2◦ ordem)
y 00000 (x) − y 00 (x) + y = x (EDO de 5◦ ordem)
El

Uma EDO é dita linear, se a função y(x) e as suas derivadas aparecem linearmente na equação.
Estudaremos as Equações Diferenciais Ordinárias Lineares. Dado uma EDO, dy dx = y, queremos en-
contrar a função y(x) que satisfaz a equação.
Neste caso se y = ex , temos que dy(x)
dx = e = y(x). Logo, y(x) = e é uma solução. Mas também
x x
Em

dy
podemos perceber que y1 = 2ex ⇒ dx = 2ex = y também é solução.
De modo geral, qualquer y(x) = aex , com a ∈ R∗ é uma solução de equação dy dx = y (temos uma
família de soluções). Para determinar univocamente a solução,
 precisamosde um valor inicial, ou seja,

 
 x
 y(0) = 1  y(x) = e
sobre alguma informação adicional sobre a função, como y(2) = 5 . ⇒ y(x) = 5ex−2

 

 y(1) = 3  y(1) = 3ex−1
Se tivermos uma equação de ordem m seria necessário m valores iniciais para determinar univocamente
a solução.
Nos ateremos a soluções para EDO de 1◦ ordem, já que sempre podemos reduzir uma EDO de ordem
m para um sistema de EDO de 1◦ ordem.
Exemplo 7.0.2
000 ) 00 ) (cos x) 0
y( (x) + x2 y( + y (x) = tg(x)
x3

y 0 (x) = z(x)
Fazendo
y 00 (x) = w(x)
66
7.1. Método de Euler 67




 y 0 (x) = z(x)
y(x)
0

0
 
 z(x)   z (x) = w(x)
ẏ (x) =  
 cos x
w(x)  w 0 (x) = −x2 w(x) − 3 z(x) + y(x) + tg(x)
x
000 00 cos x 0
então resolver a equação diferencial ordinária de 3◦ ordem y( ) (x) + x2 y( ) + 3 y − y(x) = tg x é
x
equivalente a resolver o sistema
   
y 0 (x) z(x) = z(x)
   
 z 0 (x)  =  w(x) = w(x) 

ão
2 w(x) − cos x z(x) + y(x) + tg(x)
   
0
w (x) −x
x3

z(x) = y 0 (x)
fazendo .
w(x) = z 0 (x) = y 00 (x)


Portanto, focaremos na resolução da EDO de 1◦ ordem, a partir do seguinte problema de valor
inicial (PVI).

y 0 (x) = f(x, y)
or
y(x0 ) = y0

7.1 Método de Euler


ab

y 0 = f(x, y)
Seja o PVI, então o Método de Euler consiste em obter os valores de y(xi ) = yi a
y(x0 ) = y0
partir da equação da reta que passa pelo ponto inicial (x0 , y0 ) e tem coeficiente angular f(x, y), ou seja,
r0 (x) = y(x0 ) + (x − x0 )y 0 (x0 ).
El

FIGURA 
h = xk+1 − xk e considerando que
denotando . Fazendo isso para k = 0, 1, 2, 3, . . . temos
y(x1 ) = y1 ≈ r(x1 ) = y0 + hf(x0 , y0 )
yk+1 = yk + hf(xk , yk )
Em

Observação 7.1.1 Para obter o próximo ponto, só precisamos saber do anterior. O erro pode ser
estipulado por
00
y (xn ) 2
E(xn ) = h (Erro no cálculo do n-ésimo ponto xn )
2

Exemplo 7.1.1
 0
y =y
Seja , utilizando um passo de h = 0, 2, calcule y(1) pelo Método de Euler.
y(0) = 1
 0

 y = y 
 |{z} x0 = 0
Seja f(x, y) , temos que , tomando um passo de h = 0, 2:

 y0 = 1

y(0) = 1
68 7. Soluções Numéricas para Equações Diferenciais Ordinárias

x1 = x0 + h = 0, 2
x2 = x0 + 2h = 0, 4
x3 = x0 + 3h = 0, 6
x4 = x0 + 4h = 0, 8
x5 = x0 + 5h = 1, 0

h = 0, 2 e y0 = y(0) = 1
Logo yk+1 = yk + hf(xk , yk ), , logo
f(xk , yk ) = yk

ão
yk+1 = yk + 0, 2yk = 1, 2yk ⇒

y1 = 1, 2 · 1 = 1, 2
y2 = 1, 2y1 = 1, 2 · 1, 2 = 1, 44


y3 = 1, 2y2 = 1, 2 · 1, 44 = 1, 728
y4 = 1, 2y3 = 1, 2 · 1, 728 = 2, 0736
y5 = 1, 2y4 = 2, 48832

Logo,
or
y(1) ' y5 = 2, 49
FIGURA
ab
Observação 7.1.2 A solução exta é y(x) = ex onde y(1) = e = 2, 71.

O Método de Euler faz


 parte de um conjunto de métodos que utilizam a Série de Taylor. Expandindo
El

0
y (x) = f(x, y)
a solução y(x) do PVI, em torno do ponto xn temos
y(x0 ) = y0
(x − xn )2 00 (x − xn )3 000
y(x) = y(xn ) + (x − xn )y 0 (xn ) + y (xn ) + y (xn ) + · · ·
2! 3!
então, se tomarmos a aproximação até a 1◦ ordem da série de Taylor
Em

0
y(x) ' y(xn ) + (x − xn )y (xn )
0
e como y (xn ) = f(xn , yn ) e x = xn+1 , com xn+1 − xn = h

y(xn+1 ) = yn+1 ' yn + hf(xn , yn )

h2 00
Observação 7.1.3 Por isso o erro é E(x) = f (x)!
2

Podemos considerar aproximações de ordem superiores, para melhorar resultados, mas ao aumentarmos
a ordem, teríamos que calcular


00 d ∂f ∂f dy
y (x) = f(x, y(x)) = + = fx + fy y 0
dx ∂x ∂y dx
onde estamos denotando ∂f
∂x = fx e ∂f
∂y = fy . Como y 0 = f(x, y)
7.2. Método de Runge-Kutta 69


00 000 0000
y (x) = fx + fy f ; y (x) = ; y (x) = ; yk (x)

Apesar de termos uma expressão para as derivadas, dependendo da complexidade da função f(x, y)
encontrar as diversas derivadas de f(x, y) pode ser extremamente trabalhoso.
Para contornar o trabalho de se calcular as diversas derivadas de f(x, y), surge o Método de Runge-
Kutta.

7.2 Método de Runge-Kutta



y 0 = f(x, y)

ão
Seja o PVI , um método é dito ser de Runge-Kutta de ordem p se
y(x0 ) = y0

i) São de passo simples, ou seja, para calcular yn+1 só é necessário saber o ponto anterior yn ;

ii) Não exigem o cálculo de qualquer uma das derivadas de f(x, y);


iii) A expressão para a solução coincide com a expressão da série de Taylor até a ordem p.

or
Observação 7.2.1 O Método de Euler é o Método de Runge-Kutta de ordem 1 (RK1).

Método de Runge-Kutta de Ordem 2 (RK2)


O Método de Runge-Kutta de ordem 2, também conhecido como Método de Euler Aperfeiçoado, pode ser
ab
obtido substituindo no Método de Euler o coeficiente angular da reta, que é f(xn , yn ) por

1h 0
i
f(xn , yn ) + f(xn + h, yn + hyn )
2
o que resulta em:
El

h
yn+1 = yn + [f(xn , yn ) + f(xn + h, yn + hf(xn , yn ))]
2
Exemplo 7.2.1

y0 = y
Seja o PVI , calcule y(1) pelo Método de RK2 com passo h = 0, 2.
Em

y(0) = 1
 
x1 = 0, 2 x1 = 0, 6
Como h = 0, 2, temos que ; ; {x5 = 1, 0, logo
x2 = 0, 4 x2 = 0, 8
h
yn+1 = yn + [f(xn , yn ) + f(xn + h, yn + hf(xn , yn ))]
2
Como f(x, y) = y, obtemos

f(xn + h, yn + hyn ) = yn + hyn

h h2
yn+1 = yn + [yn + (yn + hyn )] = yn + hyn + yn
 2 2
h2

yn+1 = yn 1 + h +
2
70 7. Soluções Numéricas para Equações Diferenciais Ordinárias

 
0, 04
yn+1 = yn 1 + 0, 2 + = yn (1, 22)
2

y1 = y0 × 1, 22 = 1 × 1, 22 = 1, 22
y2 = y1 × 1, 22 = 1, 22 × 1, 22 = 1, 4884
y3 = y2 × 1, 22 = 1, 4884 × 1, 22 = 1, 815848
y4 = y3 × 1, 22 = 1, 815484 × 1, 22 = 2, 21535456
y5 = y4 × 1, 22 = 2, 702708

ão
Observação 7.2.2 O valor exato é y(x) = ex ⇒ y(1) = e = 2, 71828.


Podemos ter várias expressões do Método Runge-Kutta para uma mesma ordem, além do Método RK
para diversas ordens,
Este método é extessivamente empregado na resolução de diversas equações diferenciais ordinárias
(EDO). or
Observação 7.2.3 O método de Euler modificado temos que

h k1 = f(xn , yn )
ab
yn+1 = yn + (k1 + k2 ) ;
2 k2 = f(xn+h , yn = hk1 )

O método é dito de 2◦ ordem porque coincide com a expanssão em série de Taylor até 2◦ ordem. De
fato
El

h2 00
y 0 = f(x, y) ⇒ y(x + h) = y(x) + h · y 0 (x) + y (x) + O(3)
2!
h2 d
= y(x) + hf(x, y) + [f(x, y)]
2 dx
Em

h2 ∂f
 
∂f 0
y(x = h) = y(x) + hf(x, y) + + y + O(3)
2 ∂x ∂y
h2
= y(x) + hf(x, y) + (fx + fy f) + O(3) (Série de Taylor)
2
h h
y(x + h) = y(x) + f(x, y) + [f(x + h ; y + hf(x, y)] RK2
2 2
Para comparar as expressões, vamos expandir o 3◦ termo (K2 ) de RK2 em série de Taylor em torno de
(x y) h = 0.
   
∂ ∂f
f[x + h ; y + hf(x, y)] = f(x, y) + h f |h=0 + h |h=0 f(x, y) + O(2)
∂x ∂y
substituindo em RK2
h h
y(x + h) = y(x) + f + [f + hfx + hy fy f + O(2)]
2 2
h2
= y(x) + hf + [fx + fy f] + O(3)
2
7.3. Método das Diferenças Finitas 71

Coincide até a 2◦ ordem com a expansão em série de Taylor.


Podemos ter outras expressões para RK2, desde que coincidam com a série de Taylor até 2◦ ordem.
De forma similar, podemos definir RK 3◦ ordem.

• Método de Runge-kutta de 3◦ ordem (ou Método de Nystrom)


 
h 3 3
yn+1 = yn + k 1 + k 2 + k3 ;
4 2 2



 k1 = f(xn ; yn )

ão
k2 = f(xn + 32 h ; yn + 23 hk1 )


 k = f(x + 2 h ; y + 2 hk )
3 n 3 n 3 2

• Método de Runge-kutta de 4◦ ordem


h
yn+1 = yn + [k1 + 3k2 3k3 + k4 ]
8


 or
k1 = f(xn , yn )



 k = f(x + h ; y + h k
2 n 3 n 3 1

 2
k3 = f(xn + 3 h; yn − h3 k1 + hk2 )



 k = f(xn + h; yn + hk − hk + hk )
4 1 2 3
ab
7.3 Método das Diferenças Finitas
A ideia geral do Método de Diferenças Finitas é a discretização do domínio e a substituição das derivadas
por aproximação envolvendo somente os valores numéricos da função.
El

Seja x0 ∈ R, definimos a maçha de passo h como os pontos

xi = x0 ± ih; i = 1, 2, 3, . . ., N

Expandindo em série de Taylor y(x + h), temos que


Em

h2 00
y(x ± h) = y(x) ± hy 0 (x4 ) +y (x) + O(3) ⇒
2
y(x + h) − y(x) h 00 y(x + h) ∓ y(x)
y1(x) = ± ∓ y (x) + O(2) '
h |2 {z } h

O(1)

• Se considerarmos x + h, temos:

y(x + h) − y(x)
y 0 (x) ' [Diferenças Progressivas]; erro O(1)
h
• Se considerarmos x − h, temos:

y(x − h) − y(x)
y(x) ' − [Diferenças Regressivas]; erro O(1)
h
72 7. Soluções Numéricas para Equações Diferenciais Ordinárias

• Somando as duas diferenças

y(x + h) − y(x − h)
y 0 (x) ' [Diferença Central]; erroO(2)
h
De modo análogo podemos obter uma expressão para a 2◦ derivada de y(x).

h2 00 h3 000 h4 iv
y(x + h) = y(x) + hy 0 (x) + y (x) + y (x) + y (x) + O(5)
2! 3! 4
h2 h3 000 h4 iv
y(x − h) = y(x) − hy 0 (x) + y 00 (x) − y (x) + y (x) + O(5)
2! 3! 4

ão
Somando as duas expressões, temos

y(x + h) − ∂y(x) + y(x − h) h2 iv


y 00 (x) = − y (x) + O(3) ⇒
h2 12


y(x + h) − ∂y(x) + y(x − h)
y 00 (x) ' ; com erro O(2)
h2
Desta forma, podemos obter expressões para derivadas de ordem superior. Seguindo o mesmo raciocí-
nio, podemos estender as relações obtidas para gerar aproximações para as derivadas parciais.
or
Seja u(x, t) um função de duas variáveis


 ∂t u(x, t) ' u(x, t + k) − U(x, t) [Diferença Progressiva]
k

 ∂x u(x, t) ' u(x + h, t) − u(x, t)
ab
h
• Diferença regressiva
El

u(x, t) − u(x, t − k)
∂t u(x, t) =
k
u(x, t) − u(x − h, t)
∂x u(x, t) =
h

• Diferença Central
Em

U(x + h, t) − U(x − h, t)
Ux (x, t) '
2h
U(x, t + k) − U(x, t − k)
Ut (x, t) '
2k
U(x + h, t) − ∂U(x, t) + U(x − h, t)
Uxx (x, t) '
h2
U(x, t + h) − ∂U(x, t) + U(x, t − k)
Utt (x, t) '
k2
U(x + h, t + k) − U(x − h, t + k) − U(x + h, t − k) + U(x − h, t − k)
Uxt (x, t) '
4hk

Assim, equações diferenciais parciais de 2◦ ordem podem ser revolvidas discretizendo o domínio, a
partir do Método das Diferenças Finitas.
Exemplo 7.3.1
a(x, y)Uxx + b(x, y)Uxy + C(x, y)Uyy + F(x, y, Ux , Uy , U) = 0
7.3. Método das Diferenças Finitas 73

Seja 4 = b2 − 4ac, então


→ 4 = 0 ⇒ Equação Parabólica; Ex: Ut − α(x, t)Uxx = r(x, t) (Equação do calor, difusão)

→ 4 < 0 ⇒ Equação Elíptica; Ex: Uxx + U(y, y) = 0 (Equação de Laplace)
→ 4 > 0 ⇒ Equação Hiperbólica; Ex: Uxx − U(t, t) = 0 (Equação de Onda)

Observação 7.3.1 (*) Apresentam soluções altamente regulares.

ão
Resolver uma EDP pelo Método das Diferenças Finitas consiste em discretizar a região do espaço.


or
ab
El
Em
Em
El
ab
or

ão
Índice Remissivo

ão
Sistemas, 1


or
ab
El
Em

75

Você também pode gostar