Escolar Documentos
Profissional Documentos
Cultura Documentos
Book CN
Book CN
aç
Notas de Aula de
Cálculo Numérico
or
ab
ão
aç
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
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
ão
6 Ajuste de Curvas pelo Método dos Mínimos Quadrados 61
6.1 Método dos Mínimos Quadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
aç
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
aç
ão
1
Sistemas Numéricos
ão
aç
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.
N = an 2n + an 2n−1 + ... + a2 22 + a1 21 + a0 20
2 1. Sistemas Numéricos
an an−1 ...a1 a0
ão
100 = 1100100
aç
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 ,
Observe que
N = p(2)
El
sendo
p(x) = an xn + an−1 xn−1 + ... + 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 ;
aç
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
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
aç
1.6.1 ???
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
1
= 4
1
(Usando a soma de uma P.G)
1− 2
1
4
= 1
2
ão
1
=
2
= 0.5
aç
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
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
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:
aç
Observe que
or
= a−1 20 + a−2 2−1 + a−3 2−2 + ... + a−n 2−n+1
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.
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
aç
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 ???
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
• e: expoente
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
aç
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
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}
1.00 1.00
1.01 1.25
1.10 1.50
1.11 1.75
binário decimal
ã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
aç
1.5 · 2e ⇒ 0.75 1.5 3 6 12
1.75 · 2e ⇒ 0.875 1.75 3.5 7 14
Além disso,
El
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:
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
ã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,
aç
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
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.
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
aç
r
(a2 + b2 )
= s2
s2
=s
or
s
a 2
s
+
2
b
s
(1.9.1)
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
ã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|
aç
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
x = a1 · a2 a3 · · · at · βe
|x − x| < 0| · 00 ‘
{z· · · 0} β · β
e
(1.9.2)
t
ã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
aç
βe < |x| < βe+1
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
repita
eps = 0.5 · eps;
eps1 = eps + 1;
até (eps1 < 1.0);
retorne eps;
fim
√ ∞
• NaN (Not a Number)4 é o resultado de operações aritméticas inválidas, por exemplo, −5, ∞ ,···;
ão
Como ilustração deste conceito, considere a sequência de números reais definida indutivamente por:
x0 = 1
1
x1 = (1.10.1)
aç
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
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
aç
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
aç
or
ab
El
Em
2
Zeros Reais de Funções Reais
ão
aç
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.
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) > 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.
ã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
aç
derivada f 0 (x).
Exemplo 2.1.1
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
√ 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
ã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:
aç
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
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é
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
aç
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 é,
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
aç
= 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)
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
aç
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
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
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
ão
2.6 Método do Ponto Fixo
Método do Ponto Fixo
aç
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
(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.
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.
f(ξ) = 0 ⇔ ϕ(ξ) = ξ
⇒ ϕ(ξ) = ξ + A(ξ)f(ξ) = ξ
⇒ A(ξ)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
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
√ 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
aç
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→+∞
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
tomando x = ξ,
−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
aç
Com duas iterações, conseguimos uma grande aproximação da raiz real, que é 2.
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 )
ã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
aç
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
aç
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).
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
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)
. . . . .. ..
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
aç
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
12
1 2 3 8
ab
C= 2 5 4 8
3 4 8 12
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
ã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
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
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
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
aç
X
i−1
bi − aij
j=1
xi =
or aii
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
a11 x1 + a12 x2 + · · · + a1n xn = b1
a22 x2 + · · · + a2n xn = b2
..
.
ann xn = bn
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
aç
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.
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.
ã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:
aç
(1) (1) (1)
L2 = L2 − m21 L1 ; L3 = L3 − m31 L1 e L4 = L4 − m41 L1 .
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
| 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
ão
é resolvido através do Algoritmo 7 (distribuição retroativa).
Entrada: aij , 1 6 i 6 n e 1 6 j 6 n
aç
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
aç
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
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
ã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 ) ⇒
aç
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
s01
1 1 −3
=
2 10 s02 −17
Utilizando a eliminação de Gauss
1 1 | −3
2 1 | −17
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
aç
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
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.
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
◦
aç
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
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 )
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,
aç
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
aç
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).
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.
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.
x20 · · · xn
f(x0 ) 1 x0 0 a0
aç
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
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
x −1 0 2
f(x) 4 1 −1
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
aç
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
ão
i6=0 i6=o
Logo
(x − x1 ) (x − x0 )
p1 (x) = f(x0 ) + f(x1 ) ⇒
x0 − x1 x1 − x0
aç
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
p2 (x) = f(x0 )L0 (x) + f(x1 )L1 (x) + f(x2 )L2 (x)
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,
ão
p2 (x) = 4 + + (−1) ⇒
3 −2 6
8x2 − 16x − 3x2 + 3x + 6 − x2 − x
p2 (x) = ⇒
6
4x2 − 14x + 6
p2 (x) = ⇒
aç
6
2 7
p2 (x) = x2 − x + 1
3 3
Igual ao polinômio obtido resolvendo o sistema linear!
• 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.
ão
x3 f[x3 ] f[x3 , x4 ] f[x3 , x4 , x5 ]
.. .. .. ..
. . . .
xn f[xn ] f[xn−1 , xn ] f[xn−2 , xn−1 , xn ]
aç
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 ]
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
• 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
ã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
aç
• 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
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
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)
aç
é 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
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
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(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
aç
x −1 0 2
f(x) 4 1 −1
2−(−1) 3
f[x1 , x2 ] = −1−1
2−0 = −1
x2 = 2 f(x2 ) = −1
Logo,
2
Em
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.
aç
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
4
f[x0 ], o maior valor da
tabela de diferenças di-
vididas
x x0 x1 x2 ··· xn
f(x) f(x0 ) f(x1 ) f(x2 ) ··· f(xn )
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.
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
aç
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
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.
ão
p5 (x) = g(y0 ) + (y − y0 )g[y0 , y1 ] + (y − y0 )(y − y1 )g[y0 , y1 , y2 ]
aç
+ (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
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
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
aç
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:
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
ão
Exemplo 5.11.1
Determine a função spline linear que interpola a função
x0 x1 x2 x3
aç
x 1 2 5 7
f(x) 1 2 3 2, 5
+ 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
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 ]
aç
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
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
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).
ã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
aç
– Para k = 1, 2, 3, . . . , n (sem o zero)
• Pela ii) Como [pela condição i)] já temos que sk (xk ) = f(xk ), para que sk+1 (xk ) = sk (xk ) basta
El
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
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.
ão
Como sk+1 (xk ) = f(xk ) [condição ii)] temos
aç
−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 )
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
Logo,
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
ão
yk+1 − yk yk − yk−1
yk+1 hk+1 + 2yk (hk + hk+1 ) + gk−1 hk = 6 −6
hk+1 hk
aç
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:
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
aç
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
x 0 0, 5 1, 0 1, 5 2, 0
f(x) y0 = 3 y1 = 2 y2 = −1 y3 = −4 y4 = −9
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
aç
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
• 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
• 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)
aç
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, se x ∈ [1, 5; 2, 0]
6
Ajuste de Curvas pelo Método dos
Mínimos Quadrados
ão
aç
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)
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
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.
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
aç
=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
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.
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 .
aç
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
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
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
aç
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
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
portanto,
Com isso,
6.1. Método dos Mínimos Quadrados 65
ão
aç
or
ab
El
Em
7
Soluções Numéricas para Equações
Diferenciais Ordinárias
ão
aç
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,
precisamosde 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)
aç
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
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
aç
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.
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
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.
ã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);
aç
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).
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
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.
aç
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
ão
k2 = f(xn + 32 h ; yn + 23 hk1 )
k = f(x + 2 h ; y + 2 hk )
3 n 3 n 3 2
aç
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
xi = x0 ± ih; i = 1, 2, 3, . . ., N
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
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
aç
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
∗
→ 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)
ão
Resolver uma EDP pelo Método das Diferenças Finitas consiste em discretizar a região do espaço.
aç
or
ab
El
Em
Em
El
ab
or
aç
ão
Índice Remissivo
ão
Sistemas, 1
aç
or
ab
El
Em
75