Prof.: Roberto F. Ausas. Semestre

Documentos relacionados
10 Estabilidade de Métodos de Passo Simples

Modelagem Computacional. Aula 5 2

Lista de Exercícios 3 e soluções

Cap. 10. Resolução Numérica de Equações Diferenciais Ordinárias: Problemas de Valor Inicial. Filipe J. Romeiras

Método de Euler. Marina Andretta/Franklina Toledo ICMC-USP. 29 de outubro de 2013

Diferenciais Ordinárias

Métodos de Runge-Kutta

Cálculo Numérico P2 EM33D

Métodos Numéricos em Equações Diferenciais Aula 01 - Problema de Valor Inicial

Erros nas aproximações numéricas

Métodos Previsor-Corretor

Algoritmos Numéricos 2 a edição

Solução Numérica de EDOs

étodos uméricos SOLUÇÃO NUMÉRICA DE EQUAÇÕES DIFERENCIAIS ORDINÁRIOAS Prof. Erivelton Geraldo Nepomuceno

y (n) (x) = dn y dx n(x) y (0) (x) = y(x).

Equações diferenciais ordinárias EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Regiões de Estabilidade de Métodos Numéricos para

Equações Diferenciais Problemas de Valor Inicial. Computação 2º Semestre 2016/2017

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Métodos de passo simples para equações diferenciais ordinárias. Nelson Kuhl

Métodos Numéricos em Engenharia Química

Modelagem Computacional. Parte 8 2

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Equações diferenciais ordinárias

Resolução do Exame Tipo

Cálculo Numérico. Resumo e Exercícios P2

Convergência em espaços normados

Sistemas de Equações Diferenciais Lineares

SME Roberto F. Ausas / Gustavo C. Buscaglia

INSTITUTO SUPERIOR TÉCNICO Licenciatura em Engenharia Física Tecnológica Licenciatura em Engenharia e Gestão Industrial Ano Lectivo: 2002/2003

SME Cálculo Numérico. Lista de Exercícios: Gabarito

Funções podem ser representadas como série de potências Uma série de potências centrada em x 0 tem a seguinte forma:

Método do Ponto Fixo

y(x n+1 ) = y(x n ) + hy (x n ) + h2 q! y (q) (x n )

Métodos Numéricos para EDO S

Exercícios de MATEMÁTICA COMPUTACIONAL Capítulo V

diferenciais ordinárias a valores iniciais Notas de aula em construção

MAP2310. Análise Numérica e Equações Diferenciais I. 1 Equações Diferenciais Ordinárias

Equações Diferenciais Métodos Adaptativos e Rigidez. Computação 2º Semestre 2016/2017

Equações Diferenciais Ordinárias

Métodos Numéricos em Equações Diferenciais Aula 02 - Método de Euler

Parte II. Análise funcional II

O teorema do ponto fixo de Banach e algumas aplicações

Métodos Numéricos para EDOs. 2 de abril de 2012

Modelagem em Sistemas Complexos

CM098 - Análise Numérica III Notas de Aula

Capítulo 1. Esquema de diferenças finitas e a equação do Oscilador Harmônico

Análise Complexa e Equações Diferenciais 2 o Semestre 2013/14 Cursos: LEAN, MeMec

32 a Aula AMIV LEAN, LEC Apontamentos

Equações diferenciais ordinárias

Física Computacional 5

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Exame (1º Teste) de Análise Numérica (LMAC, MEIC, MMA) Instituto Superior Técnico, 11 de Janeiro de 2016, 15h00-16h15 (1º Teste)

Waldemar Celes. 2 de Setembro de 2014

EXAMES DE ANÁLISE MATEMÁTICA III

Universidade Tecnológica Federal do Paraná

Exame de Análise Numérica, 1ª Parte/ 1º Teste (LMAC, MMA) Instituto Superior Técnico, 30 de Janeiro de 2017, 18h30-19h45-21h00

x exp( t 2 )dt f(x) =

g(s, X n s )ds + t f (s, X s ) 2 ds <, P-q.s. t f (s, X s )db s, t 0.

CÁLCULO NUMÉRICO UFRJ Lista 0: revisão de cálculo e álgebra linear

Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados

As bases da Dinâmica Molecular - 2

ANÁLISE COMPLEXA E EQUAÇÕES DIFERENCIAIS. Apresente e justifique todos os cálculos

Teorema Do Ponto Fixo Para Contrações 1

EXERCICIOS RESOLVIDOS - INT-POLIN - MMQ - INT-NUMERICA - EDO

Fundamentos da Eletrostática Aula 02 Cálculo Vetorial: derivadas

Solução aproximada de equações de uma variável

Disciplina: Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer. Integração numérica: Fórmulas de Newton-Cotes.

1 Equações Diferenciais Ordinárias: Sistemas de Equações

Interpolação polinomial

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Curso: MAT 221- CÁLCULO DIFERENCIAL E INTEGRAL IV Professor Oswaldo Rio Branco de Oliveira Período: Segundo Semestre de 2008

Exame/Teste (1) de Análise Numérica (LMAC, MEIC, MMA) Instituto Superior Técnico, 12 de Janeiro de 2011, 18h30-20h00 (1º Teste)

Sabendo que f(x) é um polinômio de grau 2, utilize a formula do trapézio e calcule exatamente

Introdução aos Métodos Numéricos

Resolução do exame de matemática computacional

A Derivada. Derivadas Aula 16. Alexandre Nolasco de Carvalho Universidade de São Paulo São Carlos SP, Brazil

MAP Segundo Exercício Programa

Exemplos de equações diferenciais

dy dt d 2 y dt 2 d n y dt n y dy y= F t a= f t, v, x dv dt = f t, a dx = f t, v

CENTRO DE CIÊNCIAS E TECNOLOGIA AGROALIMENTAR UNIDADE ACADÊMICA DE TECNOLOGIA DE ALIMENTOS DISCIPLINA: FÍSICA I EQUILÍBRIO. Prof.

Matemática Computacional. Exercícios. Teoria dos erros

Capítulo 2 - Problemas de Valor Inicial para Equações Diferenciais Ordinárias

Comparação entre métodos numéricos: Runge-Kutta de quarta ordem e previsor-corretor

TRANSFORMADA DE LAPLACE E OPERADORES LINEARES

Translação e Rotação Energia cinética de rotação Momentum de Inércia Torque. Física Geral I ( ) - Capítulo 07. I. Paulino*

Integral. Queremos calcular a integral definida I = O valor de I será associado a uma área. Veremos dois métodos (por enquanto)

Instituto de Matemática - UFRGS - Mat Cálculo Numérico

Seção 15: Sistema de Equações Diferenciais Lineares Homogêneas com Coeficientes Constantes

2 ō Semestre 2015/2016

Resolução de sistemas de equações lineares: Método do Gradiente

14 Estimador assintótico

Interpolação polinomial: Polinômio de Lagrange

As bases da Dinâmica Molecular - 1

FOLHAS DE PROBLEMAS DE MATEMÁTICA II CURSO DE ERGONOMIA PEDRO FREITAS

Aula 19 06/2014. Integração Numérica

Aula 3 11/12/2013. Integração Numérica

Modelagem Computacional. Parte 2 2

Modelagem Computacional. Parte 4 2

Transcrição:

Cálculo Numérico Resolução numérica de EDO s Prof.: Roberto F. Ausas Cálculo Numérico e-mail: rfausas@icmc.usp.br ICMC-USP - São Carlos Instituto de Ciências Matemáticas e de Computação Semestre 2-2017 1 / 119

Introdução Tópicos 1. Método de Euler 2. Métodos de Taylor 3. Métodos de Runge-Kutta 4. Métodos tipo previsor-corretor 2 / 119

Introdução Introdução Vamos estudar métodos numéricos para resolver o problema de valor inicial para equações diferenciais ordinarias (EDO s). y (t) = dy(t) = f (t, y(t)) t I = [t 0, T ] R dt junto com a condição inicial y(t 0 ) = y 0 3 / 119

Introdução Exemplos de EDO s: População Consideremos o equação de primeira ordem λ R. dy(t) dt Neste caso, a função f é linear: = λ y y(0) = y 0 f (t, y(t)) = λ y mas, não tem dependência expĺıcita na variável independente t. 4 / 119

Introdução Exemplos de EDO s: Exemplo não linear Consideremos o problema de primeira ordem dy(t) = t 2 + y 2 (t) dt y(0) = Neste caso, a função f é não linear e tem dependência explicíta na variável independente t: 1 2 f (t, y(t)) = t 2 + y 2 (t) 5 / 119

Introdução Exemplos de EDO s: Lotka-Volterra (Ecologia) Agora, consideremos um sistema de duas equações de primeira ordem: Modelo de interação entre presas e predadores: du(t) = f 1 (u, v) = (α β v) u Presa dt dv(t) = f 2 (u, v) = (δ u γ) v Predador dt Com condições iniciais u(0) = u 0 e v(0) = v 0. f 1 (y) u f(y) =, y = f 2 (y) v 6 / 119

Introdução Exemplos de EDO s: Lotka-Volterra 7 / 119

Introdução Exemplos de EDO s: Pêndulo Aplicamos a lei de Newton para uma massa pendurada: em que m l 2 d 2 θ(t) dt 2 = m l 2 θ (t) = m g l sin (θ(t)) m é a massa; l é o comprimento θ é o ângulo e θ é a aceleração angular g = 9.81 m/s 2 Esta é uma equação de segunda ordem, que podemos transformar en duas equações de primeira ordem 8 / 119

Introdução Exemplos de EDO s: Pêndulo Definimos: y 1 (t) = θ(t), y 2 (t) = θ (t) Então, podemos escrever: y 1 (t) = θ (t) =... = y 2 (t) y 2 (t) = θ (t) = g sin(θ(t)) }{{} l = ω 2 sin(y 1 (t)) ω 2 9 / 119

Introdução Exemplos de EDO s: Pêndulo Então, podemos escrever: y 1 (t) = y 2(t) y 2 (t) = ω2 sin(y 1 (t)) ou usando notação vetorial y y 1 (t) y 2 (t) (t) = = = f(t, y(t)) y 2 (t) ω 2 sin(y 1 (t)) Que é um sistema de duas equações ordinarias de primeira ordem! 10 / 119

Introdução Exemplos de EDO s: Pêndulo Com notação vetorial escreveremos em geral y (t) = dy(t) = f(t, y(t)) dt em que precisamos uma condição inicial y(0) = y 0. Por exemplo, para o caso do pêndulo precisamos: y 1 (0) θ(0) y(0) = = y 2 (0) θ (0) Isto é o ângulo e a velocidade inicial da massa. 11 / 119

Introdução Exemplos de EDO s: Movimento de planetas O problema de interação gravitacional de um planeta com o sol é descrito por: x (t) = γ x(t) r 3 (t) em que r(t) = x 2 (t) + y 2 (t). y (t) = γ y(t) r 3 (t) Este sistema pode ser transformado em um sistema de 4 equações de primeira ordem Fazer como execício! 12 / 119

Introdução EDO s: Existência e unicidade de soluções Antes de começar resolver equações numericamente, precisamos saber se o problema que temos está matemáticamente bem posto! Vamos considerar o problema y (t) = f (t, y(t)) t I ( ) y(0) = y 0 Temos um teorema clássico que garante a existência e a unicidade de soluções. 13 / 119

Introdução EDO s: Existencia e unicidade de soluções Teorema de Picard Vamos supor que a função f (t, y(t)) é 1. Continua com respeito aos dois argumentos. 2. Lipschitz continua com respeito ao seu segundo argumento, i.e., existe uma constante positiva L tal que f (t, y a ) f (t, y b ) L y a y b t I, y a, y b R Então a solução y(t) do problema (*) existe, é unica e pertence a C 1 (I ). 14 / 119

Introdução EDO s: Existencia e unicidade de soluções Teorema Vamos supor que a função f (t, y) seja definida num conjunto convexo D R 2, se existir uma constante L tal que f (t, y) y L, (t, y) D, então f satisfaz uma condição de Lipschitz em D na variável y e com constante de Lipschitz L. 15 / 119

Introdução Resolução numérica de EDO s A idéia é gerar uma sequência de valores t 0, t 1,..., e uma sequência correspondente de valores y 0, y 1,...,, tais que y n aproxima a solução exata do problema em t n, i.e., y n y(t n ), n = 0, 1,... 16 / 119

Introdução Introdução Definimos o tamanho do passo como h = t n+1 t n As vezes, o passo h é chamado t ou δt. Na maiora dos métodos que estudaremos, h será considerado constante, embora, em métodos mais sofisticados, o passo h é variável, de tal forma de controlar a precisão dos resultados de maneira mais eficiente. 17 / 119

Método de Euler expĺıcito É o método mais simples para resolver numericamente uma EDO A ideia é definir pontos no intervalo de interesse: a = t 0 < t 1 < t 2 < < t N = b, considerando um passo fixo h = t n+1 t n Vamos avançar desde um ponto t n ao próximo t n+1, passo por passo. 18 / 119

Método de Euler expĺıcito Escrevemos: y (t n ) = y(t n+1) y(t n ) h + O(h) Mas, lembremos que y (t) = f (t, y(t)), então: f (t n, y(t n )) = y(t n+1) y(t n ) h + O(h) y(t n+1 ) = y(t n ) + h f (t n, y(t n )) + O(h 2 ) 19 / 119

Método de Euler expĺıcito O que motiva o método numérico: y n+1 = y n + h f (t n, y n ) t n+1 = t n + h Com condição inicial y(t 0 ) = y 0. 20 / 119

Método de Euler expĺıcito Para um sistema de várias equações de primeira ordem escreveriamos y n+1 = y n + h f(t n, y n ) t n+1 = t n + h Com condição inicial y(t 0 ) = y 0. 21 / 119

Método de Euler expĺıcito: Exemplo Vamos resolver o problema mais simples: y (t) = f (t, y) = λ y λ R e com condição inicial, y(0) = y 0. Neste caso a solução exata é conhecida y(t) = y 0 e λt Podemos testar o método numérico e comparar com a solução exata! 22 / 119

Método de Euler expĺıcito: Exemplo Dados t 0, y 0, para n = 0, 1,... y n+1 = y n + h f (t n, y n ) = y n + h λy n = (1 + h λ) y n t n+1 = t n + h 23 / 119

Método de Euler expĺıcito: Exemplo 1 clear ; #Time interval t0 = 0.0; tf = 10.0; #Initialization y0 = 4.0; h = 0.02; lambda = -1; t(1) = t0; y(1) = y0; yexact(1) = y0; n = 1; while t(n) <= tf y(n+1) = (1.0 + h*lambda)*y(n); t(n+1) = t(n) + h; yexact(n+1) = y0*exp(lambda*t(n+1)); n = n + 1; end plot(t,yexact,"-*1;exact;", t,y, "-*4;Explicit Euler;"); 24 / 119

Exemplos de EDO s: Pêndulo Lembremos o sistema de duas equações ordinarias de primeira ordem para o pêndulo: y y 1 (t) y 2 (t) (t) = = = f(t, y(t)) y 2 (t) ω 2 sin(y 1 (t)) 25 / 119

Método de Euler expĺıcito: Exemplo 2 clear ; %Time interval t0 = 0.0; tf = 15.0; %Initialization y0(1) = pi/2.1; % Initial angle y0(2) = 0.0; % Initial velocity %Step size h = 0.00025; n = 1; t(1) = t0; y(:,1) = y0; while t(n) <= tf y(:,n+1) = EulerExplicit(t(n), y(:,n), h, @funcpend); t(n+1) = t(n) + h; n = n + 1; end plot(t,y(1,:), "-5;Explicit Euler;"); 26 / 119

Método de Euler expĺıcito: Exemplo 2 function [ynew] = EulerExplicit(t, yold, h, funcyp) ynew = yold + h*funcyp(t, yold)'; end function [yp] = funcpend(t, y) g = 9.81; length = 1.0; omega2 = g/length; yp(1) = y(2); yp(2) = -omega2 * sin(y(1)); end 27 / 119

Método de Euler impĺıcito Este método é mais estável como veremos depois. Agora, escrevemos: y (t n+1 ) = y(t n+1) y(t n ) h + O(h) Mas, lembremos que y (t) = f (t, y(t)), então: f (t n+1, y(t n+1 )) = y(t n+1) y(t n ) h + O(h) y(t n+1 ) = y(t n ) + h f (t n+1, y(t n+1 )) + O(h 2 ) 28 / 119

Método de Euler impĺıcito O que motiva o método numérico: y n+1 = y n + h f (t n+1, y n+1 ) t n+1 = t n + h Com condição inicial y 0. 29 / 119

Método de Euler impĺıcito Mas, agora qual é o problema? A incógnita y n+1 aparece tanto do lado esquerdo como do lado direito... Se a função f (t, y) for não linear no seu segundo argumento precisaremos resolver, em cada passo, a equação não linear: y n+1 y n h f (t n+1, y n+1 ) = 0 para achar y n+1, n = 0, 1,... Isto é mais costoso! 30 / 119

Método de Euler impĺıcito Para um sistema de várias equações de primeira ordem escreveriamos y n+1 = y n + h f(t n+1, y n+1 ) t n+1 = t n + h Com condição inicial y(t 0 ) = y 0. Neste caso precisaremos resolver um sistema de equações não lineares! y n+1 y n h f(t n+1, y n+1 ) = 0 31 / 119

Método de Euler impĺıcito: Exemplo 1 Por enquanto, voltemos ao exemplo simples: y (t) = f (t, y) = λ y λ R e com condição inicial, y(0) = y 0, cuja solução exata era: y(t) = y 0 e λt 32 / 119

Método de Euler impĺıcito: Exemplo 1 Dados t 0, y 0, para n = 0, 1,... y n+1 = y n + h f (t n+1, y n+1 ) = y n + h λ y n+1 t n+1 = t n + h Afortunadamente, este problema é linear, pois f = λ y é uma função linear na variável y 33 / 119

Método de Euler impĺıcito: Exemplo 1 Dados t 0, y 0, para n = 0, 1,... y n+1 = y n + h λ y n+1 y n+1 = y n 1 h λ t n+1 = t n + h Afortunadamente, este problema é linear, pois f = λ y é uma função linear na variável y 34 / 119

Método de Euler impĺıcito: Exemplo 1 clear ; #Time interval t0 = 0.0; tf = 10.0; #Initialization y0 = 4.0; h = 0.02; lambda = -1; t(1) = t0; y(1) = y0; yexact(1) = y0; n = 1; while t(n) <= tf y(n+1) = y(n) / (1.0 - h*lambda); t(n+1) = t(n) + h; yexact(n+1) = y0*exp(lambda*t(n+1)); n = n + 1; end plot(t,yexact,"-*1;exact;", t,y, "-*3;Implicit Euler;"); 35 / 119

Método de Euler impĺıcito: Exemplo 2 Para o sistema: y y 1 (t) y 2 (t) (t) = = = f(t, y(t)) y 2 (t) ω 2 sin(y 1 (t)) Após discretizar com Euler impĺıcito, vamos resolver um sistema de duas equações não lineares y n+1 y n h f(t n+1, y n+1 ) = 0 (y 1 ) n+1 (y 1 ) n h (y 2 ) n+1 = 0 (y 2 ) n+1 (y 2 ) n + h ω 2 sin((y 1 ) n+1 ) = 0 36 / 119

Método de Euler impĺıcito: Exemplo 2 clear ; %Time interval t0 = 0.0; tf = 3.0; %Initialization y0(1) = pi/2.1; % Initial angle y0(2) = 0.0; % Initial velocity %Step size h = 0.25; n = 1; t(1) = t0; y(:,1) = y0; while t(n) <= tf y(:,n+1) = EulerImplicit(t(n), y(:,n), h, @funcpendjac); t(n+1) = t(n) + h; n = n + 1; end plot(t,y(1,:), "-*1;Implicit Euler;"); 37 / 119

Método de Euler expĺıcito: Exemplo 2 function [ynew] = EulerImplicit(t, yold, h, funcyp) end TOLF = 1.0E-12; MAXIT = 3; error = TOLF + 1.0; iter = 0; y = yold; while(error > TOLF && iter < MAXIT) [res, jac] = funcyp(t, h, yold, y); ynew = y - jac\res; error = norm(res); y = ynew; iter = iter + 1; end 38 / 119

Método de Euler expĺıcito: Exemplo 2 function [res, jac] = funcpendjac(t, h, yold, y) g = 9.81; length = 1.0; omega2 = g/length; res = zeros(2,1); res(1) = y(1) - yold(1) - h * y(2); res(2) = y(2) - yold(2) + h * omega2 * sin(y(1)); jac = zeros(2,2); jac(1,1) = 1.0; jac(1,2) = -h; jac(2,1) = h * omega2 * cos(y(1)); jac(2,2) = 1; end 39 / 119

Método Trapezoidal impĺıcito Uma forma interessante de obter ele é assim: dy tn+1 dt = f (t, y(t)) y(t n+1) = y(t n ) + f (t, y(t)) dt t n que usando a regra do trapézio para integrar, motiva o método numérico já que h = t n+1 t n. y n+1 = y n + h 2 [f (t n, y n ) + f (t n+1, y n+1 )] Este método é uma combinação dos anteriores. 40 / 119

Método α Uma generelização do anterior seria, definindo um parámetro α, 0 α 1: Então, y n+1 = y n + h [(1 α)f (t n, y n ) + α f (t n+1, y n+1 )] Euler expĺıcito α = 0 Método Trapezoidal impĺıcito α = 1 2 Euler impĺıcito α = 1 41 / 119

Exemplo Apliquemos o método α novamente para o problema simples: y (t) = f (t, y) = λ y, y(0) = y 0 y n+1 = y n + h [(1 α)f (t n, y n ) + α f (t n+1, y n+1 )] = = y n + h [(1 α)λy n + α λy n+1 ] y n+1 α hλ y n+1 = y n + (1 α) h λ y n y n+1 = y n 1 + (1 α) h λ 1 α h λ 42 / 119

Método α clear ; #Time interval t0 = 0.0; tf = 10.0; #Initialization y0 = 4.0; h = 0.5; lambda = -1; alpha = 0.5; t(1) = t0; y(1) = y0; yexact(1) = y0; n = 1; while t(n) <= tf y(n+1) = y(n) * (1.0 + (1.0-alpha)*h*lambda) / (1.0 - alpha*h*lambda); t(n+1) = t(n) + h; yexact(n+1) = y0*exp(lambda*t(n+1)); n = n + 1; end plot(t,yexact,"-*1;exact;", t,y, "-*4;alpha = 0.5;"); 43 / 119

Método Trapezoidal expĺıcito Partimos do método Trapezoidal impĺıcito: y n+1 = y n + h 2 [f (t n, y n ) + f (t n+1, y n+1 )] Agora, fazemos a aproximação: y n+1 = y n + h f (t n, y n ), o que leva ao método: y n+1 = y n + h 2 [f (t n, y n ) + f (t n+1, y n + h f (t n, y n ))] 44 / 119

Análise dos métodos Temos que definir certos conceitos importantes: Convergência; Consistência; Estabilidade; 45 / 119

Análise dos métodos Consideremos um método geral de um passo: y n+1 = y n + h Φ(t n, y n, y n+1, h) Se Φ(... ) depende de y n+1, então, o método é chamado de impĺıcito, em caso contrário, de expĺıcito. 46 / 119

Análise dos métodos: Exemplos Método de Euler Expĺıcito: Φ(t n, y n, y n+1, h) = f (t n, y n ) Método Trapezoidal expĺıcito: Φ(t n, y n, y n+1, h) = 1 2 [f (t n, y n ) + f (t n + h, y n + hf (t n, y n ))] Método Trapezoidal impĺıcito: Φ(t n, y n, y n+1, h) = 1 2 [f (t n, y n ) + f (t n + h, y n+1 )] 47 / 119

Erro de truncamento Definimos o erro de truncamento como: τ n (t) = y(t n+1) y(t n ) Φ(t, y(t n ), y(t n+1 ), h) h em que, lembremos, y(t) é a solução exata! Ou seja, é o erro feito ao inserir a solução exata no esquema numérico proposto! 48 / 119

Erro de truncamento Para um método razoável, esperamos que τ n 0 quando h 0. Já que: lim h 0 1 h (y(t n+1) y(t n )) = f (t, y(t n )) Isto motiva a definição de consistência: 49 / 119

Consistência Um método de um passo diz-se consistente com o problema (*) se: lim h 0 Φ(t, y(t n ), y(t n+1 ), h) = f (t, y(t n )) n, y R e toda função f com f / y limitada. 50 / 119

Ordem de consistência de um método Um método de um passo tem ordem de consistência p se τ n = O(h p ) n, y R e toda função f com derivadas com respeito a y até ordem p limitadas. 51 / 119

Definições de Erro Erro global: é a diferença entre a solução exata num determinado tempo e a solução do método numérico: ɛ n = y(t n ) y n Erro num passo: é o erro feito avançando um passo do método numérico a partir de uma condição inicial que coincide com a solução exata: ε n = y(t n ) [y(t n 1 ) + h Φ(t n 1, y(t n 1 ), h)] 52 / 119

Exemplo 1: Ordem do método de Euler expĺıcito Calculamos o erro de truncamento: τ n = y(tn + h) y(tn) h Mas, considerando o desenvolvimento de Taylor: Φ(t n, y(t n), y(t n+1 ), h) Resulta y(t n + h) = y(t n) + h y (t n) + h2 2 y (t n) + h3 6 y (t n) +... τ n = y(tn) + h y (t n) + h 2 2 y (t n) + h3 6 y (t n) +... y(t n) Φ(t n, y(t n), h) h }{{} f (t n,y(t n)) τ n = y (t n) f (t n, y(t n)) + h }{{} 2 y (t n) + T.O.S. = h 2 y (t n) + T.O.S. 0 53 / 119

Exemplo 1: Ordem do método de Euler expĺıcito Finalmente, resulta: i.e. τ n y (t n ) 2 h + T.O.S. 1 2 max y (t n ) h t (a,b) τ n c h Sendo c uma constante positiva independente de h e t. Teorema O método de Euler Expĺıcito é consistente de ordem 1. 54 / 119

Exemplo 2: Ordem do método α Calculamos o erro de truncamento: τ n = y(tn + h) y(tn) h Φ(t n, y(t n), y(t n+1 ), h) 55 / 119

Exemplo 2: Ordem do método α Calculamos o erro de truncamento: Agora temos τ n = y(tn + h) y(tn) h Φ(t n, y(t n), y(t n+1 ), h) Φ(t n, y(t n), y(t n+1 ), h) = (1 α) f (t n, y(t n)) + α f (t n+1, y(t n+1 )) 56 / 119

Exemplo 2: Ordem do método α Calculamos o erro de truncamento: Agora temos τ n = y(tn + h) y(tn) h Φ(t n, y(t n), y(t n+1 ), h) Φ(t n, y(t n), y(t n+1 ), h) = (1 α) f (t n, y(t n)) + α f (t n+1, y(t n+1 )) Já que y (t) = f (t, y(t)): Φ(t n, y(t n), y(t n+1 ), h) = (1 α) y (t n) + α y (t n+1 ) 57 / 119

Exemplo 2: Ordem do método α Calculamos o erro de truncamento: Agora temos τ n = y(tn + h) y(tn) h Φ(t n, y(t n), y(t n+1 ), h) Φ(t n, y(t n), y(t n+1 ), h) = (1 α) f (t n, y(t n)) + α f (t n+1, y(t n+1 )) Já que y (t) = f (t, y(t)): Φ(t n, y(t n), y(t n+1 ), h) = (1 α) y (t n) + α y (t n+1 ) Consideramos os desenvolvimentos de Taylor: y(t n + h) = y(t n) + h y (t n) + h2 2 y (t n) + h3 6 y (t n) +... y (t n + h) = y (t n) + h y (t n) + h2 2 y (t n) +... 58 / 119

Exemplo 2: Ordem do método α Inserimos o desenvolvimento para y(t n + h) e a definição de Φ: τ n = y(tn) + h y (t n) + h 2 2 y (t n) + h3 6 y (t n) +... y(t n) (1 α) y (t n) α y (t n+1 ) h 59 / 119

Exemplo 2: Ordem do método α Inserimos o desenvolvimento para y(t n + h) e a definição de Φ: τ n = y(tn) + h y (t n) + h 2 2 y (t n) + h3 6 y (t n) +... y(t n) (1 α) y (t n) α y (t n+1 ) h τ n = y (t n) + h 2 y (t n) + h2 6 y (t n) +... (1 α) y (t n) α y (t n+1 ) 60 / 119

Exemplo 2: Ordem do método α Inserimos o desenvolvimento para y(t n + h) e a definição de Φ: τ n = y(tn) + h y (t n) + h 2 2 y (t n) + h3 6 y (t n) +... y(t n) (1 α) y (t n) α y (t n+1 ) h τ n = y (t n) + h 2 y (t n) + h2 6 y (t n) +... (1 α) y (t n) α y (t n+1 ) Inserimos o desenvolvimento para y (t n + h) τ n = y (t n) + h 2 y (t n) + h2 6 y (t n) +... (1 α) y (t n) α [y (t n) + h y (t n) + h2 2 y (t n) +...] 61 / 119

Exemplo 2: Ordem do método α Agrupamos τ n = (1 (1 α) α) y (t n) + h ( ) 1 2 α y (t n) + h2 2 ( ) 1 3 α y (t n) + T.O.S. 62 / 119

Exemplo 2: Ordem do método α Agrupamos τ n = (1 (1 α) α) y (t n) + h Finalmente ( ) 1 2 α y (t n) + h2 2 ( ) 1 3 α y (t n) + T.O.S. τ n = h ( ) ( ) 1 2 α y (t n) + h2 1 2 3 α y (t n) + T.O.S. 63 / 119

Exemplo 2: Ordem do método α Agrupamos τ n = (1 (1 α) α) y (t n) + h Finalmente ( ) 1 2 α y (t n) + h2 2 ( ) 1 3 α y (t n) + T.O.S. τ n = h ( ) ( ) 1 2 α y (t n) + h2 1 2 3 α y (t n) + T.O.S. Teorema O método α é consistente de ordem 1 se α 1 2 e é consistente de ordem 2 se α = 1 2. 64 / 119

Convergência Um método numérico diz-se convergente se: y(t n ) y n C(h) n = 0,..., N, em que C(h) é infinitessimal com respeito a h quando h tende a zero. 65 / 119

Ordem de convergência Teorema Um método de um passo que é consistente de ordem p, em que Φ é Lipschitz em y e é zero-estável, é convergente de ordem p, i.e., c > 0, tal que e n }{{} c h p. O(h p ) Temos que estudar o conceito de estabilidade, mas, antes verifiquemos se os métodos estudados tem a ordem teórica esperada. 66 / 119

Ordem de convergência # set up variables (see complete code) alpha = 0.5; h(1) = 1.0; for k=1:10 % Loop over values of h t(1) = t0; y(1) = y0; % Initial condition n = 1; while t(n) <= tf % Loop over time steps y(n+1) = y(n) * (1.0 + (1.0-alpha)*h(k)*lambda) / (1.0 - alpha*h(k)*lambda); t(n+1) = t(n) + h(k); n = n + 1; end yexact(n) = y0*exp(lambda*t(n)); error(k) = abs(yexact(n) - y(n)); h(k+1) = h(k) / 2; end xlabel("h"); ylabel("error"); loglog (h(1:10),error, "-*3;alpha=0.5;") 67 / 119

Estabilidade absoluta Que acontece quando consideramos intervalos não limitados? 68 / 119

Estabilidade absoluta Que acontece quando consideramos intervalos não limitados? Voltamos ao problema simples de decaimento exponencial: dy(t) dt = λ y, λ > 0 y(0) = y 0 cuja solução exata era y(t) = y 0 e λ t. Claramente, quando t a solução y(t) 0 O conceito de estabilidade absoluta está relacionado com a possibilidade, de que o método numérico consiga reproduzir esse comportamento. 69 / 119

Estabilidade absoluta Aplicamos novamente o método de Euler expĺıcito: Dados t 0, y 0, para n = 0, 1,... y n+1 = y n + h f (t n, y n ) = y n h λy n y n+1 = (1 h λ) y n = = (1 h λ) 2 y n 1 = = (1 h λ) 3 y n 2 =... = (1 h λ) n+1 y 0 70 / 119

Estabilidade absoluta para reproduzir o comportamento esperado, i.e., que a solução tenda para zero quando n, precisamos que de onde surge a condição 1 h λ < 1 1 < 1 h λ < 1 0 < h λ < 2 y n+1 n 0 se h < 2 λ. que é a definição de estabilidade absoluta para este caso. Para outros métodos a condição poderá ser diferente. 71 / 119

Estabilidade absoluta Como fazer com outras equações e no caso de sistemas, para escolher h em métodos expĺıcitos? y = f(t, y) y(0) = y 0 Regra prática: Escolher h < 2, λ sendo o autovalor de maior λ módulo de f y. 72 / 119

Método de Euler expĺıcito: Exemplo 1 clear ; #Time interval t0 = 0.0; tf = 10.0; #Initialization y0 = 4.0; h = 0.02; lambda = -1; t(1) = t0; y(1) = y0; yexact(1) = y0; n = 1; while t(n) <= tf y(n+1) = (1.0 + h*lambda)*y(n); t(n+1) = t(n) + h; yexact(n+1) = y0*exp(lambda*t(n+1)); n = n + 1; end plot(t,yexact,"-*1;exact;", t,y, "-*4;Explicit Euler;"); 73 / 119

Métodos de Taylor 74 / 119

Métodos de Taylor Lembrando o teorema de Taylor, que de fato já temos usado muitas vezes: definindo resulta y(t n + h) = y(t n ) + h y (t n ) + h2 2 y (t n ) +... T p (t n, y(t n )) = p j=1 y (j) (t n ) j! h j 1 y(t n + h) = y(t n ) + h T p (t n, y(t n )) + O(h p+1 ) 75 / 119

Método de Taylor Notemos que y (t n ) = f (t n, y(t n )), então: 76 / 119

Método de Taylor Notemos que y (t n ) = f (t n, y(t n )), então: y (t) = f 77 / 119

Método de Taylor Notemos que y (t n ) = f (t n, y(t n )), então: y (t) = f y (t) = f = f t + f y y t = f t + f y y = f t + f y f 78 / 119

Método de Taylor Notemos que y (t n ) = f (t n, y(t n )), então: y (t) = f y (t) = f = f t + f y y t = f t + f y y = f t + f y f y (t) = f = f tt + 2 f ty y + f y y + f yy (y ) 2 = f tt + 2 f ty y + f yy f 2 + f y (f t + f y f ) Definindo o operador D = ( t + f y )... 79 / 119

Método de Taylor Podemos escrever y(t n + h) = y(t n ) + h f (t n, y(t n )) + h2 2 f (t n, y(t n )) +... + Se consideramos o método numérico: em que y n+1 = y n + h T p (t n, y n ) + hp+1 (p + 1)! f (p) (ξ n, y(ξ n )) T p (t n, y n ) = f (t n, y n ) + h 2 f (t n, y n ) +... + hp 1 f (p 1) (t n, y n ) p! O erro de truncamento será: O(h p ). 80 / 119

Método de Taylor O método de Euler expĺıcito é o método de Taylor de ordem 1. Estes métodos são expĺıcitos, então existirá uma restrição de estabilidade a ser respeitada. Uma desvantagem, é a necessidade de calcular todas as derivadas da função f. 81 / 119

Método de Taylor: Exemplo dy(t) dt = y t 2 + 1 y(0) = 0.5 A função f (t, y(t)) = y t 2 + 1 Vamos calcular as derivadas: 82 / 119

Método de Taylor: Exemplo f = y t 2 + 1 f = f = f = ( t + f ( t + f ( t + f y y y ) (f ) = y t 2 2t + 1 ) (f ) = y t 2 2t 1 ) (f ) = y t 2 2t 1 Como exercício, fazer as contas e verificarlo! 83 / 119

Método de Taylor: Exemplo O método de Taylor de ordem 2 seria: y n+1 = y n + h T 2 (t n, y n ) = y n + h [f (t n, y n ) + h 2 f (t n, y n )] 84 / 119

Método de Taylor: Exemplo O método de Taylor de ordem 2 seria: y n+1 = y n + h T 2 (t n, y n ) = y n + h [f (t n, y n ) + h 2 f (t n, y n )] = y n + h (y n t 2 n + 1) + h2 2 (y n t 2 n 2t n + 1) 85 / 119

Método de Taylor: Exemplo O método de Taylor de ordem 4 seria: y n+1 = y n + h T 4 (t n, y n ) = y n + h [f (t n, y n ) + h 2 f (t n, y n ) + h2 6 f (t n, y n ) + h3 24 f (t n, y n )] = 86 / 119

Método de Taylor: Exemplo O método de Taylor de ordem 4 seria: y n+1 = y n + h T 4 (t n, y n ) = y n + h [f (t n, y n ) + h 2 f (t n, y n ) + h2 6 f (t n, y n ) + h3 24 f (t n, y n )] = = y n + h (y n t 2 n + 1) + h2 2 (y n t 2 n 2t n + 1) + h3 6 (y n t 2 n 2t n 1) + h4 24 (y n t 2 n 2t n 1) 87 / 119

Métodos de Runge-Kutta 88 / 119

Métodos de Runge-Kutta Um método expĺıcito de Runge-Kutta de r estagios é um método da forma: em que y n+1 = y n + h Φ r Φ r = c 1 k 1 + c 2 k 2 + + c r k r 89 / 119

Métodos de Runge-Kutta Um método expĺıcito de Runge-Kutta de r estagios é um método da forma: em que y n+1 = y n + h Φ r Φ r = c 1 k 1 + c 2 k 2 + + c r k r k 1 = f (t, y) k 2 = f (t + α 2 h, y + h β 21 k 1 ) k 3 = f (t + α 3 h, y + h (β 31 k 1 + β 32 k 2 )) k 4 = f (t + α 4 h, y + h (β 41 k 1 + β 42 k 2 + β 43 k 3 )).. k r = f (t + α r h, y + h (β r1 k 1 + + β r,r 1 k r 1 )) 90 / 119

Métodos de Runge-Kutta Dependendo do valor dos coeficientes: α i, i = 1, 2, 3,..., r β ij, 2 i r 1, 1 j < i. Teremos diferentes métodos de Runge-Kutta (RK). Estes métodos estão disenhados para ter a mesma ordem de convergência que os métodos de Taylor, mas, a sua implementação é mais simples, já que não precisamos calcular as derivadas de f. 91 / 119

Métodos de Runge-Kutta: RK1 Este coincide com o método de Euler expĺıcito ou com o método de Taylor de ordem 1, i.e., y n+1 = y n + h c 1 k 1 r = 1 k 1 = f (t n, y n ), c 1 = 1 y n+1 = y n + h f (t n, y n ) 92 / 119

Métodos de Runge-Kutta: RK2 Este método de ordem 2, coincide com o método Trapezoidal expĺıcito: r = 2 k 1 = f (t n, y n ), c 1 = 1 2 y n+1 = y n + h (c 1 k 1 + c 2 k 2 ) k 2 = f (t n + h, y n + h k 1 ), c 2 = 1 2 y n+1 = y n + h 2 [f (t n, y n ) + f (t n + h, y n + h f (t n, y n ))] 93 / 119

Métodos de Runge-Kutta: RK2 Este método de ordem 2, coincide com o método Trapezoidal expĺıcito: r = 2 k 1 = f (t n, y n ), c 1 = 1 2 y n+1 = y n + h (c 1 k 1 + c 2 k 2 ) k 2 = f (t n + h, y n + h k 1 ), c 2 = 1 2 y n+1 = y n + h 2 [f (t n, y n ) + f (t n + h, y n + h f (t n, y n ))] 94 / 119

Métodos de Runge-Kutta: RK2 - Exemplo Consideramos y = f (t, y) = t 2 + y 2, y(0) = y 0 : n = 0, 1,... k 1 = t 2 n + y 2 n k 2 = (t n + h) 2 + (y n + h k 1 ) 2 y n+1 = y n + h 2 (k 1 + k 2 ) 95 / 119

Métodos de Runge-Kutta: RK4 Este método é de ordem 4 e se escreve: r = 4 y n+1 = y n + h (c 1 k 1 + c 2 k 2 + c 3 k 3 + c 4 k 4 ) k 1 = f (t n, y n ), c 1 = 1 6 k 2 = f (t n + 1 2 h, y n + 1 2 h k 1), c 2 = 1 3 k 3 = f (t n + 1 2 h, y n + 1 2 h k 2), c 3 = 1 3 k 4 = f (t n + h, y n + h k 3 ), c 4 = 1 6 y n+1 = y n + h 6 (k 1 + 2 k 2 + 2 k 3 + k 4 ) 96 / 119

Métodos de Runge-Kutta Em geral se verifica: O método é consistente se c 1 + c 2 + + c r = 1 Para os métodos de ordem maior do que 1, se deve verificar: α i = i 1 l=1 β il 97 / 119

Métodos de Runge-Kutta Para estudar a estabilidade, vamos considerar o exemplo do decaimento exponencial y (t) = λ y, λ > 0 e o método RK4 y n+1 = y n + h 6 (k 1 + 2 k 2 + 2 k 3 + k 4 ) ( = y n 1 h λ + 1 2 (h λ)2 1 6 (h λ)3 + 1 24 = F (h λ)y n (h λ)4 Precisa-se estudar os valores de h λ para os quais F (h λ) < 1, no caso, se verifica h 2.78 λ. ) 98 / 119

Métodos de Runge-Kutta: RK4 clear ; #Time interval t0 = 0.0; tf = 10.0; #Initialization y0 = 4.0; h = 1.0; lambda = 1; t(1) = t0; y(1) = y0; yexact(1) = y0; n = 1; myfile = fopen ("rk4.dat", "w"); while t(n) <= tf k1 = -lambda*y(n); k2 = -lambda*(y(n) + (h/2)*k1); k3 = -lambda*(y(n) + (h/2)*k2); k4 = -lambda*(y(n) + h*k3);; y(n+1) = y(n) + (h/6.0)*(k1 + 2*k2 + 2*k3 + k4); t(n+1) = t(n) + h; yexact(n+1) = y0*exp(-lambda*t(n+1)); fprintf(myfile, "%f %f \n", t(n), y(n)); n = n + 1; 99 / 119

Métodos Previsor-Corretor 100 / 119

Métodos tipo Previsor-Corretor A idéia é reduzir a complexidade que surge ao utilizar métodos impĺıcitos, em que precisa-se aplicar um método para resolver equações não lineares. Para ver isto, consideramos o exemplo do método trapezoidal impĺıcito: y n+1 = y n + h 2 [f (t n, y n ) + f (t n+1, y n+1 )] 101 / 119

Métodos tipo Previsor-Corretor Consideremos: Previsor: Usar o método de Euler expĺıcito para gerar uma aproximação: ỹ n+1 = y n + h f (t n, y n ) 102 / 119

Métodos tipo Previsor-Corretor Consideremos: Previsor: Usar o método de Euler expĺıcito para gerar uma aproximação: ỹ n+1 = y n + h f (t n, y n ) Corretor: Usar essa aproximação no método trapezoidal: y n+1 = y n + h 2 [f (t n, y n ) + f (t n+1, ỹ n+1 )] 103 / 119

Métodos tipo Previsor-Corretor Consideremos: Previsor: Usar o método de Euler expĺıcito para gerar uma aproximação: ỹ n+1 = y n + h f (t n, y n ) Corretor: Usar essa aproximação no método trapezoidal: y n+1 = y n + h 2 [f (t n, y n ) + f (t n+1, ỹ n+1 )] Este é o método que foi introduzido anteriormente como método Trapezoidal expĺıcito! 104 / 119

Métodos tipo Previsor-Corretor Isto poderia ser feito de maneira iterativa também: 1. Previsor: y (0) n+1 = y n + h f (t n, y n ) 105 / 119

Métodos tipo Previsor-Corretor Isto poderia ser feito de maneira iterativa também: 1. Previsor: y (0) n+1 = y n + h f (t n, y n ) 2. k = 0 106 / 119

Métodos tipo Previsor-Corretor Isto poderia ser feito de maneira iterativa também: 1. Previsor: y (0) n+1 = y n + h f (t n, y n ) 2. k = 0 [ ] 3. Corretor: y (k+1) n+1 = y n + h 2 f (t n, y n ) + f (t n+1, y (k) n+1 ) 107 / 119

Métodos tipo Previsor-Corretor Isto poderia ser feito de maneira iterativa também: 1. Previsor: y (0) n+1 = y n + h f (t n, y n ) 2. k = 0 [ ] 3. Corretor: y (k+1) n+1 = y n + h 2 f (t n, y n ) + f (t n+1, y (k) n+1 ) 4. Se y (k+1) n+1 y (k) n+1 y (k+1) n+1 > TOL k k + 1 e voltar para 3. Em caso contrario, aceitar y (k+1) n+1 como y n+1 e passar ao próximo passo. 108 / 119

Métodos tipo Previsor-Corretor Usando diferentes métodos expĺıcitos como previsores (p.e., Euler expĺıcito, Taylor, etc.)... e diferentes métodos impĺıcitos como corretores: (p.e. Método do Trapézio, Simpson, multipasso, etc),... teremos diferentes métodos de tipo Previsor-Corretor 109 / 119

Métodos tipo Previsor-Corretor Vários métodos de tipo previsor-corretor aparecem no contexto dos chamados métodos multipasso: A idéia de um método multipasso é melhorar a precisão também utilizando os valores y n, y n 1, y n 2,..., y n p e calculando os polinômios interpoladores que passam por esses pontos. 110 / 119

Métodos Multipasso Adams-Bashforth de 3 passos: Este é expĺıcito e de ordem 3 Dados y 0, y 1, y 2, para n = 2, 3,... y n+1 = y n + h 12 [23 f (t n, y n ) 16 f (t n 1, y n 1 ) + 5 f (t n 2, y n 2 )] 111 / 119

Métodos Multipasso Adams-Bashforth de 3 passos: Este é expĺıcito e de ordem 3 Dados y 0, y 1, y 2, para n = 2, 3,... y n+1 = y n + h 12 [23 f (t n, y n ) 16 f (t n 1, y n 1 ) + 5 f (t n 2, y n 2 )] Adams-Bashforth de 4 passos: Este é expĺıcito e de ordem 4 Dados y 0, y 1, y 2, y 3, para n = 3, 4,... y n+1 = y n + h 12 [55 f (t n, y n ) 59 f (t n 1, y n 1 ) + 37 f (t n 2, y n 2 ) 9 f (t n 3, y n 3 )] 112 / 119

Métodos Multipasso Adams-Moulton de 2 passos: Este é impĺıcito e de ordem 3 Dados y 0, y 1, para n = 1, 2,... y n+1 = y n + h 12 [5f (t n+1, y n+1 ) + 8 f (t n, y n ) f (t n 1, y n 1 )] 113 / 119

Métodos Multipasso Adams-Moulton de 2 passos: Este é impĺıcito e de ordem 3 Dados y 0, y 1, para n = 1, 2,... y n+1 = y n + h 12 [5f (t n+1, y n+1 ) + 8 f (t n, y n ) f (t n 1, y n 1 )] Adams-Moulton de 3 passos: Este é impĺıcito e de ordem 4 Dados y 0, y 1, y 2, para n = 2, 3,... y n+1 = y n + h 24 [9 f (t n+1, y n+1 ) + 19 f (t n, y n ) 5 f (t n 1, y n 1 )+ + f (t n 2, y n 2 )] 114 / 119

Métodos Multipasso Adams-Moulton de 2 passos: Este é impĺıcito e de ordem 3 Dados y 0, y 1, para n = 1, 2,... y n+1 = y n + h 12 [5f (t n+1, y n+1 ) + 8 f (t n, y n ) f (t n 1, y n 1 )] Adams-Moulton de 3 passos: Este é impĺıcito e de ordem 4 Dados y 0, y 1, y 2, para n = 2, 3,... y n+1 = y n + h 24 [9 f (t n+1, y n+1 ) + 19 f (t n, y n ) 5 f (t n 1, y n 1 )+ + f (t n 2, y n 2 )] Já que estes métodos são impĺıcitos, podemos aplicar o estudado sobre métodos previsores-corretores. 115 / 119

Métodos Multipasso Previsor-Corretor 1. Previsor : y (0) n+1 = y n + h f (t n, y n ) 116 / 119

Métodos Multipasso Previsor-Corretor 1. Previsor : y (0) n+1 = y n + h f (t n, y n ) 2. k = 0 117 / 119

Métodos Multipasso Previsor-Corretor 1. Previsor : y (0) n+1 = y n + h f (t n, y n ) 2. k = 0 3. Corretor: y (k+1) n+1 = y n + h 12 [ ] 5f (t n+1, y (k) n+1 ) + 8 f (t n, y n ) f (t n 1, y n 1 ) 118 / 119

Métodos Multipasso Previsor-Corretor 1. Previsor : y (0) n+1 = y n + h f (t n, y n ) 2. k = 0 3. Corretor: y (k+1) n+1 = y n + h 12 [ ] 5f (t n+1, y (k) n+1 ) + 8 f (t n, y n ) f (t n 1, y n 1 ) 4. Se y (k+1) n+1 y (k) n+1 y (k+1) n+1 > TOL k k + 1 e voltar para 3. Em caso contrario, aceitar y (k+1) n+1 como y n+1 e passar ao próximo passo. 119 / 119