269
alculo Num´ erico A 2012

Apostila CNumerico 2013

Embed Size (px)

DESCRIPTION

Métodos de Calculo Numerico

Citation preview

Page 1: Apostila CNumerico 2013

Calculo Numerico A

2012

Page 2: Apostila CNumerico 2013

Sumario

1 Sumula da Disciplina 4

2 Erro de Arredondamento, Aritmetica Computacional, Algoritmos e Conver-gencia 62.1 Revisao do Calculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Erro de Arredondamento e Aritmetica Computacional . . . . . . . . . . . . . . 12

2.2.1 Tipos de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3 Ordens de convergencia e conceitos basicos . . . . . . . . . . . . . . . . . . . . . 20

2.3.1 Convergencia de Sequencias . . . . . . . . . . . . . . . . . . . . . . . . . 202.3.2 Ordem de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4 Observacoes Finais - Operacoes com Ponto Flutuante . . . . . . . . . . . . . . . 28

3 Sistemas Lineares 343.1 Algebra Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1.1 Operacoes Elementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1.2 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.1.3 Autovalores e Autovetores . . . . . . . . . . . . . . . . . . . . . . . . . . 403.1.4 Um pouco mais de Algebra Matricial . . . . . . . . . . . . . . . . . . . . 42

3.2 Eliminacao de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.2.1 Decomposicao de Gauss Basica . . . . . . . . . . . . . . . . . . . . . . . 453.2.2 Pivotamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.2.3 Pivotamento Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.2.4 Pivotamento Escalonado . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.2.5 Observacoes sobre a decomposicao A = LU . . . . . . . . . . . . . . . . 553.2.6 Observacoes sobre a decomposicao PA = LU . . . . . . . . . . . . . . . 573.2.7 Calculo do determinante . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.2.8 Calculo da Matriz Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . 603.2.9 Condicionamento de uma matriz . . . . . . . . . . . . . . . . . . . . . . 60

3.3 Metodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.3.1 Os metodos de Jacobi e Gauss Seidel . . . . . . . . . . . . . . . . . . . . 633.3.2 Condicao de Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.4 Decomposicao LU para o caso de matrizes tridiagonais . . . . . . . . . . . . . . 68

1

Page 3: Apostila CNumerico 2013

3.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4 Interpolacao e Extrapolacao 744.1 Dados nao igualmente espacados . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.1.1 Polinomios Interpoladores de Lagrange . . . . . . . . . . . . . . . . . . . 744.1.2 Forma de Newton do Polinomio Interpolador . . . . . . . . . . . . . . . 79

4.2 Interpolacao por Spline Cubico . . . . . . . . . . . . . . . . . . . . . . . . . . . 814.2.1 Spline Cubico Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824.2.2 Spline Cubico Restrito . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5 Ajuste de Mınimos Quadrados 905.1 Ajuste de Mınimos Quadrados para um conjunto discreto de pontos . . . . . . . 90

5.1.1 Ajustes nao polinomiais . . . . . . . . . . . . . . . . . . . . . . . . . . . 955.1.2 Alguns exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5.2 A aproximacao de funcoes contınuas . . . . . . . . . . . . . . . . . . . . . . . . . 98

6 Diferencas Finitas 1036.1 Diferencas para Frente e para Tras

(Forward / Backward) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036.1.1 Calculo de derivadas de ordem superior . . . . . . . . . . . . . . . . . . . 1056.1.2 Expressoes em diferencas com ordem de erro mais alta . . . . . . . . . . 107

6.2 Diferencas Centrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086.3 Diferencas e Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.4 Analise do Erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7 Elementos de Integracao Numerica 1157.1 Regra Trapeizodal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167.2 Regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197.3 Integracao de Romberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217.4 Integracao Adaptativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277.5 Quadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.5.1 Tipos Particulares de Formulas Gaussianas: . . . . . . . . . . . . . . . . 1287.6 Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.6.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357.6.2 Construindo Quadraturas . . . . . . . . . . . . . . . . . . . . . . . . . . 1367.6.3 Integrais Multiplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

8 Zeros de Equacoes nao Lineares 1408.1 Metodos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

8.1.1 O Metodo da Bisseccao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1408.1.2 O metodo da Falsa-Posicao . . . . . . . . . . . . . . . . . . . . . . . . . 1448.1.3 O metodo da Iteracao Linear (Ponto Fixo) . . . . . . . . . . . . . . . . . 1478.1.4 O Metodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . 1528.1.5 O Metodo de Newton Modificado . . . . . . . . . . . . . . . . . . . . . . 159

2

Page 4: Apostila CNumerico 2013

8.1.6 O Metodo da Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618.1.7 Metodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

8.2 Metodos para calcular raızes de Polinomios . . . . . . . . . . . . . . . . . . . . . 1658.2.1 O metodo de Newton para polinomios . . . . . . . . . . . . . . . . . . . 1708.2.2 O Metodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1748.2.3 O Metodo de Laguerre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

8.3 Solucao Numerica de Sistemas de Equacoes Nao Lineares . . . . . . . . . . . . . 1818.3.1 O metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

9 Solucoes Numericas de Equacoes Diferencias Ordinarias 1889.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1889.2 Problemas de Valor Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.3 Teoria Elementar de Problemas de Valor Inicial . . . . . . . . . . . . . . . . . . 1909.4 Solucoes Numericas: Metodos de Passo Sımples . . . . . . . . . . . . . . . . . . 193

9.4.1 O Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.5 Metodos de Taylor de Ordem Superior . . . . . . . . . . . . . . . . . . . . . . . 1979.6 Metodos de Runge Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

9.6.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1999.7 Controle de Erro e o Metodo de Runge-Kutta-Fehlberg . . . . . . . . . . . . . . 2079.8 Metodos de Multipasso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129.9 Estabilidade dos Metodos Numericos . . . . . . . . . . . . . . . . . . . . . . . . 2219.10 Equacoes Rıgidas (Stiff) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

9.10.1 O metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2279.11 Problema de Valor Inicial: Sistemas de EDO e EDO de Ordem Superior . . . . . 234

9.11.1 Resolucao de Sistemas de EDO para PVI . . . . . . . . . . . . . . . . . . 236

10 Problema de Valor de Contorno 23810.1 Existencia de Solucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23810.2 Metodo de Diferencas Finitas Para Problemas Lineares . . . . . . . . . . . . . . 241

10.2.1 O caso Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24110.2.2 Metodos de diferencas finitas para problemas nao lineares . . . . . . . . . 246

11 Metodo de Diferencas Finitas aplicado a EDP: Uma introducao 24911.1 EDP Elıpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25011.2 EDP Parabolicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

11.2.1 Diferenca para frente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25511.2.2 Diferenca para tras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25911.2.3 O metodo de Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . 262

11.3 EDP Hiperbolicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

3

Page 5: Apostila CNumerico 2013

Capıtulo 1

Sumula da Disciplina

1. Nome da Disciplina Calculo Numerico A - MAT01032

2. Sumula Sumula Erros; ajustamento de equacoes; interpolacao, derivacao e integracao;solucao de equacoes lineares e nao lineares; solucao de sistemas de equacoes lineares e naolineares; nocoes de otimizacao; solucao de equacoes diferenciais e equacoes diferenciaisparciais; nocoes do metodo Monte Carlo em suas diferentes aplicacoes.

3. Regras

(a) Alunos que nao tem setenta e cinco por cento de frequencia (75%) serao reprovadoscom conceito FF, seguindo o que e determinado no Artigo 134 do Regimento Geralda UFRGS.

(b) O programa da disciplina sera dividido em duas areas para fins de avaliacao, as quaiscorresponderao duas provas escritas, cada uma com pontuacao entre 0 e 10.

i. O aluno sera considerado aprovado se a media aritmetica das notas das 2 provasescritas for igual ou superior a 6.0 pontos e, em cada uma delas, a nota for igualou superior a 4.0 pontos.

ii. Para serem aprovados, alunos que nao se enquadram no criterio acima, mas quetem nota iguais ou superior a 5.0 em uma das duas provas, poderao fazer umaunica prova de recuperacao da prova de menor nota, ao final do semestre, eserem aprovados se passarem a enquadrar-se no criterio (3(b)i).

iii. Para serem aprovados, alunos que nao se enquadram nos criterios (3(b)i) e(3(b)ii), mas que possuem media aritmetica das provas igual ou superior a 3.0,deverao fazer exame geral dos conteudos da disciplina ao final do semestre.

iv. Alunos que nao se enquadrem nos criterios (3(b)i), (3(b)ii) ou (3(b)iii) estaraoreprovados na disciplina.

(c) Sendo S a media aritmetica das notas das 2 provas escritas, a atribuicao do conceitoque sera enviado ao DECORDI seguira a regra:

• se 6.0 ≤ S < 7.5 , o conceito e C;

4

Page 6: Apostila CNumerico 2013

• se 7.5 ≤ S < 9.0 , o conceito e B;

• se 9.0 ≤ S ≤ 10.0 , o conceito e A.

(d) Alunos aprovados no exame final cumulativo receberao conceito C se obtiveramescore entre 6.0 e 8.5 (incluindo 6.0 e excluindo 8.5) e conceito B se o escore for igualou superior a 8.5. O exame final e as provas de recuperacao de area serao oferecidosem um mesmo dia e hora, para cada turma, e terao a mesma duracao.

Bibliografia

1. Richard L. Burden; J. Douglas Faires - Analise Numerica - Editora CENGAGE (ISBN:85-221-0601-0)

2. Frederico Ferreira Campos - Algorıtmos Numericos - LTC Livros Tecnicos e CientıficosS.A. (reimpressao 2009)

3. A.L. Bortoli; C. Cardoso; M.P.G. Fachin; R.D. Cunha - Introducao ao calculo Numerico(Cadernos de Matematica e Estatıstica) - Editora UFRGS

4. Claudio, Dalcidio Moraes; Marins, Jussara Maria - Calculo numerico computacional :te-oria e pratica - Editora Atlas (ISBN: 8522424853)

5. David Kincaid; Ward Cheney - Numerical Analysis: Mathematics of Scientific Computing- Editora American Mathematical Society (ISBN: 978-0-8218-4788-6)

6. Elementos de Analise Numerica - SD Conte

5

Page 7: Apostila CNumerico 2013

Capıtulo 2

Erro de Arredondamento, AritmeticaComputacional, Algoritmos eConvergencia

Iniciamos o estudo de calculo numerico fazendo, uma breve revisao de teoremas importantes docalculo. Estes teoremas serao usados para derivar os metodos numericos usados para aproximarfuncoes, encontrar raızes, resolver equacoes diferenciais, etc... A seguir fazemos uma discussaorapida sobre a aritmetica de maquina, isto e, como o arredondamento de um numero real parak dıgitos significativos influencia nos calculos de forma catastrofica, provocando o chamado errode arredondamento.

2.1 Revisao do Calculo

Definicao 1 Seja f uma funcao o definida em um conjunto X de numeros reais. Dizemos quef possui limite L em x = x0 e escrevemos que

limx→x0

f(x) = L

se

∀ε > 0,∃δ > 0, 0 < |x− x0| < δ ⇒ |f(x)− L| < ε.

6

Page 8: Apostila CNumerico 2013

Figura 2.1: limx→x0 f(x) = L

Definicao 2 Seja f uma funcao definida em um conjunto X de numeros reais e x0 ∈ X.Dizemos que f e uma funcao contınua em x0 ∈ X se:

limx→x0

f(x) = f(x0).

A funcao f(x) e contınua em X se ela e contınua em todo elemento x ∈ X.

Definicao 3 Seja xn∞n=1 uma sequencia infinita de numeros reais (ou complexos). Dizemosque a sequencia converge para um numero x se (fig. 2)

∀ε > 0,∃N(ε), inteiro positivo, n > N(ε)⇒ |xn − x| < ε,

isto e

limn→∞

xn = x.

Os conceitos de convergencia e de continuidade estao relacionados pelos teoremas:

Teorema 1 Seja f uma funcao definida em um conjunto X de numeros reais, x0 ∈ X entao:f e contınua em x0 ⇐⇒ se xn∞n=1 e uma sequencia em x convergindo para x0 entao limx→x0 f(xn) =f(x0).

Definicao 4 Seja f e uma funcao definida num intervalo aberto contendo x0, dizemos que fe diferenciavel se:

limx→x0

f(x)− f(x0)

x− x0

= f ′(x0)

existe.

Teorema 2 : Se a funcao f e diferenciavel em x0 entao f e contınua em x0.

Observacao:

• C(X): Conjunto de todas as funcoes contınuas em X.

7

Page 9: Apostila CNumerico 2013

• Cn(X): Conjunto de todas as funcoes com n derivadas contınuas em X.

• C∞(X): Conjunto de todas as funcoes com todas as derivadas contınuas em X.

Teorema 3 (Teorema de Rolle) f ∈ C[a, b] e diferenciavel em (a, b). Se f(a) = f(b) = 0entao existe um numero c, com a < c < b de forma que f ′(c) = 0.

Teorema 4 (Teorema do Valor Medio) Seja f ∈ C[a, b] e diferenciavel em (a, b) entaoexiste um numero c, com a < c < b de forma que

f ′(c) =f(b)− f(a)

b− a.

Figura 2.2: limx→x0 f(x) = L

Teorema 5 (Teorema do Valor Extremo) Se f ∈ C[a, b] entao existem c1 e c2 ∈ [a, b],com f(c1) ≤ f(x) ≤ f(c2) para cada x ∈ (a, b). Se ainda f e diferenciavel em (a, b) entao osnumeros c1 e c2 ocorrem nos extremos do intervalo [a, b] ou onde f ′(x) = 0.

Definicao 5 A integral de Riemann da funcao f no intervalo [a, b] e dada pelo seguintelimite, quando existir:∫ b

a

f(x)dx = limmax∆xi→0

n∑i=1

f(zi)∆xi,

onde os numeros x0, x1, ..., xn sao tais que a = x0 ≤ x1 ≤ ... ≤ xn = b e onde ∆xi = xi − xi−1

para cada i = 1, 2, ..., n e zi e um numero de forma que zi ∈ [xi−1, xi]

Devemos notar que toda funcao contınua em um intervalo fechado [a, b] admite integral deRiemann neste intervalo. Geralmente escolhamos os pontos xi igualmente espacados em [a, b]e podemos tambem escolher zi = xi, assim∫ b

a

f(x)dx = limn→∞

b− an

n∑i=1

f(xi),

onde xi = a+ i(b− a)/n.

8

Page 10: Apostila CNumerico 2013

Teorema 6 ((Teorema do valor medio com peso para integrais) Se f ∈ C[a, b], g eintegravel sobre [a, b] e g(x) nao troca de sinal em [a, b], entao existe um numero c, a < c < b,tal que∫ b

a

f(x)g(x)dx = f(c)

∫ b

a

g(x)dx.

Observacao:

• Se g(x) ≡ 1 temos o valor medio de f em [a, b] dado por

f(c) =1

b− a

∫ b

a

f(x) dx

Teorema 7 (Teorema de Rolle Generalizado) Seja f ∈ C[a, b], n vezes diferenciavel em(a, b). Se f tende a zero nos n + 1 numeros distintos x0, x1, ...., xn em [a, b], entao existe umnumero em (a, b) com f (n)(c) = 0.

Teorema 8 (Teorema do Valor Intermediario) Se f ∈ C[a, b] e k e um numero entref(a) e f(b) entao existe c em (a, b) para o qual f(c) = k.

Exemplo 1: Mostre que x5 − 2x3 + 3x2 − 1 = 0 tem zeros em [0, 1].Seja f(x) = x5 − 2x3 + 3x2 − 1 daı f(0) = −1 e f(1) = 1Assim pelo TV Intermediario podemos afirmar que para k = 0, ∃c ∈ [0, 1] / f(c) = 0.

Teorema 9 (Teorema de Taylor) Seja f ∈ Cn[a, b] e onde f (n+1) existe em [a, b]. Sejax0 ∈ [a, b]. Para cada x ∈ [a, b], existe ξ(x) ∈ (x0, x), com

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

onde

Pn(x) = f(x0) + f ′(x0)(x− x0) +f ′′(x0)

2!(x− x0)2 + ...+

fn(x0)

n!(x− x0)n

=n∑k=0

fk(x0)

k!(x− x0)k,

e

Rn(x) =f (n+1)(ξ(x))

(n+ 1)!(x− x0)(n+1).

Aqui Pn(x) e chamado de poliomio de Taylor de enesimo grau para f em torno de x0 e Rn(x) echamado de resto ou erro de truncamento associado com Pn(x).As series infinitas obtidas quando tomamos o limite de Pn(x) quando n → ∞ e chamada deserie de Taylor para f em torno de x0.

9

Page 11: Apostila CNumerico 2013

No caso particular de x0 = 0 chamamos de polinomio de Maclaurin e serie de Maclaurin, res-pectivamente.

Exemplo 2: Determine os polinomios de Taylor de segundo e terceiro graus para f(x) = cos xem torno de x0 = 0, e use este polinomio para calcular cos(0.01) e compare com o valor obtidopor sua calculadora.Pela calculadora, cos(0.01) = 0.99995000042

Agoraf(x) = cos x⇒ f(0) = 1f ′(x) = − sinx⇒ f ′(0) = 0f ′′(x) = − cosx⇒ f ′′(0) = −1f ′′′(x) = sin x⇒ f ′′′(0) = 0f (IV )(x) = cos x

Assim para n=2

cosx = 1− 1

2x2 +

1

6x3 sin ξ(x),

com 0 < ξ(x) < 0.01, logo

cos(0.01) = 0.99995 +1

6(0.01)3 sin ξ(x)

onde o erro e menor que:∣∣∣∣16(0.01)3 sin ξ(x)

∣∣∣∣ < 1

6× 10−6 ≈ 1.7× 10−7

e para n=3

cosx = 1− 1

2x2 +

1

24x4 cos ξ(x),

com 0 < ξ(x) < 0.01, logo

cos(0.01) = 0.99995 +1

24(0.01)4 cos ξ(x)

onde o erro e menor que:∣∣∣∣ 1

24(0.01)4 cos ξ(x)

∣∣∣∣ < 1

24× 10−8 ≈ 4.2× 10−10

note que esta estimativa de erro esta mais proxima do erro real.

10

Page 12: Apostila CNumerico 2013

Figura 2.3: limx→x0 f(x) = L

As series de Taylor sao o fundamento dos metodos numericos. Muitas das tecnicas numericassao derivadas diretamente das series de Taylor, bem como as estimativas de erro na aplicacaodestas tecnicas.

Se o valor de uma funcao f(x) pode ser expressa em uma regiao de x proxima de x = a pelaserie infinita

f(x) = f(a) + (x− a)f ′(a) +(x− a)2

2!f ′′(a) + · · ·+ (x− a)n

n!f (n)(a) + . . . (2.1)

entao f(x) e dita analıtica nesta regiao perto de x = a. A serie descrita por (2.1) e unica e echamada de expansao em serie de Taylor de f(x) na vizinhanca de x = a. Note que para quea serie (2.1) exista e necessario que todas as derivadas de f(x) existam em x = a, e neste casopodemos encontrar o valor de f(b) para b proximo de a substituindo x por b na serie (nestecaso, dizemos que b esta dentro do raio de convergencia da serie). Neste caso,

f(b) = f(a) + (b− a)f ′(a) +(b− a)2

2!f ′′(a) + · · ·+ (b− a)n

n!f (n)(a) + . . . (2.2)

f(b) e calculada de forma exata pela serie infinita (2.2). Metodos numericos aproximam o valorde f(b) truncando a serie (2.2) em um numero finito de termos. O erro cometido na serie deTaylor para f(x) quando a serie e truncada depois o termo contendo (x − a)(n) nao pode sermaior que∣∣∣∣dn+1f(ξ(x)

dxn+1

∣∣∣∣max

|x− a|n+1

(n+ 1)!, para ξ(x) entre x e a (2.3)

onde o subscrito max denota o maior valor que a derivada da f(x) pode assumir no intervalode a ate x. Na verdade este valor nao e simples de ser encontrado, isto e nos nao temos controlesobre o valor da derivada da funcao ou sobre o fatorial, mas temos controle sobre o quao proximox esta de a, isto e podemos controlar a quantidade (x− a)n+1. Para indicar este fato dizemosque o erro e da ordem de (x−a)n+1, e indicamos isto por O((x−a)n+1). Por exemplo se a serie(2.1) for truncada depois dos primeiros tres termos, dizemos que a precisao no calculo de f(x)e O((x− a)3), isto e:

f(x) = f(a) + (x− a)f ′(a) +(x− a)2

2!f ′′(a) +O((x− a)3). (2.4)

11

Page 13: Apostila CNumerico 2013

2.2 Erro de Arredondamento e Aritmetica Computaci-

onal

Quando uma calculadora ou computador e usada para calculos com numeros reais ocorre umerro inevitavel, o erro de arredondamento. Este erro surge por causa da aritmetica da maquinaque possui apenas um numero finito de dıgitos, podendo representar assim apenas um numerofinitos de numeros reais, todos racionais. Desta forma muitos dos calculos sao feitos comrepresentacoes aproximadas dos numeros reais. Vamos enfatizar que todos os numeros demaquina sao todos racionais, positivos ou negativos e possuem apenas um numero finito dealgarısmos ou dıgitos.

O sistema de numeracao geralmente usado em nossas maquinas e o sistema binario, o qualusa os algarismos 0 e 1 para representacao dos numeros. Estes numeros sao armazenados comouma parte fracionaria, chamada de mantissa, juntamente com uma parte exponencial, chamadade caracterıstica.

Nota 1 Um bit e a menor unidade armazenada em um computador e e representada pelosvalores 0 ou 1. Um conjunto de 8 bits e dito um byte e nele podemos armazenar uma combinacaode 0 ou 1 em cada um dos seus 8 bits e desta forma 1 byte pode armazenar 28 valores inteirosdistintos.

Em geral o computador armazena palavras e o acesso de leitura (escrita) e feito usando umaou mais palavras que sao acessadas atraves de um endereco unico. Normalmente cada palavrae composta por 32 bits ou 64 bits, dependendo do processador usado.

Por exemplo um numero de ponto flutuante de precisao simples usado em alguns computa-dores consiste de:

• Um dıgito binario (bit) que indica o sinal;

• 7-bit para o expoente com base 16;

• 24-bit para a mantissa.

24-bit correspondem entre 6 ou 7 dıgitos decimais, assim vamos assumir que temos pelo menosseis dıgitos de precisao para um numero de ponto flutuante. O expoente de 7 dıgitos binariosnos da uma variacao de 0 ate 127. Entretanto como desejamos representar tambem expoentesnegativos isto e queremos representar numeros pequenos, subtrairmos 64 da caracterıstica eassim o campo da exponencial varia de -64 ate 63.Por exemplo seja o seguinte numero de maquina:

0 1000010 101100110000010000000000 (2.5)

• O bit mais da esquerda, 0 no caso, indica que o numero e positivo.

12

Page 14: Apostila CNumerico 2013

• Os proximos sete sao equivalentes ao numero decimal:

1.26 + 0.25 + 0.24 + 0.23 + 0.22 + 1.21 + 0.20 = 66

e sao usados para descrever a caracterıstica, isto e o expoente de 16 (nosso computadorusa base hexadecimal) sera

66− 64 = 2

.

• Os ultimos 24 bits indicam que a mantissa e correspondem:

1.

(1

2

)1

+ 1.

(1

2

)3

+ 1.

(1

2

)4

+ 1.

(1

2

)7

+ 1.

(1

2

)8

+ 1.

(1

2

)14

= 0.69927978515625

Desta forma, o numero de maquina representado por (2.5) e dado por:

+0.69927978515625 ∗ 162 = 179.015625

Note que, na nossa maquina, o numero imediatamente menor e o imediatamente maior que(2.5) sao:

0 1000010 101100110000001111111111 = 179.0156097412109375 (2.6)

0 1000010 101100110000010000000000 = 179.015625 (2.7)

0 1000010 101100110000010000000001 = 179.0156402587890625 (2.8)

Assim sendo o numero (2.5) e usado para representar um intervalo de numeros reais,

[179.0156173706054875, 179.01563262939453125]

Para assegurar unicidade de representacao e obter toda a precisao disponıvel no sistema eimposta uma normalizacao, isto e ao menos um dos quatro dıgitos mais a esquerda da mantissado numero de maquina e um. Assim o menor e o maior numeros de maquina positivos saorespectivamente:

0 0000000 000100000000000000000000 = 16−65 ≈ 10−78 (2.9)

0 1111111 111111111111111111111111 ≈ 1663 ≈ 1076. (2.10)

13

Page 15: Apostila CNumerico 2013

Nos calculos numeros abaixo do menor valor resultam um underflow e muitas vezes saovistos como zero, numeros acima do maior valor produzem um overflow, o que faz parar acomputacao.

Assim um numero de maquina e representado como,

±0.d1d2...dk × 10n, 1 ≤ d1 ≤ 9, 0 ≤ di ≤ 9, i = 2, ..., k (2.11)

onde no nosso exemplo k = 6 e −78 ≤ n ≤ 76. Estes numeros sao chamados de numerosdecimais de maquina. Para representar numeros reais como numero decimal de maquina e feitoum corte, que despreza qualquer dıgito apos dk ou o arredondamento que adiciona 5×10n−(k−1)

ao numero real antes de proceder o ”corte”.

Observacao:

Em uma ”maquina”a representacao de ponto flutuante fl(y) de um numero y possuium erro relativo. Vamos supor que estamos usando corte com k dıgitos significativosdaı se o numero real

y = 0.d1d2d3...dkdk+1...× 10n,

e temos seu erro relativo como:∣∣∣y−fl(y)y

∣∣∣ =∣∣∣0.d1d2d3...dkdk+1...×10n−0.d1d2d3...dk×10n

0.d1d2d3...dk×10n

∣∣∣=

∣∣∣0.dk+1dk+2dk+3...×10n−k

0.d1d2d3...dk×10n

∣∣∣=

∣∣∣0.dk+1dk+2dk+3...

0.d1d2d3...dk

∣∣∣× 10−k

≤ 10.1× 10−k = 10−k+1.

De forma similar um limite para o erro relativo quando usamos aritmetica de kdıgitos com arredondamento e 0.5× 10−k+1.

Definicao 6 Se p∗ e uma aproximacao de p, o erro absoluto e dado por |p − p∗|, e o errorelativo e dado por |p− p∗| / |p|, providenciando que p 6= 0.

O erro relativo e o erro absoluto sao em geral distintos. O erro absoluto depende do problematrabalhado (este depende de unidade), se estamos por exemplo usando metros e medindo adistancia entre Porto Alegre e Caxias do Sul, um erro absoluto e de 2.0 × 101m e desprezıvel.Agora se estamos medindo o comprimento de um quarto erro de dois metros e muito grande!Agora dizer que o erro relativo e 2 × 10−1 significa um erro de 20% e isto nao depende deunidades.

14

Page 16: Apostila CNumerico 2013

Definicao 7 O numero p∗ e dito aproximar p com t algarismos significativos se t e o maiorinteiro nao negativo para o qual

|p− p∗||p|

< 5× 10−t.

Em adicao a imprecisao de representacao dos numeros, a aritmetica feita em um computadornao e exata. Nao entraremos a fundo neste assunto, mas vamos exemplificar o que pode ocorrer.Sejam:• x e y numeros reais• fl(x) e fl(y) representacoes em ponto-flutuante• ⊕, , ⊗ e representando as operacoes de maquina, definidas como:

x⊕ y = fl(fl(x) + fl(y)) x y = fl(fl(x)− fl(y))x⊗ y = fl(fl(x)× fl(y)) x y = fl(fl(x)/fl(y))

(2.12)

Por exemplo seja:Vamos considerar uma aritmetica de 5 dıgitos com corte.Exemplo 1:x = 1/3 e y = 5/7 assim fl(x) = 0.33333× 100 e fl(y) = 0.71428× 100

Operacao Resultado Valor Real Erro Absoluto Erro Relativox⊕ y 0.10476× 101 22/21 0.190× 10−4 0.182× 10−4

y x 0.38095× 100 8/21 0.238× 10−5 0.625× 10−5

x⊗ y 0.23809× 100 5/21 0.524× 10−5 0.220× 10−4

y x 0.21428× 101 15/7 0.571× 10−4 0.267× 10−4

Exemplo 2:u = 0.714251, v = 98765.9 e w = 0.111111 × 10−4 assim fl(u) = 0.71425 × 100, fl(v) =0.98765× 105 e fl(w) = 0.11111× 10−4

Operacao Resultado Valor Real Erro Absoluto Erro Relativoy u 0.30000× 10−4 0.34714× 10−4 0.471× 10−5 0.136

(y u) w 0.27000× 101 0.31243× 101 0.424 0.136(y u)⊗ v 0.29629× 101 0.34285× 101 0.465 0.136u⊕ v 0.98765× 105 0.98766× 105 0.161× 101 0.163× 10−4

Na ultima tabela podemos ver problemas que ocorrem quando operamos com aritmeticafinita.Problemas mais comuns

• Cancelamento de dıgitos significativos devido a subtracao de numeros quase iguaisSejam:

fl(x) = 0.d1d2...dpαp+1αp+2...αk × 10n

fl(y) = 0.d1d2...dpβp+1βp+2...βk × 10n

15

Page 17: Apostila CNumerico 2013

Note que:

fl(x)− fl(y) = 0.00...0γ1γ2...γk−p × 10n

onde γi = αp+i − βp+i. Assim

fl(fl(x)− fl(y)) = 0.γ1...γk−pγk−p+1...γk × 10n−p

Os numeros γk−p...γk sao ”criados”em alguns computadores de forma aleatoria e em outrossao considerados nulos. Esta falta de precisao sera carregada em operacoes posteriores.

• Divisao por numero muito pequeno ou multiplicacao por numero muito grandeSeja z um numero real e z + δ sua representacao em ponto flutuante, onde δ e o errocometido no corte ou arredondamento. Vamos supor que ε = 10−n, assim

z

ε≈ fl(z + δ)

fl(ε)= (z + δ)× 10n

Isto e o erro absoluto e de |δ| × 10n o que pode ser muito grande!

Observacao:Algumas vezes a perda de dıgitos significativos e precisao podem ser evitadas re-ordenando asoperacoes.

Exemplo 3:Vamos considerar a equacao quadratica:

x2 +6210

100x+ 1 = 0,

que possui solucao exata dada por:

x1 =−621−

√385241

20≈ −62.083892762591031419

e

x2 =−621 +

√385241

20≈ −0.016107237408968581

Vamos, agora, refazer os calculos usando uma ”maquina”que usa arredondamentocom 4 algarismos significativos. Assim

b2 = 3856.41 = 3856.4ac = 4 = 4.000√b2 − 4ac =

√3852. ≈ 62.06

Assim,

fl(x1) =−b+

√b2 − 4ac

2a=−62.10 + 62.06

2.0000=−0.04000

2.000= −0.02000

16

Page 18: Apostila CNumerico 2013

e uma aproximacao para x1 = −0.01611 e o erro relativo cometido no calculo egrande,

| − 0.01611 + 0.02000|| − 0.01611|

≈ 2.4× 10−1

O problema desta equacao e que b2 e muito maior que 4ac e assim o numerador, nocalculo de x1, envolve uma subtracao de numeros proximos.No calculo de x2 este problema nao ocorre, pois envolve soma de dois numerosproximos, assim,

fl(x2) =−b−

√b2 − 4ac

2a=−62.10− 62.06

2.0000=−124.2

2.000= −62.10

e a aproximacao de x2 = −62.08, e o erro relativo e

| − 62.08 + 62.10|| − 62.08|

≈ 3.2× 10−4.

Para melhorarmos o calculo de x1 podemos proceder a seguinte racionalizacao:

x1 =−b+

√b2 − 4ac

2a

(−b−

√b2 − 4ac

−b−√b2 − 4ac

)=

b2 − (b2 − 4ac)

2a(−b−√b2 − 4ac)

Logo,

x1 =−2c

b+√b2 − 4ac

.

e no nosso caso terıamos

fl(x1) =−2.000

62.10 + 62.06=−2.000

124.2= −0.01610

O erro relativo agora e de 6.2× 10−4.Note: Se usarmos esta formula no calculo de x2 obterıamos −50.00, isto e um errorelativo de 1.9× 10−1.

Perda de Precisao

Uma boa questao e saber quantos bits significativos binarios sao perdidos com a subtracao dedois numeros proximos x e y? A resposta dependem dos valores de x e y, entretanto temos umteorema que nos fornece os limites em funcao da quantidade ‖1 = y/x‖, que e uma medida dequanto x e y estao proximos.

17

Page 19: Apostila CNumerico 2013

Teorema 10 Perda de Precisao Se x e y sao numeros binarios de maquina de ponto flutu-ante normalizados tais que x > y e

2=q ≤ 1− y

x≤ 2−p

entao no maximo q e pelo menos p bits binarios significantes sao perdidos na subtracao x− y.Prova: ver Kincaid e Cheney, Numerical Analysis pg 60.

Exemplo 4:Vamos considerar a funcao

y(x) = x− sin(x)

quando x e pequeno, temos que sin(x) ≈ x, este calculo ira ocasinar perda de dıgitossignificantes. Podemos evitar neste caso esta perda, usando serie de Taylor, assim:

y(x) = x− sin(x) = x−(x− x3

3!+ x5

5!− x7

7!+ ....

)= x3

3!− x5

5!+ x7

7!+ ....

Desta forma para x pequeno temos que

y(x) =x3

3!− x5

5!+x7

7!+ .... (2.13)

Para fazrmos um programa para calcular esta serie, podemos gerar uma sequenciade termos ti como

t1 = x3/6tn+1 = −tnx2/[(2n+ 2)(2n+ 3)], n ≥ 1

e a soma parcial desta sequencia pode ser obtida por:s1 = t1sn+1 = sntn+1 , n ≥ 1

Vamos agora mostrar que devemos sempre calcular polinomios de forma ”encaixada”paraevitar erros de arredondamento. Primeiramente vamos a um exemplo:

Exemplo 5:Vamos calcular f(4.71) usando aritmetica de tres dıgitos com arredondamento, ondef(x) e o polinomio:

f(x) = x3 − 6x2 + 3x− 0.149

x x2 x3 6x2 3xExato 4.71 22.1841 104.487111 133.1046 14.13

Tres− digitos(arred.) 4.71 22.2 105. 133. 14.1

18

Page 20: Apostila CNumerico 2013

Exato f(4.71) = 104.487111− 133.1046 + 14.13− 0.149 = −14.636489

Tres− digitos(arred.) f(4.71) = 105.− 133.+ 14.1− 0.149 = −14.1

O erro relativo cometido e:∣∣∣∣−14.636489− (−14.0)

−14.636489

∣∣∣∣ ≈ 0.04.

Uma alternativa para este calculo e usar a forma encaixada,

f(x) = x3 − 6x2 + 3x− 0.149 = ((x− 6)x+ 3)x− 0.149.

Usando esta forma de calculos temos:

f(4.71) = ((4.71− 6)4.71 + 3)4.71− 0.149 = −14.6

e o erro relativo cometido baixa para 0.0025.

Obervacoes:

• Sempre que formos calcular o valor de um polinomio em um ponto devemos faze-lo naforma ”encaixada”para evitar erros de arredondamento.

• Este texto foi adaptado da referencia Analise Numerica - Burden and Faires e NumericalAnalysis - Kincaid e Cheney.

2.2.1 Tipos de Erros

Durante as varias etapas de solucao de um problema podem surgir muitas fontes de errosnumericos. Para o uso de metodos numericos e importante conhecer estes tipos de erros parapodermos contorna-los. O primeiro tipo de erro e devido ao metodo numerico usadoe este erroe chamado de erro de truncamento. Por exemplo, para avaliar uma funcao sabemos que umcomputador apenas usa operacoes aritmeticas e logicas, assim para encontrar o valor de sinxfazemos

sinx =∞∑n=0

(−1)nx2n+1

(2n+ 1)!= x− x3

6+

x5

120− x7

5040+ ... para 0 ≤ x ≤ π

4

Quanto mais termos agregarmos a soma mais a serie se aproxima do valor real, como mostra atabela abaixo

19

Page 21: Apostila CNumerico 2013

N∑n=0

(−1)nx2n+1

(2n+ 1)!− sinx

x N = 2 N = 3 N = 40 0 0 0

π/16 2.4× 10−6 2.2× 10−9 1.2× 10−12

π/8 7.8× 10−5 2.9× 10−7 6.1× 10−10

π/6 3.3× 10−4 2.1× 10−6 8.1× 10−9

π/4 2.5× 10−3 3.6× 10−5 3.1× 10−7

Tabela 2.1: Erro relativo

O erro cometido quando encontramos um resultado numerico pode ser medido de duasformas. O primeiro e o erro absoluto que e definido por:

Erro Absoluto = | valor real - valor aproximado|

Este tipo de erro depende das unidades usadas. A segunda forma do erro e o erro relativodefinido por:

Erro Relativo =| valor real - valor aproximado|

|valor real|quando valor real 6= 0. Sua vantagem e a independencia da magnitude dos valores trabalhados.

Ainda temos o erro de arredondamento, que ocorre pois um numero decimal qualquer,por exemplo 0.4, nao pode ser representado de forma exata em um computador pois ele precisaser convertido para base 2 e armazenado atraves de um numero finito de bits. As consequenciasdeste tipo de erro, conforme ja foram exemplificadas podem ser ’catastroficas’.

2.3 Ordens de convergencia e conceitos basicos

Em calculos numericos muitas vezes a resposta e obtida como uma sequencia de valores que usu-almente exibe progressivamente uma maior precisao. Desta forma a convergencia de sequenciase um assunto muito importante em analise numerica.

2.3.1 Convergencia de Sequencias

Escrevemos limn→∞ xn = L se existe uma correspondencia para cada ε positivo de um numeroreal r de forma que |xn − L| < ε sempre que n > r.Por exemplo:

limn→∞

n+ 1

n= 1 porque

∣∣∣∣n+ 1

n− 1

∣∣∣∣ < ε sempre que n > ε−1.

Como outro exemplo, lembramos do calculo que

e = limn→∞

(1 +

1

n

)n

20

Page 22: Apostila CNumerico 2013

Se calculamos a sequencia xn = (1 + 1/n)n, temos:

n x erro relativo limn→∞ xn+1/xn1 2.00000000 0.26424112

100 2.70481383 0.00495460 0.01875030200 2.71151712 0.00248860 0.50227992300 2.71376516 0.00166159 0.66768176400 2.71489174 0.00124714 0.75057148500 2.71556852 0.00099817 0.80036593600 2.71602005 0.00083206 0.83358754700 2.71634274 0.00071335 0.85732967800 2.71658485 0.00062428 0.87514305900 2.71677321 0.00055499 0.889001931000 2.71692393 0.00049954 0.900091581100 2.71704727 0.00045417 0.909166601200 2.71715008 0.00041635 0.916730271300 2.71723707 0.00038434 0.923131121400 2.71731165 0.00035691 0.928618161500 2.71737629 0.00033313 0.933374051600 2.71743285 0.00031232 0.937535781700 2.71748276 0.00029396 0.941208171800 2.71752713 0.00027764 0.944472721900 2.71756684 0.00026303 0.947393802000 2.71760257 0.00024989 0.950022912100 2.71763490 0.00023799 0.952401732200 2.71766429 0.00022718 0.954564382300 2.71769113 0.00021730 0.956539062400 2.71771574 0.00020825 0.958349242500 2.71773837 0.00019993 0.960014662600 2.71775927 0.00019224 0.961552012700 2.71777861 0.00018512 0.962975532800 2.71779658 0.00017851 0.964297402900 2.71781331 0.00017236 0.965528143000 2.71782892 0.00016662 0.96667685

Note que usando dupla precisao no FORTRAN, temos evidencia que limn→∞ xn+1/xn −→ 1.Esta convergencia e muito lenta, na verdade e menos que linear.

Como um exemplo de uma sequencia com convergencia rapida vamos definir por recorrenciaa seguinte sequencia convergente para o valor de

√2,

x1 = 2xn+1 = 1

2xn + 1

xn, n ≥ 1

Os elementos produzidos por esta sequencia sao:x1 = 2.000000x2 = 1.500000x3 = 1.416667x4 = 1.414216

21

Page 23: Apostila CNumerico 2013

O limite desta sequencia e√

2 = 1.414213562... e devemos notar que esta sequencia esta conver-gindo para o limite muito rapidamente. Usando computacao com dupla-precisao encontramosa evidencia que

|xn+1 −√

2||xn −

√2|2≤ 0.36

Esta condicao corresponde a uma convergencia de ordem 2, isto e quadratica.

2.3.2 Ordem de convergencia

Existe uma terminologia especial para definir o quanto rapido uma sequencia converge para seulimite. Seja xn∞n=1 uma sequencia de numeros reais tendendo a um limite x∗. Dizemos que arazao de convergencia desta sequencia e linear se existe uma constante 0 < c < 1 e um inteiroN de forma que

|xn+1 − x∗| ≤ c|xn − x∗| (n ≥ N)

A convergencia e dita quadratica se existe uma constante C, nao necessariamente menor que1, e N inteiro tal que

|xn+1 − x∗| ≤ C|xn − x∗|2 (n ≥ N)

Em geral, se existem constantes positivas C e α e um inteiro N de forma que

|xn+1 − x∗| ≤ C|xn − x∗|α (n ≥ N)

ou

|xn+1 − x∗||xn − x∗|α

≤ C (n ≥ N)

dizemos que a taxa de convergencia e de pelo menos α.

Definicao 8 Vamos supor que βn∞n=1 e uma sequencia que converge para zero, e que αn∞n=1

e uma sequencias que converge para um numero α. Se existe uma constante positiva K de formaque

|αn − α| ≤ K|βn|, para um valor grande de n,

entao dizemos que αn∞n=1 converge para α com uma taxa de convergencia O(βn). Indicamosa taxa de convergencia da seguinte maneira:

αn = α + O(βn).

22

Page 24: Apostila CNumerico 2013

Embora a definicao (8) permita comparar duas sequencias arbitrarias, em quase todos os casosusamos

βn =1

np,

para um numero qualquer p > 0. Geralmente estamos interessados no maior valor de p para oqual αn = α + O(1/np).

Exemplo 1 Para n ≥ 1, vamos definir duas sequencias como:

αn =n+ 1

n2e αn =

n+ 3

n3.

Podemos notar que limn→∞ αn = limn→∞ αn = 0, mas a sequencia αn converge muito maisrapidamente para zero que αn, quando utilizamos uma aproximacao por arredondamento decinco dıgitos, temos:

n 1 2 3 4 5 6 7αn 2.00000 0.75000 0.44444 0.31250 0.24000 0.19444 0.16327αn 4.00000 0.65500 0.22222 0.10938 0.064000 0.041667 0.029155

Se fizermos βn = 1/n e βn = 1/n2, veremos que:

|αn − 0| = n+ 1

n2≤ n+ n

n2= 2.

1

n= 2βn

e

|αn − 0| = n+ 3

n3≤ n+ 3n

n3= 4.

1

n2= 4βn,

e portanto

|αn| = 0 + O

(1

n

)e αn = 0 + O

(1

n2

).

2.3.3 Algoritmos

Um algoritmo e um procedimento que descreve de uma forma nao ambıgua uma sequencia finitade passos a serem executados em uma certa ordem. O objetivo de um algoritmo e implementarum procedimento numerico para encontrar uma solucao aproximada de um problema.

Usaremos um pseudocodigo para descrever os algoritmos. Este pseudocodigo especifica aforma dos dados de entrada a serem fornecidos e a forma desejada dos resultados produzidos.Nem todos os procedimentos numericos produzem resultados satisfatorios para dados de en-trada escolhidos arbitrariamente. Desta forma uma tecnica independente para interrupcoes dosprocedimentos e incorporada para prevenir calculos com loops infinitos.

Normalmente dois sinais de pontuacao sao usados dentro de um algoritmo: um ponto indicafim de um passo e um ponto e vırgula separa tarefas dentro de um passo. Os passos de um

23

Page 25: Apostila CNumerico 2013

algoritmo geralmente seguem as regras de uma construcao de programa estruturado. Ele deveser feito de forma que nao haja a mınima dificuldade para traduzi-lo em uma linguagem deprogramacao aceitavel para aplicacoes cientıficas.

Exemplo 2 Vamos fazer um algoritmo para somar N numeros

ALGORITMO 1 Este algoritmo soma N numeros dados.

INPUT N, x1, x2, ..., xn.

SAıDA SOMA =∑N

i=1 xi.

Passo1 Faca SOMA = 0.Passo2 Para i = 1, 2, ..., N Faca

SOMA = SOMA+ xi.Passo3 SAıDA SOMA.

PARE.

Estamos interessados em escolher metodos que produzam resultados confiaveis e precisos paraum grande numero de problemas.

Dizemos que um algoritmo e estavel se pequenas alteracoes nos dados iniciaisproduzam pequenas alteracoes nos resultados.

Em caso contrario o algoritmo e dito instavel. Devemos notar que alguns algoritmos saoestaveis para alguns valores dos dados iniciais e para outros nao. Estes algoritmos sao ditoscondicionalmente estaveis.

Vamos agora relacionar o crescimento do erro de arredondamento e a estabilidade de umalgoritmo. Vamos supor que um erro E0 > 0 seja introduzido em algum estagio do procedimentode um calculo e que depois de n operacoes subsequentes seja indicado por En. Aqui vamos definiros dois casos mais comuns na pratica.

O crescimento do erro e dito linear se En ≈ CnE0, onde C e uma constante independente den. Agora se En ≈ CnE0 para qualquer C > 1 entao o crescimento do erro e dito exponencial.Devemos notar que o crescimento linear normalmente e inevitavel, agora o erro exponencialdeve ser evitado. Muitas vezes um metodo atrativo (simples e facil de usar) pode ser instavel,isto e existem metodos que seriam otimos em um computador perfeito, mas em computadoresque usam aritimetica de ponto flutuante seriam metodos imprecisos. No caso de computadoresprecisamos que os metodos sejam estaveis.

Exemplo 3 O primeiro exemplo e um pouco artificial, porem e um bom exemplo. Existe umalgoritmo que calcula todas as potencias inteiras do numero chamado na literatura de ”Golden

24

Page 26: Apostila CNumerico 2013

Mean”, atraves de uma formula de recorrencia envolvendo apenas operacoes simples (subtracao)definida em (2.14). Este numero e definido por:

φ ≡√

5− 1

2= 0.61803398...

e podemos mostrar que para gerar a sequencias das potencias deste numero, basta calcular aseguinte relacao de recorrencia que usa apenas a operacao de subtracao,

φn+1 = φn−1 − φn. (2.14)

Note que esta sequencia converge para zero e todos os seus termos sao positivos! (Como exercıcioverifique que esta relacao esta correta).

Assim temos: φ0 = 1 e φ1 = 0.6180340, usando um programa numerico calculamos que:

Φ0 1.0000000Φ1 0.6180340Φ2 0.3819660Φ3 0.2360680Φ4 0.1458980Φ5 0.0901699Φ6 0.0557282Φ7 0.0344417Φ8 0.0212864Φ9 0.0131553Φ10 0.0081311Φ11 0.00502422Φ12 0.00310688Φ13 0.00191734Φ14 0.00118954Φ15 0.00072780Φ16 0.00046174Φ17 0.00026606Φ18 0.00019568Φ19 0.00007038Φ20 0.00012530Φ21 -0.00005492Φ22 0.00018022Φ23 -0.00023514Φ24 0.00041536Φ25 -0.00065050Φ26 0.00106586Φ27 -0.00171636Φ28 0.00278222Φ29 -0.00449858Φ30 0.00728080

Os numeros negativos que aparecem na tabela anterior ocorrem porque esta formula envolvesubtracao ”catastrofica”, isto e subtracao de numeros muito proximos!!!!!

25

Page 27: Apostila CNumerico 2013

Exemplo 4 Neste segundo exemplo, vamos considerar a solucao de duas equacoes em diferen-cas lineares com coeficientes constantes e ordem 2. A teoria deste tipo de equacao e parecidacom a de equacoes diferenciais ordinarias lineares com coeficientes constantes.

1. A primeira equacao que vamos considerar e:

pn =10

3pn−1 − pn−2 para n = 2, 3, ..., (2.15)

cuja solucao e dada por

pn = c1

(1

3

)n+ c23n (2.16)

pois, se fazemos n = i− 1 e n = i− 2 em (2.16) temos:

pi−1 = c1

(13

)i−1+ c23i−1

pi−2 = c1

(13

)i−2+ c23i−2

(2.17)

Agora, substituindo as equacoes (2.17) em (2.15) temos:

10

3pi−1 − pi−2 =

10

3

(c1

(1

3

)i−1

+ c23i−1

)+ c1

(1

3

)i−2

+ c23i−2

= c1

(1

3

)i−2(10

3

1

3− 1

)+ c23i−2

(10

33− 1

)=

= c1

(1

3

)i−2(1

3

)2

+ c23i−2 (3)2 = c1

(1

3

)i+ c23i = pi

Desta forma acabamos de mostrar que (2.16) e solucao da (2.15). Para determinarmosas constantes c1 e c2 precisamos de 2 condicoes iniciais, aqui vamos considerar comocondicao inicial

p0 = 1 e p1 = 1/3.

Neste caso, as constantes c1 e c2 sao calculadas fazendo i = 0 e i = 1 em (2.16) eresolvendo o sistema linear resultante:

p0 = c1

(1

3

)0

+ c230

p1 =c1

3+ 3c2

1 = c1 + c2

1

3=c1

3+ 3c2

→ c1 = 1 e c2 = 0,

e a solucao particular do nosso problema e

pn = (1/3)n

26

Page 28: Apostila CNumerico 2013

para todo n. Esta solucao tende para zero quando n cresce.

Por outro lado, se realizamos estes calculos em uma maquina com aritmetica de cincodıgitos, a condicao inicial seria

p0 = 1.0000 e p1 = 0.33333.

Se calculamos as constantes c1 e c2 nesta maquina com 5 dıgitos encontramos,

c1 = 1.0000 e c2 = −0.12500× 10−5 6= 0.

Note que o erro gerado por esta aproximacao e

pn − pn = 0.12500× 10−5 ∗ 3n,

isto e, conforme o n cresce o erro de arredondamento cresce exponencialmente, fazendoque a solucao nao va para zero quando n cresce, como pode ser observado na tabela

n pn calculado pn exato Erro Relativo0 0.10000× 101 0.10000× 101

1 0.33333× 100 0.33333× 100

2 0.11110× 100 0.11111× 100 9× 10−5

3 0.37000× 10−1 0.37037× 10−1 1× 10−3

4 0.12230× 10−2 0.12346× 10−1 9× 10−3

5 0.37660× 10−1 0.41152× 10−2 8× 10−1

6 0.32300× 10−3 0.13717× 10−2 8× 10−1

7 −0.26893× 10−2 0.45725× 10−3 7× 100

8 −0.92872× 10−2 0.15242× 10−3 6× 101

onde podemos observar que quando n=8 o erro cometido e da ordem de 101! Isto e o errocresce exponencialmente.

2. Agora vamos considerar outra equacao em diferencas

pn = 2pn−1 − pn−2 para n = 2, 3, ...,

Sua solucao e dada por

pn = c1 + c2n

Neste caso, tambem vamos considerar as condicoes iniciais,

p0 = 1 e p1 =1

3,

as constantes c1 e c2 sao dadas por: c1 = 1 e c2 = −2/3. Desta forma a solucao geral donosso problema e dado por:

pn = 1− 2

3n.

27

Page 29: Apostila CNumerico 2013

Agora, se consideramos uma maquina com aritmetica de 5 dıgitos temos:

p0 = 1.0000 e p1 = 0.33333.

Calculando as constantes nesta maquina com 5 dıgitos encontramos,

c1 = 1.0000 e c2 = −0.66667.

Note que o erro gerado por esta aproximacao e pn− pn = (0.66667−2/3)n, isto e o erro dearredondamento cresce linearmente com n, como pode ser observado na seguinte tabela:

n pn calculado pn exato Erro Relativo0 0.10000× 101 0.10000× 101

1 0.33333× 100 0.33333× 100

2 −0.33330× 100 −0.33333× 100 9× 10−5

3 −0.10000× 101 −0.10000× 101 04 −0.16667× 101 −0.16667× 101 05 −0.23334× 101 −0.23333× 101 4× 10−5

6 −0.30000× 101 −0.30000× 101 07 −0.36667× 101 −0.36667× 101 08 −0.43334× 101 −0.43333× 101 2× 10−5

Este tipo de erro de arredondamento pode ser reduzidos se fazemos os calculos com umnumero maior de dıgitos significativos. Mas mesmo assim, devemos notar que este tipode erro pode ser minorado mas nao eliminado. Ele sera apenas postergado quando traba-lhamos com aritmetica finita.

2.4 Observacoes Finais - Operacoes com Ponto Flutu-

ante

Em 1985 o IEEE - Institute for Eletrical And Eletronic Engineers publicou normas para pontoflutuante binario com o artigo Binary Floating Point Arithmetic Standard 754-1985. Estas nor-mas especificam formatos para precisao simples, dupla e estendida que sao, em geral, seguidaspelos fabricantes.

28

Page 30: Apostila CNumerico 2013

Tabela 2.2: Formato IEEE para numeros de ponto flutuante

PropriedadePrecisao

Simples Dupla Estendidacomprimento total 32 64 80bits na mantissa 23 52 64bits no expoente 8 11 15base 2 2 2expoente maximo 127 1023 16383expoente mınimo -126 -1022 16382maior numero ≈ 3.8× 1038 ≈ 1.8× 10308 ≈ 1.9× 104932

menor numero ≈ 1.18× 10−38 ≈ 2.23× 10−308 ≈ 3.36× 10−4932

dıgitos decimais 7 16 19

Assim, por exemplo um co-processador numerico de PCs que usa representacao de 64 bitspara numero real com precisao dupla utiliza,

1. 1 bit para sinal (s),

2. 11 bits para a parte exponencial (c) caracterıstica,

3. 52 bits para a parte fracionaria (f) mantissa e

4. base β = 2.

• 52 bits binarios significa 16 ou 17 dıgitos decimais.

• 11 bits exponencial significa valores entre 0 e 211 − 1 = 2047. Usa-se somente inteirospositivos no expoente, logo para que numeros de pequena magnitude sejam representadoso valor 1023 e subtraıdo da caracterıstica e assim o expoente varia entre −1023 ate 1024.

• Por economia de espaco de armazenamento e com a finalidade de fornecer uma represen-tacao unica para cada numero de ponto flutuante, e feita uma normalizacao. O uso destesistema possui a forma:

(−1)s2c−1023(1 + f).

Mas note que apesar da norma descrita acima, a forma de representacao de um numero deponto flutuante depende do fabricante do computador, logo um programa rodado em doiscomputadores distintos podem fornecer resultados distintos.

Nota 2 Existem casos onde o erro de arredondamento e muito grave. Nestes casos pode serusada a aritmetica intervalar, onde um intervalo, e nao apenas um numero e considerado.Aritmetica intervalar e uma aritmetica definida por desigualdades, isto e um ”numero”e definidopor um intervalo no qual ele esta contido. As operacoes sao definidas de forma intervalar, porexemplo se a ≤ x ≤ b, e c ≤ y ≤ d, entao a+ c ≤ x+ y ≤ b+ d. As operacoes entre intervalossao definidas por:

29

Page 31: Apostila CNumerico 2013

• [a, b] + [c, d] = [a+ c, b+ d]

• [a, b]− [c, d] = [a− c, b− d]

• [a, b]× [c, d] = [minac, ad, bc, bd,maxac, ad, bc, bd]

• [a, b]÷ [c, d] = [a, b]× [d−1, c−1], se 0 6∈ [c, d]

Este tipo de aritmetica mantem o erro de arredondamento sob controle. Para mais informacoessobre o assunto ver o site http://www.cs.utep.edu/interval-comp/index.html.

30

Page 32: Apostila CNumerico 2013

Primeira Lista de Exercıcios

1. Calcule o erro absoluto e erro relativo nas aproximacoes de p para p∗.

(a) p = π, p∗ = 22/7

(b) p = π, p∗ = 3.1416

(c) p = e, p∗ = 2.718

2. Encontre o maior intervalo em que p∗ deve se encontrar para aproximar p com um errorelativo no maximo de 10−4.

(a) π

(b)√

2

(c) 150

(d) 1500

3. Execute os seguintes calculos: (i) De forma exata; (ii) Usando aritmetica de tres dıgitose corte; (iii) Usando aritmetica de tres dıgitos e arredondamento. (iv) Calcule os errosrelativos dos ıtens (ii) e (iii)

(a) 45

+ 13

(b)(

13− 3

11

)+ 3

20

(c)(

13− 3

11

)− 3

20

4. O numero e pode ser definido por e =∞∑n=0

(1/n!). Calcule o erro absoluto e relativo nas

seguintes aproximacoes de e:

(a)5∑

n=0

1

n!

(b)10∑n=0

1

n!

5. Seja

f(x) =x cosx− sinx

x− sinx.

(a) Encontre o limx→0 f(x).

(b) Utilize arredondamento com 4 dıgitos para calcular f(0.1).

(c) Substitua cada funcao trigonometrica por seu polinomio de McLaurin de terceirograu e repita o item (b).

31

Page 33: Apostila CNumerico 2013

(d) O valor real e f(0.1) = −1.99899998. Encontre o erro relativo para os valores obtidosnos ıtens (b) e (c).

6. Suponha que os pontos (x0, y0) e (x1, y1) estejam em uma linha reta com y0 6= y1. Duasformulas estao disponıveis para encontrar o ponto onde esta linha corta o eixo dos x:

x =x0y1 − x1y0

y1 − y0

e x = x0 −(x1 − x0)y0

y1 − y0

(a) Mostre que ambas as formulas estao algebricamente corretas

(b) Use os dados (x0, y0) = (1.31, 3.24) e (x1, y1) = (1.93, 4, 76) e aritmetica de arredon-damento de 3 dıgitos significativos para calcular o valor do ponto de interseccao como eixo dos x por ambas as formulas. Qual o melhor metodo? explique o porque.

7. Utilize aritmetica de 3 dıgitos significativos, com arredondamento para computar a soma∑10i=1(1/i3)

(a) Faca 11

+ 18

+ ...+ 11000

(b) Faca 11000

+ ...+ 18

+ 11

Existe diferenca entre os dois resultados? Explique o que ocorre.

Problemas computacionais - Retirados de Numerical Analysis, Kincaid & CheneyUse precisao simples na resolucao dos exercıcios.

1. Escreva um programa para encontrar o valor de f(x) e g(x) para uma sucessao de valoresde x tais como 8−1, 8−2, 8−3,... .

•f(x) =

√x2 + 1− 1

•g(x) =

x2

√x2 + 1 + 1

Apesar de f(x) = g(x) o computador ira produzir diferentes resultados. Quais sao osresultados confiaveis e porque?

2. Usando seu computador escreva o valor das funcoes

32

Page 34: Apostila CNumerico 2013

• f(x) = x8 − 8x7 + 28x6 − 56x5 + 70x4 − 56x3 + 28x2 − 8x+ 1

• g(x) = (((((((x− 8)x+ 28x)− 56)x+ 70)x− 56)x+ 28)x− 8)x+ 1

• h(x) = (x− 1)8

em 101 pontos igualmente espacados do intervalo [0.99, 1, 01], Calcule cada funcao deforma direta sem simplificacao de formulas. Observe que as tres funcoes sao identicas, eos resultados nao, sendo alguns deles aparecem negativos apesar de pela definicao de h(x)sabermos que devem ser sempre positivos.

3. Um experimento numerico interessante e calcular o produto interno dos seguintes vetores:

x = [2.718281828; −3.141592654; 1.414213562; 0.5772156649; 0.3010299957]

y = [1486.249700; 878366.98790; −22.3749200; 4773714.6470; 0.0001850490]

Calcule a soma de 4 formas diferentes:

(a) Ordem diretan∑i=1

xiyi,

(b) Ordem inversa1∑i=n

xiyi,

(c) Do maior para o menor (some primeiro os positivos do maior para o menor, depoissome os negativos do menor para o maior, e entao proceda a soma parcial)

(d) Menor para o maior (ordem inversa da soma no item anterior)

(e) Use precisao simples e dupla para proceder os calculos dos ıtens anteriores. Comparessuas respostas com o resultado correto em sete casas decimais −1.006571× 10−11.Explique os resultados

4. Repita o problema anterior mas corte o final 9 em x4 e o final 7 de x5. Que efeito estapequena troca provoca?

33

Page 35: Apostila CNumerico 2013

Capıtulo 3

Sistemas Lineares

Um dos processos numericos mais utilizados para resolver problemas reais e a solucao de siste-mas lineares, pois e uma etapa fundamental na resolucao numerica de modelagens que envolvamequacoes diferencias, ajuste de curvas, otimizacao, sistemas nao lineares e outros. Desta formae muito im portante termos um metodo eficiente para resolve-lo.

Neste capıtulo, vamos estudar alguns metodos numericos para a solucao de um sistemalinear do tipo Ax = b. Comecamos relembrando alguns conceitos.

3.1 Algebra Matricial

• Uma matriz e um arranjo retangular de numeros A = [aij], com 1 ≤ i ≤ m linhas e1 ≤ j ≤ n colunas.

A =

a11 a12 a13 ... a1n

a21 a22 a23 ... a2n

a31 a32 a33 ... a3n...

......

. . ....

an1 an2 an3 ... ann

,

• Coluna: Uma matriz n× 1 e dita uma matriz coluna ou vetor coluna de dimensoa n

• Linha: Uma matriz 1× n e dita uma matriz linha ou vetor linha de dimensoa n

• Nula: Uma matriz A e dita nula quando todos os seus elementos aij = 0

• Diagonal: E uma matriz quadrada cujos elementos fora da diagonal principal sao nulos ie

aij =

= 0 se i 6= j6= 0 se i = j

• Identidade: E uma matriz diagonal cujos elementos da diagonal principal sao unitarios,ie aii = 1

34

Page 36: Apostila CNumerico 2013

• Triangular Superior: quando todos os elementos abaixo da diagonal principal sao nulos

aij = 0 se i < j

• Triangular Inferior: quando todos os elementos acima da diagonal principal sao nulos

aij = 0 se i > j

• Transposta: AT = [aji]

A =

a11 a12 a13 ... a1n

a21 a22 a23 ... a2n

a31 a32 a33 ... a3n...

......

. . ....

an1 an2 an3 ... ann

, AT =

a11 a21 a31 ... an1

a12 a22 a32 ... an2

a13 a23 a33 ... an3...

......

. . ....

a1n a2n a3n ... ann

• Simetrica: A = AT

• Densa: Quando a maior parte dos elementos da matriz e distinto de zero

• Esparsa: Quando a maior parte dos elementos da matriz e igual a zero

• λA = [λaij]

• Considere A e B de mesma ordem assim: A + B = [aij + bij]

• Considere: Am 12p e Bp 1

2n A B = [

∑pk=1 aikbkj]

• Pre-multiplicacao de uma matriz diagonal D por A equivale a multiplicar cada linha deA pelo correspondente elemento de D, isto e:d1 0 0 ... 00 d2 ... 00 0 d3 ... 0...

......

. . ....

0 0 0 ... dn

a11 a21 a31 ... an1

a12 a22 a32 ... an2

a13 a23 a33 ... an3...

......

. . ....

a1n a2n a3n ... ann

=

d1a11 d1a21 d1a31 ... d1an1

d2a12 d2a22 d2a32 ... d2an2

d3a13 d3a23 d3a33 ... d3an3...

......

. . ....

dna1n dna2n dna3n ... dnann

• Pos-multiplicacao de uma matriz diagonal D por A equivale a multiplicar cada coluna de

A pelo correspondente elemento de D, isto e:a11 a21 a31 ... an1

a12 a22 a32 ... an2

a13 a23 a33 ... an3...

......

. . ....

a1n a2n a3n ... ann

d1 0 0 ... 00 d2 ... 00 0 d3 ... 0...

......

. . ....

0 0 0 ... dn

=

d1a11 d2a21 d3a31 ... dnan1

d1a12 d2a22 d3a32 ... dnan2

d1a13 d2a23 d3a33 ... dnan3...

......

. . ....

d1a1n d2a2n d3a3n ... dnann

35

Page 37: Apostila CNumerico 2013

• Produto Interno: E o produto entre um vetor x (n× 1) e um vetor y (n× 1) e resulta umescalar k obtido por

k = xTy =n∑i=1

xiyi

• Produto Externo: E o produto entre um vetor x (n × 1) e um vetor y (m × 1) e resultauma matriz M (n× n) onde cada elemento mij = xiyj

M = xyT =

x1y1 . . . x1ym... . . .

...xny1 . . . xnym

• Dois sistemas Ax = b e Bx = d sao ditos equivalentes se possuem a mesma solucao.

3.1.1 Operacoes Elementares

Em metodos numericos transformamos um sistema, atraves de operacoes elementares em outromais simples de ser resolvido.

1. Troca de duas equacoes do sistema Ei → Ej1 0 00 0 10 1 0

Troca as segunda e terceira linhas

2. Multiplicacao de uma equacao por um numero nao nulo λEi ↔ Ei.1 0 00 λ 00 0 1

multiplica a segunda linha por λ

3. Somar de uma equacao um multiplo de outra equacao Ei − λEj → Ei1 0 00 1 00 λ 1

multiplica a segunda linha por λ e soma na terceira

Teorema 11 Se um sistema linear de equacoes que e obtido de outro atraves de um numerofinito de operacoes elementares entao estes sistemas sao equivalentes.

36

Page 38: Apostila CNumerico 2013

3.1.2 Matrizes

• In×n e a matriz identidade de ordem n, logo para qualquer An×n, AI = A = IA.

• Se AB = I entao B e dita inversa pela direita de A e A e dita inversa pela esquerda deB. Note que estas inversas nao sao necessariamente unicas, por exemplo:

(1 0 00 1 0

)1 00 1e f

=

(1 00 1

)

Teorema 12 Uma matriz quadrada pode possuir no maximo uma inversa pela direita.

Prova:

Vamos supor que AB = I e que a(j) representa sua j-esima coluna.Assim:

n∑j=1

bjka(j) = I(k), para 1 ≤ k ≤ n (3.1)

onde bjk sao os elementos da matriz B. Assim cada coluna de I e combinacao lineardas colunas de A e desta forma temos que as colunas de A formam uma base paraRn logo os coeficientes de (5.1) sao unicamente determinados.

Teorema 13 Se A e B sao matrizes quadradas e AB = I entao BA = I.Prova:

Vamos supor que AB = I.Vamos considerar uma matriz C definida como: C = BA− I + AB. MultiplicandoC pela esquerda por A temos:

AC = (AB)A−A + (AB) = A−A + I = I

Assim C e uma inversa pela direita de A, entao ao pelo teorema de unicidade,C = B e assim

B = BA− I + B, assim BA = I

• Se An×n e se existe B de forma que AB = I entao AB = BA = I e neste caso B e ditainversa de A e A e dita nao singular ou inversıvel.

• Se A e inversıvel entao a solucao do sistema Ax = b unica.

37

Page 39: Apostila CNumerico 2013

• Se uma matriz e inversıvel entao existe uma sequencia de operacoes elementares tal que

EmEm−1...E2E1A = I

Exemplo 5 Decompor a matriz em matrizes elementares e assim encontre sua inversa,

A =

1 2 31 3 32 4 7

Podemos ver que: 1 0 −3

0 1 00 0 1

1 −2 00 1 00 0 1

1 0 00 1 0−2 0 1

1 0 0−1 1 0

0 0 1

1 2 31 3 32 4 7

=

1 0 00 1 00 0 1

desta forma temos que a inversa da matriz A e dada por:

A−1 =

1 0 −30 1 00 0 1

1 −2 00 1 00 0 1

1 0 00 1 0−2 0 1

1 0 0−1 1 0

0 0 1

=

9 −2 −3−1 1 0−2 0 1

• Uma matriz A simetrica e dita:

1. definida positiva se para qualquer vetor x, com x 6= 0, xTAx > 0.

2. semi-definida positiva se para qualquer vetor x, com x 6= 0, xTAx ≥ 0.

3. definida negativa se para qualquer vetor x, com x 6= 0, xTAx < 0.

4. semi-definida negativa se para qualquer vetor x, com x 6= 0, xTAx ≤ 0.

5. indeterminada nos outros casos.

Exemplo 6 Por exemplo, a matriz

(2 11 2

)e definida positiva, pois:

(x1 x2)

(2 11 2

)(x1

x2

)= (2x1+x2 x1+2x2)

(x1

x2

)= 2x2

1+2x1x2+2x22 = (x1+x2)2+x2

1+x22 > 0

• xTAx e chamado de forma quadratica

• Se uma matriz A e positiva definida e simetrica, entao todos os seus autovalores sao reaise positivos.

38

Page 40: Apostila CNumerico 2013

Teorema 14 As seguintes propriedades sao equivalentes:

1. A inversa de A existe (e nao singular).

2. O determinante de A e distinto de zero.

3. As linhas de A formam uma base de Rn.

4. As colunas de A formam uma base de Rn.

5. Como uma funcao de Rn em Rn, A e injetiva.

6. Como uma funcao de Rn em Rn , A e sobrejetiva.

7. Ax = 0 implica que x = 0.

8. Para qualquer b ∈ Rn existe um unico x ∈ Rn de forma que Ax = b.

9. A e um produto de matrizes elementares.

10. 0 nao e um autovalor de A.

Determinantes

Definimos determinante de uma matriz quadrada An×n como sendo um numero obtido por:

det(A) = |A| = a11 det(M11)− a12 det(M12) + ...+ (−1)n+1a1n det(M1n)

onde Mij e a matriz de onde n − 1 obtida atraves da retirada da i-esima linha e da j-esimacoluna de A

Posto

Dizemos que um conjunto de vetores v1, v2, ..., vp e linearmente dependente se existem esca-lares, ai, i = 1 : p, nem todos nulos de forma que

a1v1 + a2v2 + ...+ apvp = 0

Caso contrarios os vetores sao linearmente independentes.Vamos agora considerar uma matriz Am×n. Chamamos de posto de A como sendo o numero

maximo de vetores colunas ou vetores linhas de A que sao LI. Podemos ver que

posto (A) ≤ min(m,n)

Traco

O traco de uma matriz quadrada A e a soma dos elementos de sua diagonal principal

Traco (A) =n∑i=1

aii

39

Page 41: Apostila CNumerico 2013

Propriedades de Transposta e Inversa

• (AT )T = A

• (A−1)−1 = A

• (A−1)T = (AT )−1 = A−T

• (AB)T = BTAT

• (AB)−1 = B−1A−1

• (A + B)T = AT + BT

• (A + B)−1 6= A−1 + B−1 CUIDADO!

3.1.3 Autovalores e Autovetores

Uma matriz quadrada associa um conjunto de vetores n-dimensionais em si mesmo. Neste casoexistem certos vetores nao nulos x que sao paralelos a Ax, isto e existe uma constante λ deforma que Ax = λx. Veremos que existe uma relacao muito proxima entre estes numeros λ ea convergencia de metodos iterativos.

Polinomio Caracterıstico

Se A e uma matriz quadrada chamamos o determinante p(λ) = det(A − λI) de polinomiocaracterıstico de A.

Autovalores

Os zeros do polinomio caracterıstico de A sao chamados de autovalores de A.

Autovetores

O vetor x 6= 0, de forma que Ax = λx e chamado de autovetor de A correspondente aoautovalor λ.

Raio Espectral

Chamamos ρ(A) de raio espectral de A e definimos por, ρ(A) = max |λ|.

40

Page 42: Apostila CNumerico 2013

Observacoes

Se o polinomio caracterıstico de uma matriz A de ordem n e escrito como:

det(A− λI) = p(λ) = dnλn + dn−1λ

n−1 + ....+ d1λ+ d0

se as raızes deste polinomio (autovalores) sao representados por λi, i = 1, 2, ..., n, entao podemosmostrar que

1. −dn−1

dn=

n∑i=1

aii = Traco (A)

2. (−1)nd0

dn= det(A)

3. Pelas relacoes de Girard (relacao entre raızes e determinantes de equacoes algebricas)temos:

(a) λ1 + λ2 + ...+ λn =n∑i=1

λi = −dn−1

dn

(b) λ1λ2...λn =n∏i=1

λi = (−1)nd0

dn

4. E desta forma obtemos duas propriedades importantes:

(a)n∑i=1

aii =n∑i=1

λii pois Traco (A) = −dn−1

dnOu a soma dos elementos da diagonal principal de A e a soma de seus autovalores

(b) det(A) =n∏i=1

λi pois det(A) = (−1)nd0

dnOu o determinante de uma matriz e igual ao produto de seus autovalores.

Exemplo 7 Como exemplo, vamos considerar a matriz

A =

1 0 20 1 −1−1 1 1

,

p(λ) = det(A−λI) = det

1− λ 0 20 1− λ −1−1 1 1− λ

= (1−λ)3+2(1−λ)+(1−λ) = (1−λ)(λ2−2λ+4).

Desta forma, resolvendo p(λ) = 0, os autovalores da matriz A sao λ1 = 1, λ2 = 1 + i√

3 eλ2 = 1− i

√3.

41

Page 43: Apostila CNumerico 2013

1. Calculando autovetor correspondente ao autovalor λ1 temos:

A− λ1I = 0⇔

0 0 20 0 −1−1 1 0

x1

x2

x3

=

000

⇔ x3 = 0 e x1 = x2 ⇔ V1 =

110

2. Calculando autovetor correspondente ao autovalor λ2 temos:

A− λ2I = 0⇔

−i√3 0 2

0 −i√

3 −1

−1 1 −i√

3

x1

x2

x3

=

000

⇔ x1 = − 2i√3x3 e x2 = x3

i√3⇔ V2 =

−2i/√

3

i/√

31

3. Calculando autovetor correspondente ao autovalor λ3 temos:

A− λ2I = 0⇔

i√3 0 2

0 i√

3 −1

−1 1 i√

3

x1

x2

x3

=

000

⇔ x1 =2i√

3x3 e x2 = −x3

i√3⇔ V3 =

2i/√

3

−i/√

31

3.1.4 Um pouco mais de Algebra Matricial

Para discutirmos os erros numericos envolvidos em uma sequencia de vetores que aproximaa solucao de um sistema de equacoes, precisamos uma medida de distancia entre vetores n-dimensionais.

Definicao 9 Em um espaco vetorial V , uma norma e uma funcao ||.|| definida de V em umconjunto de numeros reais nao negativos que obedecem as seguintes propriedades:

1. ||x|| > 0, se x 6= 0, x ∈ V

2. ||λx|| = |λ|||x||, se λ ∈ R, x ∈ V

3. ||x+ y|| ≤ ||x||+ ||y||, se x, y ∈ V (Desigualdade do triangulo)

As normas mais familiares sobre Rn sao:

1. A norma Euclideana `2 definida por: ||x||2 = (∑n

i=1 x2i )

1/2, onde x = (x1, x2, ..., xn)T

2. A norma `1 definida por:||x||1 =∑n

i=1 |xi|, onde x = (x1, x2, ..., xn)T

42

Page 44: Apostila CNumerico 2013

3. A norma do maximo `∞, definida por: ||x||∞ = max1≤i≤n |xi|, onde x = (x1, x2, ..., xn)T

Norma MatricialPodemos definir normas matriciais apenas sujeitas a satisfazerem as propriedades (1)− (3),

mas preferimos escolher aquelas que tambem estejam relacionadas com as normas matriciaisdescritas anteriormente. Assim se uma norma vetorial ||.|| esta determinada, a norma matricialassociada a ela e definida por:

||A|| = sup ||Au|| tal que u ∈ Rn, ||u|| = 1 (3.2)

Podemos demonstrar que:

Teorema 15 Se ||.|| e uma norma sobre Rn, entao a equacao (3.2) define uma norma sobre oespaco linear de todas as matrizes quadradas de ordem n× n.

Teorema 16 Se a norma ||.|| e a norma vetorial do maximo, entao ela esta associada a normamatricial

||A||∞ = max1≤i≤n

n∑j=1

|aij| (3.3)

isto e ‖A‖∞ e o maior valor obtido pela soma dos modulos dos elementos de cada linha.

Deste teorema resulta que ||I|| = 1 e ||AB|| ≤ ||A||||B||.

Teorema 17 Se a norma ||.|| e a norma vetorial `1, entao ela esta associada a norma matricial

||A||∞ = max1≤j≤n

n∑i=1

|aij| (3.4)

isto e ‖A‖1 e o maior valor obtido pela soma dos modulos dos elementos de cada coluna.

Uma outra norma importante e a norma Euclideana isto e a norma `2 tambem chamada denorma espectral, definida por:

||A||2 = sup||x||2=1

||Ax||2

E possıvel demonstrar que||A||2 = max

1≤i≤n|σi| =

√ρ(ATA)

onde σi ao os valores singulares de A e ρ(ATA) e o raio espectral de ATA e e definido comosendo o maior autovalor da matriz ATA.

Teorema 18 Se A e uma matriz de ordem N entao:

1. ‖A‖2 =ρ(ATA

)1/2,

43

Page 45: Apostila CNumerico 2013

2. ρ(A) ≤ ‖A‖, para qualquer norma natural ‖.‖.

Aqui nao vamos demonstrar este teorema. Vamos apenas usa-lo para calcular a normaeuclideana de uma matriz.

Exemplo 8 Considere a matriz

A =

1 1 01 2 1−1 1 2

assim temos que:

ATA =

1 1 −11 2 10 1 2

1 1 01 2 1−1 1 2

=

3 2 −12 6 4−1 4 5

Para encontrarmos os autovalores desta matriz devemos encontrar as raızes de:

0 = det(ATA− λI) =

3− λ 2 −12 6− λ 4−1 4 5− λ

= −λ(λ2 − 14λ+ 42)

Desta forma temos que os autovalores de A sao λ1 = 0, λ2 = 7 +√

7 e λ3 = 7 −√

7. Destaforma podemos encontrar que:

‖A‖2 =√ρ(ATA) =

√7 +√

7 ≈ 3.106.

3.2 Eliminacao de Gauss

Vamos considerar um sistema de equacoes algebricas lineares:

a11x1 + a12x2 + a13x3 + . . . + a1nxn = b1

a21x1 + a22x2 + a23x3 + . . . + a2nxn = b2

a31x1 + a32x2 + a33x3 + . . . + a3nxn = b3...

an1x1 + an2x2 + an3x3 + . . . + annxn = bn

ou matricialmente: a11 a12 a13 . . . a1n

a21 a22 a23 . . . a2n

a31 a32 a33 . . . a3n...

an1 an2 an3 . . . ann

x1

x2

x3...xn

=

b1

b2

b3...bn

44

Page 46: Apostila CNumerico 2013

Se a matriz A e uma matriz quadrada nao singular entao podemos garantir a existencia desolucao unica pois:

Ax = b→ x = A−1b

Aqui iremos considerar apenas o caso de sistemas onde A e uma matriz quadrada.Um sistema possui apenas uma solucao quando det(A) 6= 0 e isto independe do vetor b

considerado. Agora, quando det(A) = 0 dependendo do vetor b considerado podemos termuitas ou nenhuma solucao.

3.2.1 Decomposicao de Gauss Basica

Vamos considerar o seguinte sistema:6 −2 2 4

12 −8 6 103 −13 9 3−6 4 1 −18

x1

x2

x3

x4

123427−38

(3.5)

• Subtraımos 2 vezes a equacao 1 da equacao 2.

• Subtraımos 12

da equacao 1 da terceira.

• Subtraımos −1 vezes a equacao 1 da quarta.

• os numeros m21 = 2, m31 = 12

e m41 = −1 sao chamados de multiplicadores para oprimeiro passo do processo de eliminacao.

• O elemento 6 usado como divisor na formacao de cada um destes multiplicadores e cha-mado de Pivo.

E assim obtemos:6 −2 2 40 −4 2 20 −12 8 10 2 3 −14

x1

x2

x3

x4

121021−26

(3.6)

Neste primeiro estagio, chamamos a linha 1 de linha do pivo. No proximo estagio do processoa linha 2 e usada como linha do pivo.

• O elemento pivo e −4.

• Subtraımos 3 vezes a a segunda linha da terceira.

• Subtraımos −12

vezes a segunda linha da quarta.

• Os multiplicadores sao m32 = 3 e m42 = −12

.

45

Page 47: Apostila CNumerico 2013

6 −2 2 40 −4 2 20 0 2 −50 0 4 −13

x1

x2

x3

x4

1210−9−21

(3.7)

O ultimo estagio consiste em:

• Subtraımos 2 vezes a terceira linha da quarta.

• O pivo e 2

• O multiplicador e m43 = 2.

O sistema resultante e:6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

x1

x2

x3

x4

1210−9−3

(3.8)

Este sistema e triangular superior e equivalente ao sistema original, isto e suas solucoes saoidenticas. O sistema final e resolvido por retro-substituicao e a solucao e:

x =

1−3−2

1

Os multiplicadores usados para transformar o sistema podem ser mostrados como uma

matriz triangular inferior:

L =

1 0 0 02 1 0 012

3 1 0−1 −1

22 1

(3.9)

Note que cada multiplicador esta no lugar de um elemento 0 da matriz o qual ele foi o responsavelpor criar. A matriz coeficiente do sistema final e triangular superior U,

U =

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

(3.10)

Estas duas matrizes fornecem a decomposicao LU de A, a matrix coeficiente do sistema original.Assim,

6 −2 2 412 −8 6 103 −13 9 3−6 4 1 −18

=

1 0 0 02 1 0 012

3 1 0−1 −1

22 1

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

(3.11)

46

Page 48: Apostila CNumerico 2013

Para podermos descrever formalmente o processo do algoritmo de eliminacao Gaussiana,interpretamos como sendo uma sucessao de n− 1 passos maiores que resulta em uma sucessaode matrizes que vamos chamar de

A = A(1) → A(2) → ...→ A(n)

Na conclusao do k-esimo passo construımos a matriz A(k),

a(k)1,1 ... a

(k)1,k−1 a

(k)1,k ... a

(k)1,j ... a

(k)1,n

. . ....

......

0 a(k)k−1,k−1 a

(k)k−1,k ... a

(k)k−1,j ... a

(k)k−1,n

0 ... 0 a(k)k,k ... a

(k)k,j ... a

(k)k,n

0 ... 0 a(k)k+1,k ... a

(k)k+1,j ... a

(k)k+1,n

......

......

...

0 ... 0 a(k)i,k ... a

(k)i,j ... a

(k)i,n

......

......

...

0 ... 0 a(k)n,k ... a

(k)n,j ... a

(k)n,n

• Para obtemos A(k+1) de A(k): Para produzir zeros abaixo do k-esimo pivo a

(k)kk subtraımos

multiplos da linha k das linhas abaixo dela, assim as linhas 1, 2, ..., k nao sao alteradas e:

a(k+1)i,j =

a

(k)i,j se i ≤ k

a(k)i,j −

(a

(k)i,k /a

(k)k,k

)a

(k)k,j se i ≥ k + 1 e j ≥ k + 1

0 se i ≥ k + 1 e j ≤ k + 1

(3.12)

• Depois de todos os passos feitos temos uma matriz triangular superior U = A(n).

• Com os multiplicadores definimos uma matriz triangular inferior L, definida por:

`i,k =

(a

(k)i,k /a

(k)k,k

)se i ≥ k + 1

1 se i = k0 se i ≤ k − 1

(3.13)

Assim A = LU e a eliminacao Gaussiana comum. Note que isto vale se nao tivermos nenhumpivo nulo.

Teorema 19 Se todos os elementos pivo, a(k)k,k sao nao nulos no processo descrito, entao A =

LU.

ALGORITMO 2 (Eliminacao de Gauss com substituicao retroativa:) Resolve o sis-tema linear Ax = b de ordem n..ENTRADA:

47

Page 49: Apostila CNumerico 2013

numero de equacoes n;Matriz expandida A = (aij), 1 ≤ i ≤ n e 1 ≤ j ≤ n+ 1(ai,n+1 = bi).

.SAIDA:

Vetor solucao x = (xi) ou mensagem de erro

.Passo 1: Para i = 1, ...n− 1 siga os passos 2-4. (Processo de eliminacao.)

. Passo 2: Seja p o menor inteiro com i ≤ p ≤ n e api 6= 0.

. Se nenhum p pode ser encontrado, entao:

. SAIDA: (A solucao d problema nao e unica)

. PARE

. Passo 3: Se p 6= i entao execute (Ep)↔ (Ei).

. Passo 4: Para j = 1, ..., n siga os passos 5 e 6.

. Passo 5: Faca mji = aji/aii.

. Passo 6: Execute (Ej −mjiEi)↔ (Ej);

.Passo 7: Se ann = 0 entao:

. SAIDA: (Nao existe solucao unica);

. PARE

.Passo 8: Faca xn = an,n+1/ann. (Inıcio da substituicao retroativa.)

.Passo 9: Para i = n− 1, n− 2, ..., 1 faca xi =[ai,n+1 −

∑nj=i+1 aijxjaii.

.Passo 10: SAIDA (x1, x2, ..., xn); (O procedimento foi completado com sucesso.) .

. PARE

No algoritmo anterior podemos armazenar os multiplicadores mij nos enderecos de aij que jatenham o valor zero para cada i = 1, 2, ..., n− 1 e j = i+ 1, i+ 2, ..., n. Assim, A e substituıdapelos multiplicadores, abaixo da diagonal principal, e por A(n) acima e sobre a diagonal princi-pal. As quantidades de tempo computacional e erros de arredondamento dependem do numerode operacoes aritmeticas de ponto flutuante na rotina. Em geral o tempo necessario aritmeticasnecessario para proceder a multiplicacao ou uma subtracao e aproximadamente o mesmo e econsideravelmente maior que o tempo necessario para executar uma adicao ou uma subtracao.Desta forma o custo computacional e normalmente medido em numero de multiplicacoes e/oudivisoes.

• Nenhuma operacao ate o passo 3.

• No passo 5, sao necessarias (n− i) divisoes e no passo 6, mji e multiplicado a cada termode Ei, resultando (n− i)(n− i+ 1) multiplicacoes.Mult/Div (n − i) + (n − i)(n − i + 1) = (n − i)(n − i + 2). Como estas multiplicacoessao efetuadas para cada,

n−1∑i=1

(n− i)(n− i+ 2) = (n2 + 2n)n−1∑i=1

1− 2(n+ 1)n−1∑i=1

i2 =2n3 + 3n2 − 5n

6

48

Page 50: Apostila CNumerico 2013

• Nos passos 8 e 9 da substituicao retroativa temos uma divisao, no passo 8 temos n − imultiplicacoes e uma divisao para cada i = n− 1, ..., 1, isto e

1 +n−1∑i=1

((n− i) + 1) =n2 + n

2

• Total de multiplicacoes e/ou divisoes

2n3 + 3n2 − 5n

6+n2 + n

2=n3

3+ n2 − n

3≈ n3

3

para n grande.

3.2.2 Pivotamento

O algoritmo de eliminacao de Gauss descrito acima nao e satisfatorio pois pode falhar emsistemas muito simples de serem resolvidos.Por exemplo:

• No sistema(0 11 1

)(x1

x2

)=

(12

)o algoritmo descrito acima falha, pois o primeiro pivo e nulo. A dificuldade persiste noseguinte sistema quando ε << 1,(

ε 11 1

)(x1

x2

)=

(12

)Pois quando aplicado o algoritmo de Gauss teremos o seguinte sistema triangular superior:(

ε 10 1− ε−1

)(x1

x2

)=

(1

2− ε−1

)cuja solucao e dada por:

x2 =2− ε−1

1− ε−1≈ 1 e x1 = (1− x2)ε−1 ≈ 0

Devemos notar que a solucao exata deste sistema e dada por:

x2 =2− ε−1

1− ε−1≈ 1 e x1 =

1− x2

ε= 1− 2− ε−1

(1− ε−1)ε=−1

ε− 1≈ 1

Este efeito e devido a aritmetica de ponto flutuante e o fato de ε ≈ 0.

49

Page 51: Apostila CNumerico 2013

• Outro exemplo mostra que nao e exatamente o fato de a11 ser pequeno que acarreta oerro. Mas sim o fato de a11 ser muito menor relativamente aos elemento de sua linha.Vamos considerar o sistema equivalente ao anterior dado por:(

1 ε−1

1 1

)(x1

x2

)=

(ε−1

2

)Neste caso ε−1 e um numero muito grande. A aplicacao do algoritmo simples de Gaussresulta:(

1 ε−1

0 1− ε−1

)(x1

x2

)=

(ε−1

2− ε−1

)e sua solucao e dada por:

x2 =2− ε−1

1− ε−1≈ 1 e x1 = (ε−1 − ε−1x2) ≈ 0

Vemos assim que as dificuldades causadas neste sistema irao desaparecer se a ordem dasequacoes for simplesmente trocada.

Resumindo, sabemos que quando o candidato a pivo e nulo devemos trocar as linhas dosistema para podermos proceder o algorıtmo de Gauss. Porem, tambem vimos que algumasvezes a troca de linhas tambem e necessaria mesmo que o pivo nao seja nulo.

Aqui vamos considerar dois tipos de pivotamento, o chamado de pivotamento parcial que es-colhe para pivo o maior elemento em modulo da coluna considerada e o pivotamento escalonadoque antes de escolher o pivo, compara sua grandesa com um fator de escala.

3.2.3 Pivotamento Parcial

Se a(k)kk e o pivo e ele e pequeno em comparacao com os outros elementos abaixo

dele em sua coluna a(k)jk , o multiplicador

mjk =a

(k)jk

a(k)kk

>> 1

e assim um erro de arredondamento e introduzido no calculo e. desta forma, quandoprocedemos a retrosubstituicao para determonarmos xk, temos:

xk =a

(k)j,n+1 −

∑nj=k+1 a

(k)jk

a(k)kk

E o erro de arredondamento do numerador sera drasticamente incrementado com adivisao por um numero muito pequeno, no caso a

(k)kk

50

Page 52: Apostila CNumerico 2013

Exemplo 9 Vamos considerar neste exemplo o uso de aritmetica de 4 algarısmos e arredon-damento

0.003000x1 + 59.14x2 = 59.175.291x1 − 6.130x2 = 46.78

A solucao exata deste sistema e x1 = 10.00 e x2 = 1.000.O primeiro pivo e um numero muito pequeno (”perigo”). O multiplicador e

m21 =5.291

0.003000= 1763.666... ≈ 1764.

Assim procedendo a operacao elementar

L2 −m21L1 → L20.003000x1 + 59.14x2 = 59.17

− 104300.x2 = −104400.

e desta forma temos quex2 = 1.001

O que e uma boa aproximacao da solucao para uma maquina que opera com aritmetica de 4dıgitos significativos. Agora para encontrarmos x1 temos:

x1 =59.17− (59.14)(1.001)

0.003000=

59.17− 59.20

0.003000= −10.00 6= 10.00!!!!!

Podemos evitar este problema procedendo ao pivotamento parcial (troca de linhas)

Exemplo 10 Vamos considerar neste exemplo o uso de aritmetica de 4 algarısmos e arredon-damento e pivotamento parcial

0.003000x1 + 59.14x2 = 59.175.291x1 − 6.130x2 = 46.78

Novamente a solucao exata deste sistema e x1 = 10.00 e x2 = 1.000.Escolhemos para primeiro pivo max0.003000, 5.291 = 5.291 assim

L1↔ L25.291x1 − 6.130x2 = 46.78

0.003000x1 + 59.14x2 = 59.17

Assim

m21 =0.003000

5.291= 0.0005670

e procedendo a operacao elementar

L2 −m21L1 → L2

51

Page 53: Apostila CNumerico 2013

5.291x1 + 6.130x2 = 46.78

− 59.14x2 = 59.14

e desta forma temos que

x2 =59.14

59.14= 1.000

e

x1 =46.78 + 6.130x2

5.291=

52.91

5.291= 10.00

Na maior parte dos casos este procedimento basta, porem existem situacoes onde este pro-cedimento e inadequado. Algumas vezes iremos precisar do pivotamento escalonado. O efeitodo escalonamento e garantir que o maior elemento do linha possua magnitude relativa de umaunidade antes de compararmos os elementos da coluna para escolha do pivo e possıvel troca delinhas. A troca apropriada de linhas e dada pela escolha (sp e o pesimo elemento do vetor deescala s)

|api|sp

= maxk=i,i+1,...,n

|aki|sk

Neste caso procedemos a trocaLi ↔ Lp

Observamos que o vetor de escala e calculado uma unica vez.

3.2.4 Pivotamento Escalonado

O pivotamento escalonado incorpora a troca de equacoes no sistema sempre que necessario, po-rem este leva em conta a grandeza relativa de cada ”candidato”de pivo com os outros elementosde sua propria linha. Assim na fase de fatoracao do algoritmo de Gauss, iniciamos o processoescolhendo o fator de escala de cada linha, isto e

si = max1≤j≤n

|aij| = max|ai1|, |ai2|, ..., |ain|

Estes valores ficam acumulados em um vetor que vamos chamar de s. Computacionalmente ospivos sao escolhidos, mas as linhas nao sao trocadas fisicamente na memoria do computador.Ao inves disto as trocas sao armazenadas em um vetor chamado de p. Iniciamos o processode fatoracao selecionando a linha do pivo como aquela onde o valor |ai1/si e maior. O ındice isera chamado de de p1 e definira a primeira linha da matriz de permutacao. Assim |api1|/spi ≥|ai1|/si para 1 ≤ i ≤ n. Uma vez que p1 foi determinado, subtraımos apropriadamente multiplosda linha p1 das outras linhas em ordem de proceder zeros na primeira coluna de A. E claro quea linha p1 continua intocada ate o fim da fatoracao. Aqui comecamos a armazenar os elementospi no vetor p. Agora selecionamos um ındice j para o qual |apj1/spj| e o maximo e trocamos p1

com pj no vetor p. O passo de eliminacao real envolve subtrair (api1/ap11 vezes a linha p1 dalinha pi para 2 ≤ i ≤ n. O processo continua desta forma. Vamos exemplificar este processo:

Exemplo 11 Pivotamento escalonado

52

Page 54: Apostila CNumerico 2013

Vamos considerar a matriz

A =

2 3 −61 −6 83 −2 1

Inicialmente o vetor p = (1, 2, 3) e s = 6, 8, 3. Para selecionar o primeiro pivo, olhamos para2/6, 1/8, 3/3. O maior destes numeros corresponde a terceira linha, logo o primeiro pivo sera3. Isto sera ”dito”pelo vetor p, que agora sera p = (3, 2, 1). Agora multiplos da linha 3 seraosubtraıdos das linhas 2 e 1 produzindo zeros na primeira coluna. O resultado e:[2

3] 13

3−20

3

[13] −16

3233

3 −2 1

Os elementos localizados em a11 e a21 sao os multiplicadores. No proximo passo, selecionamosnovamente a linha do pivo. Para isto comparamos os numeros |ap22|/sp2 e |ap32|/sp3. A primeiradesta razoes e (16/3)/8 e a segunda (13/3)/6. Logo j = 3, e trocamos as linhas p2 com p3.Assim um multiplo da linha p2 e subtraıda da linha p3. O resultado e p = (3, 1, 2) e[2

3] 13

3−20

3

[13] [−16

3] − 7

13

3 −2 1

O ultimo multiplicador e entao guardado em a22.

Se as linhas da matriz original A foram trocadas de acordo ao vetor de permutacao p, entaoterıamos a decomposicao LU de A. Assim temos:

PA =

1 0 023

1 013−16

31

3 −2 10 13

3−20

3

0 0 − 713

=

3 −2 12 3 −61 −6 8

onde:

P =

0 0 11 0 00 1 0

e A =

2 3 −61 −6 83 −2 1

A matriz permutacao P e obtida do vetor permutacao p, isto e P e obtido permutando as linhasda matriz identidade I de acordo com os elemento do vetor p.

A seguir, apresentamos um algoritmo que faz a fase de fatoracao da eliminacao de Gaussusando a tecnica de pivotamento escalonado:

ALGORITMO 3 .Entrada: n, (aij)Para: i = 1 ate n faca

53

Page 55: Apostila CNumerico 2013

pi ← isi ← maxi≤j≤n |aij|

Fim do paraPara k = 1 ate n− 1 faca:

Se j ≥ k entao selecione

|apj ,k|/spj ≥ |api,k|/spi para i = k, k − 1, ..., n

pk ↔ pjPara i = k + 1 ate n faca

z ← apik/apkk; apik ← zPara j = k + 1 ate n faca

z ← apij/apkk; apjk ← zPara j = k + 1 ate n faca

apij ← apij − zapkjFim do faca

Fim do faca

Fim do facaSaıda (aij), (pi)

Note que neste algorıtmo os multiplicadores sao armazenados na matriz A no lugar dos ”ze-ros”que deveriam aparecer no processo de eliminacao. Vamos usar este procedimento no proximoexemplo.

Exemplo 12 Vamos considerar, com 3 dıgitos significativos, o sistema2.11 −4.21 0.9214.01 10.2 −1.11.09 0.987 0.832

x1

x2

x3

=

2.01−3.094.21

O vetor

S = 4.21, 10.2, 1.09. Para escolhermos o pivo, analisamos que

|a11|/s1 = 0.501, |a21|/s2 = 0.393, |a31|/s3 = 1.00

assim fazemos a trocaL1 ←→ L3

Vetor S1.09 0.987 0.832 4.21 1.09 L2 − 3.68L1 → L2

4.01 10.2 −1.1 −3.09 10.2 L3 − 1.94L1 → L3

2.11 −4.21 0.921 2.01 4.21 m21 = 3.68 m31 = 1.941.09 0.987 0.832 4.21 1.02

0 6.57 −4.18 −18.6 10.20 −6.12 −0.689 −6.16 4.21

54

Page 56: Apostila CNumerico 2013

Agora para escolher o novo pivo comparando:

|a22|s2

=6.57

10.2= 0.644 e

|a32|s3

=6.12

4.21= 1.45

Temos que trocar as linhas 2 e 3:L2 ←→ L3

assimm31 = 3.68 e m21 = 1.94 e

Vetor S1.09 0.987 0.832 4.21 1.09 L3 − (−1.07)L2 → L3

0 −6.12 −0.689 −6.16 4.21 m32 = 6.57/(−6.12) = −1.070 0.02 −4.92 −25.2 10.2

Note que o valor 0.02 ≈ 0 aparece por estarmos usando apenas 3 dıgitos significativos. Resol-vendo o sistema por retro-substituicao temos:

x3 =−25.2

−4.92= 5.12, x2 =

−6.16 + 6.689x3

−6.12= 0.430, x1 =

4.21− 0.987x2 − 0.832x3

1.09= −0.431

3.2.5 Observacoes sobre a decomposicao A = LU

Uma matriz A pode ser decomposta na forma LU se a eliminacao Gaussiana pode ser feitasem troca de linhas. Podemos mostrar que isto e possıvel quando todos os menores principaisda matriz A sao nao singulares, isto e seus determinantes nao sao nulos. Neste caso:

• A = LU

• Ax = b e o mesmo que resolver

L Ux︸︷︷︸ = b

e equivalente a resolver dois sistemas triangulares,

Lz = b, Ux = z

• Algorıtmo para proceder a decomposicao LU (quando nao e feita troca de linhas):a11 a12 a13 ... a1n

a21 a22 a23 ... a2n

a31 a32 a33 ... a3n...

......

. . ....

an1 an2 an3 ... ann

=

`11 0 ... 0 0`21 `22 0 ... 0...

... ......

`(n−1)1 `(n−1)2 . . . `(n−1)n 0`n1 `n2 `n3 ... `nn

u11 u12 u13 ... u1n

0 u22 u23 ... u2n

0. . . u33 ... u3n

.... . . . . .

...0 0 ... 0 unn

• Observe que a decomposicao A = LU nao e unica. As decomposicoes mais conhecida sao

as de Doolitle, Crout e Cholesky (esta ultima so aplicavel para matrizes simetricas). Aseguir vamos exemplificar as 3 decomposicoes.

55

Page 57: Apostila CNumerico 2013

• Na decomposicao de Doolitle fazemos a diagonal principal de A unitaria, isto e, `ii = 1,por exemplo:

A =

60 30 2030 20 1520 15 12

= LU =

u11 u12 u13

`21u11 `21u12 + u22 `21u13 + u23

`31u11 `31u12 + `32u22 `31u13 + `32u23 + u33

1. Usando os as igualdades da primeira linha: u11 = 60, u12 = 30 e u13 = 20

2. Usando as igualdades da primeira coluna: u11`21 = 30 → `21 = 1/2 e e u11`31 = 20 →`31 = 1/3.

3. Usando a igualdade da segunda linha: u12`21 + u22 = 20 − 30(1/2) = 5 e u13`21 + u23 =15→ u23 = 5

4. Usando a igualdade da segunda coluna: u12`31 + u22`32 = 15(15− 30

3) = 1.

5. Finalmente, usando a igualdade da terceira linha: u13`31 + u23`32 + u33 = 12 → u33 =12− 201

3− 5(1) = 1

3

6. Assim:

A =

1 0 01/2 1 01/3 1 1

60 30 200 5 50 0 1/3

, Decomposicao de Doolittle

7. Na decomposicao de Crout a diagonal principal de U e unitaria, ou

A =

1 0 01/2 1 01/3 1 1

60 0 00 5 00 0 1/3

1 1/2 1/30 1 10 0 1

=

60 0 030 5 020 5 1/3

1 1/2 1/30 1 10 0 1

, Crout

8. Quando a matriz A e definida positiva, tambem temos a decomposicao de Cholesky, ondeA = LLT :

A =

1 0 01/2 1 01/3 1 1

60 0 0

0√

5 0

0 0√

1/3

60 0 0

0√

5 0

0 0√

1/3

1 1/2 1/30 1 10 0 1

=

60 0 0√60/3

√5 0√

60/3√

5√

1/3

√60√

60/2√

60/3

0√

5√

5

0 0√

3/3

, Cholesky

Teorema 20 Se todos os n menores principais

Ak =

a11 a12 ... a1k

a21 a22 ... a2k...

.... . .

...ak1 ak2 ... akk

de A sao nao singulares, entao A possui decomposicao LU.

56

Page 58: Apostila CNumerico 2013

Teorema 21 (Cholesky) Se A e uma matriz real simetrica e definida positiva entao existeuma unica fatoracao A = LLT , onde L e uma matriz triangular inferior cujos elementos dadiagonal principal sao positivos.

Teorema 22 Se todos os elementos pivos a cada passo da eliminacao Gaussiana sao nao nulosentao existe a fatoracao do tipo A = LU.

3.2.6 Observacoes sobre a decomposicao PA = LU

Se a eliminacao Gaussiana e feita com troca de linhas, ie usando pivotamento parcialou oupivotamento escalonado, podemos encontrar a decomposicao PA = LU. Neste caso:

• PA = LU

• Logo para resolvermos o sistema Ax = b usando esta decomposicao fazemos:

• Multiplicando o sistema por P, temos PAx = Pb

• Logo

L Ux︸︷︷︸ = Pb

• Assim para encontrarmos a solucao x temos que resolver por substituicao direta o sistematriangular

Lz = Pb,

e depois por retrosubstituicao o sistema triangular

Ux = z

Exemplo 13 Vamos proceder a decomposicao PA = LU para a matriz:

A =

0 1 −1 11 1 −1 2−1 −1 1 0

1 2 0 2

p = (1, 2, 3, 4)

O promeiro pivo e nulo, logoL1 ↔ L2

1 1 −1 20 1 −1 1−1 −1 1 0

1 2 0 2

p = (2, 1, 3, 4)

Agora fazemosL3 − (−1)L1→ L3 m31 = −1

57

Page 59: Apostila CNumerico 2013

L4 − (+1)L1→ L4 m41 = +11 1 −1 20 1 −1 10 0 0 20 1 1 0

O pivo da segunda linha e 1, logo

L4 − (+1)L2 → L4 m42 = +11 1 −1 20 1 −1 10 0 0 20 0 2 −1

O pivo da terceira linha e nulo, logo

L3 ↔ L4 p = (2, 1, 4, 3)

Note que os multiplicadores ja calculados tambem trocam de lugar, assim

m41 = −1 , m31 = 1 e m32 = +1

U =

1 1 −1 20 1 −1 10 0 2 −10 0 0 2

usando os multiplicadores temos e as trocas de linhas feitas,

L =

1 0 0 00 1 0 01 1 1 0−1 0 0 1

P =

0 1 0 01 0 0 00 0 0 10 0 1 0

e assim temos a decomposicao PA = LU ou

0 1 0 01 0 0 00 0 0 10 0 1 0

0 1 −1 11 1 −1 2−1 −1 1 0

1 2 0 2

=

1 0 0 00 1 0 01 1 1 0−1 0 0 1

1 1 −1 20 1 −1 10 0 2 −10 0 0 2

Agora usando esta decomposicao vamos encontra a solucao de Ax = b, onde o vetor b e

dado por:

b =

2315

58

Page 60: Apostila CNumerico 2013

multiplicando o sistema por P pela direita, temos:

PAx = Pb → LUx = Pb

Assim primeiramente resolvemos por substituicao direta Lz = Pb, isto e1 0 0 00 1 0 01 1 1 0−1 0 0 1

z1

z2

z3

z4

=

3251

temos que

• z1 = 3

• z2 = 2

• z1 + z2 + z3 = 5 logo z3 = 0

• −z1 + z4 = 1 logo z4 = 4

Agora resolvemos por retro-substituicao o sistema Ux = z

• x4 = 4/2 = 2

• 2x3 − x4 = 0 logo x3 = 1

• x2 − x3 + x4 = 2 logo x2 = 1

• x1 + x2 − x3 + 2x4 = −1 logo x1 = −1

Assim a solucao procurada de Ax = b e

x = (−1, 1, 1, 2)T

3.2.7 Calculo do determinante

Considerando a decomposicao de Doolittle, isto e a diagonal principal de L e unitaria, e conhe-cemos esta decomposicao

PA = LU

entao

det(A) =det(L) det(U)

det(P)

Agora:

det(L) =n∏i=1

`ii = 1

59

Page 61: Apostila CNumerico 2013

det(U) =n∏i=1

uii

e como P e uma matriz permutacao

det(P) = (−1)t, onde t

e o numero de troca de linhas feitas em A para obter a decomposicao. Logo,

det(A) = (−1)tn∏i=1

uii

3.2.8 Calculo da Matriz Inversa

Se consideramos uma matriz quadrada de ordem N , A, uma matriz mathbfV e dita inversa deA e e notada por A−1 se

AV = I.

Se notamos por vi as colunas da matriz V e por ei as colunas da matriz identidade I, paraencontrarmos a matriz inversa, basta resolvermos os N sistemas lineares da forma

Avi = ei, i = 1, 2, ..., N.

Aqui observamos que como a matriz A e sempre a mesma, a melhor forma de resolver estessistemas e fazendo a decomposicao LU se a matriz considerada nao e simetica, LLT se a matrize simetrica definida positiva ou LDLT se a matriz e simetrica.

3.2.9 Condicionamento de uma matriz

Vamos considerar um sistema de equacoes Ax = b. Sejam x1 e x2 duas aproximacoes dasolucao exata do sistema dada por x.Qual a sensibilidade dos sistemas lineares em relacao aos dados de entrada?

Exemplo 14 0.992x − 0.873y =

︷ ︸︸ ︷0.119

0481x − 0.421y = 0.060

Possui solucao exata x = 1 e y = 1. Se perturbamos o sistema para:0.992x − 0.873y =

︷ ︸︸ ︷0.120

0481x − 0.421y = 0.060

A solucao deste segundo sistema e x = 0.851 e y = 0.786, ou seja para uma perturbacao de0.8%,

Er =|0.119− 0.120|

0.119= 0.008

60

Page 62: Apostila CNumerico 2013

e este erro e amplificado, produzindo solucao com 18.6% de erro, ou

Er =|0.815− 1.000|

1.000= 0.185

Existem sistemas que em a resposta a uma pequena perturbacao pode produzir uma mudancana solucao ainda mais drastica, como mostramos no proximo exemplo:

Exemplo 15 x + 3y = 111.5x + 4.501y = 16.503︸ ︷︷ ︸

que tem solucao x = 2 e y = 3 Perturbando este sistema temos: x + 3y = 111.5x + 4.501y = 16.500︸ ︷︷ ︸

que tem solucao x = 11.00 e y = 0

Nos casos acima temos sistemas de ordem 2 e assim e simples saber quando o sistema e bem oumal condicionado. Agora, no caso de sistemas maiores precisamos encontrar uma medida parao condicionamento. Vamos entao considerar:

Ax = b e o sistema perturbado A′x = b′

Assim:b− b′ = Ax−Ax′ = A(x− x′)

ou podemos reescrever como:(x− x′) = A−1(b− b′)

aplicando norma dos dois lados da igualdade e lembrando que ‖RS‖ ≤ ‖R‖ ‖S‖, temos:

‖x− x′‖ ≤∥∥A−1

∥∥ ‖(b− b′)‖

Dividindo esta inequacao por ‖x‖ temos:

‖x− x′‖‖x‖

≤ ‖A‖∥∥A−1

∥∥ ‖b− b′‖‖b‖

onde:

‖x− x′‖‖x‖

E o erro relativo da provocado pela perturbacao de b→ b′

‖A‖ ‖A−1‖ E o fator de amplicao e

‖b− b′‖‖b‖

E o erro relativo da perturbacao produzida no sistema

61

Page 63: Apostila CNumerico 2013

Definicao 10 Dado um sistema Ax = b chamamos κ(A) = cond(A) = ‖A‖ ‖A−1‖ de numerode condicionamento da matriz A.

E claro que quanto maior o valor do numero de condicionamento, maior sera a sensibilidade dosistema a perturbacoes. No segundo exemplo temos:

A =

(1 3

1.5 4.501

)e A−1 =

(4501 −3000−1500 1000

)||A||∞ = max3 + 1 , 1.5 + 4.501 = max4 , 6.001 = 6.001

e||A−1||∞ = max7501 , 2500 = 7501

Assim o numero de condicionamento desta matriz A pela norma do maximo e

κ(A) = ||A||∞||A−1||∞ = 45013.5

, assim temos que a pequena perturbacao feita no sistema e ’ampliada’ umas 45000 vezes! Eesta e a razao da discrepancia dos resultado entre o sistema linear dado no exemplo 15 e orespectivo sistema perturbado.

1. κ(I)=1

2. κ(A) ≥ 1 pois 1 = ||I|| = ||AA−1|| ≤ ||A|| ||A−1|| = κ(A).

3. κ(αA) = κ(A), onde α e um escalar.

4. κ(A) = max(autovalor de A)min(autovalor de A)

5. Se D e uma matriz diagonal, entao κ(D) = max diimin dii

,i = 1 : N onde N e a ordem da matriz D.

Dizemos que:

• A matriz A e bem condicionada, se κ(A) ≈ 1

• A matriz A e mau-condicionada se κ(A) >> 1

Obsevemos ainda que em geral uma matriz mau condicionada tem determinante quase zero,porem o inverso nao e verdadeiro pois a matriz de ordem N definida por:

D =

0.1 0 ... ... 0

0 0.1. . . . . . 0

0 0 0.1. . . 0

0 0. . . . . . 0

0 0 . . . . . . 0.1

tem det(D) = (0.1)N o que e um numero muito pequeno se N e grande, porem

κ(D) = κ(I) = 1

sendo assim uma matriz muito bem condicionada.

62

Page 64: Apostila CNumerico 2013

3.3 Metodos Iterativos

Para resolver sistemas lineares Ax = b, temos duas grandes classes de metodos:

• Os Metodos Diretos: (Eliminacao de Gauss e variantes) Processam um numero finito depassos ate chegar na solucao x que deveria ser exata se nao houvesse erros de truncamento.

• Os Metodos Indiretos: Produzem uma sequencia de vetores que idealmente convergempara a solucao do sistema. Os calculos sao encerrados quando a solucao aproximadaatingir uma precisao especificada. Os metodos indiretos sao quase sempre iterativos.

Assim, um metodo iterativo resolve um sistema de equacoes diferenciais atraves de umprocesso que gerando uma sequencia de vetores x(n)∞n=0, a partir de um velor inicial x(0)

dado, que converge para a solucao do sistema. Aqui iremos discutir alguns metodos iterativosestacionarios mais simples. Sao eles os metodos iterativos de Jacobi e Gauss Seidel. Umatecnica iterativa inicia atraves de uma aproximacao inicial x(0) e gera uma sequencia de vetoresque converge para a solucao do sistema. As tecnicas iterativas transformam o sistema em umaforma equivalente do tipo

x = Tx + c (3.14)

para alguma matriz T e algum vetor c fixos. O metodo iterativo e dito estacionario quando amatriz T nao varia no decorrer do processo iterativo.

Os metodos iterativos, em geral, sao usados para resolver sistemas grandes, pois no caso desistemas pequenos o numero de operacoes necessarias para atingir uma determinada precisaopodem exceder as requeridas pelos metodos diretos. Desta forma, os metodos iterativos saoparticularmente eficientes na resolucao de sistemas esparsos e grandes, o que e o caso de muitossistemas resultantes da solucao numerica de equacoes diferenciais parciais (EDP). Alem disto osmetodos iterativos sao usualmente menos sensıveis a erros de arredondamento que os metodosdiretos.

3.3.1 Os metodos de Jacobi e Gauss Seidel

Os metodos iterativos de Jacobi e Gauss-Seidel sao classicos e datam do final do seculo XVIII.Uma tecnica iterativa e iniciada com uma aproximacao inicial x0, entrando em um processoque gera uma

Exemplo 16 Considere o sistema dado por:

10x1 − x2 + 2x3 = 6−x1 + 11x2 − x3 + 3x4 = 252x1 − x2 + 10x3 − x4 = −11

3x2 − x3 + 8x4 = 15

Usando um metodo direto vemos que o sistema acima possui solucao unica x = (1, 2,−1, 1)T .Para converter o sistema na forma x = Tx + c, na primeira equacao isolamos x1, na segundax2 etc..., isto e os elementos da diagonal principal de A com,

63

Page 65: Apostila CNumerico 2013

A = −L + D−U = −

0 0 0 01 0 0 0−2 1 0 0

0 −3 1 0

+

0 0 0 00 11 0 00 0 10 00 0 0 8

0 −1 2 00 0 1 −30 0 0 10 0 0 0

ou na forma matricial,

Dx = (L + U)x + b

x = D−1(L + U)x + D−1b

Neste caso a matriz de separacao para o metodo de Jacobi e dada por:

Tj = D−1(L + U) =

0 1

10−1

50

111

111− 3

11

−15

110

0 110

−38

18

ou

x(k+1)1 = 1

10x

(k)2 − 1

5x

(k)3 + 1

3

x(k+1)2 = 1

11x

(k)1 + 1

11x

(k)3 − 3

11x

(k)4 + 25

11

x(k+1)2 = −1

5x

(k)1 + 1

10x

(k)2 + 1

10x

(4k) − 11

10

x(k+1)2 = − 3

8x

(k)2 + 1

8x

(k)3 + 15

8

Este metodo e chamado de JACOBI. Assim vamos usar o metodo de Jacobi para resolvermoso exemplo acima. Vamos considerar uma aproximacao inicial x(0) = (0, 0, 0, 0, )T e criterio deparada

‖x(i+1) − x(i)‖∞‖x(i+1)‖∞

< 10−3

k 0 1 2 3 4 5 6 7 8 9 10

x(k)1 0.0000 0.6000 1.0473 0.9326 1.0152 0.9890 1.0032 0.9981 1.0006 0.9997 1.0001

x(k)2 0.0000 2.2727 1.7159 2.0530 1.9537 2.0114 1.9922 2.0023 1.9987 2.0004 1.9998

x(k)3 0.0000 -1.1000 -0.8052 -1.0493 -0.9681 -1.0103 -0.9945 -1.0020 -0.9990 -1.0004 -0.9998

x(k)4 0.0000 1.8750 0.8852 1.1309 0.9739 1.0214 0.9944 1.0036 0.9989 1.0006 0.9998

Resumindo, cada elemento x(k+1)i do vetor x(k+1) e calculado atraves do metodo de Jacobi como:

x(k+1)i =

−∑i−1

j=1 aijx(k)j −

∑Nj=i+1 aijx

(k)j + bi

aii, para i = 1, 2, ..., N.

No metodo de Gauss Seidel os valores dos elementos x(k+1)i substituem os valores antigos x

(k)i

imediatamente apos terem sido calculados, isto e cada elemento e calculado como:

x(k+1)i =

−∑i−1

j=1 aijx(k+1)j −

∑Nj=i+1 aijx

(k)j + bi

aii, para i = 1, 2, ..., N.

64

Page 66: Apostila CNumerico 2013

Exemplo 17 Vamos usar o metodo de Gauss Seidel para resolver o seguinte sistema4x1 + 3x2 = 243x1 + 4x2 − x3 = 30

− x2 + 4x3 = −24

aqui vamos usar um valor inicial x(0) = (1, 1, 1)T . Aplicando o metodo de Gauss Seidel temos:

x(k+1)1 = − 0.75x

(k)2 + 6

x(k+1)2 = −0.75x

(k+1)1 + 0.25x

(k)3 + 7.5

x(k+1)3 = 0.25x

(k+1)2 − 6

O resultado obtido e:

k 0 1 2 3 4 5 6 7

x(k+1)1 1 5.250000 3.1406250 3.0878906 3.0549316 3.0343323 3.0214577 3.0134110

x(k+1)2 1 3.812500 3.8828125 3.9267578 3.9542236 3.9713898 3.9821186 3.9888241

x(k+1)3 1 -5.046875 -5.0292969 -5.0183105 -5.0114441 -5.0071526 -5.0044703 -5.0027940

o erro relativo da sexta iteracao e dada por:

Er =‖x(6) − x(7)‖∞‖x(7)‖∞

=0.0080467

5.00279= 0.00160844

Usando a mesma notacao usada para o metodo de Jacobi, o metodo de Gauss-Seidel, na formamatricial pode ser escrito como:

(D− L)x = Ux + b

x = (D− L)−1Ux + (D− L)−1b

Neste caso a matriz de separacao e dada por

Ts = (D− L)−1U

3.3.2 Condicao de Convergencia

Quando resolvemos um sistema do tipo Ax = b atraves de um metodo iterativo,

x(k+1) = Txk + c

usando um vetor de inicializacao x(0) e se obtemos uma sequencia convergente de vetores

x(0), x(1), x(2), ... , x(n), ...

podemos garantir que esta sequencia esta convergindo para a solucao do sistema. Isto e garan-tido pelo seguinte teorema:

65

Page 67: Apostila CNumerico 2013

Teorema 23 Um metodo iterativo x(k+1) = Txk + c converge para qualquer valor inicial x(0)

se e somente se o raio espectral da matriz de iteracao, ρ(T) < 1.

Aqui lembramos que a solucao de sistemas lineares atraves de metodos iterativos estaofundamentados em uma aproximacao sucessiva de vetores x na direcao da solucao do sistemae, como ja exemplificamos, uma simples troca de ordem nas linhas do sistema pode fazer adiferenca entre convergencia ou divergencia do metodo aplicado. Alem disto, o uso do teoremaacima pode ser bastante difıcil, pois a determinacao do raio espectral da matriz de iteracao Tmuitas vezes e muito mais trabalhoso que encontrar a solucao do sistema linear, desta lembrandoque ρ(A) ≤ ‖A‖, em geral usamos os seguintes criterios de convergencia.

• Criterio das Linhas: Este e um criterio de convergencia para os metodos de Gauss-Jacobie de Gauss-Seidel que estabelece uma condicao suficiente (mas nao necessaria) para aconvergencia. Isto se o criterio for verdadeiro, podemos garantir que os metodos citadosconvergem para qualquer valor inicial x(0) considerado. Porem, devemos notar que nadapodemos afirmar sobre a convergencia dos metodos se este criterio nao for satisfeito.

O criterio das linhas garante a convergencia dos metodos de Gauss-Jacobi e Gauss-Seidelpara qualquer valor inicial, se a matriz A e diagonal dominante, isto e se

N∑j = 1j 6= i

|aij| < |aii|

• Criterio de Sanssenfeld: Este e um criterio que garante a convergencia do metodo de GaussSeidel. Se o criterio das linhas e satisfeito o criterio de Sanssenfeld e automaticamentesatisfeito, porem o contrario nao e verdade.

Um sistema linear converge para o metodo de Gauss-Seidel, independentemente do valorinicial escolhido, se

maxβk < 1,

onde

β1 =1

|a11|

N∑j=2

|aij|, βi =1

|aii|

(i−1∑j=1

|aij|βj +N∑

j=i+1

|aij|

), i = 2, 3, ..., N

Exemplo 18 Como exemplo, vamos considerar o seguinte sistema linear:

2.0 x1 + x2 − 0.2 x3 + 0.2 x4 = 0.40.6 x1 + 3.0 x2 − 0.6 x3 − 0.3 x4 = −7.8−0.1 x1 − 0.2 x2 + x3 + 0.2 x4 = 1.0

0.4 x1 + 1.2 x2 + 0.8 x3 + 2.0 x4 = 20.0

No sistema acima podemos ver que o criterio das linhas nao e valido. Porem pelo criteriode Sansenfeld temos:

66

Page 68: Apostila CNumerico 2013

1. β1 =1

2(1 + 0.2 + 0.2) = 0.7

2. β2 =1

3((0.6)(0.7) + 0.6 + 0.3) = 0.44

3. β3 =1

1((0.1)(0.7) + (0.2)(0.44) + 0.2) = 0.358

4. β4 =1

2((0.4)(0.7) + (1.2)(0.44) + (0.8)(0, 358)) = 0.5472

5. max β1, β2, β3, β4 = 0.7 < 1

E desta forma, pelo criterio de Sansenfeld podemos garantir que a solucao deste sistemapelo metodo de Gauss-Seidel ira convergir. (para qualquer valor inicial x(0).)

Observacoes

1. Aqui vamos observar que sempre que o criterio das linhas for verdadeiro, o criterio deSanssenfeld tambem sere, porem a reciproca nao e verdadeira, por exemplo, considere osistema:

10 x1 + x2 = 236 x1 + 2 x2 = 18

Este sistema nao satisfaz o criterio das linhas, pois |a22| = 2 < |a21| = 6, porem satisfazo criterio de Sanssenfeld pois:

β1 =

∣∣∣∣ 1

10

∣∣∣∣ = 0.1, β2 =

∣∣∣∣62∣∣∣∣ β1 = 0.3

assim max βi = 0.3 < 1.

2. A ordem comno as equacoes aparecem no sistema possui grande influencia na convergenciade um metodo iterativo. Por exemplo considere o sistema:

−4 x1 + 10x2 = 195 x1 + 3 x2 = 15

Nesta forma este sistema nao satisfaz aos nossos criterios de convergencia, porem setrocarmos as linhas, o sistema ira satisfazer este criterio e sua convergencia e garantida.(Verifique)

3. A quantidade de operacoes requerida em uma iteracao e simples conhecer, porem o nu-mero de iteracoes requeridas nao. Os metodos iterativos de Gauss-Seidel e Gauss-Jacobirealizam por iteracao 2N2 − N operacoes de aritmeticas. Sao elas N − 1 multiplicacoesde variaveis pelos coeficientes, N − 1 somas e 1 divisao para cada variavel do sistema,totalizando para cada variavel 2N −1 operacoes para cada uma das N variaveis. Quandoo valor de N e grande temos a ordem de 2N2 operacoes.

67

Page 69: Apostila CNumerico 2013

Podemos ver que o custo computacional dos metodos iterativos e menor que dos metodosdiretos quando consideramos N grande. Os metodos iterativos apresentam a vantagem depreservacao dos zeros da matriz original e tambem dos erros de arredondamento aparecem deforma bem mais suave que nos metodos diretos. O problema dos metodos iterativos e seremmenos eficientes para a solucao de sistemas lineares densos ou de pequeno porte. Os metodosdiretos, teoricamente obtem a solucao de qualquer sistema nao singular e os metodos iterativosconvergem apenas sobre determinadas condicoes. Os erros de arredondamento aparecem deforma bem mais suave nos metodos iterativos que nos metodos diretos.

3.4 Decomposicao LU para o caso de matrizes tridiago-

nais

A decomposicao LU e muito usada para encontrar a solucao de sistemas envolvendo matrizesbanda, isto e uma matriz que possui todos os elementos nulos, exceto os que estao na diagonalprincipal e sub-diagonais adjacentes. Aqui vamos exemplificar o procedimento usado pararesolver um sistema tridiagonal, sem troca de linhas (o que sempre e possıvel se a matriz fordiagonal dominante). Vamos considerar a matriz:

A =

b1 c1 0 ... ... ... 0

a2 b2 c2. . . ... ... 0

0 a3 b3 c3. . . ... 0

. . .. . . . . . . . . . . . ... 0

0 ... ... 0 an−1 bn−1 cn−1

0 ... ... 0 0 an bn

Vamos fazer a decomposicao LU na forma:

L =

`1 0 0 ... ... ... 0

α2 `2 0. . . ... ... 0

0 α3 `3 0. . . ... 0

. . .. . . . . . . . . . . . ... 0

0 ... ... 0 αn−1 `n−1 00 ... ... 0 0 αn `n

U =

1 β1 0 ... ... ... 0

0 1 β2. . . ... ... 0

0 0 1 β3. . . ... 0

. . .. . . . . . . . . . . . ... 0

0 ... ... 0 0 1 βn−1

0 ... ... 0 0 0 1

aqui consideramos valores unitarios na diagonal principal de U. Procedendo a multiplicacaotemos:

68

Page 70: Apostila CNumerico 2013

L =

`1 β1α1 0 ... ... ... 0

α2 β1α2 + `2 β2`2. . . ... ... 0

0 α3 β2α3 + `3 0. . . ... 0

. . .. . . . . . . . . . . . ... 0

0 ... ... 0 αn−1 βn−2αn−1 + `n−1 βn−1`n−1

0 ... ... 0 0 αn βn−1αn + `n

igualando os elementos de A = LU, temos:

`1 = b1, β1 =c1

`1

αi = ai, `i = bi − βi−1αi, βi =ci`i, i = 2, 3, ..., n− 1

αn = an, `n = bn − βn−1αn.

Estes calculos requerem ao todo n− 1 multiplicacoes, n− 1 divisoes e n− 1 divisoes. Note, quepara obtermos a solucao de um sistema matricial

Ax = f

e equivalente a encontrar a solucao dos sistemas

Ux = y e Ly = f

que pode ser feito de forma recursiva como:

y1 =f1

`1

. . .

yi =fi − aiyi−1

`i, i = 2, ..., n

E desta forma,xn = yn

xn−1 = yn−1 − βn−1xn

xn−k = yn−k − βn−kxn−k+1, k = 1, 2, ..., n− 1

69

Page 71: Apostila CNumerico 2013

Exemplo 19 Vamos considerar o sistema Ax = f2 −1 0 0−1 2 −1 0

0 −1 2 −10 0 −1 2

x1

x2

x3

x4

=

0001

• Resolvendo a primeira iteracao temos:

– `1 = b = 2, β1 = c1/`1 = −1/2

– α2 = −1, `2 = b = β1α2 = 3/2, β2 = c/`2 = −2/3

– α3 = −1, `3 = b− β2 ∗ α3 = 4/3, β3 = c/`3 = −3/4

– α4 = −1, `4 = b− β3 ∗ α4 = 5/4

• assim a solucao do primeiro sistema e dada por:

– y1 = f1/`1 = 0, y2 = (f2 − a ∗ y1)/`2 = 0, y3 = (f3 − a ∗ y2)/`3 = 0, y4 =(f4 − a ∗ y3)/`4 = 4/5

• e a solucao final tambem e calculada recursivamente por:

– x4 = y4 = 4/5

– x3 = y3 − β3 ∗ x4 = 3/5

– x2 = y2 − β2 ∗ x3 = 2/5

– x1 = y1 − β1 ∗ x2 = 1/5

3.5 Exercıcios

1. Dado o vetor x = [1, 2, 3, 4, 5]T , calcular as normas

(a) ||x||1(b) ||x||2(c) ||x||∞

2. Calcular a norma da matriz A =

5 4 −12 9 38 −6 7

(a) ||A||1(b) ||A||2(c) ||A||∞

70

Page 72: Apostila CNumerico 2013

3. Resolver os sistemas abaixo pelo metodo de eliminacao de Gauss, com estrategia indicadae usando 3 casas decimais; verificar tambem a unicidade e exatidao da solucao obtida.

(a) Sem pivotamento parcial 1 2 4−3 −1 4

2 14 5

x1

x2

x3

=

138

50

(b) Com pivotamento parcial −2 3 1

2 1 −44 10 −6

x1

x2

x3

=

−5−9

2

(c) Com pivotamento parcial

0 1 3 2 48 −2 9 −1 25 1 1 7 2−2 4 5 1 0

7 −3 2 −4 1

x1

x2

x3

x4

x5

=

3−5

6−1

8

(d) Com pivotamento escalonado −2 3 1

2 1 −44 10 −6

x1

x2

x3

=

−5−9

2

(e) Com pivotamento escalonado

0 1 3 2 48 −2 9 −1 25 1 1 7 2−2 4 5 1 0

7 −3 2 −4 1

x1

x2

x3

x4

x5

=

3−5

6−1

8

4. Resolver pelo metodo da decomposicao LU. Verificar unicidade e exatidao da solucao.

(a) Efetue os calculos utilizando apenas aritmetica de 4 dıgitos. 2 6 −31 3.001 24 −1 9

x1

x2

x3

=

59

29

i. sem pivotamento

71

Page 73: Apostila CNumerico 2013

ii. com pivotamento

(b) Com pivotamento parcial 1 2 3−5 −1 4

2 4 1

x1

x2

x3

=

17−224

(c) Resolva o sistema de equacoes:

x1 + 4x2 + 2x3 = 3.705x1 + 2x2 + x3 = 6.893x1 + x2 + 6x3 = 5.49

pelo metodo da decomposicao LU

(d) Considere o exercıcio 4c e a aproximacao inicial x(0) = [1.10 0.50 0.28]T .

i. Verifique o que pode ser feito para garantir convergencia do metodo de Jacobi ecalcule 3 iteracoes por este metodo.

ii. Verifique o que pode ser feito para garantir convergencia do metodo de Gauss-Seidel e calcule 3 iteracoes por este metodo.

5. Considere o seguinte sistema de equacoes lineares:x1 + 2x2 − x3 = 1

2x1 − x2 = 1x2 + 2x3 − x4 = 1− x3 + 2x4 = 1

(a) Mostre que este sistema nao satisfaz o criterio de linhas,

(b) Mostre que este sistema nao satisfaz o criterio de Sassenfeld,

(c) O que se pode afirmar sobre a convergencia dos metodos de Gauss-Jacobi e Gauss-Seidel, quando aplicados a este sistema?

(d) Mostre que o sistema obtido permutando-se as duas primeiras equacoes satisfaz ocriterio de Sassenfeld,

(e) Usando o metodo de Gauss-Seidel, determine a solucao aproximada do sistema, coma permutacao sugerida no item anterior e erro

||x(k+1) − x(k)||∞ = maxi=1,2,3,4

|x(k+1)i − x(k)

i | ≤ 10−3

6. Considere o sistema linear abaixo:x1 − 3x2 + x3 − x4 = −1

x2 − 2x3 = 310x1 + x2 + x4 = −8x1 − x3 + 3x4 = 8

72

Page 74: Apostila CNumerico 2013

(a) Resolva o sistema pelo metodo de Eliminacao de Gauss com pivoteamento.

(b) Utilizando o resultado do item anterior, escreva o sistema linear LUx = Pb, equiva-lente ao sistema linear dado, onde P e uma matriz permutacao. Encontre a solucaodo sistema usando esta decomposicao.

(c) Podemos determinar a solucao aproximada do sistema , usando o Metodo de Gauss-Seidel para qualquer aproximacao inicial ? Porque? Se possıvel encontre a solucaousando o metodo de Gauss Seidel. (Proceda pelo menos 4 iteracoes)

73

Page 75: Apostila CNumerico 2013

Capıtulo 4

Interpolacao e Extrapolacao

Muitas vezes experimentos cientıficos ou computacao numerica nos fornecem valores discretosde uma funcao. Estes valores podem ser dados de forma igualmente espacada ou nao ao longodo eixo dos x. Aqui vamos estimar o valor da funcao entre os valores tabulados (interpolacao)ou fora do domınio destes pontos (extrapolacao). Uma das funcoes mais conhecidas sao asfuncoes polinomiais. Podemos mostrar que esta classe de funcoes mapeia uniformemente funcoescontınuas, isto e, considerando qualquer funcao contınua em um intervalo limitado e fechado,sempre existira um polinomio tao proximo quanto se queira desta funcao.

Teorema 24 (Aproximacao de Weierstrass) Se f e uma funcao definida e contınua emum intervalo fechado [a, b], entao para cada ε > 0 existe um polinomio de forma que |f(x) −p(x)| < ε para todo x ∈ [a, b].

Teorema 25 Teorema: Se x0, x1, ..., xn sao numeros reais distintos, entao para valores arbi-trarios y1, y2, ..., yn, existe um unico polinomio a de grau igual ou menor que n de forma quePn(xi) = yi (0 ≤ i ≤ n).

4.1 Dados nao igualmente espacados

Aqui veremos tres tecnicas de interpolacao, todas elas considerando que dados nao precisam serigualmente espacados. Primeiramente veremos os metodos nao segmentados como Lagrange eNewton. E depois veremos interpolacao segmentada com o spline cubico.

4.1.1 Polinomios Interpoladores de Lagrange

Nesta secao, vamos estudar polinomios interpoladores que possam ser determinados simples-mente pela especificacao de certos pontos do plano por onde eles devem passar. Por variasrazoes numericas ou experimentais muitas vezes e inconveniente ou impossıvel obter dados emintervalos igualmente espacados. Desta forma vamos adotar uma outra forma de aproximacaopolinomial.Note que, uma interpolacao linear para a funcao f que passa pelos pontos f(x0) = y0 e f(x1) =y1 e um polinomio de grau 1 que passa pelos dois pontos. Sabe-se que este interpolador e unico,

74

Page 76: Apostila CNumerico 2013

pois por n + 1 pontos passa um e somente um polinomio de grau n, e este polinomio, no casolinear pode ser escrito como:

P (x) =(x− x1)

(x0 − x1)y0 +

(x− x0)

(x1 − x0)y1 = L0(x)y0 + L1(x)y1 (4.1)

quando x = x0, temos que, L0(x0) = 1 e L1(x0) = 0 e quando x = x1, L0(x1) = 0 e L1(x1) = 1,assim:

P (x0) = 1.y0 + 0.y1 = y0 = f(x0),

e

P (x1) = 0.y0 + 1.y1 = y1 = f(x1),

Desta forma, (4.1) possui as propriedades requeridas para ser o polinomio interpolador de grau1 da funcao f .Esta tecnica pode ser imediatamente generalizada. Assim vamos considerar a construcao deum polinomio de grau maximo n que passa atraves de n+ 1 pontos (x0, f(x0)), (x1, f(x1)), ... ,(xn, f(xn)). Assim, a gora precisamos construir para cada k = 1, 2, ..., n, um quociente Lk coma propriedade que Lk(xk) = 1 e Lk(xi) = 0 se i 6= k. Para Lk(xi) = 0 se i 6= k devemos ter nonumerador de Lk o termo:

(x− x0)(x− x1)...(x− xk−1)(x− xk+1)...(x− xn). (4.2)

Para satisfazer Lk(xk) = 1, o denominador de Lk deve ser igual a (4.2) quando x = xk. Assim:

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

(xk − x0)(xk − x1)...(xk − xk−1)(xk − xk+1)...(xk − xn)=

n∏i=0i 6=k

(x− xi)(xk − xi)

.

O polinomio interpolador e facilmente descrito quando a forma de Lk e conhecida. Estepolinomio e chamado de polinomio interpolador de Lagrange e e definido pelo teorema:

Teorema 26 Se x0, x1, ..., xn sao (n+1) numeros distintos e f e uma funcao cujos valores saodados nestes numeros, entao existe um unico polinomio P de grau n tal que

f(xk) = P (xk) para cada k = 0, 1, ..., n.

75

Page 77: Apostila CNumerico 2013

Este polinomio e dado por

P (x) = f(x0)L0(x) + ...+ f(xn)Ln(x) =n∑k=0

f(xk)Lk(x), (4.3)

onde

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

(xk − x0)(xk − x1)...(xk − xk−1)(xk − xk+1)...(xk − xn)=

n∏i=0i 6=k

(x− xi)(xk − xi)

(4.4)

para cada k = 0, 1, ..., n.

Exemplo 20 Encontre o polinomio interpolador de Lagrange de grau 2 para f(x) = 1x, usando

os nos x0 = 2, x1 = 2.5 e x2 = 4.

1. Calculando L0, L1 e L2:

L0 =(x− 2.5)(x− 4)

(2− 2.5)(2− 4)= (x− 6.5)x+ 10,

L1 =(x− 2)(x− 4)

(2.5− 2)(2.5− 4)=

(−4x+ 24)x− 32

3,

L2 =(x− 2)(x− 2.5)

(4− 2)(4− 2.5)=

(x− 4.5)x+ 5

3.

2. Como f(x0) = f(2) = 0.5, f(x1) = f(2.5) = 0.4 e f(x2) = f(4) = 0.25,

P (x) = 0.5 ((x− 6.5)x+ 10) + 10) + 0.4(−4x+ 24)x− 32

3+ 0.25

(x− 2)(x− 2.5)

(4− 2)(4− 2.5)

=(x− 4.5)x+ 5

3= (0.05x− 0.425)x+ 1.15

3. Assim uma aproximacao para f(3) e:

f(3) ≈ P (3) = 0.325

Qual o limite de erro envolvido? Conhecer uma formula para o limite de erro e muitoimportante para este metodo, pois os polinomios de Lagrange sao muito usados em metodos dederivacao e integracao numerica.

76

Page 78: Apostila CNumerico 2013

Teorema 27 Se x0, x1, ..., xn sao numeros distintos em um intervalo[a, b] e f ∈ Cn+1[a, b],entao para cada x ∈ [a, b] existe um numero ξ(x) ∈ (a, b) com

f(x) = P (x) +f (n+1)(ξ(x))

(n+ 1)!(x− x0)(x− x1)...(x− xn), (4.5)

onde P e o polinomio interpolador dado em (4.3).

Note que a forma do erro para o polinomio de Lagrange e muito similar a forma de erro dopolinomio de Taylor. O polinomio de Taylor de grau n em torno de x0 concentra a informacaoconhecida em x0, isto e

f (n+1)(ξ(x))

(n+ 1)!(x− x0)n+1,

enquanto que o polinomio de Lagrange de grau n usa informacao em pontos distintos x0, x1, ..., xn,isto e

f (n+1)(ξ(x))

(n+ 1)!(x− x0)(x− x1)...(x− xn).

O uso especıfico destas formulas fica restrito aquelas funcoes com limite conhecido.

Nota: Devemos notar que este polinomios interpoladores deste tipo podem ser muito perigo-sos no centro de regioes onde a variavel independente possui um afastamento muito grande.Apesar do polinomio ”concordar”com os dados nos pontos fixados, pode mover-se sem um cursodeterminado entre pontos muito afastados.

Exemplo 21 Vamos considerar a seguinte tabela:

x −3.0 −1.0 1.0 2.0 2.5 3.0f(x) 1.0 1.5 2.0 2.0 1.5 1.0

Aproxime f(0.3) usando polinomio interpolador de Lagrange, com n = 3 e n = 2

n = 3x1 = −1.0, x2 = 1.0, x3 = 2.0, x4 = 2.5

P3(0.3) =(0.3 + 1)(0.3− 1)(0.3− 2)

(2.5 + 1)(2.5− 1)(2.5− 2)(1.5) +

(0.3 + 1)(0.3− 1)(0.3− 2.5)

(2 + 1)(2− 1)(2− 2.5)(2)

+(0.3 + 1)(0.3− 2)(0.3− 2.5)

(1 + 1)(1− 2)(1− 2.5)(2) +

(0.3− 1)(0.3− 2)(0.3− 2.5)

(−1− 1)(−1− 2)(−1− 2.5)(1.5)

P3(0.3) = (0.589333)(1.5)− (1.33467)(2) + (1.62067)(2) + (0.124667)(1.5) = 1.64300

n = 2x1 = −1.0, x2 = 1.0, x3 = 2.0

P2(0.3) = 1.9008333

77

Page 79: Apostila CNumerico 2013

Note que sem mais informacoes sobre a funcao, nao podemos saber qual dos dois resultados eo melhor. Agora, suponha que a funcao f descreve um certo fenomeno fısico e que neste casosabe-se que para este fenomeno as derivadas devem satisfazer |f (k)(x)| ≤ 1/k para k = 1, 2, ....Neste caso, usando (4.5),

|ET3 | ≤∣∣∣∣14 (0.3 + 1)(0.3− 1)(0.3− 2)(0.3− 2.5)

4!

∣∣∣∣ = 0.0355 (4.6)

|ET2 | ≤∣∣∣∣13 (0.3 + 1)(0.3− 1)(0.3− 2)

3!

∣∣∣∣ = 0.0860 (4.7)

Assim neste caso a melhor aproximacao para o valor de f(0.3) ≈ P3(0.3) = 1.64300.

Agora para ilustrar a importancia de conhecer algo sobre as derivadas da funcao, vamos consi-derar

f(x) =1

1 + 25x2

podemos neste caso calcular f(−0.5) = 0.1379310. Agora vamos supor que nao conhecemos afuncao, mas sim uma tabela com os valores,

x −1 −.8 −.6 −.4 −.2 0f 0.3846 0.05882 0.1000 0.2000 0.5000 1.000

usando interpolacao de Lagrange sobre os dados da tabela encontramos:

n P (−0.5) Erro Absoluto1 0.15 0.012032 0.1250 0.012933 0.133824 0.004114 0.2008273 0.062896

Note que o crescimento do erro de truncamento com o aumento de n e devido ao fato que asderivadas desta funcao sao da forma:

f ′(x) =−50x

(1 + 25x2)2

f ′′(x) =−50 + 3750x2

(1 + 25x2)3

etc... que crescem rapidamente quando x = −0.5.

Finalmente, devemos observar que podemos mostrar que o erro de arredondamento para ometodo de Lagrange cresce com n2 com o crescimento de n. Este crescimento nao e serio paravalores de n que realmente ocorrem na pratica.

78

Page 80: Apostila CNumerico 2013

4.1.2 Forma de Newton do Polinomio Interpolador

Pelo teorema anterior temos que existe um unico polinomio de grau n que passa por n + 1pontos distintos (x0, y0), (x1, y1), ... , (xn, yn). Se n = 0 temos apenas um ponto e o polinomiode grau zero

p0(x) = y0

passa por (x0, y0). Se temos dois pontos (x0, y0) e (x1, y1), podemos construir um polinomio deprimeiro grau

p1(x) = c0 + c1(x− x0)

como queremos que p1(x0) = y0 e p2(x1) = y1, fazemos

c0 = y0 = p0(x1)

c1 =y1 − c0

x1 − x0

=y1 − p0(x1)

x1 − x0

Se queremos que passe por 3 pontos (x0, y0), (x1, y1), (x2, y2), escrevemos o polinomio como:

p2(x) = c0 + c1(x− x0) + c2(x− x0)(x− x1)

no polinomio acima temos quep2(x0) = c0 = y0

,

p2(x1) = c0 + c1(x− x0) = y0 +y1 − p0(x1)

x1 − x0

(x1 − x0)

mas p0(x1) = y0, logop2(x1) = y1

Ainda queremos que p2(x2) = y2, assim temos

y2 = c0 + c1(x2 − x0) + c2(x2 − x0)(x2 − x1)

logo

c2 =y2 − (c0 + c1(x2 − x1))

(x2 − x0)(x2 − x1)=

y2 − p1(x2)

(x2 − x0)(x2 − x1)

Seguindo este raciocınio, obtemos que o polinomio que passa por n+ 1 pontos (x0, y0), (x1, y1),..., (xn, yn) pode ser escrito como:

pn(x) = c0 + c1(x− x0) + c2(x− x0)(x− x1) + ...+ cn(x− x0)...(x− xn−1)

onde

ck =yk − pk−1(xk)

(xk − x0)(xk − x1)...(xk − xk−1)

79

Page 81: Apostila CNumerico 2013

Computacionalmente, para calcular os pk(x), se os coeficientes ck ja sao conhecidos, ummetodo eficiente de calculo e o algoritmo de Horner. Chamando di = (x − xi) escrevemos opolinomio como:

u(x) = c0 + c1d0 + c1d0d1 + ...+ cnd0...dn−1

ouu(x) = (...(((ck)dk−1 + ck−1)dk−2 + ck−2)dk−3 + ...+ c1)d0 + c0

Para testarmos o metodo acima vamos escolher o polinomio p3(x) = 4x3 +35x2−84x−954,e vamos gerar a tabela:

x 5 -7 -6 0y 1 -23 -54 -954

temos que:c0 = 1

p0(x) = 1

assim

c1 =y1 − p0(−7)

−7− 5= 2

p1(x) = 1 + 2(x− 5)

novamente

c2 =y2 − p1(−6)

(−6− 5)(−6 + 7)= 3

p2(x) = 1 + 2(x− 5) + 3(x− 5)(x+ 7) = 3x3 + 8x− 114

finalmente

c3 =y3 − p1(0)

(0 + 6)(0 + 7)(0− 5)= 4

p3(x) = 1 + 2(x− 5) + 3(x− 5)(x+ 7) + 4(x− 5)(x+ 7)(x+ 6) = 4x3 + 35x2 − 84x− 954

80

Page 82: Apostila CNumerico 2013

4.2 Interpolacao por Spline Cubico

Uma das dificuldades com a interpolacao polinomial, particularmente se o polinomio e de altaordem, e seu carater altamente oscilatorio. Uma interpolacao de uma funcao mais suave podeser produzida mecanicamente por uma curva Francesa ou forcando uma barra elastica flexıvela passar pelos pontos desejados. O analogo matematico desta barra flexıvel e a funcao spline.Um spline e uma funcao polinomial por partes, isto e, e um polinomio de grau n entre cada doisnos da malha considerada. O spline e particularmente usado para interpolar tabela de funcoescom propriedades fısicas livres de ruıdos.A aproximacao mais comum por polinomios por partes e usando polinomios cubicos, os splinescubicos, esta aproximacao interpola pontos entre cada dois pontos consecutivos da malha, quenao precisa ser igualmente espacada, usando polinomios cubicos. Um polinomio cubico envolvequatro constantes, nos dando assim flexibilidade para assegurar que o interpolante alem de sercontınuo em cada ponto da malha seja diferenciavel, e ainda podendo garantir a existencia dederivadas segundas contınuas. Assim o Spline cubico que vamos chamar de S(x) e uma funcaoformada por polinomios cubicos Sj(x) definidos entre os nos xj e xj+1 da malha de forma que:

Sj(xj+1) = f(xj+1) = Sj+1(xj+1) os polinomios coincidem em xj+1

S ′j(xj+1) = S ′j+1(xj+1) as declividades coincidem em xj+1

S ′′j (xj+1) = S ′′j+1(xj+1) as curvaturas coincidem em xj+1

Figura 4.1: Spline Cubico

Assim podemos definir Spline cubico como:

Definicao 11 Dadas uma funcao f em [a, b], um conjunto de numeros chamados de nos

a = x0 < x1 < · · · < xn = b

81

Page 83: Apostila CNumerico 2013

um interpolante Spline Cubico, S, para f e uma funcao que satisfaz as seguintes condicoes:

1. S e um polinomio Cubico, chamado de Sj em cada subintervalo [xj, xj+1], para j =0, 1, . . . , n− 1.

2. S(xj) = f(xj), para j = 0, 1, . . . , n.

3. Sj+1(xj+1) = Sj(xj+1), para j = 0, 1, . . . , n− 2.

4. S ′j+1(xj+1) = S ′j(xj+1), para j = 0, 1, . . . , n− 2.

5. S ′′j+1(xj+1) = S ′′j (xj+1), para j = 0, 1, . . . , n− 2.

6. Uma das seguintes condicoes de contorno e satisfeita:

(a) S ′′(x0) = S ′′(xn) = 0 (coordenadas livres ou naturais).

(b) S ′(x0) = f ′(x0) e S ′(xn) = f ′(x0) (extremos ”campled”).

Devemos notar que os splines cubicos podem ser definidos com outras condicoes de contorno,mas estas duas sao as mais usadas.

4.2.1 Spline Cubico Natural

Chamamos de spline cubico natural quando ocorrem condicoes de contorno livres, seu graficoaproxima a forma de de um longo cabo flexıvel que passa atraves dos pontos dados (x0, f(x0)),(x1, f(x1)) e (xn, f(xn)).

Vamos agora construir o interpolante spline cubico para uma dada funcao f . Assim seja oconjunto de polinomios,

Sj(x) = aj + bj(x− xj) + cj(x− xj)2 + dj(x− xj)3 (4.8)

para cada j = 0, 1, . . . , n − 1. Para cada xj temos que Sj(x) = aj = f(xj), e se aplicamos acondicao (3) temos,

aj+1 = Sj+1(j+1) = Sj(xj+1) = aj + bj(xj+1 − xj) + cj(xj+1 − xj)2 + dj(xj+1 − xj)3

para j = 0, 1, . . . , n− 2. Daqui em diante vamos usar a notacao, hj = xj+1 − xj.Se nos tambem definimos an = f(xn) podemos ver que a equacao

aj+1 = aj + bjhj + cjh2j + djh

3j (4.9)

vale para j = 0, 1, . . . , n− 1.De maneira similar definimos bn = S′(xn) e como

S ′j(x) = bj + 2cj(x− xj) + 3dj(x− xj)2

82

Page 84: Apostila CNumerico 2013

temos que S ′j(xj) = bj para j = 0, 1, . . . , n− 1 e assim aplicando a condicao (4),

bj+1 = bj + 2cjhj + 3djh2j , j = 0, 1, . . . , n− 1 (4.10)

Podemos obter uma outra condicao entre os coeficientes de Sj se definimos cn = S′′(xn)2

e apli-cando a condicao (5). Neste caso,

cj+1 = cj + 3djhj (4.11)

para j = 0, 1, . . . , n− 1.Resolvendo para dj na equacao (4.11)

dj =cj+1 − cj

3hj(4.12)

e substituindo este valor na equacao (4.9) e (4.10) temos as novas equacoes

aj+1 = aj + bjhj +h2j

3(2cj + cj+1) (4.13)

e

bj+1 = bj + hj(cj + cj+1) (4.14)

para cada j = 0, 1, 2, ..., n− 1.A relacao final envolvendo os coeficientes e obtido resolvendo a equacao apropriada na formada equacao (4.13), primeiramente para bj,

bj =1

hj(aj+1 − aj)−

hj3

(2cj + cj+1), (4.15)

e procedendo uma reducao de ındice da equacao acima para bj−1,

bj−1 =1

hj−1

(aj − aj−1)− hj−1

3(2cj−1 + cj).

Substituindo estes valores na equacao derivada de (4.14), quando o ındice e reduzido de um,obtemos o sistema linear

hj−1cj−1 + 2(hj−1 + hj)cj + hjcj+1 =3

hj(aj+1 − aj)−

3

hj−1

(aj − aj−1) (4.16)

83

Page 85: Apostila CNumerico 2013

para cada j = 1, 2, ..., n − 1. Este sistema envolve, como variaveis, somente cjnj=0, uma vez

que os valores de hjn−1j=0 e ajnj=0 sao dados pelo espacamento entre os nos xjnj=0 e pelos

valores f(xj)nj=0 nos nos.Note que uma vez que os valores de cjnj=0 ficam conhecidos, podemos de forma simples

encontrar as constantes restantes bjn−1j=0 da equacao (4.15) e djn−1

j=0 da equacao (4.11), e,

assim, construir os polinomios cubicos Sjn−1j=0 . A maior questao que aparece em conexao com

esta construcao e quando os valores de cjnj=0 podem ser determinados usando o sistema deequacoes dado por (4.16), e quando estes valores sao unicos. A resposta e que com as condicoesde contorno naturais sempre teremos solucao unica para este sistema. Isto e

Teorema 28 Se f esta definida em a = x0 < x1 < ... < xn = b, entao f possui um unicointerpolante spline cubico natural nos nos x0, x1, ..., xn, isto e, um interpolador de spline cubicoque satisfaz as condicoes de contorno S”(a) = S”(b) = 0.

A demonstracao deste teorema e encontrada em Burden and Faires Numerical Analysis.Os coeficientes de

Sj(x) = aj + bj(x− xj) + cj(x− xj)2 + dj(x− xj)3

podem ser calculados como:

hj = xj+1 − xjaj = f(xj) para j = 0, 1, ..., n

(4.17)

os coeficientes cj sao calculados resolvendo o sistema linear,

Ac = v (4.18)

onde

A =

1 0 0 ... ... ... 0h0 2(h0 + h1) h1 ... ... ... :0 h1 2(h1 + h2) h2 ... ... :: ... ... ... ... ... :: ... ... ... hn−2 2(hn−2 + hn−1) hn−1

0 ... ... ... 0 0 1

, (4.19)

c = [c0, c1, ..., cn]T (4.20)

e finalmente

84

Page 86: Apostila CNumerico 2013

v =

03h1

(a2 − a1)− 3h0

(a1 − a0)

::

3hn−1

(an − an−1)− 3hn−2

(an−1 − an−2)

0

(4.21)

e finalmente,

bj = (aj+1 − aj)/hj − hj(cj+1 + 2cj)/3

dj = (cj+1 − cj)/(3hj)(4.22)

Obs: A matriz A e estritamente diagonal dominante, o que garante a unicidade de solucao dosistema (4.18).

4.2.2 Spline Cubico Restrito

Teorema 29 Se f esta definida em a = x0 < x1 < ... < xn = b e e diferenciavel em a e b,entao f possui um unico interpolante spline cubico Restrito nos nos x0, x1, ..., xn, isto e, uminterpolador de spline cubico que satisfaz as condicoes de contorno S ′(a) = f ′(a) e S ′(b) = f ′(b).

A demonstracao deste teorema e encontrada em Burden and Faires Numerical Analysis.Os coeficientes de

Sj(x) = aj + bj(x− xj) + cj(x− xj)2 + dj(x− xj)3

podem ser calculados como:

hj = xj+1 − xjaj = f(xj) para j = 0, 1, ..., n

(4.23)

os coeficientes cj sao calculados resolvendo o sistema linear,

Ac = v (4.24)

onde

85

Page 87: Apostila CNumerico 2013

A =

2h0 h0 0 ... ... ... 0h0 2(h0 + h1) h1 ... ... ... :0 h1 2(h1 + h2) h2 ... ... :: ... ... ... ... ... :: ... ... ... hn−2 2(hn−2 + hn−1) hn−1

0 ... ... ... 0 hn−1 2hn−1

, (4.25)

v =

3h0

(a1 − a0)− 3f ′(a)3h1

(a2 − a1)− 3h0

(a1 − a0)

::

3hn−1

(an − an−1)− 3hn−2

(an−1 − an−2)

3f ′(b)− 3hn−1

(an − an−1)

(4.26)

e finalmente,

c = [c0, c1, ..., cn]T (4.27)

e finalmente

bj = (aj+1 − aj)/hj − hj(cj+1 + 2cj)/3

dj = (cj+1 − cj)/(3hj)(4.28)

Obs: A matriz A e estritamente diagonal dominante, o que garante a unicidade de solucao dosistema (4.24) e que a pode ser resolvido por eliminacao Gaussiana sem troca de linhas.

Exemplo 22 Por exemplo, vamos interpolar o seguinte conjunto de 21 pontos:

(0.9, 1.3), (1.3, 1.5), (1.9, 1.85), (2.1, 2.1), (2.6, 2.6), (3.0, 2.7), (3.9, 2.4),(4.4, 2.15), (4.7, 2.05), (5.0, 2.1), (6.0, 2.25), (7.0, 2.3), (8.0, 2.25), (9.2, 1.95),(10.5, 1.4), (11.3, 0.9), (11.6, 0.7), (12.0, 0.6), (12.6, 0.5), (13.0, 0.4), (13.3, 0.25)

86

Page 88: Apostila CNumerico 2013

Figura 4.2: Conjunto de pontos a ser interpolado

Primeiramente vamos usar interpolador de Lagrange e desta forma obtemos um polino-mio de grau 20 dado por p(x) = −9652.785079125108 + 52462.58032870206x − 128683.40x2 +189994.99x3−189850.97x4 + 136777.90x5−73866.57x6 + 30677.63x7−9968.98x8 + 2564.20x9−525.81x10+86.25x11−11.32x12+1.18x13−0.09769x14+0.006286x15−0.0003082x16+0.00001111x17−2.77 ∗ 10−7x18 + 4.28 ∗ 10−9x19 − 3.07 ∗ 10−11x20

Figura 4.3: Interpolando por polinomio de grau 20

Um polinomio de grau muito alto, tende a oscilar muito, e desta forma em geral nao produzo resultado desejado. Podemos neste caso fazer uma interpolacao por spline-cubico, obtendo o

87

Page 89: Apostila CNumerico 2013

seguinte spline natural,

p0(x) = 1.3 + 0.54(x− 0.9) + 0(x− 0.9)2 − 0.25(x− 0.9)3 0.9 ≤ x < 1.3p1(x) = 1.5 + 0.42(x− 1.3)− 0.3(x− 1.3)2 + 0.95(x− 1.3)3 1.3 ≤ x < 1.9p3(x) = 1.85 + 1.09(x− 1.9) + 1.41(x− 1.9)2 − 2.96(x− 1.9)3 1.9 ≤ x < 2.1p4(x) = 2.1 + 1.29(x− 2.1)− 0.37(x− 2.1)2 − 0.45(x− 2.1)3 2.1 ≤ x < 2.6p5(x) = 2.6 + 0.59(x− 2.6)− 1.04(x− 2.6)2 + 0.45(x− 2.6)3 2.6 ≤ x < 3.0p6(x) = 2.7− 0.02(x− 3.0)− 0.5(x− 3.0)2 + 0.17(x− 3.0)3 3.0 ≤ x < 3.9p7(x) = 2.4− 0.50(x− 3.9)− 0.03(x− 3.9)2 + 0.08(x− 3.9)3 3.9 ≤ x < 4.4p8(x) = 2.15− 0.48(x− 4.4) + 0.08(x− 4.4)2 + 1.31(x− 4.4)3 4.4 ≤ x < 4.9p9(x) = 2.05− 0.07(x− 4.7) + 1.27(x− 4.7)2 − 1.58(x− 4.7)3 4.9 ≤ x < 5.0p10(x) = 2.1 + 0.26(x− 5.0)− 0.16(x− 5.0)2 + 0.04(x− 5.0)3 5.0 ≤ x < 6.0p11(x) = 2.25 + 0.08(x− 6.0)− 0.03(x− 6.0)2 + 0.0(x− 6.0)3 6.0 ≤ x < 7.0p12(x) = 2.3 + 0.01(x− 7.0)− 0.04(x− 7.0)2 − 0.02(x− 7.0)3 7.0 ≤ x < 8.0p13(x) = 2.25− 0.14(x− 8.0)− 0.11(x− 8.0)2 + 0.02(x− 8.0)3 8.0 ≤ x < 9.2p14(x) = 1.95− 0.34(x− 9.2)− 0.05(x− 9.2)2 − 0.01(x− 9.2)3 9.2 ≤ x < 10.5p15(x) = 1.4− 0.53(x− 10.5)− 0.1(x− 10.5)2 − 0.02(x− 10.5)3 10.5 ≤ x < 11.3p16(x) = 0.9− 0.73(x− 11.3)− 0.15(x− 11.3)2 + 1.21(x− 11.3)3 11.3 ≤ x < 11.6p17(x) = 0.7− 0.49(x− 11.6) + 0.94(x− 11.6)2 − 0.84(x− 11.6)3 11.6 ≤ x < 12.0p18(x) = 0.6− 0.14(x− 12.0)− 0.06(x− 12.0)2 + 0.04(x− 12.0)3 12.0 ≤ x < 12.6p19(x) = 0.5− 0.18(x− 12.6) + 0.0(x− 12.6)2 − 0.45(x− 12.6)3 12.6 ≤ x < 13.0p20(x) = 0.4− 0.39(x− 13.0)− 0.54(x− 13.0)2 + 0.6(x− 13.0)3 13.0 ≤ x < 13.3

Figura 4.4: Interpolacao por Spline-Cubico Natural

88

Page 90: Apostila CNumerico 2013

Note que no exemplo acima o spline cubico natural aproxima melhor a curva que o Restrito.A razao disto e o fato das derivadas terem sido estimadas de forma nao precisa. Geralmenteas condicoes de contorno do tipo Restrito sao as preferidas quando aproximamos funcoes porsplines cubicos. Assim as derivadas das funcoes devem ser estimadas nos pontes final e inicialdo intervalo. Quando os nos sao igualmente espacados, por exemplo podemos usar diferencasfinitas para frente e para tras ou qualquer outro tipo de aproximacao da derivada. No caso dedados nao igualmente espacados o problema fica consideravelmente mais difıcil.Devemos ainda observar que pode ser feito um estudo de limite de erro em livros de analisenumerica como Schultz MH, Spline Analysis Prendice Hall 1973. Assim para o Spline cubicoRestrito se f ∈ C4[a, b] e com derivada quarta limitada neste intervalo por M e se chamarmosde S o unico interpolante spline cubico de f com respeito aos nos a = x0 < x1 < ... < xn = b,entao

maxa≤x≤b

|f(x)− S(x)| ≤ 5M

384max

0≤j≤n−1(xj+1 − xj)4.

89

Page 91: Apostila CNumerico 2013

Capıtulo 5

Ajuste de Mınimos Quadrados

Neste capıtulo iremos fazer uma breve introducao ao metodo de ajuste por mınimos quadrados.

5.1 Ajuste de Mınimos Quadrados para um conjunto dis-

creto de pontos

Ajuste por mınimos quadrados e o procedimento matematico para encontrar a curva de melhorajuste para um dado conjunto de pontos atraves da minimizacao da soma dos quadrados dasdistancias entre os pontos e a curva considerada. A soma dos quadrados das distancias e usadaao inves do valor absoluto, pois desta forma os resıduos poderao ser tratados como quantidadescontinuamente diferenciaveis. Entretanto, como quadrados de distancias sao usados, pontosmuito afastados podem produzir um efeito nao proporcional no ajuste. Esta propriedade podeou nao ser desejavel depende muito do problema que esta sendo resolvido.

Figura 5.1: Aproximacao por mınimos quadrados

90

Page 92: Apostila CNumerico 2013

Figura 5.2: Distancias

Na pratica, as distancias verticais da linha interpoladora sao geralmente usadas para seremminimizadas ao inves das distancias perpendiculares. Este procedimento fornece uma funcaode ajuste para a variavel independente x para estimar o valor de y. Este procedimento permiteincerteza nos pontos dos dados ao longo dos eixos x e y que serao simplesmente incorporados,e tambem fornece uma forma analıtica muito mais simples para os parametros ajustados queseriam obtidos usando um ajuste baseado nas distancias perpendiculares. Em adicao, quandoas distancias verticais sao consideradas, a tecnica de ajuste pode ser facilmente generalizada deuma linha de melhor ajuste para um polinomio. De qualquer forma, para um numero razoavelde pontos de ruıdos nos dados, a diferenca entre a aproximacao vertical e perpendicular e muitopequena.

Desta forma a abordagem de mınimos quadrados para este problema determina a determi-nacao da melhor aproximacao quando o erro envolvido e a soma dos quadrados das diferencasentre os valores de y na curva de aproximacao e os valores de y dados pela tabela. Assimpara caso de ajuste por uma linha reta, conhecidos os pontos xi, yi)mi=1, devemos minimizara funcao:

E2(a0, a1) =m∑i=1

[yi − (a1xi + a0)]2,

em relacao aos parametros a0 e a1. Para que um valor de mınimo ocorra, devemos ter que asderivadas de E2(a0, a1) em relacao a a0 e a a1 sejam nulas, isto e:

0 =∂

∂a0

m∑i=1

[yi − (a1xi + a0)]2 = 2m∑i=1

[yi − (a1xi + a0)](−1)

e

0 =∂

∂a1

m∑i=1

[yi − (a1xi + a0)]2 = 2m∑i=1

[yi − (a1xi + a0)](−xi)

91

Page 93: Apostila CNumerico 2013

Estas equacoes podem ser simplificadas como:

a0.m+ a1

∑mi=1 xi =

∑mi=1 yi

a0

∑mi=1 xi + a1

∑mi=1 x

2i =

∑mi=1 xiyi

ou na forma matricial:(m

∑mi=1 xi∑m

i=1 xi∑m

i=1 x2i

)(a0

a1

)=

( ∑mi=1 yi∑mi=1 xiyi

)(5.1)

Exemplo 23 Vamos considerar os dados apresentados na tabela (23), que alem disto calculaos valores necessarios para aplicacao da formula (5.1).

xi yi x2i xiyi P (xi) = 1.538xi − 0.360

1 1.3 1 1.3 1.182 3.5 4 7.0 2.723 4.2 9 12.6 4.254 5.0 16 20.0 5.795 7.0 25 35.0 7.336 8.8 36 52.8 8.877 10.1 49 70.7 10.418 12.5 64 100.0 11.949 13.0 81 117.0 13.48

10 15.6 100 156.0 15.02

55 81.0 385 572.4 E2 =∑10

i=1(yi − P (xi))2 ≈ 2.34

Resolvendo o sistema eq1 temos:

a0 =385(81)− 55(572.4)

10(385)− 552= −0.360

e

a1 =10(572.4)− 55(81)

10(385)− 552= 1.538

de forma que P (x) = 1.538x− 0.360. O grafico deta curva e os pontos da tabela sao mostradosna figura (5.3). A interpolacao polinomial dos dados e mostrada na figura (5.4).

92

Page 94: Apostila CNumerico 2013

Figura 5.3: Aproximacao de Mınimos Quadrados

Figura 5.4: Interpolacao polinomial

O problema generico de se aproximar um conjunto de dados xi, yii=1,m como um polinomiodo tipo

Pn(x) = anxn + an−1x

n−1 + ...+ a1x+ a0, (5.2)

de grau n < m− 1, utilizando o metodo dos mınimos quadrados e tratado de modo semelhanteao caso linear. Definimos:

E2 =∑m

i=1(yi − Pn(xi))2

=∑m

i=1 y2i − 2

∑mi=1 Pn(xi)yi +

∑mi=1(Pn(xi))

2

=∑m

i=1 y2i − 2

∑mj=0

(∑ni=1 ajx

j1

)yi +

∑mi=1

(∑nj=0 ajx

ji

)2

=∑m

i=1 y2i − 2

∑nj=0 aj

(∑mi=1 yix

ji

)+∑n

j=0

∑nk=0 ajak

(∑mi=1 x

j+ki

).

93

Page 95: Apostila CNumerico 2013

Como no caso linear para minimizar E2 e preciso resolver um sistema de n equacoes e nincognitas definido por ∂E2/∂aj = 0 para j = 0, 1, ..., n, isto e para cada j temos a equacao:

0 =∂E2

∂aj= −2

m∑i=1

yixji + 2

n∑k=0

ak

m∑i=1

xj+ki .

Manipulando as equacoes acima algebricamente e temos:

n∑k=0

ak

m∑i=1

xj+ki =m∑i=1

yixji , j = 0, 1, ..., n. (5.3)

Que na forma matricial podem ser escritas como:m

∑mi=1 xi ...

∑mi=1 x

ni∑m

i=1 xi∑m

i=1 x2i ...

∑mi=1 x

n+1i

.... . . . . .

...∑mi=1 x

ni

∑mi=1 x

n+1i ...

∑mi=1 x

2ni

a0

a1...an

=

∑m

i=1 yi∑mi=1 xiyi

...∑mi=1 x

ni yi

(5.4)

Exemplo 24 Ajuste os dados da tabela (24) atraves de um polinomio quadratico.

i xi yi x2i x3

i x4i xiyi x2

i yi1 0 1.0000 0 0 0 0 02 0.25 1.2840 0.0625 0.01563 0.003906 0.3210 0.080253 0.50 1.6487 0.2500 0.1250 0.062500 0.8244 0.412274 0.75 2.1170 0.5625 0.4219 0.316406 1.5878 1.190815 1.00 2.7183 1.0000 1.0000 1.000000 2.7183 2.71830

2.00 8.7680 1.8750 1.5625 1.382812 5.4514 4.40154

Resolvendo o sistema dado por (5.4) temos o seguinte polinomio quadratico:

p(x) = 1.00514 + 0.864183x+ 0.843657x2

E o grafico do resultado obtido e mostrado na figura (5.5) mostrada a seguir.

94

Page 96: Apostila CNumerico 2013

Figura 5.5: Aproximacao por mınimos quadrados

O sistema definido por (5.4) pode ser resolvido por tecnicas simples como eliminacao Gaus-siana por exemplo, mas infelizmente o conjunto de equacoes e muito mal condicionado. Onumero de equacoes que pode ser resolvido esta severamente limitado na maior parte dos casospor causa dos erros de arredondamento. Usualmente se usarmos precisao simples o sistema terasolucao sem sentido para m=7 ou m=8. Um dos problemas e a grande variacao de grandezasentre os coeficientes de cada linha. Usar dupla precisao nas maquinas e altamente indicadoquando trabalhamos com ajuste por mınimos quadrados.

Por sorte, na pratica polinomios de baixa ordem sao usados no ajuste de dados. Os polino-mios de alto grau, quando usados em ajuste de curvas, tendem a reproduzir ruıdos existentesnos dados. Na maior parte das vezes o ajuste de dados e feito atraves de linhas retas, e mui-tas vezes os dados sao plotados em escalas diferentes (tal como a escala log-log) ate os dadosassumirem uma forma na qual o ajuste por uma linha reta e uma aproximacao razoavel.

A escolha do grau do polinomio a ser usado e muitas vezes difıcil de escolher. A melhorsituacao e quando sabemos que os dados devem se encaixar em um polinomio de determinadograu. Julgamentos qualitativos tambem podem ser usados, por exemplo, se os dados parecemconter uma inflexao entao um polinomio cubico pode ser uma escolha obvia. Outros metodosbaseados na observacao de

∑mi=0(yi − p(xi))

2 ou em analises estatısticas tambem podem serusados.

5.1.1 Ajustes nao polinomiais

Algumas vezes e necessario ajustar os dados atraves de uma funcao exponencial

y(x) = BeAx ou y(x) = BxA

95

Page 97: Apostila CNumerico 2013

Para fazermos ajuste de mınimos quadrados com estas funcoes precisarıamos minimizar a funcaoerro definida por

E(A,B) =M∑i=1

(BeAx − yi)2 ou E(A,B) =M∑i=1

(BxA − yi)2

em ambos os casos o sistema de equacoes resultante desta minimizacao e nao linear que emgeral nao possui solucao exata. Geralmente para evitar esta dificuldade, usamos linearizar esteproblema e depois aplicar o metodo de mınimos quadrados sobre o problema linearizado.

ln y = lnB + Ax ou ln y = lnB + A lnx

Assim em qualquer um dos casos reduzimos o problema nao linear para um problema linear,onde podemos adaptar a formula de um polinomio linear.

Nota 3 A aproximacao obtida desta maneira, nao e a aproximacao de mınimos quadrados parao problema original, e em alguns casos pode ser bem distinta desta, porem em geral esta e aforma usada na pratica.

5.1.2 Alguns exercıcios

1. Vamos usar mınimos quadrados (na forma linearizada) para encontrar o ajuste para oseguinte conjunto de pontos:

xj 0.2 0.3 0.6 0.9 1.1 1.3 1.4 1.6yj 0.050446 0.098426 0.33277 1.09782 0.72660 1.5697 1.8487 2.5015

(a) Construa o ajuste de MQ para os dados como um polinomio linear

(b) construa o ajuste de MQ como um polinomio quadratico

(c) construa o ajuste de MQ na forma beax (faca linearizando)

(d) construa o ajuste de MQ na forma bxa (faca linearizando)

A resposta esta dada na figura abaixo.

96

Page 98: Apostila CNumerico 2013

2. A lei de Hooke afirma que quando uma forca e aplicada a uma mola constituıda de ummaterial uniforme o comprimento da mola e uma funcao linear desta forca e e descritapor:

F (`) = κ(`− E)

onde F (`) representa a forca requerida para dsitender a mola ` unidades de comprimento,E e uma constante e representa o comprimento da mola quando nenhuma forca e aplicadae finalmente κ e a constante da mola.

(a) Encontre uma aproximacao para κ, pelo metodo dos mınimos quadrados, quandoE = 5 e temos os dados da tabela:

F (`) `2 7.04 9.46 12.3

(b) Se as seguintes medidas adicionais sao feitas, qual a nova estimativa para κ usandoo metodo dos mınimos quadrados?

97

Page 99: Apostila CNumerico 2013

F (`) `3 8.35 11.38 14.410 15.9

5.2 A aproximacao de funcoes contınuas

Outro problema de aproximacao diz respeito a funcoes contınuas. A melhor aproximacao parafuncoes contınuas sao usualmente consideradas como sendo aproximacoes que minimizam o errono sentido do minimax. Infelizmente isto muitas vezes e difıcil de encontrar para certas classes defuncoes e nos temos que trocar para a melhor aproximacao da melhor aproximacao. Por exemploao inves de encontramos a melhor a melhor quadratica que aproxima certa funcao, teremosque nos satisfazer com a quadratica que e suficientemente proxima da melhor quadratica. Boasaproximacoes paar funcoes contınuas usualmente tem um erro d(x) = |f(x)−g(x)| o qual oscilaem torno de zero na regiao de interesse na forma que os picos positivos sao aproximadamenteiguais aos picos negativos. Tal comportamento e muitas vezes chamado de comportamentominimax mesmo a aproximacao nao sendo a melhor em sua classe. Os metodos de aproximacaoconsiderados possuem este comportamento desejavel.

A forma mais simples e mais comum de aproximacao para uma funcao contınua e o tipopolinomial. De fato, sempre que uma representacao em serie de potencias e usada para calcularuma funcao, entao uma aproximacao polinomial esta sendo usada uma vez que a serie deve sertruncada em algum ponto e uma serie de potencias truncada e um polinomio.

Vamos supor que f ∈ C[a, b] e que um polinomio de grau Pn(x) de grau no mınimo n sejanecessario para minimizar o erro;∫ b

a

[f(x)− Pn(x)]2dx.

Vamos definir a funcao erro como:

E = E(a0, a1, ..., an) =

∫ b

a

(f(x)−

n∑k=0

akxk

)2

dx.

O problema e encontrar os coeficientes reais a0, a1, ..., an de forma que minimizem E. Umacondicao necessaria para que os numeros a0, a1, ..., an minimizem E e que:

∂E

∂aj= 0, para cada j = 0, 1, ...n.

Como

E =

∫ b

a

(f(x))2dx− 2n∑k=0

ak

∫ b

a

xkf(x)dx+

∫ b

a

(n∑k=0

akxk

)2

dx,

98

Page 100: Apostila CNumerico 2013

assim temos:

∂E

∂aj= −2

∫ b

a

xjf(x)dx+ 2n∑k=0

∫ b

a

xj+kdx.

Desta forma temos o sistema de equacoes:

n∑k=0

ak

∫ b

a

xj+kdx =

∫ b

a

xjf(x)dx, para cada j = 0, 1, ...n, (5.5)

que devem ser resolvidas para as n + 1 incognitas aj. Devemos observar que o sistema (5.5)sempre possuira solucao unica se f ∈ C[a, b].

Exemplo 25 Encontre o polinomio de aproximacao dos mınimos quadrados de grau 2 para afuncao f(x) = sinπx no intervalo [0, 1].Solucao: P2(x) = a2x

2 + a1x+ a0 e o sistema e dados por:

a0

∫ 1

0

1dx+ a1

∫ 1

0

xdx+ a2

∫ 1

0

x2dx =∫ 1

0sin πxdx,

a0

∫ 1

0

xdx+ a1

∫ 1

0

x2dx+ a2

∫ 1

0

x3dx =∫ 1

0x sin πxdx,

a0

∫ 1

0

x2dx+ a1

∫ 1

0

x3dx+ a2

∫ 1

0

x4dx =∫ 1

0x2 sin πxdx.

Calculando as integrais temos:

a0 +1

2a1 +

1

3a2 =

2

π1

2a0 +

1

3a1 +

1

4a2 =

1

π1

3a0 +

1

4a1 +

1

5a2 =

π2 − 4

π3

Resolvendo o sistema temos:

a0 =12π2 − 120

π3≈ − = 0.050465 e a1 = −a2 =

720− 60π2

π3≈ − = 4.12251.

Assim no intervalo [0, 1] a funcao f(x) = sinπx possui aproximacao de mınimos quadrados degrau 2 dada por P2(x) = −4.12251x2 + 4.12251x− 0.050465.

99

Page 101: Apostila CNumerico 2013

Figura 5.6: Aproximacao por mınimos quadrados - exemplo

O exemplo acima mostra as dificuldades para obtermos esta aproximacao de mınimos qua-drados. Para a montagem do sistema de ordem n+1 os coeficientes para cada incognita a0, ..., ane da forma∫ b

a

xj+kdx =bj+k+1 − aj+k+1

j + k + 1

Alem disto a matriz associada a este sistema e muito mal condicionada, chegando a ser umexemplo classico de mal condicionamento e esta matriz e chamada de matriz de Hilbert.Outra desvantagem e que para obtermos um polinomio de grau mais alto para o ajuste, istoe Pn+1(x), de nada ajudaria ja conhecermos Pn(x). O procedimento deve ser feito todo nova-mente.

Existe uma tecnica muito mais eficiente para fazer a aproximacao de mınimos quadrados.Sua principal vantagem e que conhecido Pn(x) e facil determinar Pn+1(x). Esta nova formaenvolve o conceito de polinomios ortogonais.

• Um conjunto de funcoes e dito Linearmente independente (LI) em um intervalo [a, b] sesempre que

c0ϕ0(x) + c1ϕ1(x) + ...+ cnϕn(x) = 0,

para todo x ∈ [a, b], so existe a solucao trivial, isto e c0 = c1 = ... = cn = 0.

• Podemos mostrar que se ϕj(x) e um polinomio de grau j, para j = 0, 1, ..., n, entao oconjunto ϕ0, ϕ1, ..., ϕn e um conjunto LI de funcoes em qualquer intervalo [a, b].

100

Page 102: Apostila CNumerico 2013

• Vamos chamar de∏

n o conjunto de todos os polinomios de grau menor ou igual a n.Podemos mostrar que se V = ϕ0, ϕ1, ..., ϕn e um conjunto de polinomios LI de

∏n

entao qualquer polinomio de grau menor ou igual a n pode ser escrito de forma unicacomo combinacao linear dos elementos de V.

• Dizemos que uma funcao integravel w e uma funcao peso no intervalo I se w(x) ≥ 0,para todo x em I, sendo que w(x) 6= 0 em qualquer subintervalo de I. O objetivodesta funcao peso e atribuir graus de importancia distintos as aproximacoes em certasporcoes do intervalo. Por exemplo, no intervalo (0, 1) a funcao w(x) = 1/

√1− x2, que

aparece associada aos polinomios de Chebychev, enfatiza aos pontos perto dos extremosdo intervalo e menor aos pontos no interior do intervalo.

• Um conjunto de funcoes ϕ0, ϕ1, ..., ϕn e dito ortogonal no intervalo [a, b] em relacao auma funcao peso w se∫ b

a

w(x)ϕj(x)ϕk(x)dx =

0, se j 6= kαk > 0 se j = k

.

Se de forma adicional, αk = 1 para cada k = 0, 1, ..., n entao o conjunto e dito ortonormal.

• Vamos agora supor que temos um conjunto de funcoes ortogonais em relacao a uma funcaopeso w(x) em um intervalo [a, b] e seja uma funcao f ∈ C[a, b] se queremos aproximar

f(x) =n∑k=0

akϕk(x)

de forma que o erro quadratico

E(a0, a1, ..., an) =

∫ b

a

w(x)

(f(x)−

n∑k=0

akϕk(x)

)2

seja mınimo. Derivando as equacoes acima temos

0 =∂E

∂aj= 2

∫ b

a

w(x)

(f(x)−

n∑k=0

akϕk(x)

)ϕj(x)dx

Assim das equacoes acima temos:∫ b

a

w(x)f(x)ϕj(x)dx =n∑k=0

ak

∫ b

a

w(x)ϕk(x)ϕj(x)dx

usando a ortogonalidade com relacao a funcao peso das funcoes temos que:

aj =

∫ baw(x)f(x)ϕj(x)dx∫ b

aw(x)ϕk(x)ϕj(x)dx

101

Page 103: Apostila CNumerico 2013

E desta forma o problema de aproximacao de uma funcao por mınimos quadrados ficamuito simplificado.

Devemos ainda observar que aqui apenas conjuntos de polinomios ortogonais foram con-siderados, e que podemos construir um conjunto de polinomios ortogonais com relacao auma funcao peso w(x) em [a, b] atraves do uso do processo de Gram-Schmidt.

102

Page 104: Apostila CNumerico 2013

Capıtulo 6

Diferencas Finitas

No calculo convencional a operacao de diferenciacao de uma funcao e um procedimento formalbem definido com operacoes altamente dependentes da forma da funcao envolvida. Muitostipos de regras distintas sao necessarias para funcoes distintas. Nos metodos numericos em ummicrocomputador apenas podemos empregar as operacoes + − ∗/ e certas operacoes logicas.Desta forma precisamos desenvolver uma tecnica para diferenciar funcoes usando apenas estasoperacoes. Para isto vamos estudar um pouco de calculo de Diferencas Finitas.

6.1 Diferencas para Frente e para Tras

(Forward / Backward)

Vamos considerar f(x) uma funcao analıtica num intervalo aberto contendo um ponto x, usandoa serie de Taylor para f(x) (2.1) fazendo x = x+ h e a = x, temos que:

f(x+ h) = f(x) + hf ′(x) +h2

2!f ′′(x) +

h3

3!f ′′′(x) . . . (6.1)

isolando f ′(x) na equacao acima temos:

f ′(x) =f(x+ h)− f(x)

h− h

2f ′′(x)− h2

6f ′′′(x)− . . . (6.2)

103

Page 105: Apostila CNumerico 2013

Figura 6.1: Vizinhanca de x

e desta forma temos que,

f ′(x) =f(x+ h)− f(x)

h+O(h) (6.3)

Notacao: f(x+ ih) = fj+i e f(x) = fj.Usando a notacao acima:

f ′(x) =fj+1 − fj

h+O(h) =

4fjh

+O(h) (6.4)

onde 4fj = fj+1 − fj.A expressao para f ′(x) pode agora ser escrita como:

f ′(x) =4fjh

+O(h) (6.5)

O termo 4fj/h e chamado de aproximacao em diferenca para frente de primeira ordem. Grafi-camente (fj+1 − fj)/h aproxima a declividade da funcao f em um ponto x pela declividade dalinha reta que passa atraves de f(x+ h) e f(x).Para calcularmos a formula de diferencas para tras, fazemos um raciocınio similar expandindof(x− h). isto e:

f(x− h) = f(x)− hf ′(x) +h2

2!f ′′(x)− h3

3!f ′′′(x)− . . . (6.6)

resolvendo para f ′(x) e truncando a serie temos:

f ′(x) =f(x)− f(x− h)

h+O(h) (6.7)

104

Page 106: Apostila CNumerico 2013

ou,

f ′(x) =fj − fj−1

h+O(h) =

∇fjh

+O(h) (6.8)

onde ∇fj = fj − fj−1.O termo ∇fj/h e chamada de aproximacao de primeira ordem em diferencas para tras com errode ordem h para f ′(x). A interpretacao geometrica da aproximacao e a declividade da linhareta que une f(x) e f(x− h).Note dos termos de erro em (6.2) e (6.7) que ambas as aproximacoes em diferencas para frentee para tras sao exatas para linhas retas (uma vez que o termo de erro nao envolve f ′(x) massao somente aproximacoes para outras funcoes onde f ′′(x) e derivadas maiores sao nao nulas.Agora, vamos obter aproximacoes de ordens maiores.

6.1.1 Calculo de derivadas de ordem superior

Vamos expandir f(x+ 2h) em serie de Taylor, assim

f(x+ 2h) = f(x) + 2hf ′(x) +(2h)2

2!f ′′(x) +

(2h)3

3!f ′′′(x) + . . . (6.9)

Agora, fazendo (6.9) menos duas vezes (6.1) temos,

f(x+ 2h)− 2f(x+ h) = −f(x) + h2f ′′(x) +h3

3f ′′′(x) + . . . (6.10)

isolando f ′′(x)

f ′′(x) =f(x+ 2h)− 2f(x+ h) + f(x)

h2− hf ′′′(x) + . . . (6.11)

f ′′(x) =f(x+ 2h)− 2f(x+ h) + f(x)

h2+O(h) =

fj+2 − 2fj+1 + fjh2

+O(h) (6.12)

Assim encontramos uma expressao para derivadas de f com respeito a x de segunda ordem ecom erro da ordem de h. A diferenca de segunda ordem para frente de f em j e definida como:

42fj ≡ fj+2 − 2fj+1 + fj (6.13)

e nos podemos reescrever (6.12) para f ′′(x) como,

f ′′(x) =fj+2 − 2fj+1 + fj

h2+O(h) =

42fjh2

+O(h) (6.14)

105

Page 107: Apostila CNumerico 2013

Fazendo raciocınio similar para diferencas para tras, isto e expandindo f(x− 2h) obtemos:

f ′′(x) =∇2fjh2

+O(h) (6.15)

onde a diferenca de segunda ordem para tras de f em j e definida como:

∇2fj = fj − 2fj−1 + fj−2 (6.16)

Para generalizarmos o resultado para derivadas de maior ordem, definimos a formula derecorrAancia,

4nfj = 4(4n−1fj)

∇nfj = ∇(∇n−1fj)

Podemos encontrar qualquer diferenca finita, tomando as diferencas da diferenca finita de or-dem imediatamente inferior. Por exemplo, a diferenca segunda para tras de f em j pode serencontrada como:

∇2fj = ∇(∇fj) = ∇fj −∇fj−1 = (fj − fj−1)− (fj−1 − fj−2) = fj − 2fj−1 + fj−2 (6.17)

E desta forma,

dnf

dxn

∣∣∣∣xj

=4nfjhn

+O(h) dif. para frente

dnf

dxn

∣∣∣∣xj

=∇nfjhn

+O(h) dif. para tras

Nota: Todas estas expressoes que foram derivadas ate agora sao O(h).Abaixo as expressoes de diferencas finitas para frente e para tras para O(h) estao tabuladas atequarta ordem.

Tabelas para as formulas O(h) de diferencas

FORWARD formulas

fj fj+1 fj+2 fj+3 fj+4

hf ′(x) -1 1h2f ′′(x) 1 -2 1h3f ′′′(x) -1 3 -3 1

h4f (4)(x) 1 -4 6 -4 1

+O(h)

106

Page 108: Apostila CNumerico 2013

BACKWARD formulas

fj−4 fj−3 fj−2 fj−1 fjhf ′(x) -1 1h2f ′′(x) 1 -2 1h3f ′′′(x) -1 3 -3 1

h4f (4)(x) 1 -4 6 -4 1

+O(h)

6.1.2 Expressoes em diferencas com ordem de erro mais alta

As formulas (6.2) e (6.11) nos dao expressoes em diferencas para frente de f ′(x) e f ′′(x) res-pectivamente. Substituindo (6.11) em (6.2) temos:

f ′(x) =f(x+ h)− f(x)

h−h

2

(f(x+ 2h)− 2f(x+ h) + f(x)

h2− hf ′′′(x) + . . .

)−h

2

6f ′′′(x)+. . .

(6.18)

logo,

f ′(x) =−f(x+ 2h) + 4f(x+ h)− 3f(x)

2h+h2

3f ′′′(x)− . . . (6.19)

assim,

f ′(x) =−fj+2 + 4fj+1 − 3fj

2h+O(h2) (6.20)

Esta e a representacao da derivada primeira com uma precisao de O(h2). Note que como oerro para esta formula envolve a derivada terceira, ela e exata para um polinomio de segundograu.Formulas para frente e para tras, apesar de raramente usadas na pratica podem ser obtidasatraves de substituicoes sucessivas de mais termos na expressao da serie de Taylor por expressoesde diferencas finitas de O(h). Este procedimento tambem acarreta erros, pois cada termosubstituido possui um termo de erro que automaticamente contribui para o proximo termo deerro de ordem maior.

Tabelas para as formulas O(h2) de diferencas

FORWARD formulasfj fj+1 fj+2 fj+3 fj+4 fj+5

2hf ′(x) -3 4 -1h2f ′′(x) 2 -5 4 -1

2h3f ′′′(x) -5 18 -24 14 -3

h4f (4)(x) 3 -14 26 -24 11 -2

+O(h2)

107

Page 109: Apostila CNumerico 2013

BACKWARD formulas

fj−5 fj−4 fj−3 fj−2 fj−1 fj2hf ′(x) 1 -4 3h2f ′′(x) -1 4 -5 2

2h3f ′′′(x) 3 -14 24 -18 5

h4f (4)(x) -2 11 -24 26 -14 3

+O(h2)

6.2 Diferencas Centrais

Seja f(x) uma funcao analıtica. Vamos expandir f(x+ h) e f(x− h) em serie de Taylor, assim

f(x+ h) = f(x) + hf ′(x) +h2

2!f ′′(x) +

h3

3!f ′′′(x) . . . (6.21)

f(x− h) = f(x)− hf ′(x) +h2

2!f ′′(x)− h3

3!f ′′′(x)− . . . (6.22)

Diminuindo (6.22) de (6.21) temos:

f(x+ h)− f(x− h) = 2hf ′(x) +h3

3f ′′′(x) + . . . (6.23)

Agora isolando f ′(x) temos,

f ′(x) =f(x+ h)− f(x− h)

2h+O(h2) =

fj+1 − fj−1

2h+O(h2) (6.24)

Note que o erro e O(h2), logo e exata para parabolas. Da mesma forma que na secao anteriorpodemos obter expressoes para derivadas de ordem superior, e a formulas sao:

f ′′(x) =fj+1 − 2fj + fj−1

h2+O(h2) (6.25)

Generalizando temos as formulas:

dnfdxn

=∇nfj+n/2+4nfj−n/2

2hn+ O(h2) se n par

dnfdxn

=∇nfj+(n−1)/2+4nfj−(n−1)/2

2hn+ O(h2) se n impar

(6.26)

Tabelas para as formulas O(h2) e O(h4) de diferencas centrais

108

Page 110: Apostila CNumerico 2013

fj−2 fj−1 fj fj+1 fj+2

2hf ′(x) -1 0 1h2f ′′(x) 1 -2 1

2h3f ′′′(x) -1 2 0 -2 1

h4f (4)(x) 1 -4 6 -4 1

+O(h2)

fj−3 fj−2 fj−1 fj fj+1 fj+2 fj+3

hf ′(x) 1 -8 0 8 -1h2f ′′(x) -1 16 -30 16 -1h3f ′′′(x) 1 -8 13 0 -13 8 -1

h4f (4)(x) -1 12 -39 56 -39 12 -1

+O(h4)

Expressoes em diferencas de O(h) podem ser obtidas empregando operacoes com series deTaylor, mas nao faremos aqui por ser muito extenso. Estas expressoes estao tabuladas acima.

6.3 Diferencas e Polinomios

Expressoes em diferencas para derivadas e polinomios possuem algumas relacoes diferentes quepodem ser muito uteis. pois por exemplo, para diferenca para frente temos:

• f ′(x) =f(x+ h)− 2f(x)

h− h

2f ′′(x)− h2

6f ′′′(x)− ...

• f ′′(x) =f(x+ 2h)− 2f(x+ h) + f(x)

h2− hf ′′′(x)− ...

• ...

Assim, como podemos ver acima, o termo de erro para uma enesima diferenca apenas envolveraderivadas de ordem n+1 ou maiores. Desta forma se consideramos um polinomio de grau n, suaenesima representacao em diferenca tomada em qualquer ponto deste polinomio sera constantee exatamente igual a sua derivada de enesima ordem (n!an), uma vez que os termos envolvidosno erro serao zeros.Este conhecimento podera ser usado para nos dar alguma ideia de o quao bem um dado polino-mio pode ajustar dados obtidos em uma serie de pontos igualmente espacados em uma variavelindependente. Por exemplo, se a terceira diferenca tomada em varios valores de uma variavelindependente sao muito proximos e suas quarta diferencas sao quase nulas, entao um polino-mio cubico ira ajustar bem estes dados. Este procedimento sera discutido melhor no proximocapıtulo.

Exemplo 26 Vamos considerar seguintes dados igualmente espacados,

x 0 1 2 3 4f(x) 30 33 28 12 -22

109

Page 111: Apostila CNumerico 2013

Encontre f ′(0), f ′(2), f ′(4) e f ′′(0) usando representacoes O(h2).

Solucao: Em x = 0 temos que usar representacao em diferenca para frente uma vez que naotemos disponibilidade de dados para x < 0. Usando a tabela temos que,

f ′(x) =−3fj + 4fj+1 − fj+2

2h+O(h2) (6.27)

logo,

f ′(0) =−f(2) + 4f(1)− 3f(0)

2(1)=−28 + 4(33)− 3(30)

2= −7 (6.28)

Em x = 2, podemos escolher entre muitas representacoes. Nos vamos escolher diferenca centralque possui O(h2). Assim:

f ′(x) =fj+1 − fj−1

2h+O(h2) (6.29)

logo,

f ′(2) =f(3)− f(1)

2=

12− 33

2= −10.5 (6.30)

Em x = 4, devemos empregar representacao em diferenca para tras de O(h2). Assim:

f ′(x) =fj−2 − 4fj−1 + 3fj

2h+O(h2) (6.31)

logo,

f ′(4) =f(2)− 4f(3) + 3f(4)

2(1)=

28− 4(12) + 3(−22)

2= −43 (6.32)

Exemplo 27 Os seguintes dados representam um polinomio. Qual seu grau? Qual o coeficientede seu termo de mais alto grau?

x 0 1 2 3 4 5f(x) 1 0.5 8.0 35.5 95.0 198.5

Vamos usar diferenca para frente em cada ponto (poderia ser usado para tras).

110

Page 112: Apostila CNumerico 2013

Primeira diferenca

4f0 = f1 − f0 = 0.5− 1 = −0.5

4f1 = f2 − f1 = 8.0− 0.5 = 7.5

4f2 = f3 − f2 = 35.5− 8.0 = 27.5

4f3 = f4 − f3 = 95.0− 35.5

4f4 = f5 − f4 = 198.5− 95 = 103.5

(6.33)

Segunda diferenca

42f0 = 4f1 −4f0 = 7.5− (−0.5) = 8.0

42f1 = 4f2 −4f1 = 27.5− 7.5 = 20.0

42f2 = 4f3 −4f2 = 59.5− 27.5 = 32.0

42f3 = 4f4 −4f3 = 103.5− 59.5 = 44.0

(6.34)

Terceira diferenca

43f0 = 42f1 −42f0 = 20.0− 8.0 = 12.0

43f1 = 42f2 −42f1 = 32.0− 20.0 = 12.0

43f2 = 42f3 −42f2 = 44.0− 32.0 = 12.0

(6.35)

Uma vez que as terceiras diferencas sao constantes o polinomio e de terceiro grau. Para dife-rencas para frente temos que:

d3f

dx3=43f

h3+O(h) (6.36)

Para um polinomio de grau 3 esta expressao e exata, logo

d3f

dx3=43f

h3=

12

1= 12 = 3!(2) (6.37)

Finalmente, por integracao vemos que f = 2x3 + C1x2

2+ C2x+ C3.

6.4 Analise do Erro

Um assunto importante no estudo de diferenciacao numerica e o efeito do erro de arredon-damento. Para mostrar o que ocorre, vamos examinar a formula de diferenca central dadapor:

111

Page 113: Apostila CNumerico 2013

f ′(x0) =f(x0 + h)− f(x0 − h)

2h− h2

6f ′′′(ξ1). (6.38)

Vamos supor que no calculo de f(x0 +h) e de f(x0−h), encontramos erros de arredondamentoe(x0 + h) e e(x0− h); isto e por causa do arredondamento feito pela maquina valores f(x0 + h)e f(x0 − h) foram usados ao inves dos reais valores de f(x0 + h) e de f(x0 − h), ou

f(x0 + h) = f(x0 + h) + e(x0 + h)

f(x0 − h) = f(x0 − h) + e(x0 − h).(6.39)

Neste caso o erro total na aproximacao, sera a soma dos erros causados, pelo arredondamento,e(x0+h)−e(x0−h)

2he pelo truncamento h2

6f ′′′(ξ1), isto e:

f ′(x0)− f(x0 + h)− f(x0 − h)

2h=e(x0 + h)− e(x0 − h)

2h− h2

6f ′′′(ξ1). (6.40)

Se nos assumirmos que os erros de arredondamento e(x0 ± h) sao limitados por um numeroε > 0, e que a terceira derivada de f e limitada por um numero M > 0, entao

∣∣∣∣f ′(x0)− f(x0 + h)− f(x0 − h)

2h

∣∣∣∣ ≤ ε

h+h2

6M. (6.41)

Assim pela formula (6.41) que para reduzir o erro de truncamento, h2

6M devemos diminuir

o valor de h, mas, ao mesmo tempo, quando h e diminuıdo o erro de arredondamento, εh,

aumenta. Na pratica raramente e vantagem fazer h muito pequeno, pois neste caso o erro dearredondamento iria dominar os calculos.

Exemplo 28 Considere a aproximacao de f ′(0.900) para f(x) = sinx, usando os valores da-dos na tabela abaixo. O valor real desta derivada e cos(0.900) = 0.62161.

x sinx x sinx0.800 0.71736 0.901 0.783950.850 0.75128 0.902 0.784570.880 0.77074 0.905 0.786430.890 0.77707 0.910 0.789500.895 0.78021 0.920 0.795600.898 0.78208 0.950 0.813420.899 0.78270 1.000 0.84147

112

Page 114: Apostila CNumerico 2013

Para fazer os calculos amos usar a formula

f ′(0.900) ≈ f(0.900 + h)− f(0.900− h)

2h

para diversos valores de h. Os resultados obtidos sao dados na tabela abaixo.

h Aprox. para f ′(0.900) Erro0.001 0.62500 0.003390.002 0.62250 0.000890.005 0.62200 0.000390.010 0.62150 -0.000110.020 0.62150 -0.000110.050 0.62140 -0.000210.100 0.62055 -0.00106

Pelo exemplo anterior, parece que uma otima escolha para h esta entre 0.005 e 0.05. Se fizermosalguma analise sobre o termo de erro dado pela equacao (6.41), isto e

e(h) =ε

h+h2

6M, (6.42)

podemos usar o calculo para verificar que o mınimo da funcao e(h) ocorre quando sua derivadae zero, isto e:

e′(h) = − ε

h2+h

3M (6.43)

assim

e′(h) = 0⇐⇒ ε

h2=hM

3

⇐⇒ h =3

√3ε

M

(6.44)

No nosso caso f e conhecida, assim podemos calcular o maximo valor que ela assume emum intervalo contendo o ponto de interesse, x = 0.009. No caso vamos considerar o interval[0.008, 1.000] e neste caso,

M = maxx∈[0.008,1.000]

|f ′′′(x)| = maxx∈[0.008,1.000]

| cosx| ≈ 0.69671. (6.45)

113

Page 115: Apostila CNumerico 2013

Uma vez que os valores de f sao dados com cinco casas decimais, e razoavel assumir queε = 0.000005. Desta forma a escolha otima para h e aproximadamente

h =3

√3(0.000005)

0.69671≈ 0.028, (6.46)

o que e consistente com os nossos resultados.Entretanto, na pratica, nao podemos calcular o valor otimo de h para ser usado na aproxi-

macao da derivada, uma vez que nao conhecemos sua derivada terceira.Apesar de termos apenas considerado o erro de arredondamento no caso de diferenca central,dificuldades similares ocorrem com todas as formulas de diferenciacao. A razao para estes pro-blemas e a necessidade de divisao por potAancias de h, e como ja sabemos divisao por numerosmuito pequenos tendem a exagerar o erro de arredondamento.Tenha sempre em mente que como um metodo de aproximacao a diferenciacao numerica e ins-tavel, uma vez que os pequenos valores de h necessarios para reduzir o erro de truncamentocausam crescimento do erro de arredondamento. Este e o primeiro tipo de metodos instaveis queencontramos. Estas tecnicas devem ser evitadas sempre que possıvel. Entretanto as formulasaqui derivadas serao necessarias na aproximacao de solucoes de equacoes diferenciais ordinarias(EDO) e parciais (EDP).

114

Page 116: Apostila CNumerico 2013

Capıtulo 7

Elementos de Integracao Numerica

Muitas vezes temos a necessidade de calcular a integral definida de uma funcao que nao possuiuma antiderivada explıcita ou cuja antiderivada e muito difıcil de ser obtida. O metodo basicoenvolvido na aproximacao de uma integral e chamado de quadratura numerica e usa uma somado tipo

∫ b

a

f(x)dx =n∑i=0

aif(xi) + E

onde E e o erro. Devemos observar que uma expressao analıtica com forma fechada paraintegrais possui muitas vantagens sobre a integracao numerica como, por exemplo, a precisao.Assim, antes de empregarmos metodos numericos, primeiramente devemos fazer um serio esforcopara proceder o calculo analıtico, incluindo para isto uma boa pesquisa em tabelas de integracao.Agora, muitas vezes integracao numerica e indispensavel. Por exemplo, quando possuimos ovalor da funcao apenas em pontos discretos. Tais funcoes muitas vezes resultam de solucoesnumericas de equacoes diferenciais ou de dados experimentais tomados em pontos discretos. Aintegracao numerica, em contraste com a derivacao numerica e um processo estavel e existemmuitas formulas adequadas para esta finalidade.

Os metodos de quadratura sao baseados em interpolacao polinomial. Para tanto, conside-ramos uma funcao integravel sobre um intervalo a ≤ x ≤ b, f(x). Dividimos este intervalo emn subintervalos iguais de largura h, onde

h =b− an

como mostrado na figura (7.1).

115

Page 117: Apostila CNumerico 2013

Figura 7.1: Subintervalos h

cada um destes subintervalos e chamado de painel (panel).

7.1 Regra Trapeizodal

Vamos agora considerar dois destes paineis consecutivos.

Figura 7.2: Dois paineis consecutivos

Nesta figura os pontos f(xj−1), f(xj) e f(xj+1) foram ligados por linhas retas. Estas linhasretas aproximam a funcao f(x) e assim servem como polinomios interpoladores para f(x) entrexj−1 e xj, xj e xj+1, etc... Aproximando a area de cada painel sob as linha retas obtemos que

∫ xj

xj−1

f(x)dx ≈ fj−1 + fj2

(h) (7.1)

116

Page 118: Apostila CNumerico 2013

e

∫ xj+1

xj

f(x)dx ≈ fj + fj+1

2(h) (7.2)

Desta forma a integral sobre dois paineis e dada por:

∫ xj+1

xj−1

f(x)dx =

∫ xj

xj−1

f(x)dx+

∫ xj+1

xj

f(x)dx

e usando (7.1) e (7.2) e assim,

∫ xj+1

xj−1

f(x)dx ≈ h

2(fj−1 + 2fj + fj+1) (7.3)

Como a area de cada painel foi aproximada por um trapesio, esta regra e chamada de regra dotrapesio. Estendendo (7.3), a aproximacao regra do trapesio sobre todo o intervalo de integracaopode ser facilmente escrita como:

∫ b

a

f(x)dx ≈ h

2

(f0 + fn + 2

n−1∑j=1

fj

)(7.4)

onde f0 = f(a) e fn = f(b).Acima desenvolvemos a regra do trapesio de forma geometrica. Apesar de simples, a formulaisto nao nos fornece informacoes a respeito do erro cometido com esta aproximacao nem sobrecomo incrementar sua precisao. Para obtermos informacoes quantitativas sobre o erro cometidovamos rederivar a formula (7.4) com uma base matematica mais solida. Assim, para obtermosinformacoes quantitativas para o erro, que mais tarde, servira para comparacao com outrosmetodos, vamos desenvolver a formula acima com auxılio de series de Taylor.Comecamos definindo a integral indefinida

I(x) =

∫ x

a

f(x)dx (7.5)

Se xj esta locado como mostra a figura (7.2), entao assumindo que I(x) e uma funcaoanalıtica na regiao de interesse, podemos expandi-la em torno de xj como:

I(xj+1) = I(xj + h) = I(xj) + (h)I ′(xj) +(h)2

2I ′′(xj) +

(h)3

3!I ′′′(xj) +O(h)4 (7.6)

mas, por (7.5) temos que I ′(xj) = f(xj), I′′(xj) = f ′(xj), etc... Assim podemos reescrever (7.6)

em termo de f(x) e suas derivadas como,

117

Page 119: Apostila CNumerico 2013

I(xj+1) = I(xj + h) = I(xj) + (h)f(xj) +(h)2

2f ′(xj) +

(h)3

3!f ′′(xj) +O(h)4 (7.7)

Usando a formula de diferencas para frente na aproximacao de f ′(x) temos,

I(xj+1) = I(xj)+ (h)f(xj) + (h)2

2

[f(xj+1)−f(xj)

h− h

2f ′′(xj) +O(h)2

]+

+ (h)3

3!f ′′(xj) +O(h)4

(7.8)

ou reagrupando os termos,

I(xj+1) = I(xj) +h

2[f(xi+1) + f(xj)]−

(h)3

12f ′′(xj)+)(h)4 (7.9)

Podemos ver que I(xj+1) − I(xj) constitui a area de painel entre xj e xj+1. De (7.9) a areadeste painel pode ser encontrada como:

Sj+1 = I(xj+1)− I(xj) =h

2[f(xi+1) + f(xj)]−

(h)3

12f ′′(xj)+)(h)4 (7.10)

O termo h2

[f(xi+1) + f(xj)] e a aproximacao trapeisodal para um painel simples. Os termos res-tantes entao representam o erro. Para avaliar a integral sobre todo o intervalo, as contribuicoesde cada painel devem ser adicionadas. Assim

I =n∑j=1

Sj

ou

I =h

2

[f(a) + f(b) + 2

n−1∑j=1

f(xj)

]− (h)3

12

n−1∑j=0

f ′′(xj) + termos de ordem mais alta (7.11)

O termo dominante de erro pode ser reescrito de forma facil de entender. Primeiramenteaplicamos o teorema do valor medio para a soma,

n−1∑j=0

f ′′(xj) = nf ′′(x), onde a ≤ x ≤ b (7.12)

Agora,

118

Page 120: Apostila CNumerico 2013

nf ′′(x) =b− ah

f ′′(x) (7.13)

assim o termo dominante de erro e escrito como

−(h)3

12

(b− a)

hf ′′(x) = −(h)2

12(b− a)f ′′(x) (7.14)

Usando (7.14), a regra do trapesio (7.11) fica

I =h

2

[f(a) + f(b) + 2

n−1∑j=1

f(xj)

]− (h)2

12(b− a)f ′′(x) + termos de ordem mais alta (7.15)

ou

I =h

2

[f0 + fn + 2

n−1∑j=1

fj

]+O(h)2 (7.16)

A regra do trapezio possui um erro de segunda ordem na integracao numerica.

7.2 Regra de Simpson

A regra de Simpson e uma tecnica de integracao numerica baseada no uso de arcos parabolicospara aproximar f(x) ao inves de linhas retas. Aqui vamos desenvolver esta formula empregandodiretamente a formula de Taylor, pois assim teremos tambem uma estimativa do erro.

Vamos considerar a funcao I(x) =∫ xaf(x)dx e vamos assumir que a funcao I(x) e analıtica

na regiao de interesse. Assim podemos expandir I(x) em serie de Taylor em torno de xj como:

I(xj+1) = I(xj + h) =I(xj) + (h)I ′(xj) +(h)2

2I ′′(xj) +

(h)3

3!I ′′′(xj)+

+(h)4

4!I iv(xj) +

(h)5

5!I(v)(xj) +

(h)6

6!I(vi)(xj) +O(h)7

(7.17)

agora, notando que pela definicao de I(x) podemos escrever que I ′(x) = f(x), I ′′(x) = f ′(x), eassim por diante e substituindo estas relacoes em (7.17), temos que,

I(xj + h) =I(xj+1) = I(xj) + (h)f(xj) +(h)2

2f ′(xj) +

(h)3

3!f ′′(xj)+

+(h)4

4!f ′′′(xj) +

(h)5

5!f (iv)(xj) +

(h)6

6!f (v)(xj) +O(h)7

(7.18)

119

Page 121: Apostila CNumerico 2013

e

I(xj − h) =I(xj−1) = I(xj)− (h)f(xj) +(h)2

2f ′(xj)−

(h)3

3!f ′′(xj)+

+(h)4

4!f ′′′(xj)−

(h)5

5!f (iv)(xj) +

(h)6

6!f (v)(xj) +O(h)7

(7.19)

Subtraindo (7.19) de (7.18) temos

I(xj+1)− I(xj−1) = 2(h)f(xj) +(h)3

3f ′′(xj) +

(h)5

60f (iv)(xj) +O(h)7 (7.20)

Agora, vamos substituir f ′′(xj) por sua representacao em diferenca central, incluindo o termode erro, isto e

f ′′(x) =fj−1 − 2fj + fj+1

h2− (h)2

12f iv(xj) +O(h)7 (7.21)

e procedendo certos algebrismos obtemos,

I(xj+1)− I(xj−1) =(h)

3(f(xj−1) + 4f(xj) + f(xj+1))− (h)5

90f (iv)(xj) +O(h)7 (7.22)

Agora, observamos que I(xj+1) − I(xj−1) constitui a area de dois paineis consecutivos entrexj−1 e xj+1. A equacao (7.22) e chamada de regra de Simpson para dois paineis.para obtermos a integral sobre todo o domınio a ≤ x ≤ b, e preciso adicionar o resultado (7.22)para todos os pares de paineis. Assim, se Dj = I(xj+1)− I(xj−1) entao

I =n−1∑j = 1j impar

Dj = D1 +D3 + ...+Dn−3 +Dn−1 (7.23)

Note que este procedimento requer que o numero de paineis seja par. Somando (7.22) paratodos os pares de paineis teremos

I =h

3

f0 + fn + 4n−1∑j = 1j impar

fj + 2n−2∑j = 2j par

fj

−(h)5

90

n−1∑j = 1j impar

f (iv)(xj)+n

2O(h)7 (7.24)

120

Page 122: Apostila CNumerico 2013

O termo dominante de erro em (7.24) pode ser tratado da mesma forma que na regra do trapesio.Assim, pelo Teorema do valor medio temos,

n−1∑j = 1j impar

f (iv)(xj) =nf iv(x), com a ≤ x ≤ b

=b− ah

f iv(x)

assim temos que

−(h)5

90

n−1∑j = 1j impar

f (iv)(xj) = −− (h)4

180(b− a)f (iv)(x).

Tambem devemos notar que

n

2O(h)7 =

b− a2(h)

O(h)7 = O(h)6

Agora, fazendo estas substituicoes em (7.24) temos,

I =h

3

f0 + fn + 4n−1∑j = 1j impar

fj + 2n−2∑j = 2j par

fj

−(h)4

180(b− a)f (iv)(x) +O(h)6 (7.25)

A equacao (7.25) e chamada de regra de Simpson para o intervalo completo. Ela e umaaproximacao de quarta ordem. Lembramos que a interpretacao geometrica deste metodo envolveo uso de arcos parabolicos para aproximar f(x), e que e de interesse lembrar que como todosos termos envolvendo f ′′′(x) sao cancelados em (7.25), esta tecnica e exata para polinomioscubicos.

7.3 Integracao de Romberg

O metodo de Romberg e baseado no fato do erro de truncamento da regra do trapezio serproporcional a h2. Assim, se dividimos h pela metade e reaplicamos a regra do trapezio temos

121

Page 123: Apostila CNumerico 2013

uma reducao do erro por um fator de 14. Se comparamos os dois resultados chegamos a uma

estimativa do erro restante. Esta estimativa pode entao ser usada como uma correcao. Ometodo de Romberg e um refinamento sistematico desta ideia simples.O metodo de integracao de Romberg desta forma e um metodo potente baseado no uso da regrado trapezio combinado com extrapolacao de Richardson. Para podermos aplicar a extrapolacaoprecisamos conhecer a forma geral dos termos de erro para a regra do trapezio. Os detalhesdesta derivacao podem ser encontradas em livros de analise numerica. A regra do trapezio podeser escrita como:

I =h

2

(f(a) + f(b) + 2

n−1∑j=1

f(a+ jh)

)+ C(h)2 +D(h)4 + E(h)6 + ... (7.26)

onde C, D, E, etc. sao funcoes de f(x) e suas derivadas, mas nao sao funcoes de h. Os termosenvolvendo as potencias ımpares de h desaparecem do erro.Seja,

I =h

2

(f(a) + f(b) +

n−1∑j=1

f(a+ jh)

)(7.27)

A equacao (7.26) pode ser reescrita na forma,

I = I − C(h)2 −D(h)4 − E(h)6 + ... (7.28)

Vamos agora considerar que temos duas malhas de tamanhos diferentes h1 e h2, com h1 = 2h2.Vamos chamar de I1 e I2 os valores de I correspondentes a estas malhas. Assim, de (7.28)temos:

I1 = I − C(h1)2 −D(h1)4 − E(h1)6 + ... (29a)

I2 = I − C(h2)2 −D(h2)4 − E(h2)6 + ... (29b)

Vamos agora fazer a substituicao de h1 = 2h2 na equacao (29a) assim temos

I1 = I − 4C(h2)2 − 16D(h2)4 − 64E(h2)6 + ... (30)

Agora, multiplicando a equacao (29b) por 4, subtraindo (30) e dividindo por 3:

4I2 − I1

3= I + 4D(h2)4 + 20E(h2)6 + ... (31)

122

Page 124: Apostila CNumerico 2013

O termo de erro envolvendo (h2)2 desapareceu e (31) nos fornece, assim, uma aproximacaopara a integral com O(h2)2. Extrapolacao deste tipo e chamada de extrapolacao de Richardson.Agora, se calculassemos I3, onde h2 = 2h3 e se extrapolassemos I2 e I3, terıamos,

4I3 − I2

3= I + 4D(h3)4 + 20E(h3)6 + ... (32)

Agora entre (31) e (32), o termo de erro em (h)4 pode ser eliminado e desta forma forneceruma estimativa para I de ordem O(h)6. Assim a cada novo calculo de um I, um termo de erropode ser eliminado por extrapolacao. Este procedimento sistematico e chamado de integracaode Romberg.

Para descrevermos o algoritmo em detalhes vamos adotar outra notacao. As estimativasiniciais feitas pela regra do trapezio da integral serao chamadas de T1,k com k = 1, 2, 3... querepresenta a formula de Gauss para n = 2k−1. Em geral podemos definir

T1,k =h

2

(f(a) + f(b) + 2

l∑j=1

f(a+ jh)

)(33)

onde h = (b− a)/2k−1 e l = 2k−1 − 1. O numero de paineis envolvidos em T1,k e 2k−1. Assim,por exemplo

T1,1 =b− a

2(f(a) + f(b)) trapesio com n = 20 = 1

T1,2 =b− a

4

(f(a) + f(b) + 2f

(a+

b− a2

))trapesio com n = 21 = 2

=T1,1

2+b− a

2

(f

(a+

b− a2

))trapesio com n = 21 = 2

T1,3 =b− a

8

(f(a) + f(b) + 2f

(a+

b− a4

)+ 2f

(a+

2(b− a)

4

)+ 2f

(a+

3(b− a)

4

))=T1,2

2+b− a

4

(f

(a+

b− a4

)+ f

(a+

3(b− a)

4

))trapesio com n = 22 = 4

etc...

Assim vemos que cada aproximacao da regra do trapezio sucessiva pode ser obtida da aproxi-macao anterior sem ter que recalcular f(x) em nenhum ponto onde ela ja tinha sido calculada.A extrapolacao e feita de acordo com a formula:

Tl,k =1

4l−1 − 1(4l−1Tl−1,k+1 − Tl−1,k) (34)

Estes resultados podem ser covenientemente arranjados em uma tabela como:

123

Page 125: Apostila CNumerico 2013

Figura 7.3: Tabela da Integracao de Romberg

Os valores extrapolados ao longo da diagonal ira convergir para a resposta correta muito maisrapidamente que a regra do trapezio cujos valores estao na primeira coluna.

Exemplo 29 Como exemplo vamos considerar a integral

I =

∫ 8

0

(5x4

8− 4x3 + 2x+ 1

)dx

Esta integral pode ser calculada analiticamente e seu valor e I = 72. Vamos agora montar atabela de integracao de Romberg, para encontrarmos a primeira coluna usamos a formula (33),assim:

f(x) =5x4

8− 4x3 + 2x+ 1

logo

f(0) =1

f(8) =2560− 2048 + 16 + 1 = 529

b− a =8− 0 = 8

As aproximacoes da regra do trapezio com um e dois paineis sao dadas por:

124

Page 126: Apostila CNumerico 2013

T1,1 =b− a

2(f(a) + f(b)) =

8

2(1 + 529) = 2120

T1,2 =T1,1

2+b− a

2

(f

(a+

b− a2

))=

2120

2+

8

2f(4) = 1060 + 4(160− 256 + 8 + 1) = 712

Extrapolando estes dois valores para eliminar O(h)2

T2,1 =1

41 − 1(4T1,2 − T1, 1) =

1

3(4(712)− 2120) = 242

2

3

A aproximacao da regra do trapezio com 4 paineis

T1,3 =T1,2

2+b− a

4

(f

(a+

b− a4

)+ f

(a+

3(b− a)

4

))=

712

2+

8

4(f(2) + f(6)) = 240

Extrapolando T1,2 e T1,3 temos

T2,2 =1

3(4(240)− 712) = 82

2

3Extrapolando T2,1 e T2,2 para eliminar O(h)4

T3,1 =1

42 − 1(42T2,2 − T2,1) =

1

15(16(82

2

3)− 242

2

3) = 72

E este e o valor exato. A tabela de Romberg obtida e:

2120712 2422

3

240 8223

72

A melhor aproximacao da regra do trapezio disponıvel e 240 usando 4 paineis que e aindamuito distante da resposta correta, e a grande aceleracao da convergencia ao longo da diagonale aparente. E claro que na pratica nao conhecemos a resposta exata nao e conhecida, assimuma outra linha seria calculada na tabela. Depois deste calculo, a tabela ficaria,

2120712 2422

3

240 8223

721281

2722

372 72

O criterio de parada no procedimento de integracao de Romberg pode claramente ser baseadana comparacao entre valores sucessivos ao longo da diagonal da tabela. Uma vez que doisvalores sucessivos concordaram exatamente na tabela acima, nao existe duvida que o metodoconvergiu para I = 72. Em geral o criterio de convergencia pode ser da forma

|Tl,1 − Tl−1,1| < ε (35)

125

Page 127: Apostila CNumerico 2013

Se (35) e satisfeito para algum ε, entao o procedimento e parado e Tl,1 considerado como aresposta certa. Para uso geral, um criterio de parada mais seguro e o criterio de convergenciaabsoluta,

|Tl,1 − Tl−1,1|Tl,1

< ε. (36)

Exemplo 30 Vamos agora aproximar a integral∫ π

0sin(x)dx, com precisao de 10−7. A monta-

gem dos dois primeiros elementos da primeira coluna e dada pela formula (33)

T1,1 =π

2(sin(0) + sin(π)) = 0

T1,2 =1

2(T1,1 + π sin

π

2) = 1.57079633

Assim nossa tabela e dada por: Comparando os valores obtidos na diagonal temos que |2.09439511−

k T1,k T2,k = 13(4T1,k+1 − T1,k)

1 02 1.5707963 2.09439511

0| > 10−7, assim devemos continuar a tabela calculando pela formula (33) o valor da primeiracoluna T1,3 e a seguir usando a formula (34) para l = 3 e k = 1, 2, assim comparando os

k T1,k T2,k = 13(4T1,k+1 − T1,k) T3,k = 1

15(16T1,k+1 − T1,k)

1 02 1.5707963 2.094395113 1.89611890 2.00455976 1.99857073

elementos da diagonal principal, |1.99857070− 2.09439511| > 10−7 e assim devemos continuaro processo. Agora podemos parar o processo, pois |2.00000000 − 1.99999999| < 10−7. Logo a

k T1,k T2,k T3,k T4,k T5,k T6,k

1 02 1.57079630 2.094395113 1.89611890 2.00455976 1.998570734 1.97423160 2.00269170 1.99998313 2.000005555 1.99357035 2.00001659 1.99999975 2.00000001 1.999999996 1.99839330 2.00000103 2.00000000 2.00000000 2.00000000 2.00000000

aproximacao dada por Romberg para esta integral e 2.00000000.

126

Page 128: Apostila CNumerico 2013

7.4 Integracao Adaptativa

A integracao adaptativa cobre os muitos metodos que tem sido imaginados para lidar com ofato de que a maior parte das funcoes sao mais difıceis de integrar precisamente sobre certosintervalos do que em outros. Uma secao particularmente difıcil pode, por exemplo, forcar ouso de um h com valor muito pequeno para a regra de Simpson e lidar com um grande numerode computacao desnecessaria. Metodos adaptativos usam malhas finas somente onde elas saorealmente necessarias

7.5 Quadratura de Gauss

Todas as formulas de quadraturas que vimos nas secoes anteriores assumiram que os nos xi damalha eram igualmente espacados. Estes tipos de integracao numerica, em geral, sao emprega-das quando os valores de f(xi) sao obtidos de forma experimental ou discreta. Agora muitosproblemas envolvem integrais de funcoes analıticas familiares as quais podemos calcular emqualquer argumento xi, apesar de possuir integral difıcil de obtermos analiticamente. Gaussobservou que encontrando valores para os nos (abscissas xi) um polinomio de grau menor ouigual a 2n−1, onde n e o numero de termos no somatorio, poderia ser integrado de forma exata,este tipo de integracao numerica e chamada de quadratura Gaussiana. Devemos observar quefuncoes contınuas nao polinomiais ou polinomios de grau maior que 2n− 1 sao aproximados deforma bastante precisa por este metodo

Assim, a principal ideia atras da quadratura Gaussiana e a escolha dos nos da malha,xi e pesos wi, de forma a minimizar o erro cometido na aproximacao da integral atraves dosomatorio caracterıstico das quadraturas. Para esta abordagem e mais conveniente discutirmosuma formula de quadratura mais geral como,∫ b

a

W(x)f(x)dx ≈n∑i=1

wif(xi) (37)

na qual W(x) e uma funcao peso que sera especificada mais tarde. Notemos que quando W = 1temos a formula de quadratura usual.

Com a finalidade de minimizar o erro cometido, procuramos os nos xi e pesos wi da equacao(37) de forma que esta integral seja exata quando integrarmos funcoes potencias. Como naformula (37) temos 2n incognitas, precisamos de 2n equacoes assim exigimos que a integralacima seja exata sempre que f(x) for 1, x, x2, ..., x2n−1. Isto nos fornece 2n condicoes paradeterminarmos os 2n numeros xi e wi necessarios para a formula (37). Vamos exemplificar oprocedimento usando n = 2, W(x) = 1 e (a, b) = (−1, 1), assim procuramos valores de

x1, x2, w1 e w2

de forma que as integrais∫ 1

−1

1 dx = 2,

∫ 1

−1

x dx = 0,

∫ 1

−1

x2 dx =2

3, e

∫ 1

−1

x3 dx = 0

127

Page 129: Apostila CNumerico 2013

sejam calculadas atraves da formula de quadratura de forma exata, isto e temos que resolver oseguinte sistema nao linear:COLOCAR O SISTEMA

Em textos mais completos podemos usar a teoria de funcoes ortogonais para mostrar que aescolha otima dos xi sao os zeros de um polinomio de grau n, pn(x), pertencentes a uma famıliade polinomios ortogonais em relacao a funcao peso W(x) no intervalo (a, b) (teorema funda-mental da quadratura Gaussiana), isto e uma famılia dfe funcoes que possuem a propriedadede ortogonalidade∫ b

a

W(x)pn(x)pm(x)dx = 0, se m 6= n.

Alem disto, atraves da construcao de um polinomio interpolador que passe atraves dos pontos(xi, f(xi)) podemos tambem mostrar os pesos wi podem ser calculados como:

wi =

∫ b

a

W(x)Li(x)dx

onde Li(x) sao os multiplicadores de Lagrange discutidos anteriormente. Ainda devemos notarque estes polinomios dependem da funcao peso W(x) que influencia no calculo de ambos os va-lores wi e xi, apesar de nao aparecem explicitamente na formula Gaussiana. Tambem podemosmostrar que o erro de truncamento da formula Gaussiana e dado por,∫ b

a

W(x)f(x)dx−n∑i=1

wif(xi) =f (2n)(ξ)

(2n)!

∫ b

a

W(x)[π(x)]2dx

onde π(x) = (x − x1)...(x − xn). Como a formula de erro nos mostra, o erro cometido naaproximacao e proporcional a f (2n)(ξ), assim esta formula sera exata para polinomios de grau2n− 1 (pois sua derivada de ordem 2n e nula).

7.5.1 Tipos Particulares de Formulas Gaussianas:

Aqui vamos mostrar quatro tipos de quadraturas Gaussianas muito usadas. Todas elas saoexatas para o calculo de integrais de um polinomio de grau 2N − 1. Sao elas a Quadratura deGauss Legendre usadas para aproximar

∫ 1

−1f(x)dx, este intervalo pode ser transladado para um

intervalo [a, b] qualquer. Gauss Laguerre usadas para aproximar∫∞

0e−xf(x)dx, Gauss Hermite

usada para aproximar∫∞−∞ e

x2f(x)dx e Gauss Tchebychev usada para aproximar∫ 1

−1f(x)√1−x2dx.

1. Formulas de Gauss Legendre:

128

Page 130: Apostila CNumerico 2013

Ocorrem quando w(x) = 1. Normalmente normalizam o intervalo (a, b) em (−1, 1). Ospolinomios de Legendre sao os escolhidos.

Pn(x) =1

2nn!

dn

dxn(x2 − 1)n

com P0(x) = 1. Os xi sao os zeros destes polinomios e os coeficientes sao

wi =2(1− x2

i )

n2(Pn−1(xi))2

Tabelas de xi e wi estao disponıveis para serem substituidos diretamente na formula deGauss-Legendre∫ b

a

f(x)dx ≈n∑i=1

wif(xi)

Obs: pode-se fazer uma mudanca de variaveis∫ b

a

f(x)dx =

∫ 1

−1

f

((b− a)t+ (b+ a)

2

)(b− a)

2dt ≈ b− a

2

n∑i=1

wif

((b− a)ti + b+ a

2

)

Exemplo 31 Neste exemplo vamos usar quadratura de Gauss-Legendre com N = 4 paraaproximar o valor da seguinte integral:∫ π/2

0

x2 cosxdx =π2 − 8

4≈ 0.467401

Usando a tabela de Gauss-Legendre temos que para os limites de integracao −1 e 1 asraızes e pesos de Gauss Legendre sao: ξ1 = 0.8611363116, w1 = 0.3478548451, ξ2 =0.3399810436, w2 = 0.6521451549, ξ3 = −ξ2, w3 = w2, ξ4 = −ξ1 e w4 = w1

Fazendo mudanca de variaveis ξ ∈ [−1, 1]→ x ∈ [0, π2] na equacao acima temos

• x4 =π/2 + 0

2+π/2− 0

2ξ4 =

1.570796

2+

1.5770796

2(−0.861136) = 0.109064

• x3 =π/2 + 0

2+π/2− 0

2ξ3 =

1.570796

2+

1.5770796

2(−0.347855) = 0.518378

• x2 =π/2 + 0

2+π/2− 0

2ξ2 =

1.570796

2+

1.5770796

2(0.347855) = 1.03242

• x1 =π/2 + 0

2+π/2− 0

2ξ1 =

1.570796

2+

1.5770796

2(0.861136) = 1.46173

• f(x4) = (0.109064)2 cos(0.109064) = 0.011824

• f(x3) = 0.233413

129

Page 131: Apostila CNumerico 2013

• f(x2) = 0.548777

• f(x1) = 0.232572

I = π/2−02

(w1f(x1) + w2f(x2) + w3f(x3) + w4f(x4))

= (0.347855)(0.232572) + (0.652145)(0.548777) + (0.652145)(0.233413)

+ (0.347855)(0.0118240) = 0.467402

Exato Gauss-Legendre N = 4 Trapezio N = 4 Simpson N = 4

0.467401 0.467402 0.435811 0.466890

2. Formulas de Gauss Laguerre:

Tomam a forma∫ ∞0

e−xf(x)dx ≈n∑i=1

wif(xi)

Os argumentos xi sao os zeros do polinomio de Laguerre de grau n

Ln(x) = exdn

dxn(e−xxn)

e os coeficientes wi sao

wi =(n!)2

xi[L′n(xi)]2

Os numeros xi e wi estao disponıveis em tabelas.

3. Formulas de Gauss Hermite:

Tomam a forma∫ ∞−∞

e−x2

f(x)dx ≈n∑i=1

wif(xi)

Os argumentos xi sao os zeros do polinomio de Hermite de grau n

Hn(x) = (−1)nex2 dn

dxn(e−x

2

)

130

Page 132: Apostila CNumerico 2013

e os coeficientes wi sao

wi =2n+1n!

√π

[H ′n(xi)]2

Os numeros xi e wi estao disponıveis em tabelas.

4. Formulas de Chebychev:

Tomam a forma∫ 1

−1

f(x)√1− x2

dx ≈ π

n

n∑i=1

f(xi)

Os argumentos xi sao os zeros do polinomio de Chebychev Tn(x) = cos(n arccosx)

7.6 Tabelas

n xk wk n xk wk2 ±.57735027 1.0000000

12 ±.98156063 .047175344 ±.86113631 .34785485 ±.90411725 .10693933

±.33998104 .65214515 ±.76990267 .16007833±.58731795 .30216743

6 ±.93246951 .17132449 ±.36783150 .23349254±.66120939 .36076157 ±.12533341 .24914705±.23861919 .46791393

14 ±.98628381 .035119468 ±.96028986 .10122854 ±.92843488 .08015809

±.79666648 .22238103 ±.82720132 .12151857±.52553241 .31370665 ±.68729290 .15720317±.18343464 .36268378 ±.51524864 .18553840

±.31911237 .2051984610 ±.97390653 .06667134 ±.10805495 .21526385

±.86506337 .14945135±.67940957 .21908636 5 ±0.90617985 0.23692689±.43339539 .26926672 ±0.53846931 0.47862867±.14887434 .29552422 0.00000000 0.56888889

3 ±0.77459667 0.555555560.00000000 0.88888889

Tabela 7.1: Tabela pesos e raızes Gauss-Legendre

131

Page 133: Apostila CNumerico 2013

n xk wk n xk wk2 ±0.70710678 0.88622693 12 ±0.31424038 0.57013524

±0.94778839 0.260492314 ±0.52464762 0.80491409 ±1.59768264 0.05160799±1.65068012 0.08131284 ±2.27950708 0.00390539

±3.02063703 0.000085746 ±0.43607741 0.72462960 ±3.88972490 0.00000027±1.33584907 0.15706732±2.35060497 0.00453001 14 ±0.29174551 0.53640591

±0.87871379 0.273105618 ±0.38118699 0.66114701 ±1.47668273 0.06850553±1.15719371 0.20780233 ±2.09518326 0.00785005±1.98165676 0.01707798 ±2.74847072 0.00035509±2.93063742 0.00019960 ±3.46265693 0.00000472

±4.30444857 0.0000000110 ±0.34290133 0.61086263

±1.03661083 0.24013861±1.75668365 0.03387439±2.53273167 0.00134365±3.43615912 0.00000764

Tabela 7.2: Tabela pesos e raızes Gauss-Hermite

132

Page 134: Apostila CNumerico 2013

n xk wk n xk wk2 0.58578644 0.85355339 12 0.11572212 0.26473137

3.41421356 0.14644661 0.611775748 0.377759281.51261027 0.24408201

4 0.32254769 0.60315410 2.83375134 0.090449221.74576110 0.35741869 4.59922764 0.020122384.53662030 0.03888791 6.84452545 0.002663979.39507091 0.00053929 9.62131684 0.00020323

13.00605499 0.000008376 0.22284660 0.45896467 17.11685519 0.00000017

1.18893210 0.41700083 22.15109038 0.000000002.99273633 0.11337338 28.48796725 0.000000005.77514357 0.01039920 37.09912104 0.000000009.83746742 0.00026102

15.98287398 0.00000090 14 0.09974751 0.231815580.52685765 0.35378469

8 0.17027963 0.36918859 1.30062912 0.258734610.90370178 0.41878678 2.43080108 0.115482892.25108663 0.17579499 3.93210282 0.033192094.26670017 0.03334349 5.82553622 0.006192877.04590540 0.00279454 8.14024014 0.00073989

10.75851601 0.00009077 10.91649951 0.0007398915.74067864 0.00000085 14.21080501 0.0000024122.86313174 0.00000000 18.10489222 0.00000006

22.72338163 0.0000000010 0.13779347 0.30844112 28.27298172 0.00000000

0.72945455 0.40111993 35.14944366 0.000000001.80834290 0.21806829 44.36608171 0.000000003.40143370 0.062087465.55249614 0.009501528.33015275 0.00075301

11.84378584 0.0000282616.27925783 0.0000004221.99658581 0.0000000029.92069701 0.00000000

Tabela 7.3: Tabela pesos e raızes Gauss-Laguerre

As raızes dos polinomios de Gauss Chebychev, nao necessitam de tabelas, pois sao faceis deserem encontradas. Os polinomios de Chebychev sao definidos como:

Tn(x) = cos(n cos−1 x

)(38)

onde Tn(x) e o polinomio de Chebychev de grau n. Abaixo veremos que esta definicao tambempode ser escrita em forma polinomial, pois:

• n = 0→ T0(x) = cos(0 cos−1 x) = cos 0 = 1

133

Page 135: Apostila CNumerico 2013

• T1(x) = cos(1 cos−1 x) = x

• T2(x) = cos(2 cos−1(x)) = cos y assim y = 2 cos−1 xDesta forma:cos−1 x =

y

2ou x = cos

(y2

)Da trigonometria temos:

cos2(y

2

)− sin2

(y2

)= cos y e cos2

(y2

)+ sin2

(y2

)= 1

logo, 2 cos2(y

2

)= cos y + 1

Alem disto, como x = cos(y

2

), entao

x2 = cos2(y

2

)e portanto 2 cos2

(y2

)= 2x2

logo, 2x2 = cos y + 1→ cos y = 2x2 − 1, isto e T2(x) = 2x2 − 1.

• Usando o mesmo raciocınio acima temos,

T0(x) = 1, T1(x) = x, T2(x) = 2x2 − 1

T3(x) = 4x3 − 3x

T4(x) = 8x4 − 8x2 + 1

T5(x) = 16x5 − 20x3 + 5x

T6(x) = 32x6 − 48x4 + 18x2 − 1

etc...

• Devemos notar que Tn(x) ≤ 1 ∀x ∈ [−1, 1] pois e um cosseno (38).

• As raızes dos polinomios de Chebychev Tn(x) (38), podem ser calculadas como:

134

Page 136: Apostila CNumerico 2013

Tn(x) = 0 ⇐⇒ cos[n cos−1 x

]= 0

⇐⇒ n cos−1 x = cos−1 0

⇐⇒ n cos−1(x) =(2m− 1)π

2, m = 1, 2, 3...

⇐⇒ cos−1(x) =(2m− 1)π

2n

⇐⇒ x = cos

[(2m− 1)π

2n

]

Assim as raızes dos polinomios de Chebychev Tn(x) sao:

xm = cos

[(2m− 1)π

2n

]m = 1, 2, . . . , n

Observamos que estes xm tendem a ser mais proximos nos extremos do intervalo que docentro do intervalo.

Exemplo 32 Para T6(x) as raızes sao:

x1 = cos[

(2(1)−1)π2(6)

]= 0.96592583

x2 = cos[

(2(2)−1)π2(6)

]= 0.70710678

x3 = 0.25881905

x4 = −0.25881905

x5 = −0.70710678

x6 = −0.96592583

(39)

7.6.1 Exemplos

Exemplo 33 Encontre o valor da integral:∫ ∞0

x2e−x2

dx

135

Page 137: Apostila CNumerico 2013

Pela formula de Gauss Hermite, vemos que f(x) = x2, um polinomio de grau 2, assim o valoresta integral sera dado usando quadratura de Gauss Hermite escolhendo N o menor inteiro deforma que 2N − 1 ≥ 2, isto e N ≥ 3/2. Ou seja para N maior ou igual a 2 teremos a integralcalculada de forma exata por Gauss Hermite. Usando a tabele com N = 2 temos

x1 = 0.70710678, w1 = 0.88622693, x2 = −0.70710678, w2 = 0.88622693

Assim∫ ∞0

x2e−x2

dx =1

2

∫ ∞−∞

x2e−x2

dx =1

2

2∑i=1

f(xi)wi =2∑i=1

(xi)2wi = 0.443113

Exemplo 34 Encontre o valor da integral:∫ 6

0

x5 − 7x+ 2dx

Esta e a integral da funcao f(x) = x5 − 7x + 2, polinomio de Grau 5. Pela formula de GaussLegendre vemos que esta integral pode ser calculada de forma exata usando 2N − 1 = 5 ouN = 6/2 = 3 Neste caso temos x1 = 0.77459667, x2 = −x1, x3 = 0, w1 = 0.55555556, w2 = w1

e w[3] = 0.88888889. Precisamos fazer uma mudanca do intervalo [−1, 1] para [0, 6]. Assim:

Xi =6− 0

2xi +

a+ b

2

logoX1 = 5.32379, X2 = 0.67621, X3 = 3

e o valor da integral e calculada por:∫ 6

0

x5 − 7x+ 2dx = 6−02

∑3i=1 f(Xi)wi

= 3((4241.39)w1 + (−2.59208)w2 + (224)w3)

3(2356.33− 1.44005 + 199.111) = 7662.

7.6.2 Construindo Quadraturas

Tambem podemos gerar quadraturas de forma que ”englobem”certos tipos de singularidades.Para exemplificar este procedimento, aqui, vamos construir uma quadratura que resolve a in-tegral ∫ 1

0

lnxf(x)dx

Para encontrar os pesos e raızes da quadratura de ordem N = 2, vamos supor que esta integralpode ser escrita como ∫ 1

0

lnxf(x)dx = w1f(x1) + w2f(x2)

136

Page 138: Apostila CNumerico 2013

Para ser uma quadratura Gaussiana, sabemos que esta integral deve ser exata se f(x) e umpolinomio de grau 2N − 1 = 2(2)− 1 = 3, logo devemos ter que:∫ 1

0lnxdx = w1 + w2∫ 1

0x lnxdx = w1x1 + w2x2∫ 1

0x2 lnxdx = w1x

21 + w2x

22∫ 1

0x3 lnxdx = w1x

31 + w2x

32

ou, resolvendo as integrais do lado esquerdo das equacoes acima por partes,

−1 = w1 + w2

−14

= w1x1 + w2x2

−19

= w1x21 + w2x

22

− 116

= w1x31 + w2x

32

Resolvendo o sistema de equacoes nao lineares acima, obtemos:x1 = 0.60227691x2 = 0.11200881w1 = −0.28146068w2 = −0.71853932

Para gerar uma quadratura com N = 4, terıamos um sistema nao linear com oito equacoes. Asoito variaveis deste sistema podem ser encontradas como:

w1 = −0.383464, w2 = −0.386875, w3 = −0.190435, w4 = −0.039225

ex1 = 0.041448, x2 = 0.245275, x3 = 0.556165, x4 = 0.848982

Exemplo 35 Para testar esta quadratura, primeiramente vamos calcular a integral de umpolinomio de grau 3, cujo valor exato e dado por:∫ 1

0

(x3 − 5x2 + x+ 7) lnxdx = −973

144≈ −6.75694

Usando a nova quadratura temos: f(x) = x3 − 5x2 + x+ 7, assim∫ 1

0

(x3 − 5x2 + x+ 7) lnxdx ≈ (x31 − 5x2

1 + x+7)w1 + (x32 − 5x2

2 + x2 + 7)w2 = −6.75694

. Assim o erro absoluto de nossa aproximacao e nulo.

Agora vamos escolher uma funcao nao polinomial:

137

Page 139: Apostila CNumerico 2013

Exemplo 36 Seja a integral:∫ 1

0

lnx

x+ 1dx =

π2

12≈ −0.8224670334

Usando quadratura N = 2 temos:

f(x) =1

x+ 1e ∫ 1

0

lnx

x+ 1dx ≈ f(x1)w1 + f(x2)w2 = −0.821826

Neste caso temos o erro ja na terceira casa decimal. Se usassemos N = 4,

f(x) =1

x+ 1

e ∫ 1

0

lnx

x+ 1dx ≈ f(x1)w1 + f(x2)w2 + f(x3)w3 + f(x4)w4 = −0.822466

O que nos fornece 5 casas decimais de precisao.Se a mesma integral fosse calculada por quadratura de Gauss Legendre, terıamos:

f(x) =lnx

x+ 1

e

Tabela 7.4: Integral∫ 1

0lnxx+1

dx por QG Legendre

N Integral2 -0.70795712 -0.81841122 -0.82121832 -0.82186942 -0.822117492 -0.822464

Isto e, usando quadratura N = 492 para GLegendre temos apenas 2 casas decimais deprecisao.

Este fato deve-se a singularidade da funcao f(x) = ln(x)/(x+1) considerada na quadraturade Gauss Legendre em x = 0. Ja na quadratura construıda, a funcao f(x) = 1/(x + 1) econtınua em [0, 1].

138

Page 140: Apostila CNumerico 2013

7.6.3 Integrais Multiplas

Podemos avaliar integrais multiplas por uma das formulas de quadraturas mostradas acima.Para isto podemos fazer: ∫ b

a

(∫ d(x)

c(x)

f(x, y)dy

)dx

Primeiramente definimos a funcao

g(x) =

∫ d(x)

c(x)

f(x, y)dy

e aplicamos uma formula de quadratura, isto e:∫ b

a

(∫ d(x)

c(x)

f(x, y)dy

)dx =

∫ b

a

g(x)dx ≈N∑i=1

aig(xi)

poir sua vez, para cada i sas funcoes g(xi) sao integrais, logo sao calculadas como:

g(xi) =

∫ d(xi)

c(xi)

f(xi, y)dy ≈M∑j=1

bjf(xi, yj)

ou seja ∫ b

a

(∫ d(x)

c(x)

f(x, y)dy

)dx ≈

N∑i=1

ai

M∑j=1

bjf(xi, yj)

139

Page 141: Apostila CNumerico 2013

Capıtulo 8

Zeros de Equacoes nao Lineares

Neste capıtulo vamos estudar alguns metodos para localizar raızes de equacoes. Este problemaocorre frequentemente em computacao cientıfica. Para estimarmos intervalos onde existe umaraız, muitas vezes usamos como auxılio os seguinte teorema:

Teorema 30 Teorema do Valor Intermediario para Funcoes Contınuas: Se f e umafuncao contınua sobre um intervalo [a, b], e se f(a) < y < f(b), entao f(x) = y para algumx ∈ (a, b).

Deste teorema, podemos afirmar que se f e contınua sobre um intervalo [a, b] e se f(a)f(b) < 0entao f deve assumir o valor 0 em algum x ∈ (a, b), isto e que existe pelo menos um zero realneste intervalo. O primeiro e mais simples dos metodos que veremos e baseado neste princıpioe e chamado de metodo da biseccao.

Vamos separar este capıtulo em duas grandes subsecoes. Na primeira vamos estudar algunsmetodos gerais para encontrar raızes de equacoes nao lineares e uma segunda secao dedicadapara as funcoes polinomiais.

8.1 Metodos Gerais

Nesta secao estudaremos metiodos para encontrar zeros de equacoes nao lineares.

8.1.1 O Metodo da Bisseccao

A tecnica mais elementar de encontrar a raız de f(x) = 0, onde f e uma funcao contınua, e ometodo da bisseccao. Para darmos inıcio primeiramente escolhemos um intervalo que contenhauma raız do problema. Para isto escolhemos um intervalo [a, b] de forma que f(a) e f(b) possuamsinais trocados, e assim pelo teorema do valor intermediario podemos garantir a existencia depelo menos uma raız neste intervalo. Por simplicidade assumiremos que a raız e unica nesteintervalo.

Para iniciarmos este metodo fazemos a1 = a e b1 = b e encontramos seu ponto medio,

p1 = a1 +b1 − a1

2.

140

Page 142: Apostila CNumerico 2013

Se f(p1) = 0, entao a raız p procurada e dada por p = p1. Se f(p1) 6= 0, entao o sinal de f(p1)e o mesmo de f(a1) ou de f(b1). Se f(p1) tem o sinal contrario de f(a1) entao temos uma raızdo nosso problema no intervalo [a1, p1] e neste caso fazemos

a2 = a1 e b2 = p1.

Caso contrario teremos que

a2 = p1 e b2 = b1.

O mesmo processo e agora aplicado no intervalo [a2, b2], e encontramos assim o intervalo[a3, b3], [a4, b4]. Devemos notar que cada intervalo [ai, bi], i = 1, 2, 3, ... contem a raız p e que

|ai+1 − bi+1| =|ai − bi|

2.

ALGORITMO 4 Este algoritmo encontra solucao para f(x) = 0, f contınua, definida em[a, b] e f(a) e f(b) com sinais opostosENTRADA a,b; Tolerancia TOL; Numero maximo de iteracoes N0

SAIDA Solucao aproximada p ou mensagem de falha

Passo 1 Faca i = 1.

Passo 2 Enquanto i ≤ N0.

Passo 3 Faca p = (a+ b)/2.

Passo 4 Se f(p) = 0 ou (b− a)/2 < TOL entao

SAIDA (p)PARE

Passo 5 i = i+ 1

Passo 6 Se f(a)f(b) > 0

entao faca a = pcaso contrario b = p.

Passo 7 SAIDA (’Metodo falhou depois de N0 iteracoes’)STOP

OBS: Outros criterios de parada que podem ser usados no algoritmo da bisseccao tais como,

|pN − pN−1| < ε

|pN−pN−1||pN |

< ε

|f(pN)| < ε

141

Page 143: Apostila CNumerico 2013

Exemplo 37 Vamos considerar o seguinte polinomio no intervalo I:

• f(x) = x3 + 4x2 − 10

• Consideremos o intervalo I = [1, 2]

• f(1) = −5 e f(2) = 14 → ao menos uma raız no intervalo [1, 2].

• f ′(x) = 3x2 + 8x > 0 → f(x) e crescente neste intervalo e a raız e unica.

– Na primeira iteracao consideramos a1 = 1.0, b1 = 2 logo a raız e aproximada porp1 = a1+b1

2= 2 + 12 = 1.5. O comprimento do intervalo e dado por b−a

2= 0.5.

– Na segunda iteracao faremos a2 = 1.0 e b2 = 1.5 a e raız aproximada p2 = 1.25 e ocomprimento do intervalo e 0.25.

– seguindo o mesmo raciocınio, temos os valores das 13 primeiras iteracoes dados naseguinte tabela:

n an bn pn f(pn)1 1.0 2.0 1.5 2.3752 1.0 1.5 1.25 -1.796873 1.25 1.5 1.375 0.162114 1.25 1.375 1.3125 -0.848395 1.3125 1.375 1.34375 -0.350986 1.34375 1.375 1.359375 -0.096417 1.359375 1.375 1.3671875 0.032368 1.359375 1.3671875 1.36328125 -0.032159 1.36328125 1.3671875 1.365324375 0.00007210 1.36328125 1.365234375 1.364257813 -0.160511 1.364257813 1.362534375 1.364746094 -0.0079912 1.364746094 1.362534375 1.364990235 -0.0039613 1.364990235 1.365234375 1.365112305 -0.00194

– Depois de 13 iteracoes, p13 = 1.365112305 aproxima a raız p com um erro

|p− p13| <∣∣∣∣b13 − a13

2

∣∣∣∣ = |b14 − a14| = |1.365234375− 1.365112305| = 0.000122070,

como |a14| < |p|,|p− p13||p|

<|b14 − a14||a14|

≤ 9.0× 10−5,

assim nossa aproximacao possui pelo menos quatro dıgitos significativos corretos.

OBS: O valor de p com 9 casas decimais e p = 1.365230013. Note que neste caso p9

esta mais perto de p que a aproximacao final p9, mas nao tem forma de saber istosem conhecer a resposta correta!

142

Page 144: Apostila CNumerico 2013

O metodo da biseccao, apesar de conceitualmente simples, possui inconvenientes significan-tes. Possui convergencia lenta (isto e, N deve ser grande para que |p− pN | seja suficientementepequeno), alem de poder descartar uma boa aproximacao intermediaria. Entretanto este me-todo possui uma propriedade importante, ele sempre converge para uma raız e por isto e usadona pratica como ”chute inicial”para metodos mais eficientes.

Teorema 31 Seja f ∈ C[a, b] e suponha que f(a).f(b) < 0. O metodo da bisseccao gera umasequencia pn aproximando p com a propriedade

|pn − p| ≤b− a

2n, n ≥ 1. (1)

Prova: Para cada n ≥ 1, temos

bn − an =1

2n−1(b− a) e p ∈ (an, bn).

Como pn = 12(an + bn), para todo n ≥ 1, segue que

|pn − p| ≤1

2(bn − an) =

b− a2n

, n ≥ 1.

De acordo com definicao anterior, a inequacao (1) implica que pn∞n=1 converge para p e elimitada por uma sequencia que converge para zero com taxa de convergencia O(2−n).

OBS: Teoremas deste tipo apenas nos dao limites de erro na aproximacao. Por exemplo noexemplo 1 o teorema assegura que:

|p− p9| ≤2− 1

29≈ 2× 10−3

O erro real e muito menor,

|p− p9| = |1.365230013− 1.365234375| ≈ 4.4× 10−6

Exemplo 38 Para determinar o numero de itercoes necessarias para resolver f(x) = x3 +4x2 − 10 = 0 com precisao de ε = 10−5 usando a1 = 1 e b1 = 2 requer encontrar um inteiro Nque satisfaca

|pn − p| ≤ 2−N(b− a) = 2−N < 10−5.

Para determinarmos N vamos usar logaritmo na base 10. Daı,

−N log10 2 < −5 ou N >5

log102≈ 16.6.

Desta forma precisarıamos teoricamente de 17 iteracoes para termos uma aproximacao para pcom precisao de 10−5. Devemos lembrar que estas tecnicas apenas nos dao um limite do erro,em muitos casos este limite e muito maior que o erro real.

143

Page 145: Apostila CNumerico 2013

Ordem de convergencia do Metodo da Bisseccao

Seja p uma raız de f(x) = 0. Neste caso, ei = |xi − p|. Agora, como no metodo da bisseccao aaproximacao de ordem i + 1 e dada por, xi+1 = xi+xi−1

2onde f(xi)f(xi−1) < 0 entao sabemos

que o erro da iteracao i+ 1 e a metade do erro da iesima iteracao, assim

ei+1 ≤ei2−→ ei+1

ei≤ 1

2(2)

logo a ordem de convergencia do metodo da bisseccao e linear.Observacoes: Uma vantagem do Metodo da bisseccao e que sempre converge, porem sua

convergencia e lenta, conforme mostramos ela e linear. Podemos ainda observar que a sequenciagerada por este metodo nao decresce de forma monotona, devido a escolha da aproximacao daraız sempre como o ponto medio do intervalo considerado, nao levando em conta a funcaoconsiderada, mas apenas seu sinal nos extremos dos intervalos. Normalmente usamos o metododa bisseccao para reduzir o intervalo considerado antes de usar um outro metodo com maiorordem de convergencia.

8.1.2 O metodo da Falsa-Posicao

Vamos novamente considerar uma funcao f contınua em um intervalo [a; b] de forma quef(a)f(b) < 0. A ideia central deste metodo e usar como aproximacao da raız procurada, umamedia ponderada pelos valores da funcao f nos extremos do intervalo a cada iteracao.

Figura 8.1: falsa posicao

Para isto, vamos considerar a sequencia formada pelas abscissas dos pontos de interseccaoda reta formada pelos pontos (an, f(an)) e (bn, f(bn)) e o eixo dos x. Com esta finalidade

144

Page 146: Apostila CNumerico 2013

primeiramente vamos encontrar a reta y(x) que passa pelos pontos (a, f(a)) e (b, f(b)):

y(x) =x− ab− a

f(b) +x− ba− b

f(a)

y(x) =xf(b)− af(b)− xf(a) + bf(a)

b− a

y(x) =x(f(b)− f(a))− (af(b)− bf(a))

b− a

(3)

Assim a abscissa x do ponto de interseccao desta reta com o eixo dos x, isto e quando y(x) = 0pode ser escrita como:

0 =x(f(b)− f(a))− (af(b)− bf(a))

b− a(4)

como a 6= b

x =af(b)− bf(a)

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

Desta forma o metodo da falsa posicao e dado por:

• Funcao f definida e contınua em um intervalo [a, b].

• Se f(a)f(b) < 0 entao existe um numero ξ neste intervalo de forma que f(ξ) = 0, logo

• Fazemos a0 = a e b0 = b e calculamos

p0 =(a0f(b0)− b0f(a0))

(f(b0)− f(a0))

• Para n = 0, 1, ...:

• Se f(pn) = 0 a raız procurada foi encontrada, caso contrario

• Se f(an)f(pn) < 0 fazemos: an+1 = an e bn+1 = pn ou se f(an)f(pn) > 0 an+1 = pn ebn+1 = bn

• pn+1 =(an+1f(bn+1)− bn+1f(an+1))

(f(bn+1)− f(an+1))

• A sequencia p0, p1, ... produzida pelo metodo da falsa posicao converge para a raiz dafuncao neste intervalo.

145

Page 147: Apostila CNumerico 2013

Exemplo 39 Vamos considerar o polinomio p(x) = x3 +4x2−10. Para esbocar o grafico destafuncao notamos que: f ′(x) = 3x2 + 8x = (3x + 8)x, assim os possıveis pontos de maximo emınimo desta funcao sao aqueles onde f ′(x) = 0 → x = 0 ou x = −8/3. Temos ainda quef(0) = −10 e f [−8/3] ≈ −0.5185. Ainda temos que f(x) < 0 se x ∈ (−8/3, 0) e fora desteintervalo a funcao e negativa, logo seu grafico e:

Figura 8.2: falsa posicao

Podemos ver que este polinomio possui uma unica raız e ela esta no intervalo [1, 2]. assimvamos comecar fazendo a1 = 1 e b1 = 2 e desta forma obtemos pelo metodo da falsa posicao:

Se escolhemos a0 = 1 e b0 = 2 entao

p0 =1f(2)− 2f(1)

f(2)− f(1)=

14 + 10

−19= −1.2631578947368

e desta forma:

146

Page 148: Apostila CNumerico 2013

k ak bk pk f(pk)0 1.0000000000 2 1.2631578947 -1.60227438401 1.26315789474 2 1.338827839 -0.43036474802 1.3388278388 2 1.3585463418 -0.11000878853 1.3585463418 2 1.3648070318 -0.02776209104 1.3635474400 2 1.3648070318 -0.00698341545 1.3648070318 2 1.3651237179 -0.00175520906 1.3651237179 2 1.3652033037 -0.00044106307 1.3652033036 2 1.3652233020 -0.00011082818 1.3652233020 2 1.3652283270 -0.00002784799 1.3652283270 2 1.3652295897 -6.997390 ×10−6

10 1.3652295897 2 1.3652299069 -1.758239 ×10−6

Neste exemplo f(pk) e sempre positivo e por este motivo os elementos bk, k = 0, 1, .., 10ficaram inalterados. Olhando a tabela acima, notamos que depois de 10 iteracoes o intervalofoi reduzido para

[1.365229589673847, 2.000000000000].

Desta forma como garantimos que a raız procurada esta neste intervalo, que tem comprimentob10 − a10 = 0.634770410 e e aproximada por

p10 = 1.365229907

. Mais ainda, podemos estimar sua precisao como a sua distancia ate a extremidade maisproxima do intervalo [a10, b10], isto e

p10 − a10 = 3.172667253359407× 10−7.

8.1.3 O metodo da Iteracao Linear (Ponto Fixo)

Vamos considerar uma funcao f(x), contınua em [a, b] onde existe pelo menos uma raız de f(x).O metodo do ponto fixo transforma um problema do tipo f(x) = 0 em um problema do tipog(x) = x. Neste caso chamamos a funcao g(x) de funcao iteracao e a solucao de um problemadeste tipo nos chamamos de um ponto fixo para a funcao g.

147

Page 149: Apostila CNumerico 2013

• Quando podemos garantir a existencia de ponto fixo?

Exemplo 40

– Se g(x) = x entao cada x ∈ [0, 1] e um ponto fixo para g. Neste caso temos infinitospontos fixos.

– Se g(x) = x− sin πx no intervalo [0, 1] temos exatamente dois pontos fixos, x = 0 ex = 1.

Condicoes suficientes de existencia e unicidade de ponto fixo para g em um intervalo [a, b]sao dadas por:

Teorema 32 Se g(x) ∈ C[a, b] e g(x) ∈ [a, b] para todo x ∈ [a, b], entao g possui umponto fixo em [a, b].

Mais, se g′(x) existe em (a, b) e se existe uma constante positiva k < 1 de forma que

|g′(x)| ≤ K < 1 para todo x ∈ (a, b)

entao g possui exatamente um ponto fixo em [a, b]

A prova deste teorema e bastante simples e pode ser encontrada em Burden and Faires”Numerical Analysis”.

• Como aproximar este ponto fixo?

– Primeiramente escolhemos um ”chute inicial p0 em [a, b]

– Geramos uma sequencia pn∞n=0 fazendo

∗ p1 = g(p0)

∗ p2 = g(p1)

∗ ...

148

Page 150: Apostila CNumerico 2013

∗ pn+1 = g(pn) ...

– Se esta sequencia gerada for convergente e a funcao g contınua entao,

p = limn→∞

pn = limn→∞

g(pn−1) = g(

limn→∞

pn−1

)= g(p)

Assim p e a solucao de x = g(x). Aqui devemos observar que a convergencia dasequencia gerada bem como sua ordem de convergencia dependem fortemente daescolha de g(x).

ALGORITMO 5 Ponto FixoEncontra a solucao para p = g(p) com chute inicial p0.Entrada: p0, TOL, N0 numero maximo de iteracoesSaıda: Solucao aproximada ou mensagem de erro

1. Faca i = 1

2. Enquanto i ≤ N0

(a) Faca p = g(p0) (calcula pi)

(b) Se |p− p0| < TOL entao

i. Saıda p

ii. PARE

(c) Faca i = i+ 1

(d) Faca p0 = p (recobre p0)

3. Saıda: ”Metodo falhou depois de N0 iteracoes”

4. PARE

Vamos agora mostrar um exemplo, onde a escolha de g(x) influencia na convergencia e naordem de convergencia do metodo do ponto fixo.

149

Page 151: Apostila CNumerico 2013

n (a) (b) (c) (d) (e)0 1.5 1.5 1.5 1.5 1.51 -0.875 0.8165 1.286953768 1.348399725 1.3733333332 6.732 2.9969 1.402540804 1.367376372 1.3652620153 -469.7

√−8.65 1.345458374 1.364957015 1.365230014

4 1.03× 108 1.375170253 1.365264748 1.3652300135 1.360094193 1.3652255946 1.367846968 1.3652305767 1.363887004 1.3652299428 1.365916734 1.3652300229 1.364878217 1.36523001210 1.365410062 1.36523001415 1.365223680 1.36523001320 1.36523023625 1.36523000630 1.365230013

Exemplo 41 1. Encontre o unico zero de f(x) = x3 + 4x2 − 10 no intervalo [1, 2].

Para usarmos o metodo do ponto fixo, devemos modificar o problema f(x) = 0 em umproblema do tipo g(x) = x. Existem muitas formas para escolher g(x), aqui faremoscinco escolhas distintas, duas delas teremos falta de convergencia e em tres delas teremosoredens de convergencia distintas. Nos exemplos usaremos como chute inicial p0 = 1.5.

(a) x = x− x3 − 4x2 + 10 = g1(x)

(b) x =(

10−4x2

x

)1/2

= g2(x)

(c) x = 12(10− x3)1/2 = g3(x)

(d) x =(

104+x

)1/2= g4(x)

(e) x = x− x3+4x2−103x2+8x

= g5(x)

Os resultados obtidos usando como funcao iteracao as gi(x) definidas acima sao dadospela tabela 1.

Como podemos garantir que a funcao escolhida g(x) produza convergencia para a solucaode g(x) = x?

Esta pergunta pode ser respondida atraves dos seguintes teorema e corolarios. Aqui apenasenunciaremos os teoremas, cujas demonstracoes podem ser encontradas em livros de analisenumerica, particularmente Burden and Faires, Numerical Analysis.

Teorema 33 (Ponto Fixo) Seja g ∈ C[a, b] e que g(x) ∈ [a, b] para todo x ∈ [a, b]. Suponhaque g′ existe em (a, b) com |g′(x)| ≤ k < 1 para todo x ∈ (a, b).

150

Page 152: Apostila CNumerico 2013

Se p0 e um numero no intervalo [a, b] entao a sequencia gerado por pn = g(pn−1 para n ≥ 1converge para o unico ponto fixo p ∈ [a, b]

Prova:Pelo teorema 32 sabemos que existe um unico ponto fixo p ∈ [a, b]. Uma vez que g : [a, b]→

[a, b] a sequencia pn∞n=0 esta definida para todo n ≥ 0 e pn ∈ [a, b] assim,

|pn − p| = |g(pn−1 − p| ≤ k2|Pn−2 − p| ≤ ... ≤ kn|P0 − p|

como k < 1 temos que

limn→∞

|pn − p| ≤ limn→∞kn|p0 − p| = 0

Assim, limn→∞pn = p.

Corolario 1 Se g satisfaz as hipoteses do teorema 33 (Ponto Fixo) um limite para o erroenvolvido usando-se a sequencia pn para aproximar p e dada por:

|pn − p| ≤ kn|p0 − p| ≤ kn maxp0 − a, b− p0

uma vez que p ∈ [a, b].

Corolario 2 Se g satisfaz a hipotese do teorema 33 (Ponto Fixo) entao

|pn − p| ≤kn

1− k|p0 − p1| ∀n ≥ 1

No nosso exemplo

g1(x) = x− x3 − 4x2 + 10

g′1(x) = 1− 3x2 − 8x

Podemos ver que g′(1.5) = −17.75, assim |g′1(x)| > 1 no interval e desta forma nao podemosgarantir a convergencia (nem a nao convergencia) e assim esta seria uma ma escolha para funcaoiteracao.

g2(x) =

(10

x− 4x

)1/2

g2(1) = (10− 4)1/2 = 2.44 6∈ [1, 2]

Isto e g2[1, 2] 6→ [1, 2] e assim tambem nao podemos garantir convergencia para esta escolha defuncao iteracao.

g3(x) =1

2(10− x3)1/2

g′3(x) = −3

4x2(10− x3)−1/2

151

Page 153: Apostila CNumerico 2013

Neste caso vemos que |g′3(2)| ≈ 2.12 > 1. E assim esta tambem nao e uma boa escolha parafuncao iteracao. (note que existe convergencia mas e muito lenta).

Os casos g4 e g5 satisfazem o teorema.A ultima escolha para g(x) como pode ser mostrado e a melhor escolha possıvel para funcao

iteracao e esta escolha e na verdade chamada de metodo de Newton-Raphson que sera visto naproxima secao.

8.1.4 O Metodo de Newton-Raphson

O metodo de Newton-Raphson e um dos mais poderosos para encontrar um zero de f(x) = 0.Sua deducao pode ser feita de forma grafica ou como a escolha da funcao iteracao de formaque o metodo do ponto fixo seja o mais rapido possıvel ou ainda usando-se expansao de Taylor.Aqui usaremos a expansao em Taylor.

Assim vamos supor que f ∈ C2[a, b] e que queremos encontrar p de forma que f(p) = 0. Sejax uma aproximacao de p de forma que f(x) 6= 0 e que |p− x| seja pequeno. Assim expandindof(x) em torno de x temos que existe ξ(x) entre x e x de forma que:

f(x) = f(x) + (x− x)f ′(x) +(x− x)2

2!f ′′(ξ(x)) (6)

agora fazendo x = p em (6) e lembrando que f(p) = 0,

0 = f(x) + (p− x)f ′(x) +(p− x)2

2!f ′′(ξ(p)) (7)

como |p− x| e pequeno podemos desprezar (p− x)2, assim

0 ≈ f(x) + (p− x)f ′(x) (8)

ou

p = x− f(x)

f ′(x)(9)

Da equacao(9) parte o metodo de Newton-Raphson que comeca com uma aproximacao inicialp0 e gera uma sequencia pn, definida por:

pn = pn−1 −f(pn−1)

f ′(pn−1)(10)

Este procedimento iterativo ira convergir para o zero de muitas funcoes, e quando converge,sera usualmente muito rapido.

152

Page 154: Apostila CNumerico 2013

Esta mesma formula poderia ter sido obtida de forma geometrica, vamos considerar o graficoda figura abaixo e um chute inicial p0. Se tracarmos a tangente a curva em p0 sua interseccaocom o eixo dos x sera o segundo termo da sequencia e assim por diante. Isto e:

tanα0 =f ′(p0) =f(p0)

p0 − p1)→ p1 = x0 −

f(p0)

f ′(p0)

tanα1 =f ′(p1) =f(p1)

p1 − p2)→ p2 = x1 −

f(p1)

f ′(p1)...

tanαn+1 =f ′(p0) =f(p0)

(p0 − p1)→ p1 = x0 −

f(p0)

f ′(p0)

(11)

Exemplo 42 Encontre√

7 usando o metodo de Newton-Raphson, com 9 casas decimais.Vamos escolher f(x) = x2 − 7 note que sua raız e

√7. Assim vamos endontrar a raız de f(x)

pelo metodo pedido. Neste caso, f ′(x) = 2x e a formula de recorrencia e dada por:

pn+1 = pn −f(pn)

f ′(pn)= pn −

p2n − 7

2xn

Para chute inicial vamos escolher p0 = 2.5 pois√

4 = 2 e√

9 = 3,

x1 = 2.5− −0.75

5= 2.65

x2 = 2.65− 0.0225

5.3= 2.645754717

x3 = 2.645754717− 0.00001802242791

5.291509434= 2.645751311

x4 = 2.645751311− −3× 10−10

5.291502622= 2.645751311

153

Page 155: Apostila CNumerico 2013

ALGORITMO 6 : Newton RaphsonEste algoritmo encontra a solucao de f(x) = 0 dado um ”chute inicial”p0

ENTRADA: p0, Tolerancia TOL, Numero maximo de iteracoes N0

SAıDA: Solucao aproximada ou mensagem de erro

1. Faca i = 1

2. Enquanto i ≤ N0

(a) p = p0 − f(p0)/f ′(p0)

(b) Se |p− p0| < TOL entao

• Saıda p

• PARE

(c) Faca i = i+ 1

(d) Faca p0 = p

3. Saıda: O metodo falhou depois de N0 iteracoes

4. Pare

Observacao: Podemos adotar outras tecnicas de parada alem da adotada pelo algoritmo, taiscomo

|pn − pn−1||pn|

< ε se pn 6= 0

ou

f(pn) < ε

Apesar de sua rapida convergencia, o metodo de Newton-Raphson possui dificuldades comcertos tipos de funcoes. Considere por exemplo uma funcao polinomial como a mostrada nafigura abaixo, quando partimos de x0 = 0, ficamos com uma nao convergencia oscilatoria!

154

Page 156: Apostila CNumerico 2013

Ela ilustra por um caso nao convergente. Outro exemplo seria um caso onde o chute e dadoproximo de uma raız mas outra raız e aproximada e nao a raız esperada. Nao existe um metodosimples que evite este tipo de problema em certas funcoes, mas um rascunho de seu grafico ousua tabulacao em alguns pontos serao muitas vezes precisos para uma escolha certa do chuteinicial. Tambem e problema o caso de raızes multiplas. Neste caso o grafico tangencia o eixodos x e neste caso a derivada de primeira ordem na raız e nula. Mesmo neste caso, o metodo deNewton pode ser convergente (dependendo do chute inicial), mas, neste caso, a convergencia emuito lenta e na pratica pode fazer o calculo difıcil (ela que era de ordem quadratica cai paraordem linear).

Exemplo 43 Vamos considerar f(x) = arctan x. Assim f ′(x) = 11+x2

155

Page 157: Apostila CNumerico 2013

1. Primeiramente vamos usar x0 = 1.4 Neste caso temos:

x1 = x0 − arctan(x0)(x20 + 1) = 1.4− arctan(1.4)((1.4)2 + 1) = −1.41366

x2 = x1 − arctan(x1)(x21 + 1) = 1.45013

x3 = x2 − arctan(x2)(x22 + 1) = −1.55063

x4 = 1.84705x5 = −2.89356x6 = 8.71033x7 = −103.25

Isto e o metodo de Newton diverge para este valor inicial.

2. Agora, vamos usar x0 = 1.35 Neste caso temos:

x1 = x0 − arctan(x0)(x20 + 1) = 1.35− arctan(1.35)((1.35)2 + 1) = −1.28409

x2 = x1 − arctan(x1)(x21 + 1) = 1.12412

x3 = x2 − arctan(x2)(x22 + 1) = −0.785872

x4 = 0.291554x5 = −0.016251x6 = 2.86105× 10−6

x6 = −1.5× 10−17

Isto e o metodo de Newton converge para x = 0 quando o valor inicial considerado e 1.35.

Exemplo 44 Vamos considerar f(x) = x3−x+ 3. Assim f ′(x) = 3x2− 1, assim f ′(x) = 0↔x = ±

√3

3≈ ±0.57735

156

Page 158: Apostila CNumerico 2013

Vamos fazer x0 = 0.

x1 = x0 − x30−x0−3

3x−1= 3.000000

x2 = −0.375000x3 = 1.188420x4 = −0.172081x5 = 1.91663x6 = 0.206263x7 = 7.55789x8 = −12.1509x9 = −59.647x10 = −1238.63

Isto e o metodo diverge com este ”chute”inicial! Confira o que ocorre se x0 = −2

Ordem de Convergencia do Metodo de Newton

Teorema 34 Se f(p) = 0 com f ′(p) e se f ′′(x) contınuas, entao existe um intervalo aberto Icontendo p de forma que se p0 ∈ I entao para o metodo de Newton-Raphson temos que

limi→∞

pi = p

Isto e o teorema garante que o metodo de Newton converge, dependendo do chute inicial, paraa raız simples p.Podemos mostrar que neste caso a ordem de convergencia do metodo e quadratica, pois:

Se p e uma raız simples para a funcao f(x) entao fazendo x = p na serie de Taylortruncada no segundo termo temos

0 = f(xi) + (p− xi)f ′(xi) +1

2(p− xi)2f ′′(ξ) ξ entre xi e p,

157

Page 159: Apostila CNumerico 2013

agora, dividindo a equacao acima por f ′(xi)

f(xi)

f ′(xi)+ (p− xi) = −1

2(p− xi)2 f

′′(ξ)

f ′(xi)

Reordenando a equacao acima temos

p−(xi −

f(xi)

f ′(xi)

)︸ ︷︷ ︸

xi+1

= −1

2(p− xi)2 f

′′(ξ)

f ′(xi),

aplicando modulo dos dois lados da igualdade acima e lembrando que ei = |xi − p|podemos escrever

ei+1 = e2i

∣∣∣∣ f ′′(ξ)2f ′(xi)

∣∣∣∣ou

ei+1

e2i

=1

2

∣∣∣∣ f ′′(ξ)f ′(xi)

∣∣∣∣quando i → ∞ temos que xi → p logo ξ → p. Desta forma aplicando o limite naequacao anterior temos

limi→∞

ei+1

e2i

=1

2

∣∣∣∣f ′′(p)f ′(p)

∣∣∣∣Note que o segundo membro da equacao anterior e uma constante e assim temospela definicao de ordem de convergencia que a ordem de convergencia do metodode Newton-Raphson e quadratica (2).

OBS: O metodo pode ser aplicado para encontrar raızes complexas, bastando para isto termosum chute inicial complexo.

Exemplo 45 Vamos considerar a equacao polinomial

f(x) = x4 − 9x3 + 30x2 − 42x+ 20 (12)

cujas raızes sao 1, 2, 3 + i, 3− iusando o metodo de Newton Raphson com diversos chutes iniciais obtemos:

158

Page 160: Apostila CNumerico 2013

0 0 3 1+i 4+2i1 0.476190476 2.333333333 1.270270270+0.621621621 i 3.587068332+1.540044085 i2 0.783857793 1.979591837 1.448937409+0.253119829 i 3.294613943+1.231633775 i3 0.945183080 2.000008766 1.659616171+0.244371599 i 3.107145507+1.059849539 i4 0.995239348 2.000000000 1.911995657+0.066770499 i 3.018207673+1.003079473 i5 0.999959683 1.999283337+0.001360480 i 3.000419751+0.999731774 i6 0.999999997 1.999999996+4.297033794 10−10 i 2.999999824+0.999999672 i7 1.000000000 2.000000000+3.205324874 10−24 3.000000000+1.000000000 i

8.1.5 O Metodo de Newton Modificado

Se a raız de f(x) e simples apresenta o metodo de Newton apresenta uma convergencia qua-dratica. Esta convergencia pode cair para ordem linear no caso de raızes multiplas.

Exemplo 46 Por exemplo, vamos considerar a equacao:

g(x) = x4 − 8.6x3 − 35.51x2 + 464.4x− 998.46 (13)

cujas raızes sao x1 = 4.3, x2 = 4.3, x3 = 7.34847, x4 = −7.34847. Usando o metodo de NewtonRaphson temos:

0 2 5 7 10 -81 3.053113553 4.601960784 7.485611511 8.727184466 -7.4326568272 3.627606412 4.444305608 7.360406997 7.920259886 -7.3501237363 3.944855635 4.370775870 7.348571171 7.497754133 -7.3484698844 4.116183264 4.335071426 7.348469236 7.362461713 -7.3484692285 4.206252614 4.317459659 7.348469228 7.3486089926 4.252622694 4.308711179 7.3484692427 4.276179199 4.3043509718 4.288055726 4.3021743369 4.29401929 4.301086882

10 4.29700749 4.30054336911 4.29850320 4.30027166712 4.29925147 4.30013582913 4.29962570 4.30006791314 4.2998128415 4.2999064216 4.2999532117 4.2999766018 4.2999883019 4.2999941520 4.2999970821 4.2999985422 4.29999927

159

Page 161: Apostila CNumerico 2013

Note que para encontrarmos a raız 4.3 precisamos de muitas iteracoes, pois ela e dupla. Aconvergencia do metodo neste caso passa a ser linear.

Para aumentarmos a ordem de convergencia, no caso de raızes multiplas procedemos da seguinteforma. Se a funcao f(x) possui raız multipla em p entao

µ(x) =f(x)

f ′(x)

possui raız simples em p. A ideia e usar o Metodo de Newton Raphson para encontrar a raızde µ(x).

µ(x)

µ′(x)=

f(x)/f ′(x)

[(f ′(x))2 − f(x)f ′′(x)]/[f ′(x)]2(14)

Assim,

xn+1 = xn −f(x)f ′(x)

[(f ′(x))2 − f(x)f ′′(x)](15)

Este metodo teoricamente possui convergencia quadratica como o metodo de NRaphsonpara raızes simples mas pode apresentar muitos problemas de erro de arredondamento, alemde exigir o conhecimento de f ′′(x).A dificuldade deste metodo e que alem de precisarmos conhecer a derivada primeira da funcaof(x), nos tambem precisamos conhecer f ′(x) e f ′′(x). Vamos usar este metodo para calcular araız 4.3 do exemplo anterior.

Exemplo 47 Vamos considerar a funcao

g(x) = x4 − 8.6x3 − 35.51x2 + 464.4x− 998.46

cuja derivada primeira e dada por,

g′(x) = 464.4− 71.02x− 25.8x2 + 4x3

e a derivada segunda por,

g′′(x) = 12x2 − 51.6x− 71.02

Vamos definir

h(x) = x− g(x)g′(x)

(g′(x))2 − g(x)g′′(x)

os resultados obtidos sao dados por:

0 2 51 4.237051182 4.4115674482 4.30451852 4.3016741393 4.300000025 4.3000003404 4.299999982

Vemos que neste caso a convergencia e rapida isto e volta a ser de ordem quadratica na raızdupla.

160

Page 162: Apostila CNumerico 2013

8.1.6 O Metodo da Secante

O metodo de Newton e muito poderoso, mas algumas vezes nos nao conhecemos ou e muitodifıcil encontrar f ′(x). Por exemplo se f(x) = x23x cos(2x) entao sua derivada sera f ′(x) =2x3x cos(2x) + x23x(cos 2x) ln 3− 2x23x sin 2x, que nao e simples para avaliar em cada ponto.Para evitarmos avaliar o valor da derivada da funcao f(x) no metodo de Newton podemosaproximar a derivada. Para isto vamos lembrar que

f ′(xn−1) = limx→xn−1

f(x)− f(xn−1)

x− xn−1

(16)

agora fazendo x = xn−2 podemos escrever que

f ′(xn−1) ≈ f(xn−2)− f(xn−1)

xn−2 − xn−1

=f(xn−1)− f(xn−2)

xn−1 − xn−2

(17)

Usando esta aproximacao para f ′(pn−1) na formula de Newton,

xn = xn−1 −f(xn−1)(xn−1 − xn−2)

f(xn−1)− f(xn−2)(18)

Observe que este metodo necessita de dois chutes iniciais x0 e x1.

Exemplo 48 Encontre um zero de f(x) = cosx− x, usando o metodo da secante. Nos agoraprecisamos de duas condicoes iniciais. Esbocando os graficos de cosx e de x vemos que estascurvas se cruzam perto de π

4. Assim vamos usar como partida x0 = 0.5 e x1 = 0.7853981635.

A formula usada e:

xn = xn−1 −(xn−1 − xn−2)(cosxn−1 − xn−1)

(cosxn−1 − xn−1)− (cosxn−2 − xn−2)

n pn0 0.51 0.78539816352 0.73638413903 0.73905813944 0.73908514925 0.7390851334

A ordem de convergencia do metodo da secante e um pouco menor que do metodo de Newton.Neste exemplo se tivessemos aplicado o metodo de Newton terıamos a mesma ordem de precisaocom n = 3. Na verdade podemos mostrar que sua ordem d convergencia e r = (1+

√5)/2 ≈ 1.62.

O metodo da secante e o de Newton sao muitas vezes usados para refinar uma resposta obtidapor outra tecnica tal como o metodo da bisseccao. Isto e feito pois estes metodos requeremuma boa primeira aproximacao, e neste caso possuem convergencia rapida.

161

Page 163: Apostila CNumerico 2013

8.1.7 Metodo de Muller

Este metodo foi desenvolvido por Muller (1956), ele e uma generalizacao do metodo da secantee pode ser usado para calcular uma raız da funcao qualquer f(x). Apesar disto, este metodoe particularmente usado para aproximar raızes de um polinomio. O metodo da secante, co-meca com duas aproximacoes iniciais x0 e x1 e determina a proxima aproximacao x2 como ainterseccao do eixo do x com a reta que passa atraves dos pontos x0, f(x0) e x1, f(x1).O metodo de Muller usa tres aproximacoes iniciais x0, x1, x2 e determina a proxima aproximacaox3 como a interseccao do eixo dos x com a parabola que passa atraves dos pontos x0, f(x0),x1, f(x1) e x2, f(x2).A derivacao do metodo de Muller comeca considerando tres valores iniciais x0, x1, x2 e o seguintepolinomio quadratico:

P (x) = a(x− x2)2 + b(x− x2) + c (19)

Como queremos que este polinomio passe pelos pontos x0, f(x0), x1, f(x1) e x2, f(x2), podemosdeterminar as constantes a, b e c da parabola P (x) como,

f(x0) =a(x0 − x2)2 + b(x0 − x2) + c

f(x1) =a(x1 − x2)2 + b(x1 − x2) + c

f(x2) =c

(20)

isto e, resolvendo o sistema (20)

c =f(x2)

b =(x0 − x2)2[f(x1)− f(x2)]− (x1 − x2)2[f(x0)− f(x2)]

(x0 − x2)(x1 − x2)(x0 − x1)

a =(x1 − x2)[f(x0)− f(x2)]− (x0 − x2)[f(x1)− f(x2)]

(x0 − x2)(x1 − x2)(x0 − x1)

(21)

Para determinarmos x3, o zero da parabola P (x), aplicamos a formula de Baskara modificadae assim evitamos problemas de erro de arredondamento, causados pela subtracao de numerosproximos, isto e aplicamos a formula como,

(x3 − x2) =−2c

b±√b2 − 4ac

(22)

A formula (22) nos da duas possibilidades para a escolha de x3, dependendo do sinal queprecede o termo radical. Como queremos a raız que x3 seja a raız mais proxima de x2 possıvel,escolhemos o sinal que precede o radical de forma que o modulo do denominador seja o maiorpossıvel.Assim, se

mod1 = |b+√b2 − 4ac|

mod2 = |b−√b2 − 4ac|

162

Page 164: Apostila CNumerico 2013

denominador =

b+√b2 − 4ac se mod1 ≥ mod2

b−√b2 − 4ac se mod1 < mod2

E desta forma, temos

x3 = x2 −2c

denominador(23)

onde a, b e c sao dados por (21). Uma vez que x3 e determinado, o procedimento descritoacima e reinicializado usando x1, x2 e x3 para determinar x4. O processo repete-se ate que umasolucao satisfatoria seja obtida.Nota: Note que em cada iteracao o metodo envolve a raız

√b2 − 4ac, logo o metodo ira

aproximar tambem raızes complexas.A seguir apresentamos o algoritmo deste metodo.

ALGORITMO 7 (Muller) Encontra solucao para f(x) = 0, dadas tres aproximacoes x1, x2

e x3;ENTRADA x1, x2, x3;a,b; Tol=10−5; Numero maximo de iteracoes N0

SAIDA Solucao aproximada p ou mensagem de falha

Passo 1 Faca:

h1 = x1 − x0;h2 = x2 − x1;δ1 = (f(x1)− f(x0))/h1;δ2 = (f(x2)− f(x1))/h2;d = (δ1 − δ2)/(h2 + h1);i = 1.

Passo 2 Enquanto i ≤ N0 (3-7).

Passo 3 Faca:

b = δ2 + h2d;D = (b2 − 4f(x2)d)1/2. (Obs: Pode ser aritmetica complexa.)

Passo 4 Se |b−D| < |b+D|entao faca E = b+Dcaso contrario faca E = b−D.

Passo 5 Faca

h = −2f(x2)/E;p = x2 + h.

Passo 6 Se |h| < TOL entao

SAIDA (p);PARE.

Passo 7 Faca

163

Page 165: Apostila CNumerico 2013

x0 = x1; (preparando nova iteracao)x1 = x2;x2 = p;h1 = x1 − x0;h2 = x2 − x1;δ1 = (f(x1)− f(x0))/h1;δ2 = (f(x2)− f(x1))/h2;d = (δ2 − δ1)/(h2 − h1);i = i+ 1

Passo 8 SAIDA (’Metodo falhou depois de N0 iteracoes’)STOP

Exemplo 49 Considere o polinomio P (x) = 16x4−40x3 +5x2 +20x+6, considerando TOL =10−5. Os resultados produzem usando o o algoritmo de Muller e diferentes valores para x0, x1

e x2.

x0 = 0.5, x1 = −0.5 e x2 = 0i xi f(xi)3 −0.555556 + 0.598352i −29.4007− 3.89872i4 −0.435450 + 0.102101i +1.33223− 1.193095 −0.390631 + 0.141852i +0.375057− 0.670164i6 −0.357699 + 0.169926i −0.146746− 0.00744629i7 −0.356051 + 0.162856i −0.183868× 10−2 + 0.539780× 10−3i8 −0.356062 + 0.162758i +0.286102× 10−5 + 0.953674× 10−6

x0 = 0.5, x1 = 1.0 e x2 = 1.5i xi f(xi)3 1.28785 −1.376244 1.23746 +0.1269415 1.24160 +0.219440× 10−2

6 1.24168 +0.257492× 10−4

7 1.24168 +0.257492× 10−4

x0 = 2.5, x1 = 2.0 e x2 = 2.25i xi f(xi)3 1.96059 −0.6112554 1.97056 +0.748825× 10−2

5 1.97044 −0.295639× 10−4

6 1.97044 −0.259639× 10−4

Nota: Geralmente o metodo de Muller converge para uma raız da funcao f(x) para qualquerchute inicial, problemas existem, mas quase nunca ocorrem. (ex: se f(xi) = f(xi+1) = f(xi+2)).A ordem de convergencia do metodo e α = 1.84.

164

Page 166: Apostila CNumerico 2013

8.2 Metodos para calcular raızes de Polinomios

Os metodos desenvolvidos nas secoes anteriores, e em particular o metodo de Newton, podemser usados para encontrar raızes de polinomios. Para calcularmos os zeros de um polinomioexploramos sua estrutura especial. Alem disto, frequentemente o problema e complicado poisnecesstamos calcular todos os seus zeros, inclusive os complexos, e os muito proximos ou mul-tiplos, assim encontrar zeros de polinomios e um assunto que merece uma atencao especial.Existem muitos metodos classicos para encontrar raızes de polinomios tais como o metodo deBairstow e o metodo de Laguerre (ver Numerical Analysis de Kincaid e Cheney, 1996), queiremos passar rapidamente. O metodo de Bernoulli que e um metodo iterativo que usandoo metodo da potencia para determinar uma aproximaco para a raız de modulo maximo. Ometodo de Bernoulli explora a conexao existente entre uma Equacao em Diferencas Lineare seu polinomio caracterıstico como forma para encontrar os zeros de um polinomio sem terconhecimento de gresseiras primeiras aproximacoes. Ja o metodo de Jenkins-Traub que temordem de convergencia 3 (ver Jenkins e Traub, SIAMNA 7, 545-566, 1970 ou Jenkins e Traub,NM 14, 252-263, 1970) e um algorıtmo numerico que inicia encontrando a maior e a menorraız e depois entra na ”procura”pelas outras raızes. Este metodo encontra todos os zeros dopolinomio, um por vez, e tem por base no metodo de Newton implicito. Estes dois ultimosproporcionam algoritmos estaveis para o calculo das raızes. Ainda citamos o metodo da matrizcompanheira, que encontra as raızes de um polinomio, atraves do calculo dos autovalores de suamatriz companheira.

Um metodo numerico para determinar um zero de um polinomio geralmente toma a formade uma receita para construir uma ou muitas sequencias zn de numeros complexos que supos-tamente irA¡ convergir para um zero do polinomio. Cada algoritmos possui suas vantagens edesvantagens e desta forma a escolha para o ”melhor”algoritmo para um dado problema nemsempre e facil.

Um algoritmo razoavel deve convergir, isto e, a sequencia gerada por ele deve, sob certascondicoes aceitaveis, convergir para um zero de um dado polinomio. Um algoritmo deve tambempoder produzir aproximacoes tanto para raız real ou complexa de um dado polinomio. Outraspropriedades que um algorıtmo pode ou nao ter sao as seguintes:

1. Convergencia Global: Muitos algorıtmos podem ter convergencia garantida somente se ovalor inicial z0 estiver suficientemente proximo de uma raız do polinomio. Estes metodossao chamados de localmente convergentes. Algoritmos que nao requerem isto, isto econvergem independente do valor inicial z0 sao ditos globalmente convergentes

2. Convergencia Incondicional: Alguns algoritmos so irao convergir se o polinomio consi-derado possir algumas propriedades especiais, isto e, zeros simples ou zeros nao equi-modulares, por exemplo. Estes algoritmos sao ditos condicionalmente convergentes.Se um algoritmo e convergente (local ou globalmente) para todos os polinomios, ele eincondicionalmente convergente

3. Estimativa a posteriori Na pratica os algoritmos sao terminados artificialmente por algumcriterio de parada. Assim e desejavel que o algoritmo possa fazer uma estimativa de erropara o erro |zn − ξ|. (ξ a raız do polinomio)

165

Page 167: Apostila CNumerico 2013

4. Velocidade de convergencia: O conceito de ordem e frequentemente usado para medir avelocidade de convergencia de um algoritmo. A ordem ν e definida como o supremo dosnumeros reais α para que

limn→∞

sup|zn+1 − ξ||zn − ξ|α

<∞

5. Determinacao simultanea de zeros

6. Insensibilidade de grupos de zeros muito proximos ou iguais

7. Estabilidade Numerica isto e Estabilidade significa pouca sensibilidade ao arredondamentonas operacoes efetuadas.

Para estudarmos metodos desenvolvidos exclusivamente para polinomios, vamos considerar oseguinte polinomio de grau n:

p(z) = anzn + an−1z

n−1 + ...+ a1z + a0 = 0 (24)

na qual os coeficientes ak sao coeficientes e z pode ser numero complexo. Se an 6= 0 entao ptem grau n.

Teorema 35 (Teorema Fundamental da algebra) Cada polinomio nao constante possuiao menos uma raız no plano complexa.

Teorema 36 (Numero de Zeros) : Um polinomio de grau n possui exatamente n zeros nocampo complexo. (Considera-se que um zero de multiplicidade m e m vezes raız do polinomio)

Teorema 37 (Teorema do Resto:) Se um polinomio P , de grau n ≥ 1, e dividido por umfator linear (z − c), entao p(z) = (z − c)q(z) + r, onde q(z) e o polinomio quociente de graun− 1 e R e um numero complexo chamado de resto.

Observe no teorema acima que

1. Se z = c, entao temos que p(c) = r.

2. Se c e um zero de p(z) entao no teorema 37 r = 0 e (z − c) e um fator de p(z).

Teorema 38 (Disco contendo todos os zeros de um polinomio) Todos os zeros do po-linomio descrito pela equacao (24) estao dentro de um cırculo aberto de centro na origem doplano complexo e cujo raio e

ρ = 1 + |an|−1 max0≤k<n

|ak|

166

Page 168: Apostila CNumerico 2013

Uma outra ideia util para a analise da localizacao de raızes de polinomios e que se conside-ramos o polinomio p(z) definido por (24) e definirmos o polinomio,

s(z) = zn

(an

(1

z

)n+ an−1

(1

z

)n−1

+ ...+ a0

)= an + an−1z + ...+ a0z

n,

temos que s(z) e um polinomio de grau igual ou menor que n e que se z0 6= 0 e um numerocomplexo de forma que p(z0) = 0 e equivalente dizer que s( 1

z0) = 0. Desta observacao resulta

que:

Teorema 39 (Zeros Nao nulos de um polinomio) Se todos os zeros do polinomio descritopela equacao s(z) = znp(1/z) estao em um disco centrado em zero e com raio ρ, entao todos oszeros nao nulos de p(z) encontram-se fora do disco |z| = 1

ρ.

Uma outra ideia util para a analise de polinomios e que: Se tomamos o polinomio p daequacao (24), e consideramos a funcao s(z) = znp(1/z). Entao

s(z) =zn

[an

(1

z

)n+ an−1

(1

z

)n−1

+ ...+ a0

]=an + an−1z + an−2z

2 + ...+ a0zn

(25)

Exemplo 50 Vamos considerar p(z) = z4 − 4z3 + 7z2 − 5z − 2. Pelos teoremas (38) e (39),concluımos que os zeros nao nulos deste polinomio estao no anel r−1 ≤ |z| ≤ R onde:

R = 1 + |1|−1.7 = 8 e r = 1 + |2|−1.7 =9

2

isto e

2

9≤ |z| ≤ 8

Teorema 40 Se f e contınua em um intervalo [a, b],

1. Se f(a)f(b) < 0 entao temos um numero ımpar de raızes neste intervalo.

2. Se f(a)f(b) > 0 entao temos um numero par de raızes neste intervalo.

3. Se f ′ e contınua e possui sinal constante neste intervalo,

(a) f(a)f(b) < 0 entao existe uma raız neste intervalo

(b) f(a)f(b) > 0 entao nao existe raız neste intervalo

1. Regra de Descartes O numero de raızes positivas de um polinomio P (z) com coeficientesreais nunca e maior que T , o numero de troca de sinal na sequencia de seus coeficientesnao nulos; e se e menor, entao e sempre um numero par.

A mesma regra pode ser aplicada para enumerar as raızes negativas, analisando P (−z).

167

Page 169: Apostila CNumerico 2013

Exemplo 51 P (z) = 3z3 + z2− z−1. A sequencia e + +−−. Logo T = 1 e P (z) possuientao uma raız positiva. P (−z) = −3z3 + z2 + z− 1. A sequencia e −+ +−. Logo T = 2assim o numero de raızes negativas e 2 ou 0.

2. Regra de Du Gua Seja P (z) = anzn + ...+ a1z+ a0 um polinomio de grau n sem raızes

nulas. Se para algum k, 1 < k < n, tem-se a2k ≤ ak+1ak−1, entao P (z) possui raızes

complexas.

3. Regra da Lacuna

(a) Se os coeficientes de p(z) sao todos reais e para algum k, 1 ≤ k < n, tem-se ak = 0e ak−1ak+1 > 0, entao p(z) tera raızes complexas.

(b) Se os coeficientes de p(z) sao todos reais e existem dois ou mais coeficientes sucessivosnulos, entao p(z) = 0 tem raızes complexas.

Exemplo 52 Seja p(z) = 2z5 + 3z4 + z3 + 2z2 − 5z + 3. Para p(z), o numero de trocasde sinal e T = 2, logo pela regra de Descartes p(z) possui duas ou nenhuma raız positiva.Para p(−z) o numero de trocas e T = 3 logo p(z) possui tres ou uma raız negativa.

Testando a2k ≤ ak+1ak−1 temos para k = 2, a2

2 ≤ a3a1 ie 1 ≤ (3)(2) = 5. Assim por DuGua, temos raızes complexas para p(z).A regra da Lacuna nada afirma neste exemplo.

4. Cota de Laguerre-Thibault Dado um polinomio de coeficientes reais, procede-se adivisao do polinomio por z − 1, z − 2, ... ate z −m, onde o quociente Q(z) tenha todosos coeficientes positivos ou nulos, assim R > 0. Tal m e uma cota superior das raızes deP . Para determinar uma cota inferior basta aplicar o mesmo procedimento em P (−z).

5. Cota de Fujiwara Seja z uma raız real ou complexa de P (z) = anzn + ... + a1z + a0.

Entao,

|z| ≤ 2 max

∣∣∣∣an−1

an

∣∣∣∣ , ∣∣∣∣an−2

an

∣∣∣∣1/2 , ..., ∣∣∣∣a1

an

∣∣∣∣1/(n−1)

,

∣∣∣∣a0

an

∣∣∣∣1/n.

Exemplo 53 Que regiao do plano contem as raızes de P (z) = z4−14z2 +24z−10. Pelacota de Fujiwara temos:

|z| ≤ 2 max0, 141/2, 241/3, 101/4 ≤ 2(3.74) = 7.48

6. Cota de Kojima Seja p(z) = anzn+an−1z

n−1 + ...+a1z+a0. Toda raız real ou complexaz satisfaz

|z| ≤ q1 + q2

onde q1 e q2 sao os maiores valores de∣∣∣∣an−ian

∣∣∣∣1/i, i = 1, 2, ..., n.

168

Page 170: Apostila CNumerico 2013

Exemplo 54 Seja p(z) = z5 + z4 − 9z3 − z2 + 20z − 12. Temos que:∣∣∣∣a1

a0

∣∣∣∣1/1 = 1;

∣∣∣∣a2

a0

∣∣∣∣1/2 = 3;

∣∣∣∣a3

a0

∣∣∣∣1/3 = 1;

∣∣∣∣a4

a0

∣∣∣∣1/4 = 2.114742527;

∣∣∣∣a5

a0

∣∣∣∣1/5 = 1.643751829.

logo

|z| ≤ 3 + 2.114742527 = 5.114742527

Entre os metodos desenvolvidos especificamente para o calculo de raızes de polinomios vamosestudar os metodos de Newton-Horner, Bairstow e o metodo de Laguerre. Os dois primeirosforam escolhidos por ter entendimento mais simples e o metodo de Laguerre por ser simples eapresentar ordem de convergencia 3 e ser usado internamente por muitos ”pacotes”matematicos.Para isto, vamos considerar o seguinte problema:

p(z) = anzn + an−1z

n−1 + · · ·+ a1z + a0 = 0 (26)

onde os coeficientes ai sao numeros reais e z uma variavel complexa. Os metodos iterativos javistos podem ser aplicados na resolucao deste problema, no entanto encontrar as raızes de umpolinomio p(z), na pratica, aparece com tanta frequencia que justifica o desenvolvimento demetodos particularmente adaptados a este problema que leve em conta sua forma polinomial.Alem disto a necessidade de encontrar raızes complexas ou todas as raızes de um polinomio daoa este problema um enfoque especial. Muitas vezes nao sabemos onde estao estas raızes e destaforma precisamos de metodos que sejam incondicionalmente convergentes principalmente emse tratando de polinomios de alto grau. Antes de vermos o metodo de Bairstow e importantesalientar que existe uma vasta literatura sobre este assunto como por exemplo ver Wilf H.S.The numerical solution of polynomials equations, John Wiley & sons Inc. NY, 1960. Comoeste temos outros metodos classicos para encontrar raızes de polinomios tais como o metodo deBernoulli, metodo de Laguerre e o metodo de Jekins-Traub. Deste apenas veremos o metodode Laguerre, os outros podem ser encontrados no livro ”A. Ralston e P. Rabinowitz, A firstcourse in numerical analysis, 1978”, ou ”Householder A.S., The numerical treatment of a singlenonlinear equation, McGraw-Hill, 1970”. O problema de zeros de um polinomio ainda pode sertratado de forma matricial, calculando os autovalores de uma matriz associada ao polinomio,chamada de matriz ”companheira”.

Devemos ainda observar que se zj e um zero de p(z) pelo teorema do resto podemos escrever,

p(z) = (z − zj)(bn−1zn−1 + bn−2z

n−2 + · · ·+ b0) +Rj (27)

se Rj = 0 o polinomio q(z) = bn−1zn−1 + bn−2z

n−2 + · · · + b0) e o polinomio deflatado de graun − 1 isto e o polinomio cujos zeros sao identicos aos restantes n − 1 zeros de p(z). Assimuma vez que encontramos zj, uma raız de p(z) por algum metodo de encontrar raız, atraves doalgoritmo de Horner (divisao sintetica), podemos encontrar o polinomio deflatado q(z). Para

169

Page 171: Apostila CNumerico 2013

encontrarmos os zeros adicionais aplicamos um metodo para encontrar uma raız de q(z) eencontrarmos um novo polinomio deflatado de q(z) e assim sucessivamente. Este procedimentoe chamado de deflacao. Ainda notamos que para termos mais precisao nestas raızes, cada raızde um polinomio deflatado encontrada pode servir de chute inicial para algum metodo iterativo,como por exemplo o de Newton-Raphson.

8.2.1 O metodo de Newton para polinomios

Para usarmos o procedimento de Newton Raphson para localizar zeros de um polinomio P (x)e necessario avaliar seu valor em cada xi. Para o algoritmo ser computacionalmente eficiente,podemos calcular estes valores, a cada iteracao, usando o algoritmo de Horner. Por este proce-dimento fazemos uma decomposicao do polinomio

P (x) = anxn + an−1x

n−1 + ...+ a0 (28)

do tipo

P (x) = (x− x0)Q(x) + b0 (29)

onde

Q(x) = bnxn−1 + bn−1x

n−2 + ...+ b2x+ b1 (30)

assim se fizermos x = x0 em (29) temos que P (x0) = b0, alem disto se derivamos (29) temos,

P ′(x) = Q(x) + (x− x0)Q′(x) (31)

Agora fazendo x = x0 em (31) vemos que P ′(x0) = Q(x0). Assim aplicamos o metodo deHorner, agora em Q(x) e obtemos o valor de Q(x0) = P ′(x0).

O algoritmo de Horner e dado por:

ALGORITMO 8 (Horner) Para calcular o polinomio

P (x) = anxn + an−1x

n−1 + ...+ a1x+ a0

E e sua derivada em x0;ENTRADA Grau n; Coeficientes a0, a1, ..., an; x0.SAIDA y = P (x0); z = P ′(x0).

Passo 1 Faca

y = an; (calcula bn para P)z = an; (calcula bn−1 para Q)

Passo 2 Para j = n− 1, n− 2, ..., 1

170

Page 172: Apostila CNumerico 2013

FacaFaca y = x0y + aj; (Calcula bj para P.)

z = x0z + y. (Calcula bj−1 para Q.

Passo 3 Faca y = x0y + a0. (Calcula b0 para P.)

Passo 4 SAIDA (y, z);STOP.

A seguir, vamos exemplificar este procedimento.

Exemplo 55 Encontre uma aproximacao de um zero de

P (x) = 2x4 − 3x2 + 3x− 4

com ”chute”inicial x0 = −2 e usando os metodos de Newton para encontrar a raız e o de Hornerpara avaliar P (xi) e P ′(xi).

• Fazendo a primeira iteracao com x0 = −2,

2 0 -3 3 -4 Coef. de P (x)-2 2 -4 5 -7 10 = P (−2)

2 -8 21 -49 = Q(−2) = P ′(−2)

Note que do esquema acima temos que

Q(x) = 2x3 − 4x2 + 5x− 7 e P ′(−2) = Q(−2)

assim,

x1 = x0 −P (x0)

P ′(x0)= −2−

(10

−49

)≈ −1.796

• Repetindo o processo, agora para x1 temos,

2 0 -3 3 -4 Coef. de P (x)-1.796 2 -3.592 3.451 -3.197 1.7242 = P (−1.796)

2 -7.184 16.353 -32.565 = P ′(−1.796)

assim,

x2 = x1 −P (x1)

P ′(x1)= −1.7946−

(1.742

−32.565

)≈ −1.7425

x2, x3, etc... sao calculados da mesma forma.

O zero deste problema com cinco casas decimais e −1.73896.

171

Page 173: Apostila CNumerico 2013

Note que o polinomio chamado de Q depende da aproximacao que esta sendo usada etroca a cada iteracao. Se a n-esima iteracao, xN , no procedimento de Newton Raphson eaproximadamente um zero de P , entao

P (x) = (x− xN)Q(x) + b0 = (x− xN)Q(x) + P (xN) ≈ (x− xN)Q(x);

logo x − xN e uma aproximacao de um fator de P . Chamando x1 = xN uma aproximacao deum zero de P e Q1(x) um fator aproximado, temos:

P (x) ≈ (x− x1)Q1(x),

agora, podemos encontrar uma aproximacao de uma outra raız de P aplicando NR sobreQ1(x).Se P tem grau n, com n zeros reais, este procedimento e aplicado repetidamente, encon-trando assim (n − 2) aproximacoes de n − 2 zeros de P e um fator quadratico Qn−2 que seraresolvido pos Baskara. Este procedimento e chamado de deflacao.

Obs: Para melhorar a deflacao cada zero aproximado e usado como ”chute”e o metodo deNR, com este chute e aplicado novamente sobre P .

Exemplo 56 Vamos usar o metodo de Newton Raphson e deflacao para encontrar todas asraızes do seguinte polinomio:

p(x) = 10x4 + 11x3 + 20x2 + 45x− 12

Podemos ver que as raızes deste polinomio estao localizados em um anel, com raios:

R = 1 +45

10= 5.5 e r =

1

1 + 4512

= 0.210526

pela regra da troca de sinal podemos afirmar que possui exatamente uma raız real positiva e 3 ou1 raız real negativa. Ainda como 202 ≤ (45)(11), podemos afirmar que temos um par complexo.Assim temos 1 raız real positiva, 1 real negativa e um par complexo conjugado.

Para iniciarmos o metodo de Newton, sabemos que existe uma raız real entre 0.2 e 5.5.Como p(0.2) < 0 e p(1) > 0, vamos escolher x0 = 0.5.Repetindo o processo, agora para x1 temos,

10 11 20 45 -12 Coef. de P (x)0.5 10 16 28 59 17.5 = P (0.5)

10 21 38.5 78.25 = P ′(0.5)

x1 = 0.5− 17.5

78.25= 0.276357827

10 11 20 45 -12 Coef. de P (x)0.276358 10 13.763578 23.803673 51.578331 2.254076 = P (0.276358)

10 16.527157 28.371082 59.418902 = P ′(0.276358)

x2 = 0.276358− 2.254076

59.418902= 0.238422

172

Page 174: Apostila CNumerico 2013

10 11 20 45 -12 Coef. de P (x)0.238422 10 13.384225 23.191100 50.529280 0.047317 = P (0.238422)

10 15.768450 26.950654 56.954922 = P ′(0.238422)

x3 = 0.238422− 0.0473172

56.954922= 0.237592

10 11 20 45 -12 Coef. de P (x)0.23759172 10 13.375917 23.178007 50.506902 0.0000215768 = P (0.237591)

10 15.751834 26.920512 56.902993 = P ′(0.237591)

x4 = 0.23759172− 0.0000215768

56.90299317= 0.23759134

Desta forma aceitamos a primeira raız como 0.237591, fatorando usando o algoritmo deHorner temos:

10 11 20 45 -120.23759134 10 13.375913 23.178001 50.506892 4.48×10−12

Desta forma pelo teorema do resto temos que

p(x) = (x− 0.237591)(10x3 + 13.375913x2 + 23.178001x+ 50.506892) + 4.48× 10−12

Desprezando o resto obtemos uma fatoracao para p(x). Sabemos que o polinomio p(x) possuiuma raız real negativa entre −5.5 e −0.2, assim aplicando o metodo anterior sobre o polinomioq(x) e notando que q(0) = 850.506892 , q(−1) = 30.704804, q(−2) = −22.345456, q(−1.5) =12.0857, vemos que a raız esta entre −2 e −1.5. Vamos escolher x0 = −1.75. Assim seguindoprocedimento semelhante ao anterior obtemos:

x0 = −1.75

x1 = −1.7106575

x2 = −1.7097381

x3 = −1.7097376

x4 = −1.7097376

assumimos a raız como x4, assim fatoramos novamente:

p(x) = (x− 0.237591)(x+ 1.7097376)g(x) + r

os coeficientes de g(x) sao obtidos pelo algoritmo de Horner como:

10 13.375913 23.178001 50.506892-1.7097376 10 -3.721464 29.540727 -7.545 ×10−25

Desta forma temos que o resto e −7.545× 10−25

g(x) = 10x2 − 3.721464x+ 29.540727

cujas raızes sao 0.186073± 1.708640i. ou seja:

p(x) ≈ (x− 0.237591)(x+ 1.7097376)(x− 0.186073 + 1.708640i)(x− 0.186073− 1.708640i)

173

Page 175: Apostila CNumerico 2013

8.2.2 O Metodo de Bairstow

Vamos observar que se zj e um zero de p(z) pelo teorema do resto podemos escrever,

p(z) = (z − zj)(bn−1zn−1 + bn−2z

n−2 + · · ·+ b0) +Rj (32)

se Rj = 0 o polinomio q(z) = bn−1zn−1+bn−2z

n−2+· · ·+b0) e o polinomio deflatado de grau n−1isto e o polinomio cujos zeros sao identicos aos restantes n−1 zeros de p(z). Assim uma vez queencontramos zj, uma raız de p(z) por algum metodo de encontrar raız, atraves do algoritmo deHorner (divisao sintetica), podemos encontrar o polinomio deflatado q(z). Para encontrarmosos zeros adicionais aplicamos um metodo para encontrar uma raız de q(z) e encontaramos umnovo polinomio deflatado de q(z) e assim sucessivamente. Este procedimento e chamado dedeflacao. Devemos ainda notar que para termos mais precisao nestas raızes, cada raız de umpolinomio deflatado encontrada pode servir de chute inicial para algum metodo iterativo, comopor exemplo o de Newton-Raphson.

Ainda temos que observar que se p(z) e um polinomio real e nos precisamos encontrar raızescomplexas, elas aparecem aos pares conjugados, isto e, zj = xj + iyj e zj = xj − iyj e assim

(z − zj)(z − zj) = z2 + pjz + qj, onde pj = 2xj e qj = x2j + y2

j

e um fator de p(z). Assim como estamos interessados em usar aritmetica real, nos precisamosdesenvolver um algoritmo tipo o de Horner para dividirmos por um fator quadratico, isto e:

p(z) =(z2 + pjz + qj)(bn−2zn−2 + bn−3z

n−3 + · · ·+ b0) + b−1(z + pj) + b−2︸ ︷︷ ︸resto

=bn−2zn + (bn−3 + pjbn−2)zn−1 + (bn−4 + pjbn−3 + qjbn−2)zn−2 + . . .

+ (b−1 + pjb0 + qjb1)z + (b−2 + pjb−1 + qjb0)

(33)

Comparando as equacoes (26) e (26), vemos que os coeficientes bk sao dados por:

bn−2 = anbn−3 = an−1 − pjbn−2

bk = ak+2 − pjbk+1 − qjbk+2 k = n− 4, . . . , 0,−1,−2(34)

O resto tambem pode ser escrito na forma Rz + S onde:

R =b−1 = a1 − pjb0 − qb1

S =b−2 + pjb−1 = a0 − pjb−1 − qjb0 + pjb−1 = a0 − qjb0

(35)

Desta forma para z2 + pjz + qj ser um fator de p(z) devemos ter R(pj, qj) = S(pj, qj) = 0.Neste caso o quociente polinomial e um polinomio deflatado de grau n− 2.

174

Page 176: Apostila CNumerico 2013

Descricao do metodo de Bairstow

No caso de polinomios reais, sabemos que zeros complexos ocorrem aos pares conjugados.Assim, ao inves de procurarmos um zero por vez, podemos procurar por pares de zeros os quaisgeram um fator real quadratico. Esta e a ideia basica da iteracao de Bairstow, a qual assumeum bom chute inicial. Assim queremos encontrar p e q de forma que as funcoes R(p, q) =S(p, q) = 0 definidas por (35). Note que b1 e b0 tambem sao funcoes de p e q. Para resolverestas equacoes usando um metodo iterativo,onde assumimos uma aproximacao inicial p0 e q0,precisamos encontrar aproximacoes pi+1 e qi+1 de forma que pi+1 = pi +4pi e qi+1 = qi +4qide forma que R(pi+1, qi+1) = S(pi+1, qi+1) = 0 ou o mais proximo de zero possıvel.

Agora, desejamos que as trocas 4pi e 4qi que irao resultar em pi+1 e qi+1. Consequente-mente devemos expandir as duas equacoes

R(pi +4pi, qi +4qi) = 0

S(pi +4pi, qi +4qi) = 0(36)

usando expansao em serie de Taylor em torno de (pi, qi) e considerando apenas potencias de4pi e 4qi lineares, obtemos duas equacoes lineares aproximadas para 4pi e 4qi,

R(pi, qi) +

(∂R

∂p

)i

4pi +

(∂R

∂q

)i

4qi = 0

S(pi, qi) +

(∂S

∂p

)i

4pi +

(∂S

∂q

)i

4qi = 0

(37)

O sub-ındice i denota que as derivadas parciais sao calculadas no ponto pi, qi. Uma vez que ascorrecoes forem encontradas a iteracao pode ser repetida ate R e S serem suficientemente pertode zero. Este metodo e o metodo de Newton Raphson para duas variaveis. Podemos isolar pi+1

e qi+1

pi+1 =pi −1

D

[R∂S

∂q− S∂R

∂q

]p = piq = qi

qi+1 =qi −1

D

[S∂R

∂p−R∂S

∂p

]p = piq = qi

onde

D =

∣∣∣∣∂R∂p ∂S∂p

∂R∂q

∂S∂q

∣∣∣∣p = piq = qi

(38)

Agora usando (35)podemos escrever

175

Page 177: Apostila CNumerico 2013

∂R

∂p=− p∂b0

∂p− q∂b1

∂p− b0

∂R

∂q=− p∂b0

∂q− q∂b1

∂q− b1

∂S

∂p=− q∂b0

∂p∂S

∂q=p

∂b−2

∂q+ p

∂b−1

∂q

(39)

de (33) temos:

∂bk∂p

=− bk+1 − p∂bk+1

∂p− q∂bk+2

∂pk = n− 3, . . . , 0,−1

∂bn−2

∂p=∂bn−1

∂p= 0

∂bk∂q

=− bk+2 − p∂bk+1

∂q− q∂bk+2

∂qk = n− 4, . . . , 0,−1,−2

∂bn−3

∂q=∂bn−2

∂q= 0

(40)

Se definirmos dk pela relacao de recorrencia

dk =− bk+1 − pdk+1 − qdk+2 k = n− 3, . . . , 0,−1

dn−2 =dn−1 = 0(41)

entao segue de (40) que

∂bk∂p

= dk e∂bk−1

∂q= dk, k = n− 3, . . . , 0,−1 (42)

e finalmente que

∂R

∂p= d−1 ,

∂R

∂q= d0,

∂S

∂p= −qd0 ,

∂S

∂q= d−1 + pd0. (43)

Desta forma as equacoes (38) que

pi+1 =pi −1

D[b−1(d−1 + pid0)− (b−2 + pib−1)d0]

qi+1 =qi −1

D[(b−2 + pib−1)d−1 + d0b−1qi]

onde

D =d2−1 + pid0d−1 + qid

20.

(44)

176

Page 178: Apostila CNumerico 2013

Exemplo 57 Use a iteracao de Bairstow para encontrar um fator quadratico de z3 − z − 1comecando com p0 = q0 = 1.

Vamos arranjar os calculos na forma:

(pi, qi)an bn−2 dn−3

an−1...

......

......

...... d0

... b0 d−1

... b−1

a0 b−2

usando (34) e (41) pra calcular as ultimas duas colunas. Para este problema temos, usandoas equacoes dadas em (44),

(p0, q0) (1, 1)1 1 −10 −1 2−1 −1−1 1

(p1, q1)(

43, 2

3

)1 1 −10 −4

383

−1 19

−1 − 727

e finalmente p2 = 1.32246, q3 = 0.7544, onde os valores reais sao p = 1.3247 e q = 0.7549.Para encontrarmos as raızes devemos usar a formula de Baskara para resolver z2 + pz+ q = 0.

Quando o metodo de Bairstow converge, possui como caracterıstica convergencia rapidacomo o metodo de Newton-Raphson. Porem, como usual em metodos para resolver equacoesnao lineares simultaneas, convergencia requer uma boa aproximacao inicial. A vantagem epoder encontrar raızes complexas, mesmo que o valor de partida seja um numero real.

8.2.3 O Metodo de Laguerre

O metodo de Laguerre e um algoritmo desenvolvido para encontrar raız de um polinomio. Estemetodo possui uma otima caracterıstica, a convergencia e garantida, independendo do valorinicial. Este algoritmo aproxima raızes reais ou complexas e, no caso da raız procurada sersimples, possui ordem de convergencia igual a 3. Aqui, vamos dar uma ideia deste metodo.Para isto vamos lembrar que pelo teorema fundamental da algebra, todo o polinomio p(z) podeser fatorado atraves de suas raızes, ou

p(z) = an(z − z1)(z − z2)...(z − zn). (45)

Da igualdade acima, aplicando a funcao logaritmo dos dois lados da igualdades, temos

ln |p(z)| = ln |an|+ ln |(z − z1)|+ ln |(z − z2)|+ ...+ ln |(z − zn)|. (46)

177

Page 179: Apostila CNumerico 2013

Usando a equacao acima vamos definir as funcoes A(x),

A(z) =d

dzln |p(z)| = 1

(z − z1)+

1

(z − z2)+ ...+

1

(z − zn), (47)

ou de outra forma,

A(z) =d

dzln |p(z)| = p′(z)

p(z)(48)

e

B(z) = − d2

dz2ln |p(z)| = 1

(z − z1)2+

1

(z − z2)2+ ...+

1

(z − zn)2, (49)

ou de outra forma,

B(z) = − d2

dz2ln |p(z)| = − d

dz

(p′(z)

p(z)

)= −p(z)p′′(z)− (p′(z))2

p2(z)= A2(z)− p′′(z)

p(z)(50)

Agora, vamos supor estamos procurando a raız z1 e que a diferenca entre esta raız e a nossaestimativa z e um numero complexo a, isto e a = z−z1. Vamos ainda supor que todas as outrasraızes se afastem de nossa estimativa z pelo menos b isto e |b| < |z − zi|, i = 2, 3, ..., n, como|b| > |a|. Assim, podemos estimar o valor de a substituindo as estimativas feitas nas equacoes(47) e (49), ou

A(z) ≈ 1

a+n− 1

b, (51)

e

B(z) ≈ 1

a2+n− 1

b2, (52)

O algoritmo de Laguerre, aproxima o valor de a, resolvendo o sistema nao linear, para a e b,dado pelas equacoes (51). A solucao deste sistema e dada por,

a =n

A(z)±√

(n− 1)(nB(z)− A2(z)), (53)

e assim o proximo z e calculado como

z = z + a. (54)

Devemos observar que a aritmetica empregada neste metodo e complexa. A ordem de conver-gencia deste metodo e 3 se z1 e uma raız simples. Existem modificacoes deste algoritmo parao caso de raız multipla. O algoritmo e feito usando para A(z) e B(z) as relacoes (48), (48) e aformula (54), onde a e calculado como (53)

178

Page 180: Apostila CNumerico 2013

Algorıtmo de Laguerre

• Escolhemos um ponto de partida z0

• Para k = 0, 1, 2, ...

– Calculamos A(zk) como,

A(zk) =p′(zk)

p(zk)

– Calculamos B(zk como,

B(zk) = A2(zk)−p′′(zk)

p(zk)

– Calcule ak como,

ak =n

A(zk)±√

(n− 1)(nB(zk)− A2(zk))

onde no denominador, para evitarmos erro pela diminuicao de numeros muito pro-ximos e consequente erro de arredondamento, devemos escolher o sinal + ou − deforma que o denominador possua o maior valor absoluto.

– Facazk+1 = zk + ak.

• Repetimos o procedimento ate o erro absoluto (ou relativo) ser suficientemente pequeno,ou depois de exceder um numero pre determinado de iteracoes.

A maior vantagem do metodo de Laguerre e que sua convergencia e quase sempre garantidapara algumas raızes do polinomio, nao importando qual o valor escolhido para z0 e, alem disto,aproxima tanto valores de raızes reais quanto complexas. Ele e usado em pacotes computacionaiscomo, Numerical Recipes na sub-rotina zroots e o metodo de Laguerre modificado e usado pelopacote NAG F77 library na sub-rotina C02AFF. Sobre a famılia de metodos de Laguerre ver oartigo: Ljiljana D. Petkovic, Miodrag S. Petkovic e Dragan Zivkovic, ”Hansen-Patrick’s FamilyIS of Laguerre’s Type”, Novi Sad J. Math, Vol 331, pp 109-115, 2003.

Exemplo 58 Vamos considerar o polinomio P (z) = 4x3 + 3z2 + 2z + 1. Neste caso n = 3.Vamos escolher

1. z0 = −1

• A(−1) = −4.0000000000

• B(−1) = 7.0000000000

• CalculandoC1 = A+

√2(3B − A2) = −0.8377223398

C2 = A−√

2(3B − A2) = −7.1622776607

179

Page 181: Apostila CNumerico 2013

• z1 = z0 + n/C2 = −0.5811388300

2. z1 = −0.5811388300

• A(−0.5811388300) = 38.9736659610

• B(−0.5811388300) = 1639.6623695156

• CalculandoC1 = A+

√2(3B − A2) = 1639.6623695156

C2 = A−√

2(3B − A2) = −43.4889373220

• z2 = z1 + n/C1 = −0.6058431463

3. z2 = −0.6058431463

• A(−0.6058431463) = −73747.0441427632

• B(−0.6058431463) = 5.4383991072× 109

• CalculandoC1 = A+

√2(3B − A2) = 73742.4185458994

C2 = A−√

2(3B − A2) = −221236.5068314258

• z3 = z2 + n/C2 = −0.6058295861

4. z3 = −0.6058295861

• A(−0.6058295861) = 4.7182194357× 1014

• B(−0.6058295861) = 2.2261594643× 1029

• CalculandoC1 = A+

√2(3B − A2) = 1.4154658307× 1015

C2 = A−√

2(3B − A2) = −4.7182194357× 1014

• z4 = z3 + n/C1 = −0.6058295861

Agora vamos fazer z0 = 0

1. z0 = 0

• A(−1) = 2.0000000000

• B(−1) = −2.0000000000

• CalculandoC1 = A+

√2(3B − A2) = 2.0000000000 + 4.4721400000i

C2 = A−√

2(3B − A2) = 2.0000000000− 4.4721400000i

180

Page 182: Apostila CNumerico 2013

• z1 = z0 + n/C1 = −0.2500000000 + 0.5590170000i

2. z1 = −0.2500000000 + 0.5590170000i

• A(−0.2500000000 + 0.5590170000i) = −4.0000000000

• B(−0.2500000000 + 0.5590170000i) = 16.0000000000− 21.4663000000i

• CalculandoC1 = A+

√2(3B − A2) = 6.1936800000− 6.3175200000i

C2 = A−√

2(3B − A2) = −14.1937000000 + 6.3175200000i

• z2 = z1 + n/C2 = −0.0735872000 + 0.6375370000i

3. z2 = −0.0735872000 + 0.6375370000i

• A(−0.0735872000 + 0.6375370000i) = −520.8960000000 + 272.4890000000i

• B(−0.0735872000 + 0.6375370000i) = 196952.0000000000− 286081.0000000000i

• CalculandoC1 = A+

√2(3B − A2) = 523.2090000000− 277.6130000000i

C2 = A−√

2(3B − A2) = −1565.0000000000 + 822.5920000000i

• z3 = z2 + n/C2 = −0.0720852000 + 0.6383270000i

4. z3 = −0.0720852000 + 0.6383270000i

• A(−0.0720852000 + 0.6383270000i) = −6.1144273889× 108 + 1.1804919396× 109

• B(−0.0720852000 + 0.6383270000i) = −1.0196989997× 1018− 1.4436064535× 1018i

• CalculandoC1 = A+

√2(3B − A2) = 6.1144274120× 108 − 1.1804919447× 109i

C2 = A−√

2(3B − A2) = −1.8343282189× 109 + 3.5414758241× 109i

• z4 = z3 + n/C2 = −0.0720852000 + 0.6383270000i

8.3 Solucao Numerica de Sistemas de Equacoes Nao Li-

neares

A solucao de sistemas nao lineares de equacoes deve, sempre que possıvel ser evitado. Isto asvezes e feito atraves de uma linearizacao do problema, isto e o sistema nao linear e aproximadolocalmente por um sistema linear. Quando esta solucao aproximada nao satisfaz, devemosatacar o problema ”de frente”. Em geral os metodos para resolucao de sistemas nao lineares,sao adaptacoes dos metodos usados na resolucao de uma equacao nao linear. Aqui iremosapresentar a extensao do metodo de Newton e o metodo da secante aplicados na resolucao desistemas nao lineares.

181

Page 183: Apostila CNumerico 2013

8.3.1 O metodo de Newton

Vamos considerar um sistema nao linear de equacoes descrito por:

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

......

fn(x1, x2, ..., xn) = 0

(55)

onde cada funcao fi para i = 1, 2, ..., n esta definida de Rn → R e X = (x1, x2, ..., xn)T e umvetor definido em Rn. Se notarmos a funcao F(x) = (f1(x), ..., fn(x))T , onde F : Rn → Rn,podemos reescrever o sistema (55) como:

F(x) = 0. (56)

No caso unidimensional, o metodo de Newton escolhe uma funcao φ(x) de forma que o metododo ponto fixo definido por

g(x) = x− φ(x)f(x)

possua uma convergencia quadratica. Neste caso a escolha e 1/f ′(x), se f ′(x) 6= 0. No casomatricial, devemos escolher uma matriz

A(x) =

a11(x) a12(x) ... a1n(x)a21(x) a22(x) ... a2n(x)

......

. . ....

a41(x) a42(x) ... a4n(x)

de forma que

G(x) = x−A−1(x)F(x)

possua convergencia quadratica. Podemos mostrar, que esta escolha recai sobre o Jacobiano deF(X). Isto e podemos provar que:

Se p uma solucao de G(x) = x e existe um numero δ > 0 de forma que:

1. Se ∂gi(x)∂xj

, para i = 1, 2, .., n e j = 1, 2, ..., n, e contınua uma vizinhanca Nδ =

x/||x− p|| < δ;2. Se ∂2gi(x)

(∂xj∂xk), e contınua e |∂2gi(x)/(∂xj∂xk)| ≤ M para algum M constante

sempre que x ∈ Nδ, para cada i = 1, 2, .., n, j = 1, 2, ..., n e k = 1, 2, ..., n;

3. Se ∂gi(p)∂xk

= 0, para i = 1, 2, .., n, k = 1, 2, .., n.

Entao existe um numero δ ≤ δ de forma que a sequencia gerada por x(k) = G(x(k−1))converge quadraticamente para p para qualquer escolha de x(0), desde que ||x(0) −p|| < δ. Alem disto,

||x(k) − p|| ≤ n2M

2||x(k−1) − p||2∞, para cada k ≥ 1.

182

Page 184: Apostila CNumerico 2013

Usando este teorema, podemos mostrar que A(x) = J(F(x)) onde J(F(x)) e o Jacobiano deF(x) definido como:

J(F(x)) =

∂f1∂x1

(x) ∂f1∂x2

(x) ... ∂f1∂xn

(x)∂f2∂x1

(x) ∂f2∂x2

(x) ... ∂f2∂xn

(x)...

.... . .

...∂fn∂x1

(x) ∂fn∂x2

(x) ... ∂fn∂xn

(x)

(57)

Desta forma, o metodo de Newton para sistemas e definido por:

x(k) = G(x(k−1)) = x(k−1) − J−1(x(k−1))F(x(k−1)). (58)

Este metodo e o Metodo de Newton para sistemas nao lineares e em geral possui convergenciaquadratica, se o valor inicial for suficientemente proximo da solucao e se J−1(p) existe. Agrande fragilidade do metodo de Newton esta na necessidade de calcular o Jacobiano e aindainverte-lo. Na pratica a inversa do Jacobiano e evitada separando esta operacao em dois passos:

1. Encontrar um vetor Y que satisfaca o sistema linear J(x(k − 1))Y = −F(x(k − 1)).

2. Calcular x(k) como sendo x(k) = x(k−1) + Y.

Exemplo 59 Vamos considerar o seguinte sistema nao linear de equacoes:3x− cos(yz) = 1

2

x2 − 81(y + 0.1)2 + sin(z) = −1.06

e−xy + 20z = 10π−33

Para aplicarmos o metodo de Newton, vamos considerar a funcao F (x, y, z),

F (x, y, z) =

3x− cos(yz)− 1

2

x2 − 81(y + 0.1)2 + sin(z) + 1.06

e−xy + 20z − 10π − 3

3

,

com Jacobiano dado por:

J(F (x, y, z)) =

3 z sin(yz) y sin(yz)2x −162(0.1 + y) cos(z)

−e−xyy −e−xyx 20

Se escolhemos o vetor inicial Y0 = (0.1 , 0.1, −0.1)T entao

F (Y0) =

−1.19995−2.26983

8.4623

, J(F (Y0)) =

3 0.000999983 −0.0009999830.2 −32.4 0.995004

−0.099005 −0.099005 20

183

Page 185: Apostila CNumerico 2013

Sabemos que Yk = Yk−1 − (J(F (Yk−1)))F (Yk−1), ou Yk = Yk−1 − G, onde G e um vetorencontrado pela resolucao do sistema linear J(Y0)G = F (Y0), isto e: 3 0.000999983 −0.000999983

0.2 −32.4 0.995004−0.099005 −0.099005 20

g1

g2

g3

=

−1.19995−2.26983

8.4623

Resolvendo este sistema por Crammer temos:

g1 =det1

det=

777.229

−1943.71= −0.39987

g2 =det1

det=−156.533

−1943.71= 0.0805332

g3 =det1

det=−819.312

−1943.71= 0.42152

onde:

det1 =

∣∣∣∣∣∣−1.19995 0.000999983 −0.000999983−2.26983 −32.4 0.9950048.46203 −0.099005 20

∣∣∣∣∣∣ = 777.229

det2 =

∣∣∣∣∣∣3 −1.19995 −0.000999983

0.2 −2.26983 0.995004−0.099005 8.46203 20

∣∣∣∣∣∣ = −156.533

det3 =

∣∣∣∣∣∣3 0.000999983 −1.19995

0.2 −32.4 −2.26983−0.099005 −0.099005 8.46203

∣∣∣∣∣∣ = −819.312

det =

∣∣∣∣∣∣3 0.000999983 −0.000999983

0.2 −32.4 0.995004−0.099005 −0.099005 20

∣∣∣∣∣∣ = −1943.71

Desta forma, temos

Y1 = Y0 −G =

0.499870.0194668−0.52152

Seguindo o mesmo procedimento temos:

Y0 =

0.10.1−0.1

, Y1 =

0.499870.0194668−0.52152

, Y2 =

0.5000140.00158859−0.523557

,

Y3 =

0.50.0000124448−0.523598

, Y4 =

0.57.757857× 10−10

−0.523599

...

184

Page 186: Apostila CNumerico 2013

EXERCıCIOS

1. Encontre a raız positiva de f(x) = x3 − e−x.

(a) pelo metodo da bisseccao

(b) pelo metodo de Newton

(c) pelo metodo da secante

R: Esta funcao possui apenas um zero positivo x = 0.77288.

2. Encontre o valor da raız cubica de 75 com precisao de seis casas decimais, usando ometodo de Newton.

(R: 4.217163).

3. Encontre uma raız real de f(x) = x3− 3.23x2− 5.54x+ 9.84 usando o metodo da secantecom x0 = 0.9 e x1 = 1.0.

R: 1.23.

4. A funcao f(x) = x2 − 2e−xx + e−2x possui uma raız real multipla. Encontre esta raızusando o metodo de Newton modificado com x0 = 1. Tente tambem aplicar o metodode Newton tradicional com o mesmo chute inicial e compare os o numero de iteracoesnecessarias para obter a mesma precisao.

R: 0.567143

5. Encontre as primeiras cinco raızes positivas de f(x) = tan x−2x. Cuidado, pois a tangentetende para mais e menos infinito muitas vezes no domınio que inclui estas raızes.

R: 1.16556, 4.60422, 7.78988, 10.94994, 14.10172.

6. Encontre todas as raızes de f(x) = x4 − 7.223x3 + 13.447x2 − 0.672x− 10.223.

R: -0.713967, 1.57251, 2.17178, 4.19268.

7. Encontre aproximacoes com precisao de 10−4 de todos os zeros reais de f(x) = x3−2x2−5usando o metodo de Muller.

R: 2.69065,−0.345324± 1.31873i.

8. P (x) = 10x3 − 8.3x2 + 2.295x− 0.21141 = 0 possui uma raız x = 0.29. Use o metodo deNewton com aproximacao inicial x0 = 0.28 para tentar encontrar a raız. O que acontece?

Problemas ComputacionaisBisseccao

1. Escreva um programa teste do algoritmo da bisseccao e teste com:

(a) x−1 − tanx, [0, π/2]

185

Page 187: Apostila CNumerico 2013

(b) x−1 − 2x, [0, 1]

(c) (x3 + 4x2 + 3x+ 5)/(2x3 − 9x2 + 18x− 2), [0,4]

2. Encontre a raız de

x8− 36x7 + 546x6− 4536x5 + 22449x4− 67284x3 + 118124x2− 109584x+ 40320 = 0

no intervalo [5.5; 6.5]. Troque -36 por -36.001 e repita.

Newton

1. Escreva um programa para resolver a equacao x = tanx. Encontre as raızes proximas de4.5 e 7.7.

2. A equacao 2x4 + 24x3 + 61x2 − 16x + 1 = 0 possui dois zeros perto de 0, 1. Encontre-ospelo metodo de Newton.

3. Use o metodo de Newton com precisao dupla, para encontrar o zero negativo de f(x) =ex − 1.5− tan−1 x. (x0 = −7)

4. No exercıcio anterior, investigue a sensibilidade da raız para perturbacoes no termo cons-tante.

5. Programe o metodo de Newton com aritmetica complexa e teste para:

(a) f(z) = z + sin z − 3, z0 = 2− i(b) f(z) = z4 + z2 + 2 + 3i, z0 = 1

secante

1. Escreva um subprograma para o metodo da secante, assumindo que dois valores iniciaissejam dados. Teste esta rotina em:

(a) sin(x/2)− 1

(b) ex − tanx

(c) x3 − 12x2 + 3x+ 1

2. Use expansoes em Taylor para f(x + h) e f(x + k), derive a seguinte aproximacao paraf ′(x):

f ′(x) =k2f(x+ h)− h2f(x+ k) + (h2 − k2)f(x)

(k − h)kh

3. Programe e teste um refinamento do metodo da secante que usa a aproximacao de f ′(x)dada no exercıcio acima. Isto e use esta aproximacao na formula de Newton. Tres pontosde inicializacao sao necessarios, os dois primeiros arbitrarios e o terceiro calculado pelometodo da secante.

186

Page 188: Apostila CNumerico 2013

Zeros de Polinomios

1. Escreva um programa cuja entrada e os coeficientes de um polinomio p e um pontoespecıfico z0, e que produza como saıda os valores de p(z0), p′(z0) e p′′(z0) (use Horner).Teste o algorıtimo calculando p(4) para p(z) = 3z5 − 7z4 − 5z3 + z2 − 8z + 2.

2. Escreva uma rotina computacional para o metodo de Newton+Horner com deflacao paraencontrar todas as raızes de um polinomio. Teste a rotina para

p(x) = x8−36x7+546x6−4536x5+22449x4−67284x3+118124x2−109584x+40320 = 0

As raızes corretas sao 1, 2, 3, 4, 5, 6, 7, 8. A seguir resolva a mesma equacao fazendo ocoeficiente de x7 como 37. Observe como uma perturbacao pequena pode ocasionar umagrande troca nas raızes. Assim as raızes sao funcoes instaveis dos coeficientes.

187

Page 189: Apostila CNumerico 2013

Capıtulo 9

Solucoes Numericas de EquacoesDiferencias Ordinarias

9.1 Introducao

Existe uma enorme variedade de aproximacoes numericas para a solucao de ED. Nao linearida-des em ED e condicoes de contorno ou condicoes iniciais, muitas vezes requerem modificacoesnestas tecnicas numericas a serem empregadas na solucao. Muitas vezes tecnicas numericaspodem ser escolhidas sem realmente olharmos para a equacao diferencial, o que e muito contras-tante com ao problema de encontrar uma solucao analıtica exata para uma ED. Ate problemaslineares podem algumas vezes apresentar obstaculos enormes para encontrar uma tecnica aceita-vel para encontrar solucao analıtica. Ale’m disto algumas EDO e muitas EDP sao virtualmenteimpossıveis de serem resolvidas de forma analıticas. Muitas vezes e possıvel aproximar solu-coes para estes problemas, mas a precisao da aproximacao raramente podem ser propriamenteavaliadas.

Tecnicas numericas para EDO sao muito poderosas e podem ser aplicados em uma grandevariedade de problemas. Mas e preciso ter em mente que existem dificuldades inerentes a elasmesmas, como iremos ver mais adiante. Alem disto, como tecnicas numericas sao estas fer-ramentas tao poderosas e flexıveis, e natural que sejam aplicadas na resolucao de equacoesextremamente complexas e muitas vezes mal comportadas. Em tais circunstancias, e inteira-mente razoavel esperar que dificuldades inerentes ao problema, que esta sendo resolvido, sejammanifestadas de uma forma indesejavel na aplicacao destes metodos tecnicas numericos. Destaforma tecnicas numericas para EDO nunca devem ser consideradas como uma prova infalıvel,e seus resultados nao devem ser aceitos como corretos sem um cuidadoso exame para cadaproblema importante.

Vamos agora identificar duas grandes categorias nas quais os problemas envolvendo EDdevem estar envolvidos. Estas duas categorias sao chamadas de problemas de valor inicial eproblemas de valor de contorno. Problemas de valor inicial sao aqueles para os quais condicoessao especificadas apenas em um valor da variavel independente. Estas condicoes sao chamadasde condicoes iniciais. Por simplicidade, muitas vezes dizemos que este valor e o zero. Umproblema tıpico de condicao inicial e dado por:

188

Page 190: Apostila CNumerico 2013

Ad2y

dt2+B

dy

dt+ Cy = g(t), y(0) = y0,

dy

dt(0) = V0 (1)

Este problema poderia descrever a resposta forcada de um oscilador harmonico simples como tempo.

Problemas de condicao de contorno sao aqueles para os quais as condicoes sao especificadasem dois valores distintos da variavel independente. Um problema tıpico de valor de contornopoderia ter a forma,

d2y

dx2+D

dy

dx+ Ey = h(x), y(0) = y0, y(L) = yl (2)

Este problema poderia descrever a distribuicao de temperatura em estado estacionario emum problema unidimensional de transferencia de calor com temperatura y0 na extremidadex = 0 e yl em x = L.

9.2 Problemas de Valor Inicial

Qualquer problema de valor inicial pode ser representado como um conjunto de uma ou maisEDO de primeira ordem, cada uma com uma condicao inicial. Por exemplo, o problema dooscilador harmonico simples descrito por,

Ad2y

dt2+B

dy

dt+ Cy = g(t), y(0) = y0,

dy

dt(0) = V0 (3)

pode ser reescrito com a mudanca de variaveis z = dydt

, como

dy

dt= z

dz

dt= −B

Az − C

Ay + g(t)

(4)

com as condicoes iniciais:

y(0) = y0

z(0) = V0

(5)

Para qualquer EDO de ordem n pode similarmente ser reduzidos a um sistema de n EDOde primeira ordem acopladas. Assim neste capıtulo vamos estudar:

189

Page 191: Apostila CNumerico 2013

• Metodos para encontrar a solucao aproximada y(t) para problemas da forma:

dydt

= f(t, y) a ≤ t ≤ by(a) = α

• Extensao destes metodos para resolucao aproximada do sistema de EDO de primeiraordem,

dy1dt

= f1(t, y1, y2, ..., yn)dy2dt

= f2(t, y1, y2, ..., yn...

...dyndt

= fn(t, y1, y2, ..., yn)

(6)

para a ≤ t ≤ b e sujeito as condicoes iniciais:

y1(a) = α1, y2(a) = α2, ... , y3(a) = α3 (7)

• Relacao entre um problema de valor inicial de ordem n e um sistema de EDO de primeiraordem.

9.3 Teoria Elementar de Problemas de Valor Inicial

Definicao 1: Uma funcao f(t, y) e dita de Lipschitz na variavel y ∈ D ⊂ <2, se existe umaconstante, chamada de constante de Lipschitz, L > 0 de forma que

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

sempre que (t, y1), (t, y2) ∈ D.

Definicao 2: Um conjunto D ⊂ <2 e dito comvexo se sempre que (t, y1), (t, y2) ∈ D o ponto((1− λ)t1 + λt2 , (1− λ)y1 + λy2) pertenca a D para cada λ, 0 ≤ λ ≤ 1.

Teorema 41 Suponha que f(t, y) esta definida num conjunto convexo D ⊂ <2. Se existe umaconstante L > 0 de forma que,

∣∣∣∣∂f∂y (t, y)

∣∣∣∣ ≤ L para todo (t, y) ∈ D, (8)

entao f satisfaz a condicao de Lipschitz sobre D na variavel y para a constante L. (Prova:Teorema do valor medio)

190

Page 192: Apostila CNumerico 2013

Como proximo teorema iremos mostrar, que muitas vezes e de grande interesse determinarquando a funcao envolvida em um problema de valor inicial satisfaz as condicoes de Lipschitzna sua segunda variavel, e a condicao (8) e geralmente muito mais simples de aplicar que adefinicao. Deve ser notado que o teorema (41) nos da apenas condicoes suficientes para umacondicao valer.

O proximo teorema e uma versao do teorema fundamental de existencia e unicidade paraEDO de primeira ordem.

Teorema 42 Sejam D = (t, y)/a ≤ t ≤ b,−∞ ≤ y ≤ ∞, e f(t, y) uma funcao contınuasobre D. Se f satisfaz a condicao de Lipschitz em D na variavel y, entao o problema de valorinicial

dy

dt= f(t, y) a ≤ t ≤ b

y(a) = α

tem solucao unica y(t) para a ≤ t ≤ b. (Prova em livros de EDO).

Exemplo 60 Seja o problema de valor inicial:

y′ = 1 + t sin(ty), 0 ≤ t ≤ 2, y(0) = 0.

Deixando t constante e aplicando o TVM na funcao f(t, y) = 1 + t sin(ty) temos que paray1 < y2 existe um numero ξ, y1 < ξ < y2 de forma que

t2 cos(ξt) =∂f

∂y(t, ξ) =

f(t, y2)− f(t, y1)

y2 − y1

daı, para todo y1 < y2,

|f(t, y2)− f(t, y1)| = |y2 − y1|∣∣t2 cos(ξt)

∣∣ ≤ 4 |y2 − y1|

assim, f satisfaz a condicao de Lipschtz na variavel y, com L = 4. Alem disto f(t, y) e contınuaquando 0 ≤ t ≤ 2 e −∞ ≤ y ≤ ∞, logo, pelo teorema (42) possui solucao unica.

Nota 4 Para desenvolvermos metodos numericos de resolucao de problema de valor inicial,gostarıamos de saber quando um problema tem a propriedade de que pequenas perturbacoes nosdados produzam pequenas mudancas na solucao!

Definicao 3: O problema de valor inicial

dy

dt= f(t, y), a ≤ t ≤ b, y(a) = α (9)

e dito bem-posto (well-posed) se:

1. Possui solucao unica y(t)

191

Page 193: Apostila CNumerico 2013

2. ∀ε > 0, existe uma constante positiva k de forma que sempre que |ε0| < ε e |δ(t)| < ε,uma unica solucao do problema

dz

dt= f(t, y) + δ(t) a ≤ t ≤, z(a) = α + ε0 , (10)

existe com, |z(t)− y(t)| < kε para todo a ≤ t ≤ b.

O problema dado pela equacao (10) e muitas vezes chamado de problema perturbado as-sociado ao problema (9) Metodos numericos sempre estarao relacionados com a resolucao deum problema perturbado, uma vez que qualquer erro introduzido na representacao ira resultarem um problema deste tipo. A nao ser que o problema original seja bem posto, nao existe amınima razao para esperar que a solucao numerica de um problema perturbado ira se aproximarda solucao do problema original. (falar de convergencia e estabilidade). O proximo teoremaestabelecera condicoes que asseguram que um problema de valor inicial e bem posto. Sua provapode ser encontrada em livros de EDO.

Teorema 43 Seja D = (t, y)/a ≤ t ≤ b,−∞ ≤ y ≤ ∞. Se f e contınua e satisfaz acondicao de Lipschtz na variavel y soble D, entao o problema de valor inicial

dy

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

e bem posto providenciando que a funcao δ e contınua.

Exemplo 61 Sejam D = (t, y)/0 ≤ t ≤ 1,−∞ ≤ y ≤ ∞ e o problema de valor inicial

dy

dt= −y + t+ 1 0 ≤ t ≤ 1, y(0) = 1, (11)

como f(t, y) = −y + t + 1 temos que∣∣∣∂fδy ∣∣∣ = 1, logo pelo teorema 1 f(t, y) satisfaz a condicao

de Lipschtz com L = 1. Como f e contınua sobre D temos que o problema e bem posto.Considere agora, o problema perturbado,

dz

dt= −z + t+ 1 + δ 0 ≤ t ≤ 1, z(0) = 1 + ε0, (12)

onde δ e ε0 sao constantes. As solucoes dos problemas (11) e (12) sao

y(t) = e−t + t e z(t) = (1 + ε0 − δ)e−t + t+ δ

respectivamente. Tambem e facil verificar que se |δ| < ε e |ε0| < ε, entao

|y(t)− z(t)| =∣∣(δ − ε0)e−t − δ

∣∣ ≤ |ε0|+ |δ|∣∣1− e−t∣∣ ≤ 2ε

para todo t, o que concorda com o teorema acima.

192

Page 194: Apostila CNumerico 2013

9.4 Solucoes Numericas: Metodos de Passo Sımples

Vamos considerar o problema de valor inicial:

dy

dt= f(t, y) a ≤ t ≤ b (13)

y(a) = α (14)

Note que muitos destes problemas podem ser resolvidos de forma analıtica, mas muitosoutros nao. Assim necessitamos desenvolver solucoes numericas para estes problemas.

9.4.1 O Metodo de Euler

Euler desenvolveu este metodo em 1768 usando aproximacao em diferencas para frente (forward).Aqui vamos desenvolve-lo pela serie de Taylor. O objetivo deste metodo e obter uma aproxi-macao para o PVI bem posto

dy

dt= f(t, y), a ≤ t ≤ b, y(a) = α (15)

Na verdade uma aproximacao contınua da solucao y(t) nao sera obtida; Ao inves disto, seraogeradas em varios valores, chamados de pontos da malha, sobre o intervalo[a, b]. Uma vez quea solucao e obtida neste ponto, ela podera ser obtida em outros pontos por interpolacao.

Primeiramente vamos dividir o intervalo [a, b] em um numero finito de sub-intervalos pelaintroducao de uma malha (mesh ou grid points) a = t0 < t1 < ... < tN = b. Vamos considerarque os pontos desta malha sao igualmente afastados entre si, apesar que se nao fossem naohaveria dificuldade maior. Vamos chamar este espacamento de h = (b − a)/N de tamanho dopasso assim

ti = a+ ih, para i = 0 : N (16)

Vamos supor que y(t) seja a unica solucao de (15) e que possua derivada de segunda ordemcontınua em [a, b]. Agora, pelo teorema de Taylor, temos,

y(ti+1) = y(ti) + (ti+1 − ti)y′(ti+1) +(ti+1 − ti)2

2y′′(ξi) (17)

para algum numero ξi, com ti < ξi < ti+1. Agora, como h = ti+1 − ti temos que

y(ti+1) = y(ti) + h y′(ti+1) +h2

2y′′(ξi) (18)

e como y(t) satisfaz a EDO (15) temos que

193

Page 195: Apostila CNumerico 2013

y(ti+1) = y(ti) + h f(t, y(ti)) +h2

2y′′(ξi) (19)

O metodo de Euler despreza o termo de erro da expressao acima, construindo wi ' y(ti)para cada i = 11, 2, ..., N , simplesmente retirando o termo de erro na equacao (19). Assim,

w0 = αwi+1 = wi +hf(ti, yi) para i = 0 : N

(20)

A equacao (20) e chamada de equacao em diferenca associada ao metodo de Euler.

• ALGORITMO DE EULER:Dados: a, b, N, w0 = αFazer: t0 = a, h = (b−a)

N

Para: i = 1 : N

wi = wi−1 + hf(ti−1, wi−1))

ti = ti−1 + h

Saıda: i = 1 : N , (wi, ti)

Para interpretar o metodo de Euler geometricamente, note que quando wi e uma aproxima-cao boa de y(ti), a afirmativa que o problema e bem posto implica que

f(ti, wi) ≈ y′(ti) = f(ti, y(ti))

O grafico da funcao e da aproximacao feita pelo metodo de Euler esta na figura (9.1), feitaem varios passos.

194

Page 196: Apostila CNumerico 2013

Figura 9.1: geometricamente o metodo de Euler aproxima a solucao em ti atraves da tangente a curva emti−1

Exemplo 62 Vamos encontrar aproximacoes do PVI

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

faca N = 10.Assim, h = 0.1 e ti = 0.1i.Usando o fato que f(t, y) = −y + t+ 1 temos:

w0 =1

wi =wi−1 + h(−wi−1 + ti−1 + 1)

=wi−1 + 0.1(−wi−1 + 0.1(i− 1) + 1)

=0.9wi−1 + 0.01(i− 1) + 0.1

para i = 1, 2, ..., 10.

ti wi yi Erro = |wi − yi|0.0 1.000000 1.000000 0.00.1 1.000000 1.004837 0.0048370.2 1.010000 1.018731 0.0087310.3 1.029000 1.040818 0.0118180.4 1.056100 1.070320 0.0142200.5 1.090490 1.106531 0.0160410.6 1.131441 1.148812 0.0173710.7 1.178297 1.196585 0.0182880.8 1.230467 1.249329 0.0188620.9 1.287420 1.306570 0.0191501.0 1.348678 1.367879 0.019201

195

Page 197: Apostila CNumerico 2013

A solucao exata de (21) e y(t) = t + e−t. A tabela (62) mostra uma comparacao entre osvalores aproximados em ti e os valores reais.

Note que o crescimento do erro cresce um pouco com o crescimento do valor de ti. Estecrescimento de erro controlado e consequencia da estabilidade do metodo de Euler, que implicaespera-se que o erro devido ao arredondamento nao deve crescer mais que uma forma linear.

Apesar do metodo de Euler nao ser preciso o suficiente para ser garantido seu uso na pratica,ele e suficientemente elementar para nos analisarmos o erro que e produzido com sua aplicacao.

Para derivarmos um limite de erro para o metodo de Euler, precisamos dos seguintes resul-tados:

Lema 1 Para todo x ≥ −1 e qualquer numero positivo m,

0 ≤ (1 + x)m ≤ emx. (22)

PROVA: Aplicando o teorema de Taylor com f(x) = ex, em torno de x0, e n = 1, temos,

ex = 1 + x+1

2x2eξ

onde ξ esta entre zero e x. assim,

0 ≤ 1 + x ≤ 1 + x+1

2x2eξ = ex

e como 1 + x ≥ 0, 0 ≤ (1 + x)m ≤ (ex)m = emx.

Lema 2 Se s e t sao numeros reais positivos, aiki=0 e uma sequencia satisfazendo a0 ≥ −t/s,e

ai+1 ≤ (1 + s)ai + t, para cada i = 0, 1, 2, ..., k, (23)

then ai+1 ≤ e(i+1)s(ts

+ a0

)− t

s.

Teorema 44 Suponha que f e uma funcao contınua e que satisfaz a condicao de Lipschitz coma constante L sobre o conjunto

D = (t, y)|a ≤ t ≤ b,−∞ < y <∞,

e que exista uma constante M com a propriedade qu

y′′(t)| ≤M para todo t ∈ [a, b].

Seja y(t) a solucao unica do problema de valor inicial

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

e w0, w1, ...wN as N aproximacoes geradas pelo metodo de Euler para algum inteiro positivo N .Entao

|y(ti − wi| ≤hM

2L[eL(ti−a) − 1] (24)

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

196

Page 198: Apostila CNumerico 2013

9.5 Metodos de Taylor de Ordem Superior

Como o objetivo dos Metodos Numericos e determinar aproximacoes suficientemente precisasde um PVI, com o mınimo de esforco, nos precisamos ter uma ferramenta para comparar aeficiencia dos varios metodos de aproximacao. O primeiro instrumento que iremos considerare chamado de erro de truncamento local (ETL). O ETL em um determinado passo mede aquantidade pala qual a solucao exata da Equacao diferencial falha para satisfazer a equacao emdiferencas que esta sendo usada para a aproximacao.

Definicao 12 O metodo em diferencas

w0 =α

wi+1 =wi + hφ(ti, yi) para cada i = 0, 1, ..., N − 1(25)

possui erro de truncamento local dado por

τi(h) =yi − yi−1

h− φ(ti−1, wi−1) para cada i = 1, 2, ..., N (26)

Assim, para o metodo de Euler, o erro de truncamento Local no iesimo passo para o problema

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

e

τi(h) =yi − yi−1

h− f(ti−1, yi−1) para cada i = 1, 2, ..., N.

onde como usual, yi = y(ti) denota o valor exato da solucao em ti. Este erro e dito erro localporque mede a precisao do metodo em um passo especıfico, assumindo que no passo anteriorera exato. Pode-se notar que este erro depende da Equacao Diferencial, do tamanho do passoe de um passo particular na aproximacao.

Considerando que para o metodo de Euler temos y(ti+1) = y(ti) + hf(ti, y(ti)) + h2

2y′′(ξi),

vemos que para o metodo de Euler

τi(h) =h

2y′′(ξi) para algum ξi, onde ti−1 < ξi < ti, (27)

e quando sabemos que y′′(t) e limitado por uma constante M em [a, b], isto implica que

|τi(h)| ≤ h

2M.

Assim o ETL do metodo de Euler e O(h). Uma forma de selecionar metodos de equacoesem diferencas para aproximar a solucao de uma EDO e escolher de tal forma que o ETL seja

197

Page 199: Apostila CNumerico 2013

O(hp) para p tao grande quanto possıvel, mantendo o numero e complexidade de operacoesdentro de um limite razoavel.

Como o metodo de Euler foi derivado usando o teorema de Taylor com n = 2 para aproximara solucao da equacao diferencial, nossa primeira tentativa em encontrar metodos para melhoraras propriedades de convergencia dos metodos de diferencas e extender esta mesma regra paraum n maior.

Suponha que a solucao y(t) de um PVI

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

possui (n+ 1) derivadas contınuas. Se expandimos a solucao y(t) em serie de Taylor em tornode ti e calcularmos em ti+1 temos,

y(ti+1) = y(ti) + hy′(ti) +h2

2y′′(ti) + ...+

hn

n!y(n)(ti) +

hn+1

(n+ 1)!y(n+1)(ξi) (28)

para algum ξi, ti < ξi < ti+1.Diferenciacoes sucessivas da solucao ,y(t), nos da,

y′(t) =f(t, y(t))

y′′(t) =f ′(t, y(t))

y(k)(t) =f (k−1)(t, y(t)).

Substituindo estes resultados na equacao (28) temos,

y(ti+1) = y(ti)+hf((ti, y(ti)))+h2

2f(t′i, y(ti)))+...+

hn

n!f (n−1)(ti, y(ti))+

hn+1

(n+ 1)!f (n)(ξi, y(ξi)).

(29)

A equacao em diferenca correspondente a equacao (29) e obtida nao considerando o ultimotermo envolvendo ξi. Este metodo e chamado de Metodo de Taylor de ordem n:

w0 =α,

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

onde T (n)(ti, wi) =f(ti, wi) +h

2f(ti, wi) + ...+

hn−1

n!f (n−1)(ti, wi)

(30)

Note que o metodo de Euler e o metodo de Taylor de ordem um. Note tambem que paraaplicarmos os metodos de Taylor de ordem superior, temos que derivar (n− 1) vezes a funcaof(t, y(t)) em relacao a t. Assim, se f(t, y) nao for uma funcao muito simples o metodo torna-seinviavel.

198

Page 200: Apostila CNumerico 2013

9.6 Metodos de Runge Kutta

• Metodos de Taylor

– Alta ordem de Erro de Truncamento Local (ETL)

– Porem requer calculo das derivadas de f(t, y), oque consome tempo computacionale pode ser complicado

– Quase nunca sao usados na pratica

• Metodos de Runge Kutta

– Usa o ETL de alta ordem dos metodos de Taylor

– Elimina o calculo das derivadas de f(t, y)

9.6.1 Introducao

Formulas do tipo de Runge Kutta estao entre as formulas mais largamente usadas para a solucaonumerica de EDO. Suas vantagens incluem:

• Sao facilmente programaveis

• Possuem boas propriedades de estabilidade

• O tamanho do passo pode ser trocado livremente sem complicacoes

• Ele se auto inicia

Suas desventagens sao em primeiro lugar que computacionalmente podem precisar de maistempo que outros metodos para obter a mesma precisao e a estimativa do erro local nao saosimples de serem obtidas. Muitas vezes o metodo de Runge Kutta e usado para resolverproblemas inteiros, mas analistas numericos recomendam seu uso como inicializador de metodosmais eficientes de multipasso como o preditor corretor.

Preliminares Matematicos

Teorema 45 (Taylor em duas variaveis)Suponha que f(t, y) e todas as suas derivadas de ordem menor ou igual que n + 1 sao

contınuas em

D = (t, y)/a ≤ t ≤ b, c ≤ y ≤ d

199

Page 201: Apostila CNumerico 2013

. Seja (t0, y0) ∈ D. Para todo (t, y) em D, existe ξ entre t e t0 e η entre y e y0 com

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

onde

Pn(t, y) = f(t0, y0) +

[(t− t0)

∂f

∂t(t0, y0) + (y − y0)

∂f

∂y(t0, y0)

]

+

[(t− t0)2

2

∂2f

∂t2(t0, y0) + (t− t0)(y − y0)

∂2f

∂t∂y(t0, y0) +

(y − y0)2

2

∂2f

∂y2(t0, y0)

]+...

+

[1

n!

n∑j=0

(n

j

)(t− t0)n−j(y − y0)n−j

∂nf

∂tn−j∂yj(t0, y0)

]

and

Rn(t, y) =1

(n+ 1)!

n+1∑j=0

(n+ 1

j

)(t− t0)n+1−j(y − y0)j

∂n+1f

∂tn+1−j∂yj(ξ, η)

A funcao Pn e chamada de Polinomio de Taylor de grau n em duas variaveis para a funcao fem torno de (t0, y0), e Rn(t, y) o resto associado a Pn(t, y).

Exemplo 63 O polinomio de Taylor de segundo grau para f(t, y) =√

4t+ 12y − t2 − 2y2 − 6em torno de (2, 3) e encontrado a partir de

P2(t, y) = f(t0, y0) +

[(t− t0)

∂f

∂t(t0, y0) + (y − y0)

∂f

∂y(t0, y0)

]+

[(t− t0)2

2

∂2f

∂t2(t0, y0) + (t− t0)(y − y0)

∂2f

∂t∂y(t0, y0) +

(y − y0)2

2

∂2f

∂y2(t0, y0)

]Calculando cada uma destas derivadas parciais em (t0, y0) = (2, 3), P2(t, y) reduz-se a:

P2(t, y) = 4− 1

4(t− 2)2 − 1

2(y − 3)2.

Este polinomio fornece uma aproximacao precisa de f(t, y) quando t esta perto de 2 e y estaperto de 3, por exemplo:

P2(2.1, 3.1) = 3.9925 e f(2.1, 3.1) = 3.9962.

Entretanto, a precisao da aproximacao deteriora rapidamente quando (t, y) se move para longede (2, 3).

200

Page 202: Apostila CNumerico 2013

Figura 9.2: funcoes f(t, y) e P2(t, y)

O metodo de Runge-Kutta evita a dificuldade de derivacao da funcao f(t, y) que aparecenos metodos de Taylor de ordem superior. Para isto, assim ao inves de usar a serie de Tayloreste metodo aproxima o polinomio de Taylor por uma combinacao de valores da funcao f(t, y)em diversos pontos. Vamos ilustrar este procedimento fazendo a derivacao do metodo de RungeKutta de segunda ordem.

Derivacao de um metodo de Runge Kutta de ordem 2Para mostrar qual o procedimento seguido no desenvolvimento dos metodos de Runge-Kutta,vamos desenvolver o chamado de Metodo do Ponto Medio, que e um Metodo de Runge-Kutta de Segunda Ordem.

1. Primeiramente vamos supor que o polinomio de Taylor de segunda ordem possa ser apro-ximado por uma combinacao de valores da funcao f(t, y). Neste caso vamos supor que

T (2) = a1f(t+ α1, y + β1)

2. Para determinar os valores das constantes a1, α1 e beta1 de forma que a1f(t+ α1, y+ β1)aproxime o polinomio de Taylor

T (2) = f(t, y) +h

2f ′(t, y)

com erro menor ou igual a O(h2), vamos primeiramente encontrar uma expressao para aderivada de f(t, y) em relacao a t, lembrando que y = y(t),

f ′(t, y) =df

dt(t, y) =

∂f

∂t(t, y) +

∂f

∂y(t, y).y′(t) e y′(t) = f(t, y).

3. Substituindo a expressao acima no pol. de Taylor, temos

T (2)(t, y) = f(t, y) +h

2

∂f

∂t(t, y) +

h

2

∂f

∂y(t, y).f(t, y). (31)

201

Page 203: Apostila CNumerico 2013

4. Por outro lado, vamos expandindo a funcao f(t + α1, y + β1) em serie de Taylor, temosque o pol. de Taylor de grau 1 em torno de (t, y) para esta expansao e dada por:

a1f(t+α1, y+β1) = a1f(t, y)+a1α1∂f

∂t(t, y)+a1β1

∂f

∂y(t, y)+a1.R1(t+α1, y+β1), (32)

onde o termo de erro e dado por,

R1(t+ α1, y + β1) =α2

1

2

∂2f

∂t2(ξ, η) + α2

1β1∂2f

∂t∂y(ξ, η) +

β21

2

∂2f

∂y2(ξ, η) (33)

5. Agora, igualando os coeficientes de f e suas derivadas nas equacoes (31) e (32),

f(t, y) : a1 = 1;

∂f

∂t(t, y) : a1α1 =

h

2∂f

∂y(t, y) : a1β1 =

h

2f(t, y)

Desta forma os parametros a1, α1 e β1 sao determinados de forma unica como:

a1 = 1, α1 =h

2e β1 =

h

2f(t, y)

logo

T (2)(t, y) = f

(t+

h

2, y +

h

2f(t, y)

)−R1

(t+

h

2, y +

h

2f(t, y)

)e da equacao (33) obtemos a seguinte formula para o erro:

R1

(t+

h

2, y +

h

2f(t, y)

)=h2

8

∂2f

∂t2(ξ, η) +

h2

4f(t, y)

∂2f

∂t∂y(ξ, η) +

h2

8

∂2f

∂y2(ξ, η). (34)

6. Assim, se todas as derivadas de segunda ordem da f sao limitadas, pela formula do errodada acima pela eq. (34) temos que este metodo e O(h2).

Assim, a equacao em diferencas para o metodo do Ponto Medio e:

w0 = α,

wi+1 = wi + hf

(ti +

h

2, wi +

h

2f(ti, wi)

)para i = 0, 1, ..., N − 1. (35)

202

Page 204: Apostila CNumerico 2013

Note, uma vez que somente 3 parametros estao presentes na expressao a1f(t + α1, y + β1),e que todos sao necessarios para ”casar”os termos com T (2), precisaremos de uma forma maiscomplicada para satisfazer as condicoes requeridas para metodos de Taylor de mais alta ordem.A forma mais apropriada com quatro constantes para aproximar,

T (3) = f(t, y) +h

2f ′(t, y) +

h2

6f ′′(t, y)

e

a1f(t, y) + a2f(t+ α2, y + δ2f(t, y)); (36)

Fazendo os algebrismos necessarios, vemos que mesmo com este numero de parametros aindanao temos flexibilidade suficiente para ”casar”o termo

h2

6

[∂f

∂y(t, y)

]2

f(t, y)

proveniente da expansao de (h2/6)f ′′(t, y). Desta forma o melhor que podemos obter commetodos vindos de (36) sao metodos com ETL de O(h2). Os dois metodos mais importantesde Runge Kutta de segunda ordem sao:

1. Metodo de Euler Modificado: Corresponde a escolha de a1 = a2 = 12

e α2 = δ2 = h,assim sua equacao em diferencas e:

w0 = α,

wi+1 = wi +h

2(f(ti, wi) + f(ti+1, wi + hf(ti, wi))) para i = 0, 1, ..., N − 1.(37)

2. Metodo de Heun: Corresponde a escolha de a1 = 14, a2 = 3

4e α2 = δ2 = 2

3h, assim sua

equacao em diferencas e:

w0 = α,

wi+1 = wi +h

4

(f(ti, wi) + 3f(ti +

2

3h,wi +

2

3hf(ti, wi))

)para i = 0, 1, ..., N − 1.(38)

Exemplo 64 Nao vamos aplicar os metodos de Runge Kutta de ordem 2 no nosso exemplo,y′ = −y + t + 1 0 ≤ t ≤ 1, y(0) = 1 pois por sua natureza, obtemos para todos a mesmaequacao em diferencas que o metodo de Taylor de ordem 2. Para comparar os varios metodosvamos aplica-lo ao PVI,

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

cuja solucao exata e dada por, y(t) = −2e−t + t2 − 2t+ 3.

Considerando N = 10, h = 0.1 e ti = 0.1i, as equacoes de diferenca sao:

203

Page 205: Apostila CNumerico 2013

Ponto Medio wi+1 = 0.905wi + 0.00095i2 + 0.001i+ 0.09525Euler Modificado wi+1 = 0.905wi + 0.00095i2 + 0.001i+ 0.0955Heun wi+1 = 0.905wi + 0.00095i2 + 0.001i+ 0.095333333

para i = 0, 1, ...9, onde w0 = 1 em todos os casos.

ti Exato Ponto Medio Erro Euler Mod. Erro Heun Erro0.0 1.000000 1.000000 1.000000 1.0000000.1 1.000325 1.000250 7.52× 10−5 1.000500 1.75× 10−4 1.000333 8.10× 10−6

0.2 1.002538 1.002426 1.12× 10−4 1.002902 3.64× 10−4 1.002595 4.65× 10−5

0.3 1.008363 1.008246 1.18× 10−4 1.008927 5.63× 10−4 1.008473 1.09× 10−4

0.4 1.019360 1.019264 9.75× 10−5 1.020129 7.69× 10−4 1.019551 1.91× 10−4

0.5 1.036939 1.036882 5.62× 10−5 1.037917 9.78× 10−4 1.037227 2.88× 10−4

0.6 1.062377 1.062379 2.00× 10−6 1.063564 1.19× 10−3 1.062774 3.97× 10−4

0.7 1.096829 1.096903 7.33× 10−5 1.098226 1.40× 10−3 1.097344 5.14× 10−4

0.8 1.141342 1.141497 1.55× 10−4 1.142944 1.60× 10−3 1.141979 6.37× 10−4

0.9 1.196861 1.197105 2.44× 10−4 1.198665 1.80× 10−3 1.197625 7.64× 10−4

1.0 1.264241 1.264580 3.39× 10−4 1.266242 2.00× 10−3 1.265134 8.93× 10−4

Tabela 9.1: Tabela resultado do exercıcio (64)

Nota 5 T (3)(t, y) pode ser aproximada com erro O(h3), mas por ser complicado o algebrismoe por quase nao ser usado na pratica nao vamos apresenta-lo.

O metodo mais comum de Runge Kutta e o Runge Kutta de Quarta Ordem cuja equacaoem diferenca e dada por:

w0 = α,

k1 = hf(ti, wi),

k2 = hf(ti +h

2, wi +

1

2k1),

k3 = hf(ti +h

2, wi +

1

2k2), (39)

k4 = hf(ti+1, wi + k3),

wi+1 = wi +1

6(k1 + 2k2 + 2k3 + k4),

para i = 0, 1, ....N − 1. O ETL deste metodo e O(h4), se a solucao y(t) possuir cinco derivadascontınuas. O motivo da introducao de k1, k2, k3 e k4 no metodo e eliminar repeticao de calculosna segunda variavel de f(t, y).

204

Page 206: Apostila CNumerico 2013

ALGORITMO 9 (Runge Kutta Quarta Ordem)Aproxima a solucao do problema de valor inicial

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

em N + 1 pontos igualmente espacados no intervalo [a, b]:ENTRADA: a, b; N ; α.SAIDA: Aproximacao w de y em N + 1 valores de t.PASSO 1: Faca

h = (b− a)/N ;t = a;w = α ;

SAıDA: (t, w).

PASSO2: Para i = 1, 2, ...N (3-5)

PASSO 3: Faca:K1 = hf(t, w),K2 = hf(t+ h

2, w + 1

2K1),

K3 = hf(t+ h2, w + 1

2K2),

K4 = hf(t+ h,w + k),PASSO 4: Facaw = w + (K1 + 2K2 + 2K3 +K4)/6;t = a+ ih

PASSO 5: SAıDA: (t, w).

Exemplo 65 Usando o metodo de RK de quarta ordem obtenha uma aproximacao para o PVI:

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

com h = 0.1, N = 10 e ti = 0.1i.

Exemplo 66 Considere o exemplo

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

Para resolver este problema foi aplicado o metodo de Euler com h = 0.025, o metodo de Eulermodificado com h = 0.05 e o metodo de Runge-Kutta de quarta ordem com h = 0.1. Osresultados obtidos estao comparados na tabela abaixo com os valores exatos nos pontos 0.1, 0.2,0.3, 0.4 e 0.5 da malha.

Cada uma destas tecnicas requer 20 calculos funcionais para determinar os valores liatadosna tabela. Neste exemplo o metodo RK de quarta ordem e claramente superior.

205

Page 207: Apostila CNumerico 2013

ti Valor Exato RK quarta ordem Erro0.0 1.0000000000 1.00000000000.1 1.0048374180 1.0048375000 8.200× 10−8

0.2 1.0187307531 1.0187309014 1.483× 10−7

0.3 1.0408182207 1.0408184220 2.013× 10−7

0.4 1.0703200460 1.0703202889 2.429× 10−7

0.5 1.1065306597 1.1065309344 2.747× 10−7

0.6 1.1488116360 1.1488119344 2.984× 10−7

0.7 1.1965853038 1.1965856187 3.149× 10−7

0.8 1.2493289641 1.2493292897 3.256× 10−7

0.9 1.3065696597 1.3065699912 3.315× 10−7

1.0 1.3678794412 1.3678797744 3.332× 10−7

Tabela 9.2: Tabela dos resultados do exercıcio (65)

Metodo de Metodo de Runge Kutta Valort Euler Euler Modificado Quarta Ordem Exato

0.1 0.096312 0.095123 0.09516250 0.0951625820.2 0.183348 0.181198 0.18126910 0.1812692470.3 0.262001 0.259085 0.25918158 0.2591817790.4 0.333079 0.329563 0.32967971 0.3296799540.5 0.397312 0.393337 0.39346906 0.393469340

Tabela 9.3: Tabela dos resultados obtidos para o exercıcio (66)

206

Page 208: Apostila CNumerico 2013

9.7 Controle de Erro e o Metodo de Runge-Kutta-Fehlberg

Metodos adaptativos sao aqueles que incorporam um procedimento para adaptar o numero e aposicao dos nos da malha com a qual se efetua a aproximacao, garantindo assim que o erro detruncamento nunca ultrapasse um limita especificado.

Vamos observar que um metodo ideal de diferencas

wi+1 = wi + hiφ(ti, wi, hi) , i = 0, N − 1 (40)

para aproximar o problema de valor inicial

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

deve, com uma tolerancia ε > 0, ter a propriedade de que a quantidade mınima de pontos damalha sera usada para assegurar que o erro global |y(ti)− wi| nao exceda ε para i = 0 : N .Este metodo existe e escolhe os pontos da malha nao igualmente espassados, escolhendo umnumero mınimo de pontos na malha de forma a controlar o erro global.Agora, vamos examinar uma tecnica usada para o controle do erro global deste metodo e umaforma eficiente para a escolha apropriada da malha.

Geralmente nao podemos determinar o erro global de um metodo, logo iremos trabalharcom o erro de truncamento local (ETL). Mais tarde, veremos que sob algumas hipoteses o errolocal de truncamento de um metodo e o erro global possuem relacao entre si, estabelece-se queo limite sobre o ETL produz um igual limite sobre o erro global. Usando metodos de ordemdistinta podemos estimar o ETL e selecionar, com esta estimativa, um tamanho de passo idealpara controlar o erro global.

Vamos, agora, mostrar como podemos estimar o ETL em um metodo de diferencas finitas.Assim vamos considerar:

1. Vamos considerar um metodo de ordem n obtido por serie de Taylor de ordem n da forma:

y(ti+1) = y(ti) + hφ(ti, y(ti), h) +O(hn+1),

que produz as aproximacoes

w0 = α (42)

wi+1 = wi + hφ(ti, wi, h) para i > 0 (43)

com erro de truncamento τi+1(h) = O(hn).

2. Vamos tambem considerar um metodo de ordem superior, derivado do metodo de Taylorde ordem n+ 1.

y(ti+1) = y(ti) + hφ(ti, y(ti), h) +O(hn+2),

207

Page 209: Apostila CNumerico 2013

que produz as aproximacoes

w0 = a (44)

wi+1 = wi + hφ(ti, wi, h) para i > 0 (45)

com erro de truncamento τi+1(h) = O(hn+1).

3. Vamos supor que wi ≈ y(ti) ≈ wi e vamos selecionar um passo fixo h para gerar asaproximacoes wi+1 e ˜wi+1 de y(ti+1). Com estes dados, calculamos:

(a) Encontrando uma expressao de calculo simples para aproximar o ETL

i.

τi+1(h) =y(ti+1)− y(ti)

h− φ(ti, y(ti), h)

=y(ti+1)− wi

h− φ(ti, wi, h)

=y(ti+1)− [wi + hφ(ti, wi, h)]

h

=1

h(y(ti+1)− wi+1).

ii. De forma similar temos

τi+1(h) =1

h(y(ti+1)− wi+1)

iii. E como consequencia, diminuindo os ıtens acima temos a seguinte relacao

τi+1(h) = τi+1(h) +1

h(wi+1 − wi+1)

iv. Como τi+1(h) eO(hn+1), maior que a de τi+1(h) que eO(hn), a parte significativa,conforme a expressao acima, de τi+1(h) deve vir do outro termo, isto e: 1

h(wi+1−

wi+1), isto e uma aproximacao do erro de truncamento local pode ser dada por:

τi+1(h) =1

h(wi+1 − wi+1).

4. Como ajustar o passo para mante-lo dentro de um limite especificado?

(a) τi+1(h) e de ordem O(hn), isto e existe uma constante K de forma que

τi+1(h) ≈ Khn

(b) Na expressao acima substituindo h por qh temos,

τi+1(h) ≈ K(qh)n = qn(Khn) ≈ qnτi+1(h) ≈ qn

h(wi+1 − wi+1).

208

Page 210: Apostila CNumerico 2013

(c) Assim para limitarmos o ETL τi+1(qh) por ε, escolhemos q de forma que

qn

h|wi+1 − wi+1| ≈ |τi+1(qh)| ≤ ε;

isto e

q ≤(

εh

|wi+1 − wi+1|

)1/n

.

Uma tecnica popular que usa a relacao para controle de erro e chamada de metodo de Runge-Kutta-Fehlberge consiste em usar o metodo de Runge Kutta com erro de truncamento localde ordem cinco,

wi+1 = wi +16

135k1 +

6656

12825k3 +

28561

56430k4 −

9

50k5 +

2

55k6,

para estimar o erro local de truncamento para o metodo de Runge-Kutta de quarta ordem,

wi+1 = wi +25

216k1 +

1408

2565k3 +

2197

4104k4 −

1

5k5,

onde

k1 = hf(ti, wi),

k2 = hf

(ti +

h

4, wi +

1

4k1

),

k3 = hf

(ti +

3h

8, wi +

3

32k1 +

9

32k2

),

k4 = hf

(ti +

12h

13, wi +

1932

2197k1 −

7200

2197k2 +

7296

2197k3

),

k5 = hf

(ti + h,wi +

439

216k1 − 8k2 +

3680

513k3 −

845

4104k4

),

k6 = hf

(ti +

h

2, wi −

8

27k1 + 2k2 −

3544

2565k3 +

1859

4104k4 −

11

40k5

).

Note que

wi+1 − wi+1 =1

360k1 −

128

4275k3 −

2197

75240k4 +

1

50k5 +

2

55k6.

Uma vantagem deste metodo e que so seis estimativas da funcao f sao necessarias por passo.

209

Page 211: Apostila CNumerico 2013

Em teoria de controle de erro, um valor inicial de h foi usado no i-esimo passo para encon-trar os primeiros valores de wi+1 e wi+1, os quais nos levaram a determinacao do q para estepasso, e entao os calculos sao repetidos. Este procedimento requer duas vezes o numero de es-timativas funcionais por passo que sem o controle de erro. Na pratica o valor de q a ser usado eescolhido de forma um pouco diferente para fazer o numero crescente de estimativas funcionaisvaler a pena. O valor de q determinado no i-esimo passo e usado para dois propositos:

1. Para rejeitar, se necessario, a escolha inicial de h no i-esimo passo e repetir os calculosusando qh.

2. Prever uma escolha inicial adequada para h no passo (i+ 1).

Em funcao do preco pago na avaliacao das funcoes ao repertirmos os passos, q tende a serescolhido de forma conservadora. A escolha comum para RK4 e

q =

(εh

2|wi+1 − wi+1|

)1/4

= 0.84.

(εh

|wi+1 − wi+1|

)

Algorıtmo Runge-Kutta-Fehlberg

Para aproximar o PVI y′ = f(t, y), a ≤ t ≤ b e y(a) = α com ETL na parte interna de umadada tolerancia:ENTRADA: Pontos Finais a,b. Condicao Inicial α. Tolerancia TOL. Passo maximo e mınimohmax e hmin.SAIDA: t, w, h onde w aproxima y(t) e o passo h foi usado ou uma mensagem que o passomınimo excedeu.PASSO 1: Faca t = a; w = α; h = hmax; FLAG=1;SAIDA (t, w).PASSO 2: Enquanto (FLAG=1) siga os passos 3-11.

PASSO 3: Faca: k1 = hf(t, w). k2 = hf

(t+ h

4, w + 1

4k1

). k3 = hf

(t+ 3h

8, w + 3

32k1 + 9

32k2

). k4 = hf

(t+ 12h

13, w + 1932

2197k1 − 7200

2197k2 + 7296

2197k3

). k5 = hf

(t+ h,w + 439

216k1 − 8k2 + 3680

513k3 − 845

4104k4

). k6 = hf

(t+ h

2, w − 8

27k1 + 2k2 − 3544

2565k3 + 1859

4104k4 − 11

40k5

)PASSO 4: Faca R = 1

h

∣∣ 1360k1 − 128

4275k3 − 2197

75240k4 + 1

50k5 + 2

55k6

∣∣ (note que R =1h|wi+1 − wi+1|)

PASSO 5: Se (R ≤ TOL entao siga os passos 6 e 7.

210

Page 212: Apostila CNumerico 2013

PASSO 6: Faca t = t + h; (Aproximacao aceita) . w = w +25216k1 + 1408

2565k3 + 2197

4104k4 − 1

5k5.

PASSO 7: SAIDA (t, w, h).

PASSO 8: Faca δ = 0.84(TOL/R)1/4

PASSO 9: Se δ ≤ 0.1 entao faca h = 0.1h; se δ ≥ 4 entao faca h = 4h; casocontrario faca h = δh. (Calcule um novo h).

PASSO 10: Se h > hmax entao faca h = hmax.PASSO 11: Se t ≥ b entao faca FLAG = 0; se t+ h > b entao faca h = b− t; se h < hminentao faca FLAG = 0;. SAIDA: h mınimo foi excedido. Procedimento completado sem sucesso.PASSO 12: Este procedimento esta completoPARE

Exemplo 67 O algorıtmo acima sera usado para aproximar a solucao do problema de valorinicial

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

cuja solucao exata e dada por t(t) = (t + 1)2 − 0.5et. Fazendo TOL = 10−5, hmax = 0.25,hmin = 0.01.

RKF-4 RKF-5ti yi = y(ti) wi hi Ri |yi − wi| wi |yi − wi|0 0.5 0.5 0.5

0.2500000 0.9204873 0.9204886 0.2500000 6.2×10−6 1.30×10−6 0.9204870 2.424×10−7

0.4865522 1.3964884 1.3964910 0.2365522 4.5×10−6 2.60×10−6 1.3964900 1.510×10−6

0.7293332 1.9537446 1.9537488 0.2427810 4.3×10−6 4.20×10−6 1.9537477 3.136×10−6

0.9793332 2.5864198 2.5864260 0.2500000 3.8×10−6 6.20×10−6 2.5864251 5.242×10−6

1.2293332 3.2604520 3.2604605 0.2500000 2.4×10−6 8.50×10−6 3.2604599 7.895×10−6

1.4793332 3.9520844 3.9520955 0.2500000 7.0×10−7 1.11×10−5 3.9520954 1.096×10−5

1.7293332 4.6308127 4.6308268 0.2500000 1.5×10−6 1.41×10−5 4.6308272 1.446×10−5

1.9793332 5.2574687 5.2574861 0.2500000 4.3×10−6 1.73×10−5 5.2574871 1.839×10−5

2.0000000 5.3054720 5.3054896 0.0206668 1.77×10−5 5.3054896 1.768×10−5

Tabela 9.4: Tabela solucao do exercıcio (67)

211

Page 213: Apostila CNumerico 2013

9.8 Metodos de Multipasso

Metodos de um passo

Nos metodos de um passo a aproximacao para o ponto ti+1 da malha apenas envolveinformacoes do ponto anterior ti. Estes metodos nao retem a informacao sobre tipara uso posterior, para aproximar ti+2 por exemplo. Resumindo toda informacaousada por estes metodos para aproximar a solucao em ti+1 esta contida dentro dointervalo ti, ti+1.

Note que as informacoes sobre os pontos t0, t1, ..., Ti estao disponıveis antes de calcularmos aaproximacao da solucao em ti+1. Alem disto sabemos que o erro |wj − f(tj)| tende a crescercom o aumento de j, desta forma parece razoavel desenvolver um metodo que use estes dadosanteriores, mais precisos, para aproximar a solucao em ti+1.

Metodos de Multipasso

Sao metodos que usam informacao em mais de um ponto anterior da malha paradeterminar a aproximacao no proximo ponto.

Definicao 13 Um metodo para resolver o PVI

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

e aquele cuja equacao em diferencas para encontrar a aproximacao wi+1 no ponto da malha ti+1

pode ser representada por uma equacao do tipo,

wi+1 = am−1wi+am−2wi−1+...+a0wi+1−m+h[bmf(ti+1, wi+1)+bm−1f(ti, wi)+...+b0f(ti+1−m, wi+1−m)]

(47)

onde m e um inteiro e i = m− 1,m, ..., N − 1, os valores iniciais

w0 = α, w1 = α1, ...wm−1 = αm−1

sao dados e h = (b− a)/N .

Se bm = 0 temos um metodo explıcito ou abertoSe b0 6= 0 temos um metodo implıcito ou fechado.

Exemplo 68 As equacoes

w0 = α, w1 = α1, w2 = α2, w3 = α3,

wi+1 = wi +h

24[55f(ti, wi)− 59f(ti−1, wi− 1) + 37f(ti−2, wi−2 − 9f(ti−3, wi−3)] (48)

212

Page 214: Apostila CNumerico 2013

para i = 3, 4, ..., N−1 define um metodo explıcito de quatro passos e e conhecido como tecnicade Adams-Bashforth de quarta ordem.As equacoes

w0 = α, w1 = α1, w2 = α2,

wi+1 = wi +h

24[9f(ti+1, wi+1) + 19f(ti, wi)− 5f(ti−1, wi− 1) + f(ti−2, wi−2] (49)

para i = 3, 3, 4, ..., N−1 define um metodo implıcito de tres passos e e conhecido como tecnicade Adams-Moulton de quarta ordem.

Os valores iniciais em ambos os casos (48) e (49) devem ser conhecidos, geralmente assumi-mos que w0 = α e geramos os outros valores pelo metodo de Runge Kutta (normalmente RK4)ou outro metodo de um passo. Note ainda que nos metodos implıcitos temos que resolver umaequacao implıcita, o que nem sempre pode ser feito sem apelarmos para metodos numericos.

Derivacao dos Metodos MultistepVamos integrar no intervalo [ti, ti+1] a equacao (46), daı,∫ ti+1

ti

y′(t)dt =

∫ ti+1

ti

f(t, y(t))dt

isto e

y(ti+1)− y(ti) =

∫ ti+1

ti

f(t, y(t))dt

Sem conhecermos y(t) a integral acima nao pode ser calculada, assim vamos aproximar afuncao f por seu polinomio interpolador obtido do dados iniciais, (t0, w0), (t1, w1), ...(ti, wi).Alem disto, vamos assumir que wi ≈ y(ti), assim,

y(ti+1) ≈ wi +

∫ ti+1

ti

P (t)dt (50)

Qualquer polinomio interpolador pode ser usado para calcular P (t) mas o mais convenientee a formula de Newton de diferencas para tras, assim para derivarmos a tecnica de Adams-Bashforth de m passos devemos encontrar o polinomio interpolador Pm−1 que passa atravesde (ti, y(ti)), (ti−1, y(ti−1)), ..., (ti+1−m, y(ti+1−m)). Como Pm−1 e um polinomio interpolador degrau m− 1, existe um numero ξ ∈ (ti+1−m, ti) de forma que:

f(t, y(t)) = Pm−1(t) +f (m)(ξi, y(ξi))

m!(t− ti)(t− ti−1)...(t− ti+1−1).

Vamos, agora, proceder a seguinte mudanca de variaveis:t = ti + sh daı dt = hds e que,

213

Page 215: Apostila CNumerico 2013

t− ti = sht− ti−1 = t− (ti − h) = t− ti + h = h(s+ 1), temos:

f(t, y(t)) =m−1∑k=0

(−1)k(−sk

)∇kf(ti, y(ti)) +

f (m)(ξi, y(ξi))

m!hm+1s(s+ 1)...(s+m− 1).

integrando de ti a ti+1 e lembrando pela mudanca de variaveis que dt = hds e que ti → t→ ti+1

entao 0→ s→ 1, temos:

∫ ti+1

ti

f(t, y(t))dt =m−1∑k=0

(−1)k∇khf(ti, y(ti))

∫ 1

0

(−sk

)ds+

hm+1

m!

∫ 1

0

s(s+1)...(s+m−1)f (m)(ξi, y(ξi))ds.

As integrais (−1)k∫ 1

0

(−sk

)ds para varios valores de k sao facilmente calculadas e listadas na

tabela abaixo, por exemplo, quando n = 3,

(−1)3

∫ 1

0

(−s3

)ds = −

∫ 1

0

(−s)(−s− 1)(−s− 2)

1.2.3ds =

1

6

∫ 1

0

(s3 + 3s2 + 2s)ds =3

8.

k 0 1 2 3 4 5

(−1)k∫ 1

0

(−sk

)ds 1 1

2512

38

251720

95288

Por exemplo para k = 3 temos:

(−1)3

∫ 1

0

(−s3

)ds = −

∫ 1

0

(−s)(−s− 1)(−s− 2)

1.2.3ds

=1

6

∫ 1

0

(s3 + 3s2 + 2s)ds

=1

6

[s4

4+ s3 + s2

]1

0

=1

6

(9

4

)=

3

8

Como consequencia

∫ ti+1

ti

f(t, y(t))dt = h

[f(ti, y(ti)) +

1

2∇f(ti, y(ti)) +

5

12∇2f(ti, y(ti)) + ...

](51)

+hm+1

m!

∫ 1

0

s(s+ 1)...(s+m− 1)f (m)(ξi, y(ξi))ds.

214

Page 216: Apostila CNumerico 2013

Como s(s + 1)...(s + m − 1) nao mudam de sinal em [0, 1], pelo teorema do valor mediocom peso para integrais pode ser usado e assim podemos reescrever o ultimo termo da integralcomo:

hm+1f (m)(µi, y(µi))(−1)m∫ (−sm

)ds.

Alem disto como y(ti+1)−y(ti) =∫ ti+1

tif(t, y(t))dt, podemos reescrever a equacao (51) como:

y(ti+1) = y(ti) + h

[f(ti, y(ti)) +

1

2∇f(ti, y(ti)) +

5

12∇2f(ti, y(ti)) + ...

](52)

+hm+1f (m)(µi, y(µi))(−1)m∫ (−sm

)ds.

Fazendo m=3, por exemplo temos o metodo de Adams Bashforth de 3 passos:

w0 = α, w1 = α1, w2 = α2

wi+1 = wi +h

12(23f(ti, wi)− 16f(ti−1, wi−1 + 5f(ti−2, wi−2))

para i = 2, 3, ..., N − 1.Deve-se notar que qualquer polinomio interpolador poderia ter sido usado no desenvolvi-

mento do metodo, como por exemplo o polinomio interpolador de Lagrange.Se y(t) e a solucao do PVI (46) e

wi+1 = amwi + am−1wi−1 + ...+ a0wi−m +

+h[bm+1f(ti+1, wi+1) + bmf(ti, wi) + ...+ b0f(ti−m, wi−m)] (53)

e o passo (i + 1) no metodo multi-passo, o erro de truncamento local neste passo e dadopor:

τi+1(h) =y(ti+1)− amy(ti)− · · · − a0yti−m)

h−

[bm+1f(ti+1, wi+1) + bmf(ti, wi) + ...+ b0f(ti−m, wi−m)] (54)

para cada i = m,m+ 1, · · · , N − 1.Usando a definicao acima no metodo de Adams Bashforth de tres passos, derivado anteri-

ormente, podemos ver que o erro de truncamento associado a este metodo e O(h3).

215

Page 217: Apostila CNumerico 2013

A seguir vamos listar alguns dos metodos explıcitos mais comuns:

• Adams-Bashforth de Dois passos

w0 = α

w1 = α1

wi+1 = wi +h

2[3f(ti, wi)− f(ti−1, wi−1)]

para i = 1, 2, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) =5

12y′′′(µi)h

2, ti−1 < µi < ti+1.

• Adams-Bashforth de Tres passos

w0 = α

w1 = α1

w2 = α2

wi+1 = wi +h

12[23f(ti, wi)− 16f(ti−1, wi−1) + 5f(ti−2, wi−2)]

para i = 2, 3, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) =3

8yiv(µi)h

3, ti−2 < µi < ti+1.

• Adams-Bashforth de Quatro passos

w0 = α

w1 = α1

w2 = α2

w3 = α3

wi+1 = wi +h

24[55f(ti, wi)− 59f(ti−1, wi−1) + 37f(ti−2, wi−2)− 9f(ti−3, wi−3)]

para i = 3, 4, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) =251

720yv(µi)h

4, ti−3 < µi < ti+1.

216

Page 218: Apostila CNumerico 2013

• Adams-Bashforth de Cinco passos

w0 = α

w1 = α1

w2 = α2

w3 = α3

w4 = α4

wi+1 = wi +h

720[1901f(ti, wi)− 2774f(ti−1, wi−1) + 2616f(ti−2, wi−2)

− 1274f(ti−3, wi−3) + 251f(ti−4, wi−4)]

para i = 4, 5, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) =95

288yvi(µi)h

5, ti−4 < µi < ti+1.

Os metodos implıcitos podem ser derivados da mesma forma, apenas usando o ponto(ti+1, f(ti+1, y(ti+1)) como ponto adicional na aproximacao da integral

∫ ti+1

tif(t, y(t))dt. Es-

tes sao os metodos de Adams Moulton.Alguns dos metodos de Implıcitos mais comuns sao:

• Adams-Moulton de Dois passos

w0 = α

w1 = α1

wi+1 = wi +h

12[5f(ti+1, wi+1) + 8f(ti, wi)− f(ti−1, wi−1)]

para i = 1, 2, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) = − 1

24yiv(µi)h

3, ti−1 < µi < ti+1.

• Adams-Moulton de Tres passos

w0 = α

w1 = α1

w2 = α2

wi+1 = wi +h

24[9f(ti+1, wi+1) + 19f(ti, wi)− 5f(ti−1, wi−1) + f(ti−2, wi−2)]

217

Page 219: Apostila CNumerico 2013

para i = 2, 3, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) = − 19

720yv(µi)h

4, ti−2 < µi < ti+1.

• Adams-Moulton de Quatro passos

w0 = α

w1 = α1

w2 = α2

w3 = α3

wi+1 = wi +h

720[251f(ti+1, wi+1) + 646f(ti, wi)

− 264f(ti−1, wi−1) + 106f(ti−2, wi−2)− 19f(ti−3, wi−3)]

para i = 3, 4, . . . , N − 1. O Erro de truncamento local e dado por:

τi+1(h) = − 3

160yvi(µi)h

5, ti−3 < µi < ti+1.

e interessante comparar um metodo de m-passos de Adams Bashforth explıcito e um de(m − 1)-passos de Adams Moulton implıcito. Ambos precisam de m calculos da funcao f porpasso e ambos possuem termos y(m+1)(µi)h

m em seus erros locais de truncamento. Em geral, oscoeficientes dos termos envolvendo f e os erros locais de truncamento sao menores nos metodosimplıcitos. Isto leva a maior estabilidade e menores erros de arredondamento nos metodosimplıcitos.

Na pratica metodos de multi-passo implıcitos nao sao usados como descrito acima. Elesnormalmente sao usados para melhorar os resultados de aproximacoes obtidas pelos metodosexplıcitos. A combinacao entre as tecnicas implıcita e explıcita e chamada de metodo dePredicao Correcao. O metodo explıcito prediz uma aproximacao e o metodo implıcito corrigeesta predicao.

Como exemplo vamos considerar o metodo de quarta ordem para resolver um problema devalor inicial.

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

1. w0 = α e a condicao inicial do problema.

2. w1, w2 e w3 sao calculados atraves de um metodo de um passo, o mais usado e o metodode Runge Kutta de Quarta ordem.

3. Calculamos pelo metodo explıcito uma aproximacao que iremos chamar de w(0)4 para y(t4),

usando o metodo de Adams-Bashforth como preditor:

w(0)4 = w3 +

h

24[55f(t3, w3)− 59f(t2, w2) + 37f(t1, w1)− 9f(t0, w0)] .

218

Page 220: Apostila CNumerico 2013

4. Esta aproximacao e melhorada pelo uso do metodo de Adams-Moulton de tres passoscomo corretor, assim:

w(1)4 = w3 +

h

24

[9f(t4, w

(0)4 ) + 19f(t3, w3)− 5f(t2, w2) + f(t1, w1)

].

5. Agora, fazemos w4 = w(1)4 e a aproximacao corrigida do valor exato y(t4).

6. Repetimos o procedimento para encontrar a aproximacao w5 da solucao exata y(t5), istoe

7.

w(0)5 = w4 +

h

24[55f(t4, w4)− 59f(t3, w3) + 37f(t2, w2)− 9f(t1, w1)] .

e corrigimos este valor como:

w(1)5 = w4 +

h

24

[9f(t5, w

(0)5 ) + 19f(t4, w4)− 5f(t3, w3) + f(t2, w2)

].

8. Fazemos agora w5 = w(1)5 . E assim por diante.

Algorıtimo 5.4PREDITOR-CORRETOR Adams de Quarta Ordem

Aproxima solucao do PVI y′ = f(t, y), a ≤ t ≤ b, y(a) = α em N + 1 pontos igualmenteespacados no intervalo [a, b]:ENTRADA: Pontos finais a, b, O numero inteiro N e a condicao inicial α.SAıDA: Aproximacao w para y em N + 1 valores de t.

Passo 1 Faca

h = (b− a)/N ;

t0 = a;

w0 = α;

SAIDA (t0, y0).

Passo 2 Para i = 1, 2, 3 execute passos 3-5 (RK quarta ordem)

Passo 3 Faca:

K1 = hf(ti−1, wi−1);

K2 = hf(ti−1 + h/2, wi−1 +K1/2);

K3 = hf(ti−1 + h/2, wi−1 +K2/2);

K4 = hf(ti−1 + h,wi−1 +K3).

219

Page 221: Apostila CNumerico 2013

ti wi |y(ti)− wi|0.4 1.0703199182 1.278× 10−7

0.5 1.1065302684 3.923× 10−7

0.6 1.1488110326 6.035× 10−7

0.7 1.1965845314 7.724× 10−7

0.8 1.2493280604 9.043× 10−7

0.9 1.3065686568 1.003× 10−6

1.0 1.3678783660 1.075× 10−6

Passo 4 Faca

wi = wi−1 + (K1 + 2K2 + 2K3 +K4)/6;

t = a+ ih.

Passo 5 SAIDA (ti, wi).

Passo 6 Para i = 4, · · · , N faca passos 7-10.

Passo 7 Faca

t = a+ ih;

w = w3 + h [55f(t3, w3)− 59f(t2, w2) + 37f(t1, w1)− 9f(t0, w0)] /24;

w = w3 + h [9f(t, w) + 19f(t3, w3)− 5f(t22, w2) + f(t11, w1)] /24.

Passo 8 SAıDA (t, w).

Passo 9 Para j = 0, 1, 2Faca:

∗ tj = tj+1;

∗ wj = wj+1.

Passo 10 Faca t3 = t;

w3 = w.

Passo 11 PARE.

EXEMPLO:A tabela lista os resultados obtidos pelo algoritmo 5.4 para o problema de valor inicial

y′ = −y + t+ 1, 0. y(0) = 1,

com N=10.

Outros metodos que podem ser derivados usando integracao de polinomios interpoladores

220

Page 222: Apostila CNumerico 2013

sobre intervalos da forma [tj, ti+1], para j ≤ i − 1, para obter uma aproximacao para y(ti+1).Um metodo explıcito e obtido da integracao do polinomio de Newton para tras sobre [ti−3, ti+1]e e chamado de Metodo de Milne:

wi+1 = wi− 3 +4h

3[2f(ti, wi)− f(ti−1), wi−1 + 2f(ti−2, wi−2)] ,

que possui erro de truncamento 1425h4y(5)(ξi), para algum ξi ∈ (ti−3, ti+1).

Este metodo e ocasionalmente usado como preditor para um metodo implıcito chamado deMetodo de Simpson,

wi+1 = wi−1 +h

3[f(ti+1, wi+1) + 4f(ti, wi) + f(ti−1, wi−1)] ,

com erro local de truncamento (h4/90)y(5)(ξi) onde ti−1 < ξi < ti+ 1 e e obtido pela integracaodo metodo de Newton para tras sobre [ti−1, ti+1].

Apesar do metodo preditor-corretor de Milne-Simpson geralmente possuir menor erro localde truncamento que a associacao de Adam-Bashforth-Moulton, a tecnica fica limitada porproblemas de estabilidade.

Os metodos mais populares para a resolucao de problemas de valor inicial sao os metodosde Runge-Kutta de quarta ou quinta ordem e o metodo de Predicao Correcao como AdamsBashforth-Moulton de quarta ou quinta ordem. Embora nenhum dos metodos seja invaria-velmente superior aos demais em todos os problemas e apropriado salientar as vantagens edesvantagens de cada um.

Os metodos de Runge Kutta possuem a importante vantagem de serem auto-inicializados.Alem disto sao estaveis e fornecem boa precisao. Como programa estes metodos ocupam relati-vamente pouca memoria, contudo eles nao fornecem uma estimativa da precisao a ser atingida,de modo que o usuario pode nao saber se o passo h, que esta sendo usado e adequado. Natu-ralmente, podemos processar o mesmo problema com diversos valores de h e estimar a precisaocomparando-se os resultados, mas este procedimento exige muito mais tempo de maquina.

Ja os metodos de Predicao-Correcao fornecem uma estimativa automatica de erro, permi-tindo, desta forma, a selecao de um passo h otimo, isto e com a precisao requerida.

9.9 Estabilidade dos Metodos Numericos

Ate aqui foram apresentados metodos para aproximacao da solucao de problemas de valorinicial. Apesar de existirem muitos outros metodos de aproximacao estes foram escolhidos, poisgeralmente satisfazem tres criterios:

• Seu desenvolvimento e claro o suficiente para estudantes que estao vendo pela primeiravez analise numerica possam entender

• A maioria das tecnicas mais avancadas e complexas sao baseadas em um ou na combinacaodos procedimentos descritos

221

Page 223: Apostila CNumerico 2013

• Um ou mais destes metodos darao resultados satisfatorios para a maior parte dos proble-mas encontrados por estudantes de graduacao.

Nesta secao vamos discutir porque alguns destes metodos produzem resultados satisfatoriosquando outros metodos similares nao.

Definicao: Um metodo de um passo para equacao em diferenca com erro local de trunca-mento τi(h) no i-esimo passo e dito consistente com a equacao diferencial que ele aproxima,se

limh→0

max1≤i≤N

|τi(h)| = 0

Note que esta definicao e essencialmente uma definicao ’local ’, uma vez que cada um dosvalores τi(h) e comparada com o valor exato f(ti, yi) para a aproximacao de y′ em ti. Um signi-ficado mais realista para analisar o efeito de fazer h pequeno e determinar o efeito ’global ’ dometodo. Este e o erro maximo do metodo sobre todo o seu domınio de aproximacao, assumindosomente que o metodo tem solucao exata no valor inicial.

Definicao: Um metodo de um passo para equacao em diferenca e dito convergente com respeitoa equacao diferencial que ele aproxima, se

limh→0

max1≤i≤N

|yi − wi| = 0

onde yi = y(ti) denota o valor exato de solucao da equacao diferencial e wi e a aproximcaoobtida do metodo de diferenca no i-esimo passo.

Notando que o limite de erro para a formula de Euler e dada por,

|yi − wi| ≤hM

2L

[eL(ti−a) − 1

]com L constante de Lipschtz e |y”(t)| ≤ M em D = (t, y)/a ≤ t ≤ b,−∞ ≤ y ≤ ∞ temosque,

max1≤i≤N

|yi − wi| ≤hM

2L

[eL(b−a) − 1

].

Assim o metodo de Euler e convergente com respeito a equacao diferencial quando satisfaz ascondicoes acima e sua razao de convergencia e O(h).

Um metodo de um passo e consistente precisamente quando a equacao em diferenca para ometodo aproxima a equacao diferencial quando o tamanho do passo vai a zero; isto e, o erro detruncamento local vai a zero quando o tamanho do passo se aproxima de zero. A definicao deconvergencia tem uma conotacao similar. Um metodo e convergente, precisamente quando asolucao a equacao em diferenca aproxima a solucao da equacao diferencial quando o tamanhodo passo vai a zero.

222

Page 224: Apostila CNumerico 2013

O outro tipo de limite de erro do problema que existe quando usamos metodos de equacoesem diferencas para aproximar solucoes de equacoes diferenciais e uma consequencia de nao usarresultados precisos. Na pratica nem a condicao inicial, nem a aritmetica usada sao representadasde forma exata, por causa do erro de arredondamento associado a aritmetica de finitos dıgitos.Aqui vamos tentar determinar quais dos metodos sao estaveis, no sentido de que pequenas trocasou perturbacoes na condicao inicial provocarao pequenas trocas nas aproximacoes geradas.Assim um metodo estavel e aquele que depende continuamente dos dados iniciais.

223

Page 225: Apostila CNumerico 2013

Teorema 46 Suponha que o PVI y′ = f(t, y), com a ≤ t ≤ b, e condicao inicial y(a) = α,seja aproximado por um metodo de diferencas de um passo na forma

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

.

Suponha alem disto, que exista um numero h0 > 0 e que φ(ti, wi, h) seja contınua e satisfaca acondicao de Lipschitz na variavel w com a constante de Lipschitz L em

D = (t, w, h)/a ≤ t ≤ b,−∞ < w <∞, 0 ≤ h ≤ h0

. Entao:

1. O metodo e estavel

2. O metodo de diferencas e convergente se e somente se for consistente, o que equivale a

φ(t, y, 0) = f(t, y), para todo a ≤ t ≤ b;

3. Se existe uma funcao τ e para cada i = 1, 2, ..., N o erro local de truncamento τi(h)satisfaz |τi(h)| ≤ τ(h) sempre que 0 ≤ h ≤ h0, entao

|y(ti)− wi| ≤τ(h)

LeL(ti−a).

MultipassoEm um metodo multipasso, o resultado nao depende apenas da solucao encontrada no passoanterior, mas de 2 ou mais. Desta forma os conceitos de convergencia e estabilidade ficam umpouco diferentes. Se consideramos o PVI:

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

(55)

Um metodo de multipasso para este problema e descrito na forma:

w0 = α, w1 = α1, ... wm−1 = αm1

am−1wi + ak−2wi−1 + ...+ a0w1+1−m = hF (ti, h, wi+1, wi, , ..., wi+1−m)(56)

para cada i = m− 1,m, ..., N − 1. Como em metodo de passo simples, o erro de truncamentolocal mede como a solucao y da equacao diferencial nao satisfaz a equacao diferencas.

Definicao 14 Um metodo de multi-passo e dito convergente se a solucao da equacao emdiferencas se aproxima da solucao da equacao diferencial a medida que h→ 0, isto e

limh→0

max0≤i≤N

|wi = y(ti)| = 0

224

Page 226: Apostila CNumerico 2013

Ja a consistencia apresenta uma pequena mudanca em relacao aos metodos de um passo, poisqueremos que a Equacao em diferencas se aproxime da equacao diferencial quando o tamanhodo passo diminui, porem agora temos muitas condicoes iniciais e queremos que os erros de todosos αi tendam para zero quando h diminui. Isto e queremos que

limh→0|τj(h)| = 0, j = m,m+ 1, ..., N e lim

h→0|αi − y(ti)| = 0, i = 1, 2, ...,m− 1.

Aqui vamos observar que associado a equacao (56) definimos o chamado polinomio carac-terıstico como:

p(λ) = λm − am−1λk−1 − am−2λ

k−2...+ a1λ1 − a0 (57)

A estabilidade com relacao ao erro de arredondamento e determinada pela magnitude dos zerosdo polinomio caracterıstico (57).

Definicao 15 Sejam λ1, λ2, ... ,λm, as raızes do polinomio caracterıstico associada a umaequacao de diferencas de um metodo multi-passo (56). Se |λi| ≤ 1 para i = 1, 2...,m e se todasas raızes com magnitude 1 sao simples, entao dizemos que este metodo satisfaz a condicao deraız.

Alem de convergencia, Outros dois termos usados sao estabilidade e consistencia. Ummetodo e dito estavel se todas as raızes do polinomio p estao dentro do disco |z| ≤ 1 e se cadaraız de modulo 1 e simples.

Definicao 16 1. Os metodos que satisfazem a condicao de raız e tem λ = 1 como a unicaraız da equacao caracterıstica de magnitude 1 sao ditos fortemente estaveis.

2. Os metodos que satisfazem a condicao de raız e tem mais de uma raız distinta da equacaocaracterıstica de magnitude um sao ditos fracamente estaveis

3. Os metodos que nao satisfazem a condicao de raız sao chamados de instaveis.

A consistencia e a convergencia de um metodo de multi-passo sao conceitos muito proximosao de estabilidade de arredondamento do metodo. Este fato e descrito pelo teorema:

Teorema 47 Um metodo de multi-passo (56) e estavel, se e somente se satisfaz a condicaode raız. Alem disto se o metodo de diferenca e consistente com a equacao diferencial, entao ometodo e estavel se e somente se e convergente.

Exemplo 69 O metodo de Adams Basforth de quarta ordem:

wi+1 = wi + hF (ti, h, wi+1, ..., wi−3)

neste caso, i−3 = i+1−m logo m = 4 e am−1 = a3 = 1 (coeficiente de wi) e a2 = a1 = a0 = 0,logo o polinomio caracterıstico associado e:

λ4 − λ3 = 0

logo λ1 = 1 e λ2 = λ3 = λ4 = 0. Assim este metodo satisfaz a condicao de raız e e fortementeestavel.

225

Page 227: Apostila CNumerico 2013

O mesmo pode ser mostrado para o metodo de Adams Moulton de quarta ordem.

Exemplo 70 Vamos considerar o metodo de Milne

wi+1 = wi−3 +4h

3(2f(ti, wi)− f(ti−1, wi−1) + 2f(ti−2, wi−2))

que e um metodo de quarta ordem. Neste caso i− 3 = i+ 1−m, isto e m = 4, a2 = 0, a1 = 0e a0 = 1, ou o polinomio caracterıstico e λ4 − 1 = 0 e as raızes sao 1,−1, i,−1 distintas, mastodas com modulo 1. Logo o metodo de Milne e fracamente estavel.

Conforme foi dito anteriormente, apesar do metodo preditor-corretor de Milne-Simpsongeralmente possuir menor erro local de truncamento que a associacao de Adam-Bashforth-Moulton, a tecnica fica limitada por problemas de estabilidade. AB-AM e fortemente estavel eMilne Simpson e fracamente estavel.

226

Page 228: Apostila CNumerico 2013

9.10 Equacoes Rıgidas (Stiff)

A propriedade de dureza, em um sistema de equacoes diferenciais ordinarias, refere-se a umalarga disparidade nas escalas de tempo do componente na solucao vetorial. Alguns procedi-mentos numericos, que normalmente sao satisfatorios, em geral aproximarao pobremente emequacoes rijas, ou nem isto. Este fato ocorre quando a estabilidade numerica das solucoes apenasexistem quando usamos um passo muito pequeno no tempo. Este tipo de equacoes aparecemem problemas de vibracao como em um sistema massa-mola quando as constantes da mola saomuito grandes, no monitoramento de reacoes quımicas que podem ter uma grande diversidadena escala de tempo para as trocas fısicas e quımicas que ocorrem; em circuitos eletricos ondeos termos transientes com escala de ordem de micro-segundos podem ser impostas sobre umcircuito em geral de comportamento suave; em cinetica de reatores nucleares etc... O nome”rıgido”e devido a sistemas do tipo massa-mola com grandes valores para a constante da mola.

9.10.1 O metodo de Euler

Para ilustrarmos a dificuldade do problema vamos aplicar o metodo de Euler sobre o seguinteproblema teste:

y′ = λy, y(0) = α (58)

• Assim, aplicando o metodo de Euler sobre este problema temos

w0 = αwn+1 = wn + hλwn, n = 0, 1, ...

(59)

Desta forma:

w0 = 1w1 = 1 + hλw0 = (1 + h)αw2 = w1 + λw1 = (1 + λ)2w0 = (1 + λ)2α

...wn = (1 + hλ)nw0 = (1 + hλ)nα

(60)

Por outro lado a solucao exata do problema teste (58) e dados por

y(t) = αeλt (61)

Aqui devemos notar que se λ < 0,a solucao acima e fortemente decrescente e tenderapidamente para 0, com o crescimento do tempo t. Por outro lado, olhando a solucaonumerica vemos que para ela tender para zero, devemos escolher h de forma que

|1 + hλ| < 1↔ −1 < 1 + hλ < 1↔ −2 < hλ < 0

Agora como λ e um numero negativo, temos que hλ > −2, ou

h > −2

λ

227

Page 229: Apostila CNumerico 2013

Como conhecemos a solucao exata, podemos calcular o erro absoluto,

y(tj)− wj| = |ejhλ − (1 + hλ)j||α| = |(ehλ)j − (1 + hλ)j||α|

Assim a precisao depende de como o termo 1 + hλ aproxima a exponencial ehλ.

• Aqui devemos observar que, em contraste com o metodo de Euler explıcito que precisaencontrar os criterios acima mencionados, o metodo de Euler implıcito, definido por

wn+1 = wn + hf(tn+1, wn+1)

quando aplicado ao nosso problema teste produz:

w0 = αwn+1 = wn + hλwn+1, n = 0, 1, ...

(62)

isto ewn + 1 = (1hλ)( − 1)wn

ou no enesimo passo teremos,wn = (1− hλ)−1α

Assim, neste caso como λ e negativo, o requerimento para que nossa solucao tenda a zerocom o aumento do tempo e que

|1− hλ|−1 < 1

o que sera satisfeito para qualquer tamanho de passo h.

• De forma similar vamos aplicar o metodo de Euler a um sistema de EDO. Vamos nova-mente entender que um bom metodo numerico deve funcionar bem uma equacao testecom solucao exponencial. Vamos agora considerar o seguinte problema teste

y′1 = αy1 + βy2

y′2 = βy1 + αy2

y1(0) = 2y2(0) = 0

(63)

A solucao analıtica deste sistema e dado por:y1(t) = e(α+β)t + e(α−β)t

y2(t) = e(α+β)t − e(α−β)t (64)

Aplicando o metodo de Euler, a solucao e dada por:w

(1)n+1 = w

(1)n + h(αw

(1)n + β)w

(2)n+1, w

(1)0 = 2

w(2)n+1 = w

(2)n + h(βw

(1)n + α)w

(2)n+1, w

(2)0 = 0

(65)

E resolvendo estas equacoes em diferencas temosw

(1)n = (1 + αh+ βh)n + (1 + αh− βh)n

w(2)n = (1 + αh+ βh)n − (1 + αh− βh)n

(66)

228

Page 230: Apostila CNumerico 2013

Aqui consideramos que α < 0 e β < 0, assim a solucao exata dada por (64) estaocaindo para zero. Para que a solucao numerica dada pelas equacoes em diferencas (66)mantenham este comportamento, devemos ter que:

|1 + αh+ βh| < 1 e |1 + αh− βh| < 1 (67)

Lembrando que estamos considerando α e β negativos, as desigualdades acima equivalema escolha de

h <2

α + β

Por exemplo se temos α = −20 e β = −19, nossa solucao e uma combinacao de e−39t

e e−t. A primeira destas funcoes e transiente, isto e depois de um pequeno intervalo detempo podemos negligencia-la quando comparada a segunda funcao. E ainda assim elaira controlar o tamanho do passo no tempo por toda a solucao numerica!

• A situacao e similar em outros metodos de um passo em geral, existe uma funcao Q coma propriedade que o metodo de diferencas pode ser aplicado a equacao teste e teremos,

wn+1 = Q(hλ)wn (68)

Novamente a precisao do metodo depende diretamente de como a funcao Q(hλ) aproximaehλ. Podemos mostrar que o erro cresce sem limites se |Q(hλ)| > 1.

• No caso dos metodos de multi-passo, se aplicamos ao nosso caso teste temos:

wj+1 = am−1wj + ...+ a0wj+1−m + hλ(bmwj+1 + bm−1wj + ...+ b0wj+1−m), (69)

para j = 1, ..., N − 1, ou isolando wj+1 temos,

(1− hλbm)wj+1 − (am−1 + hλbm−1)wj − ...− (a0 + hλb0)wj+1−m = 0. (70)

O polinomio caracterıstico associado a esta equacao de diferencas e (que inclui a funcaoteste):

Q(z, hλ) = (1− hλbm)zm − (am−1 + hλbm−1)zm−1 − ...− (a0 + hλb0). (71)

Vamos agora supor que as m primeiras solucoes sao conhecidas, isto e w0, w1, ..., wm−1 saoconhecidas e que para um hλ fixo tambem conhecamos as m raızes do polinomio Q(z, hλ),sejam elas β1, β2, ..., βm.Se estas raızes sao distintas o metodo considerado encontrara aaproximacao da solucao como

wj =m∑k=1

ck(βk)j, j = m,m+ 1, ...,m. (72)

Se as raızes sao multiplas raciocınio semelhante continua valendo. Para que wj definido em(72), aproxime a solucao exata y(tj) = (ehλ)j, devemos ter todas as raızes βk satisfazendo|βk| < 1, caso contrario a solucao aproximada por (72) nao ira decair a zero.

229

Page 231: Apostila CNumerico 2013

Como exemplo vamos considerar o problema teste

y′ = −30y, 0 ≤ t ≤ 1.5, y(0) =1

3

A solucao exata deste problema teste e

y(t) =1

3e−30t

Usando os metodos de Euler, RH4, Preditor Corretor de 4 passos, obtemos em t = 1.5 osvalores:

Tabela 9.5: Solucao do problema teste em t=1.5 e passo h= 0.1Solucao Exata 9.54173× 10−21

Euler −1.09225× 10 4

Runge Kutta 4 3.95730× 10 1

Preditor Corretor 8.03840× 10 5

As nao precisoes que aparecem neste exemplo sao devido a |Q(λh)| > 1, para Euler e RK4e de que o polinomio Q(z, hλ) possuir raızes com modulo maior que 1 no caso do metodo doPreditor corretor. Para obter melhor resultado devemos reduzir muito o tamanho do passo.

230

Page 232: Apostila CNumerico 2013

Para mostrar melhor o que ocorre, no que segue, usamos o metodo de Euler considerandoh = 0.1 e h = 0.05 para resolver o problema teste. Abaixo, mostramos as tabelas completaspara estes casos.

Tabela 9.6: PROGRAMA TESTE PARA EQUACOES RIGIDAS - h= 0.1t Euler Exata Erro Relativo

0.0000000E+00 0.3333333 1.000000 0.66666660.1000000 -0.6666667 4.9787067E-02 14.390360.2000000 1.333333 2.4787523E-03 536.90500.3000000 -2.666667 1.2340980E-04 21609.220.4000000 5.333333 6.1442124E-06 868024.60.5000000 -10.66667 3.0590232E-07 3.4869520E+070.6000000 21.33333 1.5229979E-08 1.4007461E+090.7000000 -42.66667 7.5825607E-10 5.6269472E+100.8000000 85.33334 3.7751344E-11 2.2604053E+120.9000000 -170.6667 1.8795252E-12 9.0803074E+131.000000 341.3333 9.3576229E-14 3.6476502E+151.100000 -682.6667 4.6588862E-15 1.4653002E+171.200000 1365.333 2.3195227E-16 5.8862685E+181.300000 -2730.667 1.1548180E-17 2.3645863E+201.400000 5461.333 5.7495220E-19 9.4987604E+211.500000 -10922.67 2.8625186E-20 3.8157540E+23

Tabela 9.7: PROGRAMA TESTE PARA EQUACOES RIGIDAS - h= 0.05t Euler Exata Erro Relativo

0.00 0.3333333 1.000000 0.66666660.10 8.3333321E-02 4.9787067E-02 0.67379460.20 2.0833332E-02 2.4787523E-03 7.4047660.30 5.2083321E-03 1.2340980E-04 41.203550.40 1.3020831E-03 6.1442124E-06 210.92030.50 3.2552081E-04 3.0590232E-07 1063.1330.60 8.1380189E-05 1.5229979E-08 5342.4210.70 2.0345049E-05 7.5825607E-10 26830.370.80 5.0862627E-06 3.7751344E-11 134729.60.90 1.2715655E-06 1.8795252E-12 676534.51.00 3.1789139E-07 9.3576229E-14 3397137.1.10 7.9472855E-08 4.6588862E-15 1.7058336E+071.20 1.9868210E-08 2.3195227E-16 8.5656456E+071.30 4.9670530E-09 1.1548180E-17 4.3011565E+081.40 1.2417634E-09 5.7495220E-19 2.1597681E+091.50 3.1044078E-10 2.8625186E-20 1.0845022E+10

231

Page 233: Apostila CNumerico 2013

Definicao 17 A regiao R, chamada de estabilidade regiao de estabilidade absoluta

• Para um metodo de passo simples e dada por R = hλ ∈ C/|Q(hλ)| < 1

• Para um metodo de passo multiplo e dada por R = hλ ∈ C/|βk| < 1 para βk raız de Q(z, hλ)

Conforme vimos acima, apenas podemos aplicar de forma eficiente um metodo numericoem uma equacao rıgida se hλ esta em sua regiao de estabilidade absoluta e esta restricao sobreh devera ser mantida durante todo o domınio de t, para controle do erro. Isto e mesmo queavaliando o erro de truncamento tudo indique que h pode ser maior, o criterio de estabilidadeabsoluta faz que ele tenha que ser mantido pequeno. Os metodos de passo variavel nao saoindicados para este tipo de problema, pois o passo h pode ser aumentado saindo assim da zonade estabilidade absoluta.

Definicao 18 Dizemos que um metodo numerico e A-estavel se sua regiao de estabilidadeabsoluta contem todo o semi-plano esquerdo.

Aqui, vamos considerar um metodo Implıcito Trapezoidal que e um metodo A-estavel,definido por:

w0 = αwj+1 = wj + h

2(f(tj+1, wj+1) + f(tj, wj)) , 0 < j < N − 1

(73)

Este e o unico metodo de multi-passo A-estavel, e apesar de nao apresentar aproximacoes muitoprecisas para passos grandes o erro e mantido sob controle. Para sistemas rıgidos, normalmentesao usados metodos implıcitos, mesmo que isto implique resolver uma equacao nao linear deforma iterativa a cada passo no tempo. Aqui vamos usando como exemplo o metodo descritopor (73).

• Calcular tj e tj+1 e wj

• Para encontrarmos wj+1 devemos encontrar o zero de

F (w) = w − wj −h

2(f(tj+1, w) + f(tj, wj))

• Como ”chute”inicial no processo iterativo, normalmente fazemos w(0)j+1 = wj e aplicamos

por exemplo o metodo de Newton-Raphson para encontrar a solucao, assim:

w(k)j+1 = w

(k−1)j+1 −

F (w(k−1)j+1 )

F ′(w(k−1)j+1 )

= w(k−1)j+1 −

w(k−1)j+1 − wj − h

2(f(tj, wj) + f(tj+2, w

(k−1)j+1 ))

1− h2fy(tj+1, w

(k−1)j+1 )

onde fy(t, y) = ∂∂yf(t, y). Em geral 3 ou 4 iteracoes sao suficientes para para obtermos a

precisao desejada.

232

Page 234: Apostila CNumerico 2013

Exemplo 71 Seja o problema:

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

A solucao analıtica deste problema e dado por:

y(t) = t− e−5t

Resolvendo este problema por Runge-Kutta e M. Trapezoidal implıcito com h = 0.2 e h = 0.25obtemos os seguintes resultados:

Runge Kutta Trapezoidalh = 0.2 h = 0.2

ti wi |y(ti)− wi| wi |y(ti)− wi|0.0 -1.0000000 0 -1.00000000 00.2 -0.1488521 1.9027×10−2 -0.14144969 2.6383×10−2

0.4 0.2684884 3.8237×10−3 0.2748614 1.0197×10−2

0.6 0.5519927 1.7798×10−3 0.5539898 3.7700×10−3

0.8 0.7822857 6.0131×10−4 0.7830720 1.3876×10−3

1.0 0.9934905 2.2845×10−4 0.9937726 5.1050×10−4

h = 0.22 h = 0.25ti wi |y(ti)− wi| wi |y(ti)− wi|

0.00 -1.0000000 0 -1.00000000 00.25 0.4014315 4.37936×101 0.0054557 4.1961×10−2

0.50 3.4374753 3.01956×100 0.4267572 8.8422×10−3

0.75 1.44639×1023 1.44639×1023 0.7291528 2.6706×10−3

1.00 NaN 0.9940199 7.5790×10−4

Os problemas deste tipo, normalmente aparecem como um sistema de ED. O metodo descritoacima por exemplo pode ser aplicado e a cada passo um sistema nao linear de equacoes deveser resolvido.

233

Page 235: Apostila CNumerico 2013

9.11 Problema de Valor Inicial: Sistemas de EDO e EDO

de Ordem Superior

Um sistema de EDO de primeira ordem pode ser escrito como:ddty1(t) = f1(t, y1, y2, ..., yn)

ddty2(t) = f2(t, y1, y2, ..., yn)

...ddtyn(t) = fn(t, y1, y2, ..., yn)

(74)

O sistema acima possui n funcoes incognitas, sao elas y1(t), y2(t), ... e yn(t), e n EDO envolvendoestas funcoes incognitas. O problema de valor inicial, associa ao sistema de equacoes (74) umconjunto de condicoes iniciais definido por:

y1(a) = α1

y2(t0) = α2...yn(t0) = αn

. (75)

Uma notacao conveniente para este sistema o sistema de equacoes (74) e a notacao vetorial.Pra isto, chamamos do Y(t) ao vetor coluna definido por

Y(t) = [y1(t), y2(t), ..., yn(t)]T .

Desta forma Y(t) e uma funcao de R (ou um intervalo de R) em Rn. De forma similar vamosnotar o vetor F = [f1, f2, ..., fn]T , onde cada funcao fi = fi(t, y1, y2, ..., yn) onde cada fi e umafuncao sobre Rn+1 (ou subintervalo deste. Desta forma F e uma funcao de Rn+1 em Rn. Comesta notacao o sistema (74) pode ser escrito como:

d

dtY = F(t,Y) (76)

e a condicao inicial e dada por Y(t0) = [α1, α2, ..., αn]T .Por exemplo

Exemplo 72 Como exemplo vamos considerar o seguinte sistema linear fazendo x1 = x ex2 = y,

ddtx(t) = x+ 4y − et

ddty(t) = x+ t+ 2et

(77)

com condicao de contorno dada por x(0) = 4 e y(0) = 5/4, possui solucao unica dada por:x(t) = 4e3t + 2e−t2et

y(t) = 2e3t − e−t + 14et

(78)

Matricialmente temos:

Y(t) =

(x(t)y(t)

), F(t,Y) =

(f1(t, x, y)f2(t, x, t)

)=

(x+ 4y − etx+ t+ 2et

)

234

Page 236: Apostila CNumerico 2013

Aqui tambem devemos chamar a atencao que, conforme foi dito no inıcio deste capıtulo, umproblema de valor inicial de ordem superior pode ser escrito como um sistema de EDO. Paraisto, vamos supor que temos o seguinte PVI de ordem n

z(n) = f(t, z, z′, ..., z(n−1))

comz(t0) = α1, z′(t0) = α2, ...., z(n−1)(t0) = αn.

Para resolvermos este sistema pelos metodos estudados anteriormente, a seguir, introduzimosa mudanca de varaveis:

y1 = z(t) y1 = z′(t) y3 = z′′(t) ... yn = z(n−1)(t)

Estas novas variaveis satisfazem ao seguinte sistema de EDO de primeira ordem:

ddty1(t) = y2(t)

ddty2(t) = y3(t)

ddty3(t) = y4(t)

...ddtyn(t) = f(t, y1, y2, ..., yn)

com a condicao inicial

y1(t0) = α1

y2(t0) = α2

y3(t0) = α3...

yn(t0) = αn)

Exemplo 73 Vamos considerar o seguinte problema de valor inicial(sin t)z′′′ + cos(ty) + sin(t2 + z′′) + (y′)3 = ln tz(2) = 7z′(2) = 3z′′(2) = −4

Vamos converter este sistema em um PVI de primeira ordem fazendo a mudanca de variaveis:

y1(t) = z(t), y2(t) = z′(t), e y3(t) = z′′(t)

o sistema e dado por:

d

dty1(t) = y2(t)

d

dty2(t) = y3(t)

d

dty3(t) =

ln t− x32 − sin(t2 + y3)− cos(ty1)

sin(t)

com condicao inicial Y(2) = (7, 3,−4)T .

235

Page 237: Apostila CNumerico 2013

9.11.1 Resolucao de Sistemas de EDO para PVI

Os sistemas de EDO podem ser resolvidos pelos metodos ja discutidos nas primeiras secoesdeste capıtulo. Assim podemos usar o metodos de Euler, Taylor de ordem superior, Runge-Kutta, os metodos de Adams Bashforth, ou preditor corretor. Por exemplo o metodo de RungeKutta de quarta ordem na forma matricial e dado por:

W(t+ h) = W(t) +1

6(K1 + 2K2 + 2K3 + K4) (79)

onde K1 = hF(t,X)K2 = hF(t+ 1

2h,K1)

K3 = hF(t+ 12h,K2)

K4 = hF(t+ h,K3)

Todos os metodos desenvolvidos para resolucao de PVI podem ser aplicados para a solucaode sistema de EDO, inclusive os metodos de Multistep. Esta extensao e feita de forma direta.

Como exemplo vamos resolver um PVI de segunda ordem por um metodo de Runge Kuttade ordem 2.

Exemplo 74 Neste exemplo, vamos considerar o seguinte PVI de segunda ordem:

y′′ − 2y′ + 2y = e2t sin t, t > 0y(0) = −0.4y′(0) = −0.6

Encontre uma aproximacao para a solucao deste problema em t = 0.2 usando o metodo de Heun, que e um metodo de Runge Kutta de segunda ordem definido por:

w0 = αwi+1 = wi + h

4

(f(ti, wi) + 3f(ti + 2

3h , wi + 2

3hf(ti, wi))

)i = 0, 1, ...

use h = 4t = 0.1Solucao: Primeiramente vamos proceder a seguinte mudanca de variaveis:y′ = z e portanto

y′′ = z′, assim temos as equacoes:

y′ = zz′ = 2z − 2y + e2t sin t

Na forma matricial temos:

d

dt

(y(t)z(t)

)=

(z

e2t sin t+ 2z − 2y

), W0 =

(y(0)z(0)

)=

(−0.4−0.6

), onde W(t) =

(y(t)z(t)

)Assim temos que

F (t,W) =

(z

e2t sin t+ 2z − 2y

)

236

Page 238: Apostila CNumerico 2013

h = 0.1 Para i = 0 temos:

W1 = W0 +0.1

4

F

(0,

(−0.4−0.6

))+ 3F

(0.2

3,W0 +

2

3(0.1)F

(0,

(−0.4−0.6

)))

W1 = W0 +0.1

4

((−0.6−0.4

)+ 3F

(0.2

3,

(−0.44−0.626667

)))

W1 =

(−0.4−0.6

)+

0.1

4

(−0.4−0.6

)+ 3

(−0.626667−0.297214

)=

(−0.462000−0.632291

)para i = 1 temos:

W2 = W1 +0.1

4

F

(0.1,

(−0.462000−0.632291

))+ 3F

(0.1 +

0.2

3,W1 +

2

3(0.1)F

(0.1,

(−0.462000−0.632291

)))

W2 =

(−0.462000−0.632291

)+

0.1

4

((−0.632291−0.218645

)+ 3F

(0.166667,

(−0.462000−0.632291

)+

0.2

3

(−0.632291−0.218645

)))

W2 =

(−0.462000−0.632291

)+

0.1

4

((−0.632291−0.218645

)+ 3F

(0.166667,

(−0.504153−0.646867

)))

W2 =

(−0.462000−0.632291

)+

0.1

4

((−0.632291−0.218645

)+ 3

(−0.646867−0.0539027

))=

(−0.462000−0.632291

)+

0.1

4

(−2.572890−0.380353

)

W2 =

(−0.526322−0.641800

)E desta forma temos que y(0.2) = −0.526322. Aqui notamos que por causa da mudanca de

variaveis feita, conhecemos tambem o valor de y′(0.2) = −0.641800.

237

Page 239: Apostila CNumerico 2013

Capıtulo 10

Problema de Valor de Contorno

Neste capıtulo vamos estudar metodos numericos para a resolucao de Problemas de Valor deContorno (PVC).

10.1 Existencia de Solucao

Primeiramente considerar o problema:y′′ = f(t, y, y′)y(a) = α y(b) = β

(1)

Devemos observar que teoremas de existencia para este tipo de problema tendem a ficar com-plicados e podem ser encontrados em textos avancados de Analise Numerica. Aqui vamos citarum resultado devido a Keller(1968):

Teorema 48 O problema de valor de contornoy′′ = f(t, y)y(0) = 0 y(1) = 0

possui solucao unica se ∂f/∂y e contınua, nao negativa e limitada na faixa infinida definidapelas desigualdades 0 ≤ t ≤ 1, −∞ < y <∞.

O teorema anterior e aplicado apenas a um caso especial de PVC, mas uma simples trocade variaveis pode reduzir casos mais gerais neste caso especial. Para fazer isto primeiramenteprocedemos a troca no intervalo t. Vamos supor que o problema original e:

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

(2)

A troca de variaveis t = a + (b − a)s e feita aqui. Note que quando s = 0 temos t = a e quequando s = 1 temos t = b. Mais ainda x(s) = y(a+λs) com λ = b−a. Entao x′(s) = λy′(a+λs)

238

Page 240: Apostila CNumerico 2013

e x′′(s) = λ2y′′(a+ λs). Da mesma forma x(0) = y(a) = α e x(1) = y(b) = β. Desta forma, sey e solucao de (2), entao x e a solucao do PVC

x′′ = λ2f(a+ λs, x(s))x(0) = α x(1) = β

(3)

Na direcao contraria se x e solucao de (3), entao a funcao y(t) = x((t− a)/(b− a)) e a solucaode (2).

Teorema 49 Considere os dois PVCs:

(i)

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

(ii)

x′′ = g(t, x)x(0) = α x(1) = β

no qual

g(p, q) = (b− a)2f(a+ (b− a)p, q)

Se x e uma solucao de (ii), entao a funcao y definida por y(t) = x((t− a)/(b− a)) e a solucaode (i). Mais ainda, se y e uma solucao de (i), entao x(t) = y(a+ (b− a)t) e a solucao de (ii).

Ainda temos que para reduzir um PVCx′′ = g(t, y)y(0) = α y(1) = β

em um que possua condicoes de contorno homogeneas, simplesmente subtraımos de x umafuncao linear que leva os valores α e β em 0 e 1. O teorema nos diz que:

Teorema 50 Considere os dois PVCs:

(ii)

x′′ = g(t, x)x(0) = α x(1) = β

(iii)

z′′ = h(t, z)z(0) = 0 z(1) = 0

no qual

h(p, q) = g(p, q + α + (β − α)p)

Se z e uma solucao de (iii), entao a funcao x(t) = z(t)+α+(β−α)t e a solucao de (ii). Maisainda, se x e uma solucao de (ii), entao z(t) = y(t)− [α + (β − α)t] e a solucao de (iii).

Teorema 51 Seja f uma funcao contınua de (t, s), onde 0 ≤ t ≤ 1 e −∞ < s <∞. Assumaque sobre este domınio

|f(t, s1)− f(t, s2)| ≤ k|s1 − s2| (k < 8)

Entao o PVCy′′ = f(t, y)y(0) = 0 y(1) = 0

possui solucao unica em C[0, 1].

239

Page 241: Apostila CNumerico 2013

ExemploMostre que o seguinte problema possui solucao unica

y′′ = 2 exp(t cos y)y(0) = 0 y(1) = 0

(4)

Para mostrar seja f(t, s) = 2 exp(t cos y). Pelo Teorema do valor medio temos que

|f(t, s1)− f(t, s2)| =∣∣∣∣∂f∂s

∣∣∣∣ |s1 − s2|

onde ∣∣∣∣∂f∂s∣∣∣∣ = |2 exp(t cos s)(−t sin s)| ≤ 2e < 5.437 < 8

Assim pelo teorema (51), o PVC descrito por (4) possui solucao unica.

240

Page 242: Apostila CNumerico 2013

10.2 Metodo de Diferencas Finitas Para Problemas Li-

neares

O metodo do disparo pode ser usado para resolver PVC lineares e nao lineares mas, muitas vezes,ele apresenta problemas de instabilidade. Uma outra aproximacao para PVC consiste de umadiscretizacao inicial do intervalo t seguido pelo uso de formula de aproximacao das derivadas.Os metodos de diferencas finitas substituem cada uma das derivadas que aparecem no PVCpor um quociente em diferencas apropriado, escolhido de forma a obter o erro de truncamentodesejado. No nosso caso estas duas formulas de diferencas centrais sao especialmente uteis:

y′(t) =y(t+ h)− y(t− h)

2h− 1

6h2y′′′(ξ) (5)

y′′(t) =y(t+ h)− 2y(t) + y(t− h)

2h− 1

12h2y(4)(τ) (6)

EDO de segunda ordem

Vamos supor que o problema a ser resolvido e:y′′ = f(t, y, y′)y(a) = α y(b) = β

(7)

Vamos particionar o intervalo [a, b] nos pontos a = t0, t1, t2, ..., tn+1 = b, os quais nao necessi-tam ser igualmente espacados, mas geralmente na pratica sao. Agora se os pontos nao foremigualmente espacados, versoes mais complexas das formulas (5) e (6) serao necessarias. Porsimplicidade, vamos assumir que:

ti = a+ ih 0 ≤ i ≤ n+ 1 h = (b− a)/(n+ 1) (8)

Vamos notar um valor aproximado de y(ti) por yi. Assim, a versao discreta de (7) e dada por:y0 = α

h−2(yi−1 − 2yi + yi+1) = f(ti, yi, (2h)−1(yi+1 − yi−1)) (1 ≤ i ≤ n)yn+1 = β

(9)

10.2.1 O caso Linear

Na equacao (7) temos n incognitas y1, y2, ..., yn e n equacoes que devem ser resolvidas. Se fenvolve yi de uma forma nao linear, estas equacoes serao nao lineares e, em geral, difıceis deserem resolvidas. Entretanto, vamos assumir que f e linear, isto e que possui a equacao possuia forma:

y′′ = p(x)y′ + q(x)y + r(x) a ≤ x ≤ b,

y(a) = α y(b) = β,(10)

Agora seguimos o seguinte:

241

Page 243: Apostila CNumerico 2013

• Escolhemos um inteiro N e dividimos o intervalo [a, b] em N + 1 subintervalos. Os pontosda malha dados por xi = a + ih, para i = 0, 1, ..., N + 1 e h = (b − a)/(N + 1). Porfacilidade h sera considerado constante.

• Em um ponto interior da malha xi, i = 1, ...N , substituımos as aproximacoes em diferencascentrais dadas pelas formulas (5) e (6) para y′ e y′′

• Usando estas formulas em diferencas centrais na equacao (10) resulta na seguinte equacao:

y(xi+1)− 2y(xi) + y(xi−1)

h2= p(xi)

[y(xi+1)− y(xi−1)

2h

]+ q(xi)y(xi)

+ r(xi)−h2

12

[2p(xi)y

′′′(ηi)− y(4)(ξi)].

• Usando esta equacao juntamente com as condicoes de contorno do problema y(a) = α ey(b) = β obtemos um metodo de diferencas finitas com erro de truncamento de ordemO(h2), definido por:

w0 = α, wN+1 = β

e (2wi − wi+1 − wi−1

h2

)+ p(xi)

(wi+1 − wi−1

2h

)+ q(xi)wi = −r(xi) (11)

para cada i = 1, 2, ..., N .

• Agora rearranjando a equacao (11) temos:

−(

1 +h

2p(xi)

)wi−1 +

(2 + h2q(xi)

)wi −

(1− h

2p(xi)

)wi+1 = −h2r(xi)

o que resulta em um sistema de N equacoes e N incognitas,

Aw = b (12)

onde,

A =

2 + h2q(x1) −1 + h2p(x1) 0 . . . . . . 0

−1− h2p(x2) 2 + h2q(x2) −1 + h

2p(x2)

. . ....

0. . .

......

. . . . . . 0...

. . . . . . . . . 00 . . . 0 −1− h

2p(xN) 2 + h2q(xN)

242

Page 244: Apostila CNumerico 2013

w =

w1

w2...

wN−1

wN

e b =

−h2r(x1) +

(1 + h

2p(x1)

)w0

−h2r(x2)...−h2r(xN−1)−h2r(xN) +

(1− h

2p(xN)

)wN+1

O sistema acima e tridiagonal e pode ser resolvido por um algoritmo Gaussiano especial

para estes casos. Note ainda que se h e pequeno e qi > 0, a matriz do sistema sera diagonaldominante se

|2 + h2qi| >∣∣∣∣1 +

1

2hpi

∣∣∣∣+

∣∣∣∣1− 1

2hpi

∣∣∣∣ = 2

Aqui nos assumimos que |12hpi| ≤ 1 porque entao o termo 1 + 1

2hpi sao ambos nao negativos.

Desta forma assumimos que qi > 0 e h e pequeno o suficiente para que |12hpi| ≤ 1. O seguinte

teorema nos apresenta condicoes sob as quais podemos garantir a existencia de uma unicasolucao do sistema (12).

Teorema 52 Suponha que p, q e r sao funcoes contınuas sobre o intervalo [a, b]. Se q(x) > 0sobre [a, b], entao o sistema tridiagonal (12) possui uma unica solucao se h < 2/L, ondeL = maxa≤x≤b |p(x)|.

Devemos ainda notar que a hipotese do teorema (52) garante a unicidade de solucao dePVC (10), mas isto nao garante que y ∈ C(4)[a, b], o que e preciso para assegurar um erro detruncamento de O(h2).

ALGORITMO 10Aproxima a solucao do PVC y′′ = p(x)y′ + q(x)y + r(x), y(a) = α, y(b) = βENTRADA: a, b, α, β, N .SAıDA: Aproximacoes wi de y(xi) para cada i = 0, 1, ..., N + 1.

1. Faca h = (b− a)/(N + 1)

x = a+ ha1 = 2 + h2q(x)b1 = −1 + (h/2)p(x)d1 = −h2r(x) + (1 + (h/2)p(x))α

2. Para = 2, . . . , N − 1 faca

x = a+ ihai = 2 + h2q(x)bi = −1 + (h/2)p(x)ci = −1− (h/2)p(x)di = −h2r(x)

3. Faca x = b− h

243

Page 245: Apostila CNumerico 2013

aN = 2 + h2q(x)cN = −1− (h/2)p(x)dN = −h2r(x) + (1− (h/2)p(x))β

4. Faca l1 = a1 (4 a 10 resolve sistema tridiag.)

u1 = b1/a1

5. Para i = 2, ..., N Faca

li = ai − ciui−1

ui = bi/li

6. Faca lN = aN − cNuN−1

7. Faca z1 = d1/l1

8. Para i = 2, ..., N Faca zi = (di − cizi−1)/li

9. Faca

w0 = αwN+1 = βwN = zN

10. Para i = N − 1, ..., 1 Faca wi = zi − uiwi+1

11. Para i = 0, ..., N + 1 Faca x = a+ ih

SAıDA: (x,wi)

12. PARE

Exemplo 75 O algoritmo (10) sera usado para aproximar a solucao do PVC

y′′ = −2

xy′ +

2

x2y +

sin(lnx)

x2, 1 ≤ x ≤ 2, y(1) = 1, y(2) = 2,

neste exemplo iremos usar N = 9, e assim h = (2 − 1)/(9 + 1) = 0.1. Os resultados estaolistados na tabela (7). Aqui vamos comparar os resultados obtidos pelo metodo com a solucaoexata

y(x) = c1x+c2

x2− 3

10sin(lnx)− 1

10cos(lnx),

onde c2 = 170

[8− 12 sin(ln 2)− 4 cos(ln 2)] ≈ −0.03920701320 e c1 = 1110− c2 ≈ 1.1392070132.

244

Page 246: Apostila CNumerico 2013

xi wi y(xi) |wi − y(xi)|1.0 1.00000000 1.00000000 −−1.1 1.09260052 1.09262930 2.88× 10−5

1.2 1.18704313 1.18708484 4.17× 10−5

1.3 1.28333687 1.28338236 4.55× 10−5

1.4 1.38140205 1.38144595 4.39× 10−5

1.5 1.48112026 1.48115942 3.92× 10−5

1.6 1.58235990 1.58239246 3.26× 10−5

1.7 1.68498902 1.68501396 2.49× 10−5

1.8 1.78888175 1.78889853 1.68× 10−5

1.9 1.89392110 1.89392951 8.41× 10−6

2.0 2.00000000 2.00000000 −−

Nota 6 Este metodo e O(h2) e por isto e menos preciso que o para resolucao de PVI que eO(h4). Para obter um metodo de diferencas com maior precisao, aparecem dificuldades, poisaproximacoes de maior ordem em diferencas finitas necessitam multiplos valores antes e depoisde xi.

Nota 7 Pode-se usar extrapolacao de Richardson para acelerar a convergencia do metodo. Porexemplo para aproximar a solucao do PVC do exemplo (75) devemos resolve-lo com h1 = 0.1,h2 = h1/2 = 0.05 e h3 = h2/2 = 0.025. Aqui vamos notar wi,1, wi,1 ewi,1 para as aproximacoesda solucao y(xi) com h1, h2 e h3 respectivamente. Assim usando as formulas, de extrapolacao

Ext1,i =4wi,2 − wi,1

3

Ext2,i =4wi,3 − wi,2

3

Ext3,i =16w2,i − w1,i

15obtemos os resultados descritos na tabela:

xi wi,1 wi,2) wi,3 Ext1,i Ext2,i Ext3,i1.0 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.000000001.1 1.09260052 1.09262207 1.09262749 1.09262925 1.09262930 1.092629301.2 1.18704313 1.18707436 1.18708222 1.18708477 1.18708484 1.187084841.3 1.28333687 1.28337094 1.28337950 1.28338230 1.28338236 1.283382361.4 1.38140205 1.38143493 1.38144319 1.38144589 1.38144595 1.381445951.5 1.48112026 1.48114959 1.48115696 1.48115937 1.48115941 1.481159411.6 1.58235990 1.58238429 1.58239042 1.58239242 1.58239246 1.582392461.7 1.68498902 1.68500770 1.68501240 1.68501393 1.68501396 1.685013961.8 1.78888175 1.78889432 1.78889748 1.78889852 1.78889853 1.788898531.9 1.89392110 1.89392740 1.89392898 1.89392950 1.89392951 1.893929512.0 2.00000000 2.00000000 2.00000000 2.00000000 2.00000000 2.00000000

245

Page 247: Apostila CNumerico 2013

10.2.2 Metodos de diferencas finitas para problemas nao lineares

Para o problema geral nao linear de contorno

y′′ = f(x, y, y′), a ≤ x ≤ b, y(a) = α, y(b) = β, (13)

o metodo em diferenca e similar ao do caso linear, porem o sistema resultante aqui e nao lineare desta forma necessita de um processo iterativo para resolve-lo.

Para desenvolvermos este metodo vamos assumir que a funcao f satisfaz:

1. f e suas derivadas parciais em y e em y′ sao contınuas em

D = (x, y, y′)/a ≤ x ≤ b,−∞ < y <∞,−∞ < y′ <∞)

2. fy(x, y, y′) ≥ δ > 0 sobre D para algun δ > 0

3. Existem constantes k e L ,com

k = max(x,y,y′)∈D

|fy(x, y, y′)|, L = max(x,y,y′)∈D

|f ′y(x, y, y′)|.

Estas tres condicoes garantem a existencia e unicidade de solucao do problema (13).Como no caso linear, dividimos o intervalo [a, b] em N + 1 subintervalos iguais cujos pontos

estao em xi = a + ih, para i = 0, 1, ..., N + 1. Assumindo que a solucao exata e limitada emsua quarta derivada nos permite substituir y′′(xi) e y′(xi) em cada uma das equacoes

y′′(xi) = f(xi, y(xi), y′(xi)) (14)

pela formula apropriada em diferencas finitas dadas por (5) e (6). Assim obtemos para i =1, 2, ..., N ,

y(xi+1 − 2y(xi) + y(xi−1)

h2= f

(xi, y(xi),

y(xi+1)− y(xi−1)

2h− h2

6y′′′(ηi)

)+h2

12y(4)(ξi) (15)

para algum ξi e ηi no intervalo (xi−1, xi+1).Como no caso linear quando nao consideramos os termos de erro e empregamos as condicoes

de contorno,

w0 = α, wN+1 = β

−wi+1 − 2wi + wi−1

h2= f

(xi, wi,

wi+1 − wi−1

2h

)= 0

(16)

para i = 1, 2, ..., N .Desta forma obtemos um sistema nao linear de N equacoes e N incognitas, que possui

solucao unica se h < 2/L ver Keller[76]

246

Page 248: Apostila CNumerico 2013

2w1 − w2 + h2f

(x1, w1,

w2 − α2h

)− α =0

−w1 + 2w2 − w3 + h2f

(x2, w2,

w3 − w1

2h

)=0

......

−wN−1 + 2wN−1 − wN + h2f

(xN−1, wN−1,

wN − wN−2

2h

)=0

−wN−1 + 2wN + h2f

(xN , wN ,

β − wN−1

2h

)− β =0

(17)

Para aproximar a solucao deste sistema podemos usar o metodo de Newton para sistemas naolineares, conforme ja disctimos. A sequencia de vetores wk gerada pelas iteracoes converge paraa solucao unica do sistema, se a aproximacao inicial for suficientemente proxima da solucao w eo Jacobiano da matriz seja nao singular. No nosso caso o Jacobiano J(w1, ..., wN) e tridiagonale definido por:

J(w1, ..., wN ) =

A1,1 A1,2 0 ... 0

A2,1 A2,2. . .

...

0. . .

. . .. . .

......

. . . 0. . . AN−1,N

0 . . . 0 AN,N−1 AN,N

onde w0 = α, wN+1 = β

Ai,j = 2 + h2fy

(xi, wi,

wi+1 − wi−1

2h

), para i = j, j = 1, ..., N

Ai,j = −1 +h

2fy′

(xi, wi,

wi+1 − wi−1

2h

), para i = j − 1, j = 2, ..., N

Ai,j = −1− h

2fy′

(xi, wi,

wi+1 − wi−1

2h

), para i = j + 1, j = 1, ..., N − 1

O metodo de Newton para sistemas nao lineares precisa resolver em cada iteracao o sistemalinear

J(w1, ..., wN)

v1

v2...vN

= −

2w1 − w2 − α + h2f

(x1, w1,

w2−α2h

)−w1 + 2w2 − w3 + h2f

(x2, w2,

w3−w3

2h

)...

−wN−2 + 2wN−1 − wN + h2f(xN−1, wN−1,

wN−wN−2

2h

)−wN−1 + 2wN + h2f

(xN , wN ,

β−wN−1

2h

)− β

(18)

247

Page 249: Apostila CNumerico 2013

deve ser resolvido para o vetor v. e assim calcula-se a proxima iteracao como:

w(k)i = w

(k−1)i + vi, para cada i = 1, 2, ..., N.

EXERCıCIOS

1. Use Diferencas finitas para aproximar a solucao dos seguintes PVC:

(a) y′′ + y = 0, 0 ≤ 0 ≤ π, y(0) = 1, y(π) = −1;. Use h = π/2.

R: x1 = 1.04720, w1 = 0.525382; x2 = 2.09439, w2 = −0.525382.

(b) y′′ + 4y = cosx, 0 ≤ x ≤ π/4, y(0) = 0, y(π/4) = 0;. Use h = π/12.

R: x1 = π12, w1 = −0.0877483; x2 = π

6, w2 = −0.0852364.

2. Mostre que os seguintes PVC satisfazem a hipotese do teorema de existencia e unicidadee aproxime sua solucao.

(a) y′′ = −3y′ + 2y + 2x + 3, 0 ≤ x ≤ 1, y(0) = 2, y(1) = 1. Use h = 0.1 e compareos resultados com a solucao exata.

(b) y′′ = −(x + 1)y′ + 2y + (1 − x2)e−x, 0 ≤ x ≤ 1, y(0) = −1, = y(1) = 0. Useh = 0.1 e compare os resultados com a solucao exata y = (x− 1)e−x.

3. Repita o exercıcio 2 usando extrapolacao de Richardson.

4. Encontre por diferencas finitas a aproximacao da solucao de:

(a) y′′ = −(y′)2 − y + lnx, 1 ≤ x ≤ 2, y(1) = 0, y(2) = ln 2. Use h = 0.5.

R: xi = 1.5, wi = 0.406800.

(b) y′′ = xy′−yx2

, 1 ≤ x ≤ 1.6, y(1) = −1, y(1.6) = −0.847994. Use h = 0.2.

R: x = 1.2, w = −0.980942; x = 1.4, w = −0.928693.

248

Page 250: Apostila CNumerico 2013

Capıtulo 11

Metodo de Diferencas Finitas aplicadoa EDP: Uma introducao

Uma importante Classe de EDP sao as equacoes de segunda ordem com a forma:

A(x, y)∂2u

∂x2+B(x, y)

∂2u

∂x∂y+ C(x, y)

∂2u

∂y2= G

(x, y, u,

∂u

∂x,∂u

∂y

), (1)

com (x, y) ∈ Ω ⊆ R2, A, B e C funcoes contınuas em Ω de forma que A2 + B2 + C2 6= 0, paratodo (x, y) ∈ Ω.

Classificamos estas equacoes como:

1. Hiperbolica: Na regiao onde B2(x, y)− A(x, y)C(x, y) > 0

2. Elıptica: Na regiao onde B2(x, y)− A(x, y)C(x, y) < 0

3. Parabolica: Na regiao onde B2(x, y)− A(x, y)C(x, y) = 0

Exemplos:

1. Equacao de Laplace:

∂2u

∂x2+∂2u

∂y2= 0

Elıptica, pois B2 − AC = −1 < 0, ∀x, y ∈ Ω

2. Equacao de Transferencia de calor (difusao):

∂2u

∂x2=∂u

∂t

e uma equacao Parabolica, pois: B2 − AC = 1 = 0, ∀x, y ∈ Ω.

249

Page 251: Apostila CNumerico 2013

3. Equacao da onda:

α2∂2u

∂x2− ∂2u

∂t2= 0

e uma equacao Hiperbolica, pois B2 − AC = 1 > 0, ∀x, y ∈ Ω

A ideia basica do metodo de diferencas finitas e aproximar as derivadas parciais que apa-recem na EDP, nas condicoes iniciais e de contorno por formulas de diferencas finitas parafrente

∂u

∂x(t, x) ≈ u(t, x+4x)− u(t, x)

4x, (2)

diferencas para tras,

∂u

∂x(t, x) ≈ u(t, x)− u(t, x−4x)

4x, (3)

ou diferencas centrais

∂u

∂x(t, x) ≈ u(t, x+4x)− u(t, x−4x)

24x. (4)

As derivadas parciais de ordens superiores tambem possuem varias aproximacoes em diferencafinitas, no caso de diferencas centrais temos:

∂2u

∂x2(t, x) ≈ u(t, x+4x)− 2u(t, x) + u(t, x−4x)

(4x)2(5)

11.1 EDP Elıpticas

Vamos considerar a equacao de Poisson, descrita por:

∇2u(x, y) ≡ ∂2u

∂x2(x, y) +

∂2u

∂y2(x, y) = f(x, y) (6)

para (x, y) ∈ R2 e u(x, y) = g(x, y) para (x, y) ∈ S, onde

R = (x, y)/a < x < b, c < y < d

e S denota a fronteira de R. Vamos supor que f e g sao funcoes contınuas sobre seus domınios,assegurando assim unicidade de solucao para (6).

1. n, m inteiros h = (b− a)/n e k = (d− c)/m.

2. Partir o intervalo [a, b] em n partes iguais de largura k, com xi = a + ih, i = 0, 1, ..., n eyj = c+ jh, j = 0, 1, ...,m.

250

Page 252: Apostila CNumerico 2013

3. Em cada ponto interior do grid (xi, yj) para i = 1, ..., n− 1 e j = 1, ...,m− 1, expandindoem serie de Taylor na variavel x em torno de xi,

∂2u

∂x2(xi, yj) =

u(xi+1, yj)− 2u(xi, yj) + u(xi−1, yj)

h2− h2

12

∂4u

∂x4(ξi, yj) (7)

ξi ∈ (xi−1, xi+1) e expandindo em serie de Taylor na variavel y em torno de xj,

∂2u

∂y2(xi, yj) =

u(xi, yj+1)− 2u(xi, yj) + u(xi, yj−1)

k2− k2

12

∂4u

∂x4(xi, ηj) (8)

ηj ∈ (yj−1, yj+1).

4. substituindo as formulas (7) e (8) na equacao (6) temos a representacao da equacao dePoisson no ponto (xi, yj) como:

u(xi+1, yj)− 2u(xi, yj) + u(xi−1, yj)

h2+u(xi, yj+1)− 2u(xi, yj) + u(xi, yj−1)

k2=

f(xi, yj) +h2

12

∂4u

∂x4(ξi, yj) +

∂4u

∂x4(xi, ηj)

(9)

para i = 1, ..., n− 1 e j = 1, ...,m− 1. Com as condicoes de contorno

u(x0, yj) =g(x0, yj), j = 0, ...,m,

u(xn, yj) =g(x0, yj), j = 0, ...,m,

u(xi, y0) =g(xi, y0), i = 1, ..., n− 1,

u(xi, ym) =g(x0, yj), i = 1, ..., n− 1.

(10)

5. Asim obtemos a equacao em diferenca chamada de Metodo de Diferenca Central, comordem de truncamento O(h2 + k2)

2

[(h

k

)2

+ 1

]wi,j − (wi+1,j + wi−1,j)−

(h

k

)2

(wi,j+1 + wi,j−1) = −h2f(xi, yj) (11)

para i = 1, ..., n− 1 e j = 1, ...,m− 1, de forma que:

w0,j =g(x0, yj) para cada j = 0, 1, ...,m,

wn,j =g(xn, yj) para cada j = 0, 1, ...,m,

wi,0 =g(xi, y0) para cada i = 1, 2, ..., n− 1,

wi,m =g(xi, ym) para cada i = 1, 2, ..., n− 1.

(12)

251

Page 253: Apostila CNumerico 2013

6. where wi,j aproxima u(xi, yj).

Note que a equacao em cada ponto (xi, yj) envolve,

Figura 11.1: Pontos envolvidos na equacao escrita no no (xi, yj) da malha

assim, para montarmos a equacao no ponto (xi, yj) temos que conhecer as solucoes nospontos da malha acima abaixo e dos lados de (xi, yj).

Exemplo 76 Considere o problema de determinar a distribuicao de temperatura em estadoestacionario em uma placa quadrada 0.5m × 0.5m. Duas fronteiras adjacentes sao mantidasa 0oC, enquanto o calor sobre as outras fronteiras crescem linearmente de 0oC em um cantoate 100oC, onde estes lados se encontram. Assim, u(0, y) = 0, u(x, 0) = 0, u(x, 0.5) = 200x eu(0.5, y) = 200y.

Para montarmos o sistema de equacoes associado, primeiramente vamos fazer a malha,considerando n = m = 4.

Figura 11.2: Malha gerada para o exemplo (76)

Em cada no interior da malha, como h = k, temos:

252

Page 254: Apostila CNumerico 2013

4wi,j − wi−1,j − wi− 1, j − wi,j−1 − wi,j+1 = 0 (13)

ou

-1-1 4 -1

-1

Desta forma obtemos o sistema,

4 -1 0 -1 0 0 0 0 0-1 4 -1 0 -1 0 0 0 00 -1 4 0 0 -1 0 0 0-1 0 0 4 -1 0 -1 0 00 -1 0 -1 4 -1 0 -1 00 0 -1 0 -1 4 0 0 -10 0 0 -1 0 0 4 -1 00 0 0 0 -1 0 -1 4 -10 0 0 0 0 -1 0 -1 4

w1

w2

w3

w4

w5

w6

w7

w8

w9

=

255015000

5000

25

(14)

Resolvendo o sistema acima temos a solucao,

i 1 2 3 4 5 6 7 8 9wi 18.75 37.50 56.25 12.50 25.00 37.50 6.25 12.50 18.75

(15)

A solucao exata deste problema e dada por u(x, y) = 400xy, assim a resposta obtida natabela acima e exata pois para este metodo o erro e avaliado atraves das derivadas de quartaordem em relacao a x e a y, que no caso sao nulas.

Devemos observar que o sistema gerado por este metodo e tridiagonal e para matrizes deordem 100 ou menores deve ser usado um metodo direto de resolucao, ja que seu carater dedefinida positiva garante a estabilidade com relacao a erros de arredondamento. No caso desistemas grandes e conveniente resolver este sistema por um metodo iterativo. Dos metodosdiscutidos o SOR seria o mais conveniente e para a selecao de ω decompomos A como:

A = D− L−U,

e calculamos a matriz do metodo de Jacobi como:

J = D−1(L + U)

assim seu raio espectral e

ρ(J) =1

2

[cos( πm

)+ cos

(πn

)].

253

Page 255: Apostila CNumerico 2013

Em consequencia, o valor de ω que sera utilizado e:

ω =2

1 +√

1− ρ2(J)=

4

2 +√

4−[cos(πm

)+ cos

(πn

)]2 .Exemplo 77 Neste exemplo vamos considerar a equacao de Poisson:

∂2u

∂x2(x, y) +

∂2u

∂y2(x, y) = xey, 0 < x < 2, 0 < y < 1,

com condicoes de contorno descritas por:

u(0, y) = 0, u(2, y) = eey, 0 ≤ y ≤ 1,

u(x, 0) = x, u(x, 1) = ex, 0 ≤ x ≤ 2.

Fazendo a aproximacao por diferencas finitas e usando n = 6, m = 5 e como criterio de paradapara o metodo de Gauss Seidel

w(i)ij − w

(i−1)ij ≤ 10−10,

para todo i = 1, ..., 5 e j = 1, ..., 4. Os resultados obtidos juntamente com os valores exatos saodescritos na tabela:

254

Page 256: Apostila CNumerico 2013

i j xi yi w(61)ij u(xi, yj) |u(xi, yj)− w(61)

ij |1 1 0.3333 0.2000 0.40713 0.40713 1.30×10−4

1 2 0.3333 0.4000 0.49727 0.49727 2.08×10−4

1 3 0.3333 0.6000 0.60737 0.60737 2.23×10−4

1 4 0.3333 0.8000 0.74185 0.74185 1.60×10−4

2 1 0.6667 0.2000 0.81427 0.81427 2.55×10−4

2 2 0.6667 0.4000 0.99455 0.99455 4.08×10−4

2 3 0.6667 0.6000 1.2147 1.2147 4.37×10−4

2 4 0.6667 0.8000 1.4837 1.4837 3.15×10−4

3 1 1.0000 0.2000 1.2214 1.2214 3.64×10−4

3 2 1.0000 0.4000 1.4918 1.4918 5.80×10−4

3 3 1.0000 0.6000 1.8221 1.8221 6.24×10−4

3 4 1.0000 0.8000 2.2255 2.2255 4.51×10−4

4 1 1.3333 0.2000 1.6285 1.6285 4.27×10−4

4 2 1.3333 0.4000 1.9891 1.9891 6.79×10−4

4 3 1.3333 0.6000 2.4295 2.4295 7.35×10−4

4 4 1.3333 0.8000 2.9674 2.9674 5.40×10−4

5 1 1.6667 0.2000 2.0357 2.0357 3.71×10−4

5 2 1.6667 0.4000 2.4864 2.4864 5.84×10−4

5 3 1.6667 0.6000 3.0369 3.0369 6.41×10−4

5 4 1.6667 0.8000 3.7092 3.7092 4.89×10−4

11.2 EDP Parabolicas

Para exemplificar o metodo de diferencas finitas aplicado a equacoes parabolicas usaremos aequacao da difusao, dada por:

∂u

∂t(x, t) = α2∂

2u

∂x2(x, t), para 0 < x < `, para t > 0 (16)

e vamos considerar as condicoes de contorno e condicao inicial:

u(x, 0) = f(x), para 0 ≤ x ≤ `, e u(0, t) = u(`, t) = 0, para t > 0. (17)

11.2.1 Diferenca para frente

Primeiramente vamos definir h = `/m onde m e um numero inteiro positivo. Selecionamos umpasso k > 0 no tempo. Os pontos da malha sao (xi, tj), onde xi = ih para i = 0, 1, 2, ...,m etj = jk, para j = 0, 1, .... Vamos ainda considerar as seguintes aproximacoes em diferencas:

∂u

∂t(xi, tj) =

u(xi, tj + k)− u(xi, tj)

k− k

2

∂2u

∂t2(xi, µj) (18)

255

Page 257: Apostila CNumerico 2013

onde µj ∈ (tj, tj+1) e

∂2u

∂x2(xi, tj) =

u(xi + h, tj)− 2u(xi, tj) + u(xi − h, tj)h2

− h2

12

∂4u

∂x4(ξi, tj) (19)

onde ξi ∈ (xi−1, xi+1).A ED Parabolica (16) implica que os pontos da malha (xi, tj) para todo i = 1, 2, ...m− 1 e

j = 1, 2, ... teremos

∂u

∂t(xi, tj)− α2∂

2u

∂x2(xi, tj) = 0,

ou seja,

wi,j+1 − wi,jk

− α2wi+1,j − 2wi,j + wi−1,j

h2,= 0 (20)

onde wi,j ≈ u(xi, yj).O erro local de truncamento para esta equacao em diferencas e dado por:

τi,j =k

2

∂2u

∂t2(xi, µj)− α2h

2

12

∂4u

∂x4(ξi, tj). (21)

Agora, resolvendo a equacao (20) para wi,j+1 temos

wi,j+1 =

(1− 2α2k

h2

)wi,j + α2 k

h2(wi+1,j + wi−1,j), (22)

para i = 1, 2, ...,m− 1 e j = 1, 2, .... Agora, como a condicao inicial u(x, 0) = f(x), para todo0 ≤ x ≤ `, temos que wi,0 = f(xi). As equacoes adicionais u(0, t) = 0 e u(`, t) = 0 implicamque w0,i = wm,i.

Matricialmente podemos escrever:

w(j) = Aw(j−1), para j = 1, 2, ...

onde

A =

(1− 2λ) λ 0 ... ... 0

λ (1− 2λ) λ. . .

...

0. . . . . . . . . . . .

......

. . . . . . . . . 0...

. . . . . . λ0 ... ... 0 λ (1− 2λ)

.

onde λ = α2(k/h2). E onde

w(0) = (f(x1), ......, f(xm−1))T

256

Page 258: Apostila CNumerico 2013

.Quando a solucao da EDP possui quatro derivadas parciais contınuas na variavel x e duas

na variavel y este metodo e da ordem O(k + h2).Infelizmente, podemos mostrar que este metodo e condicionalmente estavel e ele converge

para a solucao da equacao (16) com taxa de convergencia O(k + h2) somente se

||Ane(0)|| ≤ ||e(0)||

onde e(0) e o erro que se comete ao representar os dados iniciais w(0) (ou em qualquer outropasso). Assim devemos ter ||An|| ≤ 1 e isto equivale a requerer ρ(An) = ρn(A) ≤ 1. Podemosmostrar que esta condicao equivale a escolha de k de forma que:

α2 k

h2≤ 1

2

Este fato pode ser visto no seguinte exemplo:

257

Page 259: Apostila CNumerico 2013

Exemplo 78 Vamos considerar a equacao do calor:∂u∂t

(x, t)− ∂2u∂x2

(x, t) = 0, 0 < x < 1, t ≥ 0u(0, t) = u(1, t) = 0, t > 0, u(x, 0) = sin(πx), 0 ≤ x ≤ 1.

A solucao exata deste problema e dada por u(x, t) = e−π2t sin(πx). A solucao em t = 0.5 sera

aproximada usando h = 0.1, k = 0.0005 e portanto λ = 0.05 e tambem fazendo h = 0.1, k = 0.1e portanto λ = 1. Os resultados obtidos estao na seguinte tabela:

xi u(xi, 0.5) wi,1000 (k = 0.0005) |u(xi, 0.5)− wi,1000| wi,50 (k = 0.1) |u(xi, 0.5)− wi,50|0.1 0 0 00.1 0.00222241 0.00228652 6.411×10−5 8.19876×107 8.199×107

0.2 0.00422728 0.00434922 1.219×10−4 - 1.55719×108 1.557×108

0.3 0.00581836 0.00598619 1.678×10−4 2.13833×108 2.138×108

0.4 0.00683989 0.00703719 1.973×10−4 - 2.50642×108 2.506×108

0.5 0.00719188 0.00739934 2.075×10−4 2.62685×108 2.627×108

0.6 0.00683989 0.00703719 1.973×10−4 - 2.49015×108 2.490×108

0.7 0.00581836 0.00598619 1.678×10−4 2.11200×108 2.112×108

0.8 0.00422728 0.00434922 1.219×10−4 - 1.53086×108 1.531×108

0.9 0.00222241 0.00228652 6.511×10−5 8.03604×107 8.036×107

1.0 0 0 0

Tabela 11.1: Tabela de resultados

258

Page 260: Apostila CNumerico 2013

11.2.2 Diferenca para tras

Um metodo incondicionalmente estavel e obtido quando usamos diferencas para tras aoinves de diferenca para frente na variavel t,

∂u

∂x(xi, tj) =

u(xi, tj)− u(xi, tj−1)

k+k

2

∂2u

∂t2(xi, µj)

onde µj ∈ (tj−1, tj). Substituindo esta equacao juntamente com a equacao (19) na ED Pa-rabolica (16) temos que os pontos da malha (xi, tj) para todo i = 1, 2, ...m − 1 e j = 1, 2, ...teremos

u(xi, tj)− u(xi, tj−1)

k−α2u(xi+1, tj)− 2u(xi, tj) + u(xi−1, tj)

h2= −k

2

∂2u

∂t2(xi, µj)−α2h

2

12

∂4u

∂x4(ξi, tj),

ou

wi,j − wi,j−1

k− α2wi+1,j − 2wi,j + wi−1,j

h2,= 0 (23)

para todo i = 1, 2, ...,m− 1 e j = 1, 2, ....O metodo de diferencas para tras inclui, em um passo tıpico, os seguintes pontos da malha:

(xi−1, tj) (xi, tj) (xi+1, tj)

(xi, tj−1)

Sendo a quantidade λ = α2(k/h2), o metodo de diferencas para tras e dado por:

(1− 2α2k

h2)wi,j − λwi+1,j − λwi−1,j = wi,j−1,

para i = 1, 2, ...,m−1 e j = 1, 2, .... Agora, usando que wi0 = f(xi) para todo i = 1, 2, ...,m−1e wm,j = w0,j = 0 para todo j = 1, 2, ..., temos a seguinte representacao matricial:

Aw(j) = w(j−1), para j = 1, 2, ...

onde

A =

(1 + 2λ) −λ 0 ... ... 0

−λ (1− 2λ) λ. . .

...

0. . . . . . . . . . . .

......

. . . . . . . . . 0...

. . . . . . −λ0 ... ... 0 −λ (1 + 2λ)

.

259

Page 261: Apostila CNumerico 2013

Quando a solucao da EDP possui quatro derivadas parciais contınuas na variavel x e duasna variavel y este metodo e da ordem O(k + h2).

A razao pela qual o metodo de diferencas para tras nao apresenta os problemas de estabili-dade do metodo de diferencas para frente e que os autovalores de A sao dados por:

µi = 1 + 4λ

[sin

(iπ

2m

)]2

e como λ > 0 temos que µi > 1 e desta forma os autovalores de A−1 sao todos menores que 1em modulo.

260

Page 262: Apostila CNumerico 2013

Exemplo 79 Vamos considerar novamente o exemplo:

∂u

∂t(x, t)− ∂2u

∂x2(x, t) = 0 para 0 < x < ` e t > 0,

sujeito as condicoes de contorno

u(0, t) = u(`, t) = 0 para t > 0 e u(x, 0) = sin(πx), 0 ≤ x ≤ `.

Aqui vamos usar as escolhas m = 10, isto e h = 0.1, k = 0.01, logo λ = 1.Depois de 50 iteracoes, temos a aproximacao da solucao em t = 0.5 com:

xi wi,50 u(xi, 0.5) = e−0.5π2sin(πxi) |wi,50 − u(xi, 0.5)|

0.0 0 00.1 0.00289802 0.00222241 6.756× 10−4

0.2 0.00551236 0.00422728 1.2885× 10−3

0.3 0.00758711 0.00581836 1.769× 10−3

0.4 0.00891918 0.00683989 2.079× 10−3

0.5 0.00937818 0.00719188 2.186× 10−3

0.6 0.00891918 0.00683989 2.079× 10−3

0.7 0.00758711 0.00581836 1.769× 10−3

0.8 0.00551236 0.00422728 1.285× 10−3

0.9 0.00289802 0.00222241 6.756× 10−4

1.0 0 0

O problema deste metodo reside no fato que o erro local de truncamento possui uma partecom ordem linear, isto e O(k). Este fato faz que o intervalo requerido no tempo seja muitopequeno. Desta forma seria interessante obtermos um metodo O(k2 + h2). Para isto primeira-mente usou-se aproximacao em diferencas centrais para a variavel t, obtendo-se o metodo deRichardson. Porem este metodo possui serios problemas de convergencia.

261

Page 263: Apostila CNumerico 2013

11.2.3 O metodo de Crank-Nicolson

Como o problema do metodo de diferenca finita para tras para a resolucao de EDP Parabolicas,apesar de incondicionalmente estavel, possui em sua formula de erro o fator O(k) que e linear eassim requer que os intervalos considerados no tempo (k) seram muito menores que os espaciais(h). e claro que o ideal e que o erro seja O(h2 + k2). Este metodo existe e e uma media entreos metodos de diferenca para frente no j-esimo passo no tempo t.

wi,j+1 − wi,jk

− α2wi+1,j − 2wi,j + wi−1,j

h2= 0,

que possui erro (k/2)(∂2u/∂t2)(xi, µj)+O(h2), e o metodo de diferenca para tras no passo (j+1)no tempo,

wi,j+1 − wi,jk

− α2wi+1,j+1 − 2wi,j+1 + wi−1,j+1

h2= 0,

que possui erro −(k/2)(∂2u/∂t2)(xi, µj) +O(h2). Se assumimos que

∂2u

∂t2(xi, µj) =

∂2u

∂t2(xi, µj)

assim a media e dada por:

wi,j+1 − wi,jk

− α2

2

[wi+1,j − 2wi,j + wi−1,j

h2+wi+1,j+1 − 2wi,j+1 + wi−1,j+1

h2

]= 0

que possui erro de ordem O(h2 + k2), se as usuais condicoes de diferenciabilidade sejam sa-tisfeitas. Este metodo e chamado de Crank-Nicolson e e representado na forma matricialpor,

Aw(j+1) = Bw(j)

para j = 0, 1, 2, . . . , onde

λ = α2 k

h2, w(j) = (w1j, w2j, . . . , wm−1,j)

T ,

e as matrizes A e B sao dadas por,

A =

(1 + λ) −λ2

0 . . . . . . 0

−λ2

(1 + λ) −λ2

. . ....

0. . . . . . . . . . . .

......

. . . . . . . . . . . . 0...

. . . . . . −λ2

0 . . . . . . 0 −λ2

(1 + λ)

(24)

262

Page 264: Apostila CNumerico 2013

e

B =

(1− λ) λ2

0 . . . . . . 0λ2

(1− λ) λ2

. . ....

0. . . . . . . . . . . .

......

. . . . . . . . . . . . 0...

. . . . . . λ2

0 . . . . . . 0 λ2

(1− λ)

(25)

Agora, como A e definida positiva, estritamente diagonal dominante e tridiagonal e destaforma nao singular. Para resolver este sistema podemos usar fatoracao de Crout para sistemastridiagonais ou um metodo iterativo.

263

Page 265: Apostila CNumerico 2013

Exemplo 80 Use o metodo de Crank-Nicolson para aproximar

∂u

∂t(x, t)− ∂2u

∂x2(x, t) = 0 para 0 < x < ` e t > 0,

sujeito as condicoes de contorno

u(0, t) = u(`, t) = 0 para t > 0 e u(x, 0) = sin(πx), 0 ≤ x ≤ `.

Aqui vamos usar as escolhas m = 10, isto e h = 0.1, k = 0.01, logo λ = 1.Depois de 50 iteracoes, temos a aproximacao da solucao em t = 0.5 com:

xi wi,50 u(xi, 0.5) = e−0.5π2sin(πxi) |wi,50 − u(xi, 0.5)|

0.0 0 00.1 0.00230512 0.00222241 8.271× 10−5

0.2 0.00438461 0.00422728 1.573× 10−4

0.3 0.00603489 0.00581836 2.165× 10−4

0.4 0.00709444 0.00683989 2.546× 10−4

0.5 0.00745954 0.00719188 2.677× 10−4

0.6 0.00709444 0.00683989 2.546× 10−4

0.7 0.00603489 0.00581836 2.165× 10−4

0.8 0.00438461 0.00422728 1.573× 10−4

0.9 0.00230512 0.00222241 8.271× 10−5

1.0 0 0

264

Page 266: Apostila CNumerico 2013

11.3 EDP Hiperbolicas

Para apresentarmos o metodo de diferencas finitas aplicado a equacoes hiperbolicas, vamosconsiderar a equacao da onda dada por:

∂2u

∂t2(x, t)− α2∂

2u

∂x2(x, t) = 0, para 0 < x < ` e t > 0, (26)

sujeita as condicoes de contorno

u(0, t) =u(`, t) = 0, para t > 0,

u(x, 0) =f(x), e∂u

∂t(x, 0) = g(x), para 0 ≤ x ≤ `,

(27)

Vamos escolher um inteiro m > 0 e um passo no tempo k > 0. Fazendo h = `/m, ospontos damalha (xi, tj) sao definidos por

xi = ih e tj = jk,

para cada i = 0, 1, . . . ,m e j = 0, 1, . . . . Em um ponto interior da malha (xi, yj), podemos usaro quociente de diferencas centrais para a derivada segunda, obtendo

∂2u

∂t2(xi, tj) =

u(xi, tj+1)− 2u(xi, tj) + u(xi, tj−1)

k2− k2

12

∂4u

∂t4(xi, µj), (28)

para um µj ∈ (tj−1, tj+1) e

∂2u

∂x2(xi, tj) =

u(xi+1, tj)− 2u(xi, tj) + u(xi−1, tj)

h2− h2

12

∂4u

∂x4(ξi, tj), (29)

para um ξi ∈ (xi−1, xi+1).Substituindo estas formulas na equacao da onda e negligenciando o termo de erro, dado por

1

12

[k2

12

∂4u

∂t4(xi, µj)− α2h

2

12

∂4u

∂x4(ξi, tj)

](30)

obtemos a equacao em diferencas

wi,j+1 − 2wi,j + wi,j−1

k2− α2wi+1,j − 2wi,j + wi−1,j

h2= 0 (31)

Agora, se notarmos

λ =αk

h,

nos podemos resolver a equacao acima, para a aproximacao da solucao mais avancada no tempowi,j+1, obtendo

wi,j+1 = 2(1− λ2)wi,j + λ2(wi+1,j + wi−1,j)− wi,j−1. (32)

265

Page 267: Apostila CNumerico 2013

Esta equacao vale para i = 1, 2, ...,m − 1 e j = 1, 2, .... As condicoes de contorno sao dadaspor,

w0,j = wm,j = 0, para cada j = 1, 2, 3, .... (33)

e condicao inicial

wi,0 = f(xi), para cada i = 1, 2, ...,m− 1. (34)

Matricialmente podemos escrever

w1,j+1

w2,j+1

w3,j+1......

wm−1,j+1

=

2(1− λ2) λ2 0 . . . . . . 0

λ2 2(1− λ2) λ2 . . ....

0. . . . . . . . . . . .

......

. . . . . . . . . . . . 0...

. . . . . . λ2

0 . . . . . . 0 λ2 2(1− λ2)

w1,j

w2,j

w3,j......

wm−1,j

w1,j−1

w2,j−1

w3,j−1......

wm−1,j−1

.

(35)

Desta forma para calcularmos w1,j+1 precisamos conhecer os valores da j-esima linha e dalinha j − 1, o que reverte em um pequeno problema de inicializacao. Quando j = 0 os valoressao dados pela equacao (34), porem quando j = 1, devem ser obtidos da outra condicao inicial

∂u

∂t(x, 0) = g(x), 0 ≤ x ≤ `.

Para resolver este problema poderıamos usar diferenca finita para frente, mas isto baixaria aordem do metodo para O(k). Se f ′′(x) existe, para mantermos a ordem quadratica do erroexpandimos u(xi, t1) em serie de Maclaurin como:

u(xi, t1) = u(xi, 0) + k∂u

∂t(xi, 0) +

k2

2

∂2u

∂t2(xi, 0) +

k3

6

∂3u

∂t3(xi, µi)

para algum µi ∈ (0, t1). Entao:

∂2u

∂t2(xi, 0) = α2∂

2u

∂x2(xi, 0) = α2 d

2

dx2(xi) = α2f ′′(xi)

e

u(xi, t1) = u(xi, 0) + kg(xi) +α2k2

2f ′′(xi) +

k3

6

∂3u

∂t3(xi, µi),

o que produz uma aproximacao com erro O(k3):

wi,1 = wi,0 + kg(xi) +α2k2

2f ′′(xi).

266

Page 268: Apostila CNumerico 2013

Ainda, se nao dispomos de f ′′(xi), mas f ∈ C4[0, 1], podemos aproximar por diferencasfinitas como:

f ′′(xi) =f(xi+1)− 2f(xi) + f(xi−1)

h2− h2

12f (4)(ξi),

para ξi ∈ (xi−1, xi+1). e isto implica que

u(xi, t1) = u(xi, 0) + kg(xi) +α2k2

2h2(f(xi+1)− 2f(xi) + f(xi−1)) +O(k3 + h2k2).

se λ = kα/h, entao

u(xi, t1) = u(xi, 0) + kg(xi) +λ2

2(f(xi+1)− 2f(xi) + f(xi−1)) +O(k3 + h2k2).

ou

u(xi, t1) = (1− λ)f(xi) +λ2

2f(xi+1) +

λ2

2f(xi−1) + kg(xi) +O(k3 + h2k2).

Assim podemos usar a equacao em diferencas

wi,1 = (1− λ)f(xi) +λ2

2f(xi+1 +

λ2

2f(xi−1) + kg(xi),

para calcular wi,1, para i = 1, 2, ...,m− 1.

267

Page 269: Apostila CNumerico 2013

Exemplo 81

Vamos considerar o seguinte problema:

∂2u

∂t2(x, t)− 4

∂2u

∂x2(x, t) = 0, 0 < x < 1, t > 0,

com as condicoes de fronteira

u(0, t) = u(1, t) = 0, para t > 0,

e condicoes iniciais

u(x, 0) = sin(πx), 0 ≤ x ≤ 1, e∂u

∂t(x, 0) = 0, 0 ≤ x ≤ 1.

A solucao exata do problema e dada por:

u(x, t) = sinπx cos 2πt.

Aqui usamos m = 10, T = 1 e N = 20, o que significa que η = 0.1, k = 0.05 e λ = 1.Os resultados obtidos sao dados na seguinte tabela: Os resultados dados pela tabela acima

xi 0.0 0.1 0.2 0.3 0.4 0.5wi,20 0.0000000000 0.3090169944 0.5877852523 0.8090169944 0.9510565163 1.0000000000

xi 0.6 0.7 0.8 0.9 1.0wi,20 0.9510565163 0.8090169944 0.5877852523 0.3090169944 0.0000000000

possuem todas as casas decimais exatas. Isto ocorre pois a solucao da equacao e infinitamentediferenciavel e com isto podemos mostrar que o erro de truncamento local do metodo e 0. Estaformulacao tambem apresenta problemas de estabilidade e exige que λ = αk/h ≤ 1. Neste casotambem existem metodos implıcitos que sao incondicionalmente estaveis.

268