Introdução aos Métodos Numéricosotton/graduacao/introducaonumericos/Aulas_EDO.pdf ·...
-
Upload
nguyentruc -
Category
Documents
-
view
224 -
download
0
Transcript of Introdução aos Métodos Numéricosotton/graduacao/introducaonumericos/Aulas_EDO.pdf ·...
Introdução aos Métodos Numéricos
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
Conteúdo
● Erros e Aproximações Numéricas
● Sistemas de Equações Lineares. Métodos diretos
● Interpolação
● Ajuste de Curvas
● Zeros de Função
● Sistemas de Equações Lineares. Métodos Iterativos
● Integração Numérica
● Introdução à Resolução de Equações Diferenciais Ordinárias
Conteúdo
● Introdução à Resolução de Equações Diferenciais Ordinárias
Conteúdo
● Conceitos básicos
● Método de Euler
● Método de Euler Melhorado
Resolução numérica de EDO‘s
Veremos aqui uma breve introdução a alguns métodos numéricos para resolver o problema de integração de uma equação diferencial ordinária no caso do problema de valor inicial, ou seja,
dydx
= f (x , y (x)); y (x0)= y0
Resolução numérica de EDO‘s
Podemos entender este problema como:
dada a derivada de uma função e quanto esta função vale em um ponto, então resolvendo esta equação obteremos a função e esta função é única
A pergunta é se podemos garantir que sempre há uma solução e esta ser única
Da matemática sabemos que nem sempre
y (x)
y (x)
Resolução numérica de EDO‘s
Supondo que a equação com que tratamos tem solução, vejamos o que podemos fazer para resolver a mesma.
Partamos da equação
e a reescrevamos como
dydx
= f (x , y (x)); y (x0)= y0
dy=f (x , y (x))dx
Resolução numérica de EDO‘s
Vamos integrar esta função usando os valores da condição inicial
onde corresponde ao ponto no qual queremos obter o valor de nossa função que seria . Integrando obtemos
∫y0
y(x1)
dy=∫x0
x1
f (x , y (x))dx
x1
y (x1)
Resolução numérica de EDO‘s
ou
y (x1)− y0=∫x0
x1
f ( x , y (x))dx
y (x1)= y0+∫x0
x1
f (x , y (x))dx
Resolução numérica de EDO‘s
A questão agora está em como calcularemos a integral genérica que aparece.
Possibilidade:
Integremos aproximadamente
Resolução numérica de EDO‘s
Partamos de algo muito simples e que sabemos ser bem impreciso: Integração por retângulo
Isto significa que o integrando deve variar “pouco“ (em algum sentido...) no intervalo de integração para este uso nos dê valores significativos para a integração
Resolução numérica de EDO‘s
Assim ficaremos com
ou
y (x1)≈ y0+ f (x0, y (x0))∫x0
x1
dx
y (x1)≈ y 0+(x1−x0) f (x0, y0)
Resolução numérica de EDO‘s
Definindo como
temos como aproximação de .
y1= y0+(x1−x0) f (x0, y0)
y1
y1 y (x1)
Resolução numérica de EDO‘s
Tendo obtido uma aproximação de , podemos tentar obter uma aproximação da mesma função no ponto vizinho ao ponto de forma que possamos fazer a integração abaixo
y (x1)
x2
x1
y (x2)≈ y1+f (x1, y1)∫x1
x2
dx
Resolução numérica de EDO‘s
Repetindo os cálculos como anteriormente teremos
e definindo como
temos este valor como aproximação de .
y (x2)≈ y1+(x2−x1) f (x1, y1)
y2
y2= y1+( x2−x1) f (x1, y1)
y (x2)
Resolução numérica de EDO‘s
Se continuarmos fazendo este procedimento, depois de i passos teremos
Faremos mais uma arbitrariedade: suporemos que todos os valores de x sejam igualmente espaçados, ou seja,
y i+1= y i+(xi+1−x i) f ( xi , y i); dado y (x0)= y0
xi+1−x i=h;∀ i
Método de Euler
Assim nossa fórmula ficará como
esta fórmula define o Método de Euler
y i+1= y i+h f ( xi , y i); dado y (x0)= y0
xi+1=x i+h
Resolução numérica de EDO‘s
Com este método conseguiremos obter valores aproximados da função nos pontosy i y (x) xi
Resolução numérica de EDO‘s
Mas veremos que ele não é tão ruim como aparenta ser por supor que a função seja constante (ou varie “pouco“ em algum sentido…) dentro do intervalo de integração
Resolução numérica de EDO‘s – Um exercício
Use o Método de Euler para calcular o valor aproximado de do problema dado abaixo usando y (1)
dydx
= y cos( x); y (0)=1
h=1,1 /2,1/4
Resolução numérica de EDO‘s – Um exercício
Comparando com o problema
com nosso problema específico
teremos que
dydx
= y cos(x); y (0)=1
dydx
=f (x , y ); y (x0)= y0
x0=0 ; y0=1 ; f (x , y )= y cos(x)
Resolução numérica de EDO‘s – Um exercício
e sendo o Método de Euler dado por
no nosso caso terá a forma
x0=0 ; y0=1 ; f (x , y )= y cos(x)
y i+1= y i+h f ( xi , y i)
y i+1= y i+h y i sen(x i);dado y (0)=1
xi+1=x i+h
xi+1=x i+h
Resolução numérica de EDO‘s – Um exercício
h = 1
Teremos
e como é uma aproximação de e sendo
então e este é o nosso resultado para h = 1
y1= y0+1× y0 cos(x0)=1+1×1×cos(0)=2
y i+1= y i+h yi cos(xi);dado y (0)=1
y1 y (x1)
x1=x0+h=0+1=1
y (1)≈2
Resolução numérica de EDO‘s – Um exercício
h = 1/2
Teremos
e como é uma aproximação de e sendo
então .
y1= y0+12× y0 cos (x0)=1+
12×1×cos(0)=1,5
y i+1= y i+h yi cos(xi);dado y (0)=1
y1 y (x1)
x1=x0+h=0+12=
12
y ( 12 )≈1,5
Resolução numérica de EDO‘s – Um exercício
h = 1/2
Teremos
e como é uma aproximação de e sendo
então .
y2= y1+12× y1 cos(x1)=1,5+
12×1,5×cos(1/2)=2,158186
y i+1= y i+h yi cos(xi);dado y (0)=1
y2 y (x2)
x2=x1+h=12+
12=1
y (1)≈2,158186
Resolução numérica de EDO‘s – Um exercício
h = 1/4
Teremos
e como é uma aproximação de e sendo
então .
y1= y0+14× y0 cos (x0)=1+
14×1×cos(0)=1,25
y i+1= y i+h yi cos(xi);dado y (0)=1
y1 y (x1)
x1=x0+h=0+14=
14
y ( 14 )≈1,25
Resolução numérica de EDO‘s – Um exercício
h = 1/4
Teremos
e como é uma aproximação de e sendo
então .
y2= y1+14× y1 cos(x1)=1,25+
14×1,25×cos(1/4 )=1,552785
y i+1= y i+h yi cos(xi);dado y (0)=1
y2 y (x2)
x2=x1+h=14+
14=
12
y ( 12 )≈1,552785
Resolução numérica de EDO‘s – Um exercício
h = 1/4
Teremos
e como é uma aproximação de e sendo
então .
y3= y2+14× y2 cos(x2)=1,552785+
14×1,552785×cos(1 /2)=1,893459
y i+1= y i+h yi cos(xi);dado y (0)=1
y3 y (x3)
x3=x2+h=12+
14=
34
y ( 34 )≈1,893459
Resolução numérica de EDO‘s – Um exercício
h = 1/4
Teremos
e como é uma aproximação de e sendo
então .
y4= y3+14× y3 cos(x3)=1,893459+
14×1,893459×cos(3 /4)=2,239815
y i+1= y i+h yi cos(xi);dado y (0)=1
y4 y (x 4)
x4=x3+h=34+
14=1
y (1)≈2,239815
Resolução numérica de EDO‘s – Um exercício
No momento temos três estimativas para , para valores diferentes de h:
Comparemos com a solução exata
y (1)
y (1)≈2(h=1) ; y (1)≈2,158186 (h=12 ) ; y (1)≈2,239815 (h=1
4 )
y (x)=esin( x)⇒ y (1)=esin (1)
=2,319776
Resolução numérica de EDO‘s – Um exercício
Observe que quando diminuimos h os resultados se aproximam do resultado exato.
O método de Euler mostra que é eficaz, embora não muito preciso, com valores de h relativamente grandes.
Método de Euler melhorado
Voltemos ao problema original, ou seja,
e integremos como antes para determinar
dydx
= f (x , y ( x)); y (x0)= y0
y (x1)= y0+∫x0
x1
f (x , y (x))dx
y (x1)
Método de Euler melhorado
Diferente do que fizemos antes, usaremos como aproximação o valor no ponto médio do intervalo que, como vimos em integração numérica, nos dá maior precisão. Portanto faremos
Temos um problema: como calcularemos ?
y (x1)≈ y0+ f (x0+h2, y (x0+
h2))∫
x0
x1
dx=h f (x0+h2
, y (x0+h2));h=x1−x0
y ( x0+h2 )
Método de Euler melhorado
Observe que todos os cálculos aqui são aproximados. Usaremos uma aproximação usando o Método de Euler para calcularmos
ou seja,
y ( x0+h2 )
y1/2= y0+h2
f (x0, y0);onde y1/2≈ y (x0+h /2)
Método de Euler melhorado
Com isto poderemos escrever
Um estudo mais cuidadoso demonstraria que este cálculo é bem embasado.
y (x1)≈ y0+h f (x0+h2, y0+
h2
f (x0, y0))
Método de Euler melhorado
Uma forma mais usual de apresentação deste método é
onde é uma aproximação de .
y1= y0+h k2
k2= f (x0+h2, y0+
h2k1)
k1= f (x0, y0)
y1 y (x1)
Método de Euler melhorado
Se fizermos o mesmo que antes, ou seja, usarmos o valor obtido para obter uma aproximação em e daí obtermos mais e mais pontos, poderemos descrever este método da seguinte forma
y1 y (x2)
Método de Euler melhorado
Método de Euler melhorado
y i+1= y i+hk 2
k2= f (x i+h2, y i+
h2k1)
k1= f (x i , y i)
xi+1=x i+h
Método de Euler melhorado – Um exercício
Use o Método de Euler melhorado para calcular o valor aproximado do problema dado abaixo usando
h=1,1 /2dydx
= y cos( x); y (0)=1
Método de Euler melhorado – Um exercício
h = 1
Pelo que já vimos antes escreveremos
ou seja, o valor obtido para é uma aproximação de
k1=f (x0 , y0)= y0 cos (x0)=1cos(0)=1
k 2=f (x0+h2; y0+
h2k1)=f (0+
12;1+
12×1)=f (1
2; 3
2)=
32×cos ( 12 )=1,316373
y1= y0+h k2=1+1×1,316373=2,316373
x1=x0+h=0+1=1
y1 y (1)
Método de Euler melhorado – Um exercício
h = 1/2
Da mesma maneira que anteriormente teremos
ou seja, o valor obtido para é uma aproximação de
k1=f (x0, y0)= y0 cos(x0)=1cos(0)=1
k 2=f (x0+h2; y0+
h2k1)=f (0+
14;1+
14×1)=f ( 1
4; 5
4)=
54×cos ( 1
4 )=1,211140
y1= y0+h k2=1+12×1,211140=1,605570
x1=x0+h=0+12=
12
y1 y (1 /2)
Método de Euler melhorado – Um exercício
h = 1/2
continuando...
ou seja, o valor obtido para é uma aproximação de
k1=f (x1 , y1)= y1 cos( x1)=1,605570 cos(1 /2)=1,409020
k 2=f (x1+h2, y1+
h2k1)=f (
12+
14;1,605570+
14×1,409020)=f (
34,
1,957825)
y2= y1+h k2=1,605570+12×1,432518=2,321829 x2=x1+h=
12+
12=1
y2 y (1)
k 2=f ( 34;1,957825 )=1,957825∗cos ( 3
4 )=1,432518
Método de Euler melhorado – Um exercício
Agora comparemos com os resultados obtidos pelo método de Euler
os valores obtidos pelo método de Euler melhorado
e o valor exato
y (1)≈2,316373 (h=1 ) ; y (1)≈2,321829 (h=12)
y (1)≈2(h=1); y (1)≈2,158186 (h=12 ) ; y (1)≈2,239815 (h= 1
4 )
y (x)=esin( x)⇒ y (1)=esin (1)
=2,319776
Resolução numérica de EDO‘s
Vemos claramente que com um esforço computacional equivalente, o método de Euler melhorado com h = ½ obtem um resultado mais preciso que o método de Euler com h = ¼ .
Resolução numérica de EDO‘s
Os Métodos de Euler e Euler Melhorado fazem parte de um conjunto de métodos de resolução numérica de EDO‘s conhecidos como Métodos de Runge-Kutta
● Euler é um método cujo o erro é proporcional a
● Euler melhorado é um dos métodos de Runge-Kutta cujo erro é proporcional a
h
h2
Resolução numérica de EDO‘s
Podemos dividir grosseiramente os métodos existentes para resolução de EDO‘s em
● Métodos de passo simples como os de Runge-Kutta
● Métodos de passo múltiplo como os de Adams-Bashforth
● Métodos de extrapolação como os de Bulirsch-Stoer
Mas há outras técnicas além destas
Resolução numérica de EDO‘s
Cada um destes métodos tem virtudes e problemas e existem métodos criados para situações específicas
Resolução numérica de EDO‘s
Embora aqui tenhamos apresentado a resolução de uma EDO, estas mesmas técnicas podem ser usadas para resolver numericamente sistemas de Equações Diferenciais Ordinárias
Resolução numérica de EDO‘s
Apresentemos sistemas de equações diferenciais com um exemplo de um sistema de três equações
Resolução numérica de EDO‘s
Um sistema dado por
pode ser escrito como
dαdx
= f⃗ α(x ,α(x) ,β(x) ,γ(x));α(x0)=α0
dβ
dx= f⃗ z (x ,α(x),β(x) ,γ(x ));β(x0)=β0
d γ
dx= f⃗ w (x ,α(x) ,γ(x) ,γ(x));γ(x0)=γ0
Resolução numérica de EDO‘s
Um sistema em forma vetorial
onde
, as funções dependentes
, condições iniciais
, funções relativas a cada equação
d y⃗dx
= f⃗ (x , y⃗ (x)); y⃗ (x0)= y⃗ 0
y⃗=(α ,β ,γ )
y⃗0=(α0 ,β0 ,γ0 )
f⃗ = ( f α , f β , f γ )
Resolução numérica de EDO‘s
Apresentaremos o esquema para resolução numérica deste sistemas de equações diferencias ordinárias para o Método de Euler. Será análogo para qualquer outro método.
Resolução numérica de EDO‘s
Primeiro escrevamos a equação e o Método de Euler para uma única equação dada por
dydx
= f (x , y (x)); y (x0)= y0
y i+1= y i+h f (xi , y i)
xi+1=x i+h
Resolução numérica de EDO‘s
Sistema de equações e Método de Euler em forma vetorial
d y⃗dx
= f⃗ ( x , y⃗ (x)); y⃗ (x0)= y⃗ 0
y⃗ i+1= y⃗ i+h f⃗ (xi , y⃗ i)
xi+1=x i+h
Resolução numérica de EDO‘s
Ou seja,
ou mais explicitamente
αi+1=αi+h f α(xi , y⃗i)
βi+1=βi+h f β(xi , y⃗i)
γi+1=γi+h f γ(xi , y⃗i)
αi+1=αi+h f α(xi ,αi ,βi ,γi)
βi+1=βi+h f β(xi ,αi ,βi ,γi)
γi+1=γi+h f γ(xi ,αi ,βi ,γi)
Resolução numérica de EDO‘s
Vejamos um exemplo clássico: O sistema Presa-Predador elaborado por Lotka e Volterra
Resolução numérica de EDO‘s
Sistema Presa-Predador
Onde P é a população de uma presa e Q é a população de predadores que iteragem
dPdt
=(α0−β0Q ) P; P (t 0)=P0
dQdt
=(−α1−β1 P )Q ;Q (t 0)=Q0
Resolução numérica de EDO‘s
No caso do Método de Euler escreveremos
dados
Pi+1=P i+h (α0−β0Qi ) P i
Qi+1=Qi+h (−α1−β1 Pi )Qi
t i+1=t i+h
P (t 0)=P0 ;Q (t 0)=Q0
Resolução numérica de EDO‘s
E como seria no Método de Euler Melhorado?
Método de Euler melhorado
Método de Euler melhorado para uma equação
e para um sistema de equações se escreverá como
y i+1= y i+hk 2
k 2=f (x i+h2, y i+
h2k1)
k 1=f (xi , y i)
x i+1=x i+h
Método de Euler melhorado
Método de Euler melhorado para um sistema
y⃗ i+1= y⃗ i+h k⃗ 2
k⃗ 2= f⃗ (xi+h2
, y⃗ i+h2
k⃗1)
k⃗ 1= f⃗ 1(x i , y⃗ i)
x i+1=x i+h
Resolução numérica de EDO‘s
Façamos uma ilustração com o problema Presa-Predador
Resolução numérica de EDO‘s
Sistema Presa-Predador
Onde P é a população de uma presa e Q é a população de predadores que iteragem
dPdt
=(α0−β0Q ) P; P (t 0)=P0
dQdt
=(−α1−β1 P )Q ;Q (t 0)=Q0
Resolução numérica de EDO‘s
No caso do Método de Euler Melhorado escreveremos
onde
Pi+1=P i+hk 2P
Qi+1=Qi+hk 2Q
t i+1=t i+h
k 1P=f P(t i ,P i ,Q i)
k 2P=f P(t i+h2,
P i+h2k1 P ,Q i+
h2
k1Q)
k 1Q=f Q (t i ,P i ,Q i)
k 2Q= f Q (t i+h2,
P i+h2k1 P ,Q i+
h2
k1Q)
f P(t i , Pi ,Qi)=[α0−β0Q(t)]P(t ); f Q(t i , P i ,Q i)=[−α1+β1P(t )]Q (t )
Resolução numérica de EDO‘s
Agora ilustremos o que podemos fazer para resolver uma equação diferencial de qualquer ordem com uma equação de segunda ordem, usando os métodos apresentados
Resolução numérica de EDO‘s
Seja uma equação de segunda ordem com o seguinte problema de valor inicial
Escrevamos esta equação da seguinte maneira
d3 ydx3 =f ( x , y (x),
dydx
,dy2
dx2 ) ; y (x0)= y0 ;dydx
|x=x0=z0 ;
dy2
dx2=w0
Resolução numérica de EDO‘s
O que fizemos foi nomerar a derivada primeira de y como uma função z e w como derivada de z. Caimos num sistema de três equações de primeira ordem que sabemos como resolver
d zdx
=w (x);dydx
|x=x0=z (x0)=z0
d ydx
=z( x); y (x0)= y0
dwdx
=f ( x , y (x) , z (x)) ;dy2
dx2|x=x0
=w ( x0)=w0
Resolução numérica de EDO‘s
Ilustremos com a equação do pêndulo simples
Reescrevamos esta equação da seguinte maneira
d2θ
dx2=−sen( y) ;θ( x0)=θ0 ;
d θ
dt|t=t 0
=ω0
Resolução numérica de EDO‘s
As quais podemos resolver numericamente com as técnicas vistas
dω
dt=−sen(θ);ω(t0)=ω0
d θ
dt=ω(t) ;θ(t0)=θ0