Você está na página 1de 71

EQUAO DIFERENCIAL ORDINRIA

PROBLEMA DE VALOR INICIAL


dy
= f ( x, y ) , cond. inicial : y (a ) = c
dx
Geralmente a varivel x representa o tempo e a equao diferencial
representa a lei da natureza que descreve a taxa de variao de uma grandeza
Exemplo: A taxa de crescimento de uma populao proporcional populao:

dN
= KN ,
dt

N : numero de
d habitantes
h bit t

comum uma situao ser descrito por um sistema de equaes diferenciais

dyi
= f i ( x, y1 , y2 ,L, y s ) , i = 1,2,L, s
dx
dy
Em notao vetorial:
= f ( x, y ) , y ( a ) = c
dx

Equaes diferenciais de ordem superior podem ser escritas como


um sistema de equaes
q
diferenciais de primeira
p
ordem

d3y
d d2y
dy
= g x, y, , 2 , cond. iniciais : y (0) = 1 , y (0) = 2 , y (0) = 3
dx dx
dx 3

1 = y , 2 =

dy
d2y
, 3 = 2
dx
dx

d1
dx = 2 , 1 (0) = 1

d 2
= 3 , 2 (0) = 2

dx
d 3
dx = g ( x,1 ,2 ,3 ) , 3 (0) = 3

dy
= f ( x, y ) , y ( a ) = c
dx
Se a varivel x representa o tempo, a equao diferencial fornece
o vetor velocidade f de uma partcula em funo do vetor posio y.
A soluo da equao diferencial descreve o movimento de uma
partcula neste campo de velocidade

Exemplo :
d1
= (1 + 2 ) , 1 (0) = A1
dt
d 2
= ( 2 1 ) , 2 (0) = A2
dt

MTODO DE EULER
Mtodo de Passo a Passo Explcito: O valor da funo no instante k+1
calculado somente em funo do valor da funo no instante k
Tambm
b conhecido
h id como Mtodo
d da
d Tangente
Soluo numrica: A funo y(x) no ser obtida para todos os valores de x
Definir pontos xi onde a funo y(x) ser calculada: Malha

Srie de Taylor de y(x) em xk:

y2
y1

y ( xk +1 ) = y ( xk ) + hy ( xk ) +

y0

x0 x1 x2 x3 x4

h2
y ( xk ) + L
2
y k +1 = yk + h f ( xk , y k )

Exemplo:

Resolver :

dy
= y;
dx

x
Soluo exata: y ( x) = e

y ( 0) = 1

Mtodo de Euler:

y k +1 = y k + h f ( x, y )

h = 0.2
xk
0.0
02
0.2
0.4
0.6

y(xk)
1.000
1 221
1.221
1.492
1.822

yk
1.000
1 200
1.200
1.440
1.728

y k +1 = y k + h y k
h = 0.1

Erro
0.000
-0.021
0 021
-0.052
-0.094

xk
0.0
01
0.1
0.2
0.3
0.4
05
0.5
0.6

y(xk)
1.000
1 105
1.105
1.221
1.350
1.492
1 649
1.649
1.822

yk
1.000
1 100
1.100
1.210
1.331
1.464
1 610
1.610
1.771

Erro
0.000
-0.005
0 005
-0.011
-0.019
-0.028
-0.039
0 039
-0.051

A soluo apresenta erros


erros.
Aparentemente o erro proporcional ao passo h

Dois tipos de Erros: Erro de Truncamento (Discretizao)


Erro de Arredondamento
Erro de Truncamento (Discretizao)

E ( h, x k ) = y k y ( x k )

 Erro que surge devido aproximao da curva y(x)


por uma reta no intervalo h
 Propagao
p g do erro: Soluo
numrica tende a aproximar
p
a
soluo exata que passa por (xk ,yk)

Famlia de curvas

x
 Erro pode ser decrescido diminuindo-se o passo h

 Aumento do nmero de intervalos leva a um


aumento do nmero de clculos necessrios e consequentemente
um aumento do tempo computacional e dos erros de arredondamento

Erro
T t l
Total
Arredondamento
Truncamento

n= 1

 Existe um tamanho de passo timo para produzir o erro mnimo

Anlise do Erro de Truncamento para o Mtodo de Euler


ERRO GLOBAL

E ( h, x k ) = y k y ( x k )

ERRO LOCAL: Diferena entre o valor yk e o valor da soluo exata


que passa pelo ponto (xk-1, yk-1)

Erro global
Erro local

( xk 1 , y k 1 )

x
Deseja-se obter uma estimativa do erro e saber se o erro cresce ou no

dy
= f ( x, y )
dx
Se

y k +1 = y k + h f ( xk , yk )
1424
3

f
>0
y

Se

f
<0
y

y ( xk , y k )

FAMLIA

DE CURVAS DIGERVE

FAMLIA DE CURVAS DIGERVE

y
( x2 , y ( x2 ))

( x2 , y ( x2 ))

( x1 , y ( x1 ))

( x1 , y ( x1 ))
( x0 , y 0 )

( x1 , y1 )

( x0 , y 0 )

( x1 , y1 )

y ( x1 , y1 ) < y ( x1 , y ( x1 ))

y ( x1 , y1 ) > y ( x1 , y ( x1 ))

ERRO AUMENTA EXPONENCIALMENTE

ERRO LOCAL COMPENSA


ERRO DA DISCRETIZAO

SE O ERRO LOCAL EM TODOS OS PONTOS FOR MENOR DO QUE ,


O ERRO GLOBAL SATISFAZ A SEGUINTE CONDIO:

e Lnh 1
;
y n y ( xn ) Lh
e 1

onde L = max

x0 < x < x n

f
y

Se Lh for pequeno :
e Lnh 1
y n y ( xn )
Lh
 Erro pode crescer exponencialmente se L > 0
 Erro pode ficar em uma faixa aceitvel se h for muito pequeno

Anlise do Estabilidade
ESTVEL: Produz soluo limitada (< )
INSTVEL: Produz soluo que tente ao infinito
O Mtodo de Euler condicionalmente estvel

Exemplo :

dy
= y
dx

Soluo exata:

y ( x) = y0 e x

Soluo pelo mtodo de Euler:

y n +1 = y n + h y n

Observe que
que, por serie de Taylor:

e h 1 + h +

y n +1 = y0 (1 + h) n

(h) 2
+L
2

A soluo pelo mtodo de Euler produz os dois primeiros termos da serie de Taylor

Para = 2 ( y0 = 1) :

Metodo de Euler:
=

-2.0000

Xk
1.5000
1.0000
0.5000

Exata

0.0000
0.00
-0.5000

h=0.2
1.00

2.00

3.00

4.00

5.00

h=0.4
h=1.0

-1.0000
-1.5000

Para < 0

Soluo exata decai com x

Exata
1.0000
0.6703
0.4493
0.3012
0.2019
0.1353
0.0907
0.0608
0.0408
0.0273
0.0183
0.0123
0.0082
0.0055
0.0037
0.0025
0.0017
0.0011
0.0007
0.0005
0.0003
0.0002
0.0002
0.0001
0.0001
0.0000

0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1.60
1.80
2.00
2.20
2.40
2.60
2.80
3.00
3.20
3.40
3.60
3.80
4.00
4.20
4.40
4.60
4.80
5.00

h=
0.2000
Yk
1.0000
0.6000
0.3600
0.2160
0.1296
0.0778
0.0467
0.0280
0.0168
0.0101
0.0060
0.0036
0.0022
0.0013
0.0008
0.0005
0.0003
0.0002
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000

h=
0.4000
Yk
1.0000

h=
1.0000
Yk
1.0000

0.2000
0.0400
-1.0000
0.0080
0.0016
0.0003
0.0001
0.0000
-1.0000
0.0000
0.0000
0.0000

1.0000

0.0000
0.0000
-1.0000

Soluo aproximada pode crescer com x se 1 + h > 1


Para <0, o Mtodo de Euler s estvel para h <

1.0000

Microsoft Excel
Worksheet

Resolver o problema y = y,

y ( 0) = 1

Comparar
p
a soluo
exata com a obtida pelo
p mtodo de Euler com
Metodo de Euler:
h = 0.1, h = 0.5, h = 1.5 e h = 2.

1.2000
1.0000

exata

0.8000

h=0.1

0.6000

h=0.5
h=1
h
1.5
5

0.4000
0.2000
0.0000
-0.20000.00

1.00

2.00

3.00

4.00

5.00

-0.4000
-0.6000

Microsoft Excel
Worksheet

-1.0000

0.00
0.10
0.20
0 30
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00
1 10
1.10
1.20
1.30
1.40
1.50
1.60
1.70
1.80
1.90
2.00
2.10
2.20
2.30
2.40
2.50
2.60
2.70
2.80
2.90
3.00
3.10
3.20
3.30
3.40
3.50
3.60
3.70
3.80
3.90
4.00

1.0000
0.9048
0.8187
0 7408
0.7408
0.6703
0.6065
0.5488
0.4966
0.4493
0.4066
0.3679
0 3329
0.3329
0.3012
0.2725
0.2466
0.2231
0.2019
0.1827
0.1653
0.1496
0.1353
0.1225
0.1108
0.1003
0.0907
0.0821
0.0743
0.0672
0.0608
0.0550
0.0498
0.0450
0.0408
0.0369
0.0334
0.0302
0.0273
0.0247
0.0224
0.0202
0.0183

h=0.1
1.0000
0.9000
0.8100
0 7290
0.7290
0.6561
0.5905
0.5314
0.4783
0.4305
0.3874
0.3487
0 3138
0.3138
0.2824
0.2542
0.2288
0.2059
0.1853
0.1668
0.1501
0.1351
0.1216
0.1094
0.0985
0.0886
0.0798
0.0718
0.0646
0.0581
0.0523
0.0471
0.0424
0.0382
0.0343
0.0309
0.0278
0.0250
0.0225
0.0203
0.0182
0.0164
0.0148

MTODO DE EULER DE ORDEM ELEVADA

h2
y ( xk ) + L
2
d
d
f f dy
Onde y ( xk ) =
y =
f ( x, y ) =
+
dx
dx
x y dx
y ( xk +1 ) = y ( xk ) + hy ( xk ) +

y ( xk +1 ) = y ( xk ) + h f ( xk , yk ) +

Resolver :

dy
= yx,
dx

y ( 0) = 2

h2
2

f f

f ( xk , y k )
+
x y

Sol Exata : y ( x) = e x + x + 1
Sol.

Usar mtodo de Euler de segunda ordem com h = 0.1

h=0.5
1.0000

h=1.5
1.0000

0.5000

0.2500

0.1250

-0.5000

0.0625

0.0313

0.0156

0.0078

0.0039

0.2500

MTODO DE RUNGE-KUTTA
Mtodo de Passo a Passo Explcito: O valor da funo no instante k+1
calculado somente em funo do valor da funo no instante k
O coeficiente
fi i
que multiplica
l i li o passo h no clculo
l l da
d funo
f
no instante
i
k 1
k+1
calculado de forma que a expanso coincida com o desenvolvimento
em srie de Taylor at os termos de ordem N (ordem do mtodo)
Derivao para Runge-Kutta de segunda ordem:

dy
= F ( x, y ) , c.i.
c i ( x0 , y 0 )
dx
Serie de Taylor (2a ordem) :
h2
y ( xk +1 ) = y ( xk ) + h Fk +
2

Fk Fk ddy
+
+L

y dx
x

(?)

Aprox.
Aprox
y k +1 = y k + 1h Fk + 2 h F ( xk + 1h, yk + 2 h Fk )

As constantes 1 , 2 , 1 , 2 so determinadas de tal forma que as


expresses anteriores coincidam
Por srie de Taylor:

F ( xk + 1h, y k + 2 h Fk ) = F ( xk , y k ) + 1h

Fk
F
+ 2 h Fk k + L
x
y

A soluo
aproximada
p
fica:

F
F
y k +1 = y k + (1 + 2 )h Fk + 2 h 2 1 k + 2 Fk k + L
y
x
Comparando com

(?)
1
2

1 + 2 = 1; 2 1 = ;

2 2 =

f
f
y k +1 = y k + h 1 + 2 ;
2
2

1
2

1 = 2 =

1
2

e 1 = 2 = 1

f1 = F ( x k , y k )
f = F ( x + h, y + hf )
k
k
1
2

RUNGE KUTTA DE QUARTA ORDEM

f
f
f
f
y k +1 = y k + h 1 + 2 + 3 + 4
3
3
6
6
f1 = F ( x k , y k )
h
h

f 2 = F x k + , y k + f1
2
2

h
h

f 3 = F xk + , y k + f 2
2
2

f 4 = F (xk + h, y k + hf 3 )

 Mtodo de Runge-Kutta mais utilizado


 Boa
oa co
combinao
b ao entre
e e preciso
p ec so e simplicidade
s p c dade de programao
p og a ao

Resolver o problema y = y ,

y (0) = 1 (Runge - Kutta quarta ordem, h = 0.5)

F ( x, y ) = y
0.5
( f1 + 2 f 2 + 2 f 3 + f 4 )
y1 = y0 +
6
f1 = ( y0 )
Metodo de Runge-Kutta (4 ordem):
0.5
h=
0.5000

f 2 = y0 +
f1
f1
0.00
1.0000
2

0.50
0.6065
-1.0000
0.5
1.00
0.3679
-0.6068

f 3 = y0 +
f2
1.50
0.2231
-0.3682
2.00
0.1353
-0.2234
2

2.50
0.0821
-0.1355
f 4 = ( y0 + 0.5 f 3 )
3.00
0.0498
-0.0822
M

3.50
4.00
4.50
5.00
5.50
6.00
6.50
7.00
7.50
8.00
8.50
9.00
9.50
10.00

0.0302
0.0183
0.0111
0.0067
0.0041
0.0025
0.0015
0.0009
0.0006
0.0003
0.0002
0.0001
0.0001
0.0000

-0.0499
-0.0303
-0.0184
-0.0111
-0.0068
-0.0041
-0.0025
-0.0015
-0.0009
-0.0006
-0.0003
-0.0002
-0.0001
-0.0001

f2
-0.7500
-0.4551
-0.2761
-0.1675
-0.1017
-0.0617
-0.0374
-0.0227
-0.0138
-0.0084
-0.0051
-0.0031
-0.0019
-0.0011
-0.0007
-0.0004
-0.0003
-0.0002
-0.0001
-0.0001

f3
-0.8125
-0.4930
-0.2991
-0.1815
-0.1101
-0.0668
-0.0405
-0.0246
-0.0149
-0.0091
-0.0055
-0.0033
-0.0020
-0.0012
-0.0007
-0.0005
-0.0003
-0.0002
-0.0001
-0.0001

f4
-0.5938
-0.3603
-0.2186
-0.1326
-0.0805
-0.0488
-0.0296
-0.0180
-0.0109
-0.0066
-0.0040
-0.0024
-0.0015
-0.0009
-0.0005
-0.0003
-0.0002
-0.0001
-0.0001
0.0000

y - approx
1.0000
0.6068
0.3682
0.2234
0.1355
0.0822
0.0499
0.0303
0.0184
0.0111
0.0068
0.0041
0.0025
0.0015
0.0009
0.0006
0.0003
0.0002
0.0001
0.0001
0.0000

Runge - Kutta quarta ordem, h = 1.5


Metodo de Runge-Kutta
g
(4
( ordem):
)
h=

1.5000

0.00
1.50
3 00
3.00
4.50
6.00
7.50
9.00
10.50

1.0000
0.2231
0 0498
0.0498
0.0111
0.0025
0.0006
0.0001
0.0000

f1

f2

-1.0000
-0 2734
-0.2734
-0.0748
-0.0204
-0.0056
-0.0015
-0.0004

f3

-0.2500
-0 0684
-0.0684
-0.0187
-0.0051
-0.0014
-0.0004
-0.0001

f4

-0.8125
-0 2222
-0.2222
-0.0607
-0.0166
-0.0045
-0.0012
-0.0003

RK
1.0000
0.2734
0 0748
0.0748
0.0204
0.0056
0.0015
0.0004
0.0001

0.2188
0 0598
0.0598
0.0164
0.0045
0.0012
0.0003
0.0001

EULER
1.0000
-0.5000
0 2500
0.2500
-0.1250
0.0625
-0.0313
0.0156
-0.0078

1.2000
1.0000
0.8000
0.6000
Exata

0.4000

RK

0.2000
0.0000
-0.20000.00

Euler
2.00

4.00

6.00

8.00

10.00

12.00

-0.4000
-0.6000

RUNGE KUTTA PARA SISTEMA DE EDOS

ddy
= F ( x , y , z ) ; y ( x0 ) = A
dx
dz
= G ( x , y , z ) ; z ( x0 ) = B
dx
h
( f1 + 2 f 2 + 2 f 3 + f 4 )
6
f1 = F ( x k , y k , z k )

y k +1 = y k +

h
h
h

f 2 = F xk + , yk + f1 , z k + g1
2
2
2

h
h
h

f 3 = F xk + , y k + f 2 , z k + g 2
2
2
2

f 4 = F (xk + h, yk + hf 3 , z k + hg 3 )

h
(g1 + 2 g 2 + 2 g 3 + g 4 )
6
g1 = G (xk , y k , z k )

z k +1 = z k +

h
h
h

g 2 = G xk + , yk + f1 , z k + g1
2
2
2

h
h
h

g 3 = G xk + , y k + f 2 , z k + g 2
2
2
2

g 4 = G (xk + h, yk + hf 3 , z k + hg 3 )

MTODOS IMPLCITOS
Nos mtodos vistos at agora, o valor da funo no instante k+1
calculado somente em funo de informaes no instante k.
Como
C
visto
i anteriormente,
i
os mtodos
d explcitos
l i somente so estveis
i
como o tamanho do passo muito pequeno.
MTODO DE EULER IMPLCITO
Srie de Taylor para trs ao redor de xk+1:

y2

x = h

y1

h2

y ( xk +1 h) = y ( xk +1 ) hy ( xk +1 ) +
y ( xk +1 ) + L
1
424
3
2
xk

x2

x1

x0

y k = y k +1 h f ( xk +1 , y k +1 )

y k +1 = y k + h f ( xk +1 , y k +1 )
Lado direito da equao no conhecido !!

Resolver o problema y = y,

y ( 0) = 1

F ( x, y ) = y
y k +1 = y k + h f ( xk +1 , y k +1 )
y k +1 =

yk
(1 + h)

y k +1 = y k + h ( y k +1 )

 Em casos simples
simples, a equao pode ser facilmente rearrumada
para determinar a funo no passo k+1
 Se F(x,y) for uma funo no linear, a funo no passo k+1
ser calculada atravs da soluo de uma equao
no linear (pelo Mtodo de Newton, por exemplo).

Metodo de Euler Implicito


=

-1.0000
1.0000

0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
4.00
4.50

1.0000
0.6065
0.3679
0.2231
0.1353
0.0821
0.0498
0.0302
0.0183
0.0111

1.2000

h=1.5 (EXP)
h=0.5 (IMP)
1.0000
1.0000

1.0000
0.8000
0.6000
Exata

0.4000

-0.5000
0.5000

0.4000

Euler Explicito

0 2000
0.2000

Euler Implicito

0.0000

0.2500

0.1600

-0.20000.00

1.00

2.00

3.00

4.00

-0.4000
-0.6000

-0.1250

0.0640

O mtodo de Euler Implcito incondicionalmente estvel

5.00

Resolver o problema y = y x ,

y (0) = 1

F ( x, y ) = y x
y k +1 = y k + h f ( xk +1 , y k +1 )

y k +1 = y k + h y kx+k +11

y k +1 h y kx+k +11 = y k
 O valor de yk+1 no pode ser explicitada em funo de yk
 Para cada passo, deve-se determinar a raiz da equao no linear

y ayy b c = 0 ;

a, b, c conhecidos

 Clculo pelo Mtodo de Newton, por exemplo

f ( y ) = y ay b c = 0
y (0) = yk
j=0
Enquanto f ( y ( j ) ) < , repetir
y ( j +1) = y ( j ) f y ( j ) f y ( j )
j = j +1
fi
fim_equant
o
( j)
y k +1 = y

( ) ( )

MTODO IMPLCITO DE SEGUNDA ORDEM


(MTODO DO TRAPZIO)
Teorema do Valor Mdio:

(xk , xk +1 ) tal que y ( ) =

yk +1 = y k + h y ( )

Tomar y ( )

y ( xk +1 ) y ( xk )
xk +1 x x

y2

y1

x0

x1

1
( y( xk ) + y( xk +1 ) ) = 1 ( f ( xk , yk ) + f ( xk +1 , yk +1 ) )
2
2

y k +1 = y k +

h
[ f (xk , yk ) + f (xk +1 , yk +1 )]
2

 Mtodo
M d de
d segunda
d ordem
d ((erro ddecaii com h2)
 Mtodo Estvel
 Mesmas dificuldades do Mtodo de Primeira Ordem (Euler)

x2

MTODOS PREDITOR-CORRETOR
 Na resoluo de uma equao diferencial deve-se decidir entre o uso de
um mtodo
t d explcito,
l it mais
i fcil
f il e no
estvel,
t l e o uso de
d um
mtodo implcito, mais difcil, porm estveis.
 Quando a equao diferencial no linear,
linear deve-se usar tcnicas iterativas
para resolver a equao no linear resultante em cado passo.
 Para o Mtodo
odo de Newton,
ew o , o cchute
u e inicial
c deve ser
se bom
bo para
p o processo
p ocesso
convergir em poucas iteraes.
 Uma opo usar um mtodo explcito para obter o chute inicial do
processo iterativo (Preditor) e um mtodo implcito para obter
a soluo (Corretor).
 Mtodo
d de
d Heun: Preditor:
di
Euler
l e Corretor: Trapzio
i

y k* +1 = y k + h f ( xk , y k )
Chute Inicial : y k* +1

y k +1 = y k +

h
[ f (xk , yk ) + f (xk +1 , yk +1 )]
2

MTODOS DE MLTIPLOS PASSOS


Nos mtodos vistos at agora,
agora o valor yk+1 depende somente de
informaes no instante anterior k no instante presente k+1.
Mtodos de Mltiplos Passos: Usar informaes em vrios pontos anteriores
para obter maior preciso.
Passo nico:

Dois Passos:

y yk
dy y k +1 y k
=
+ O(h) k +1
= f ( xk , y k )
dx
h
h

h2
h3
y ( xk +1 ) = y ( xk ) + hy ( xk ) +
y ( xk ) +
y ( xk ) + L
2
6
h2
h3
y ( xk 1 ) = y ( xk ) hy ( xk ) +
y ( xk )
y ( xk ) + L
2
6
y ( xk +1 ) y ( xk 1 ) = 2hy ( xk ) + O(h 3 )
y yk 1
dy y k +1 y k 1
+ O(h 3 ) k +1
= f ( xk , y k )
=
dx
2h
2h
yk +1 = yk 1 + 2h f ( xk , yk )

MTODO LEAPFROG

Idia geral dos Mtodos de Mltiplos Passos: Usar informaes em vrios


pontos anteriores a xk para descrever como a funo se comporta
entre xk e xk+1.
xk +1

xk +1

y( x) dx = f (x, y( x))dx

y ( xk +1 ) y ( xk ) =

xk
xk +1

y k +1 y k =

xk

p( x) dx

xk

p(x) um polinmio interpolador de grau N que aproxima f(x,y) e passa


pelo conjundo de dados ( xi , f i ) , i = k , k 1,L, k N
Para N = 0: mtodo de ppasso nico
xk +1

p( x) = f k

dx = f k h

xk

y k +1 = y k + h f ( xk , y k )

Mtodo de Euler

Para N = 1: mtodo de Dois Passos


( xk 1 , f k 1 ) e ( xk , f k )
p(x)) um ppolinmio linear qque interpola
p(
p

p( x) =
xk

x xk
x xk 1
x xk
( f k 1 f k )
f k 1 +
fk = fk
xk 1 xk
xk xk 1
h
p ( x) dx = f k h + ( f k 1 f k )

xk 1

yk +1 = yk + h f k

( x xk ) 2
2h

h
( f k 1 f k )
2

xk
xk 1 = f k

yk +1 = yk +

h ( f k 1 f k )

h
2

h
(3 f k f k 1 )
2

M d dde Ad
Mtodo
Adams-Bashforth
B hf h de
d 2a ordem
d

Para N = 2: mtodo de Trs Passos Mtodo de Adams-Bashforth 3a ordem


p(x) um polinmio quadrtico que interpola ( xk 2 , f k 2 ), ( xk 1 , f k 1 ) e ( xk , f k )
yk +1 = yk +

h
(23 f k 16 f k 1 + 5 f k 2 )
24

Mtodos de Adams-Bashforth so Mtodos Explcitos


Pode-se formar os polinmios interpoladores utilizando-se pontos para frente.
Mtodos Implcitos
Situao mais comum formar um polinmio de ordem N
com os pontos xk +1 , xk , xk 1 ,L xk N

Mtodo de Adams-Moulton
Adams Moulton de ordem N
Para N = 0: mtodo de passo nico

y k +1 = y k +

h
[ f (xk , yk ) + f (xk +1 , yk +1 )]
2

Regra do Trapzio

Para N = 3: Mtodo de Adams-Moulton de 4a ordem

y k +1 = y k +

h
[9 f (xk +1 , yk +1 ) + 19 f (xk , yk ) 5 f (xk 1 , yk 1 ) + f (xk 2 , yk 2 )]
24

SOLUO DE EQUAES RGIDAS (STIFF)

EQUAES INSTVEIS

(1) y 10 y 11 y = 0

Soluo exata: y ( x) = e x

(1)

y ( 0) = 1
c.c.
y (0) = 1

(2) y 10 y 11 y = 0
y ( 0) = 1 +
c.c.
y (0) = 1

Soluo exata: y ( x ) = 1 +

11 x 11x
e + e
12
12

( 2)

10
8
6
4
2

Microsoft Excel
Worksheet

0
0

0.2

0.4

0.6

0.8

1.2

O problema (1) instvel.


Pequenas alteraes na condio inicial podem produzir grandes
alteraes na soluo do problema para x grande.
Esses problemas so chamados de mal condicionados.
A soluo numrica extremamente difcil, pois erros de arredondamento
e da discretizao podem causar o mesmo efeito que a pequena
mudana na condio inicial do problema e a soluo tender a
divergir para o infinito.
Estes problemas requerem mtodo numricos estveis com passos bem
menores do que o usual.
As instabilidades so mais pronunciadas em problemas no-lineares.

Exemplo : y = xy ( y 2)

y ( x) = 2 (1)

Soluo exata:

c.c. y(0) = 2
Este problema instvel. A soluo para condio inicial y (0) = y0 :
y ( x) =

2 y0
y 0 + ( 2 y 0 )e x

( 2)

3
2.5
2
Microsoft Excel

1.5

Worksheet

1
0

0.2

0.4

0.6

0.8

1.2

MTODOS ESTVEIS E INSTVEIS

y = 2 y + 1
Problema :
y ( 0) = 1

S l exata: y ( x) =
Soluo

1 2 x 1
e +
2
2

(1)

E t problema
Este
bl
estvel,
t l pois
i a soluo
l no
muda
d muito
it alterando-se
lt
d
a c.c.

Se y (0) = 1 +

1
1

y ( x ) = + e 2 x +
2
2

Aplicando-se o mtodo de Leapfrog (segunda ordem, dois passos, explcito):

y k +1 = y k 1 + 2h( 2 y k + 1) = 4hy k + y k 1 + 2h
10

1
1
y1 = e 2 h +
2
2
y k quando k
y0 = 1;

5
0
0

-5
-10

Mtodo implcitos so estveis e portanto devem ser usados para problemas stiff

Resolver o problema: y = 100[sin( x) y ] ;

y ( 0) = 0

Soluo exata: y ( x) =

sin(
i ( x) 0.01cos(( x) + 0.01e 100 x
1.0001

Soluo por Runge-Kutta:


Metodo de Runge-Kutta de quarta ordem:
h=
X

0.0300
f1

0.00
0.03
0.06
0 09
0.09
0.12
0.15
0.18
0.21
0.24
0 27
0.27
0.30
0.33
0.36
0.39
0.42
0 45
0.45

0.0000
-0.3752
-0.8911
0 8911
-1.6002
-2.5747
-3.9137
-5.7535
-8.2817
-11 7560
-11.7560
-16.5308
-23.0937
-32.1148
-44.5154
-61.5628
-84 9991
-84.9991

y(0) =
f2

1.4999
1.6865
1 9421
1.9421
2.2930
2.7752
3.4383
4.3504
5.6055
7 3323
7.3323
9.7080
12.9765
17.4727
23.6576
32.1644
43 8645
43.8645

f3

-0.7500
-1.4060
-2.3077
2 3077
-3.5468
-5.2496
-7.5896
-10.8055
-15.2252
-21 3001
-21.3001
-29.6503
-41.1288
-56.9085
-78.6019
-108.4264
-149 4308
-149.4308

0.0000
f4

5.2495
6.8397
9 0234
9.0234
12.0236
16.1467
21.8144
29.6059
40.3183
55 0471
55.0471
75.2989
103.1450
141.4339
194.0818
266.4737
366 0140
366.0140

Yk
0.0000
0.033747047
0.068874772
0 105880707
0.105880707
0.14545912
0.188574804
0.236564525
0.291276497
0.355262162
0 43203987
0.43203987
0.526457436
0.645190639
0.797428656
0.995816526
1.257751018
1 607162455
1.607162455

Yexato
0
0.020496
0.050002
0 079912
0.079912
0.109773
0.139536
0.169174
0.19866
0.227966
0 257068
0.257068
0.285938
0.314551
0.342881
0.370902
0.39859
0 425918
0.425918

M e t o do de R unge - Kut t a de qua rt a o

h = 0.03

y(0) = 0

f1

f2

f3

f4

Yk

Y e xa t o

=$ E$ 3

=(SIN(A 7)-0.01*COS(A 7)+0.01*

=A 7+$ B $ 3

=100*(SIN(A 7)-F7)

=100*(SIN(A 7+$ B $ 3/2)-(F7+$ B $ 3/2*B 8))

=100*(SIN(A 7+$ B $ 3/2)-(F7+$ B $ 3/2*C8))

=100*(SIN(A 7+$ B $ 3)-(F7+$ B $ 3*D8))

=A 8+$ B $ 3

=100*(SIN(A 8)-F8)

=100*(SIN(A 8+$ B $ 3/2)-(F8+$ B $ 3/2*B 9))

=100*(SIN(A 8+$ B $ 3/2)-(F8+$ B $ 3/2*C9))

=100*(SIN(A 8+$ B $ 3)-(F8+$ B $ 3*D9))

=F8+$ B $ 3/6*(B 9+2*C9+2*D9+E9)

=(SIN(A 9)-0.01*COS(A 9)+0.01*

=A 9+$ B $ 3

=100*(SIN(A 9)-F9)

=100*(SIN(A 9+$ B $ 3/2)-(F9+$ B $ 3/2*B 10)) =100*(SIN(A 9+$ B $ 3/2)-(F9+$ B $ 3/2*C10)) =100*(SIN(A 9+$ B $ 3)-(F9+$ B $ 3*D10))

=F9+$ B $ 3/6*(B 10+2*C10+2*D10+E10)

=F7+$ B $ 3/6*(B 8+2*C8+2*D8+E8)

=(SIN(A 10)-0.01*COS(A 10)+0.0

=A 10+$
$B$3

=100*(SIN(A
(
( 10)-F10)
)
)

=100*(SIN(A
(
( 10+$
$ B $ 3/2)-(F10+$
)(
$ B $ 3/2*B 11=100*(SIN(A
(
( 10+$
$ B $ 3/2)-(F10+$
)(
$ B $ 3/2*C11=100*(SIN(A
(
( 10+$
$ B $ 3)-(F10+$
)(
$ B $ 3*D11))
))

=F10+$
$ B $ 3/6*(B
( 11+2*C11+2*D11+E11))

=(SIN(A
(
( 11)-0.01*COS(A
)
( 11)+0.0
)

=A 11+$ B $ 3

=100*(SIN(A 11)-F11)

=100*(SIN(A 11+$ B $ 3/2)-(F11+$ B $ 3/2*B 12=100*(SIN(A 11+$ B $ 3/2)-(F11+$ B $ 3/2*C12=100*(SIN(A 11+$ B $ 3)-(F11+$ B $ 3*D12))

=F11+$ B $ 3/6*(B 12+2*C12+2*D12+E12)

=(SIN(A 12)-0.01*COS(A 12)+0.0

=A 12+$ B $ 3

=100*(SIN(A 12)-F12)

=100*(SIN(A 12+$ B $ 3/2)-(F12+$ B $ 3/2*B 13=100*(SIN(A 12+$ B $ 3/2)-(F12+$ B $ 3/2*C13=100*(SIN(A 12+$ B $ 3)-(F12+$ B $ 3*D13))

=F12+$ B $ 3/6*(B 13+2*C13+2*D13+E13)

=(SIN(A 13)-0.01*COS(A 13)+0.0

=A 13+$ B $ 3

=100*(SIN(A 13)-F13)

=100*(SIN(A 13+$ B $ 3/2)-(F13+$ B $ 3/2*B 14=100*(SIN(A 13+$ B $ 3/2)-(F13+$ B $ 3/2*C14=100*(SIN(A 13+$ B $ 3)-(F13+$ B $ 3*D14))

=F13+$ B $ 3/6*(B 14+2*C14+2*D14+E14)

=(SIN(A 14)-0.01*COS(A 14)+0.0

=A 14+$ B $ 3

=100*(SIN(A 14)-F14)

=100*(SIN(A 14+$ B $ 3/2)-(F14+$ B $ 3/2*B 15=100*(SIN(A 14+$ B $ 3/2)-(F14+$ B $ 3/2*C15=100*(SIN(A 14+$ B $ 3)-(F14+$ B $ 3*D15))

=F14+$ B $ 3/6*(B 15+2*C15+2*D15+E15)

=(SIN(A 15)-0.01*COS(A 15)+0.0

=A 15+$ B $ 3

=100*(SIN(A 15)-F15)

=100*(SIN(A 15+$ B $ 3/2)-(F15+$ B $ 3/2*B 16=100*(SIN(A 15+$ B $ 3/2)-(F15+$ B $ 3/2*C16=100*(SIN(A 15+$ B $ 3)-(F15+$ B $ 3*D16))

=F15+$ B $ 3/6*(B 16+2*C16+2*D16+E16)

=(SIN(A 16)-0.01*COS(A 16)+0.0

=A 16+$ B $ 3

=100*(SIN(A 16)-F16)

=100*(SIN(A 16+$ B $ 3/2)-(F16+$ B $ 3/2*B 17=100*(SIN(A 16+$ B $ 3/2)-(F16+$ B $ 3/2*C17=100*(SIN(A 16+$ B $ 3)-(F16+$ B $ 3*D17))

=F16+$ B $ 3/6*(B 17+2*C17+2*D17+E17)

=(SIN(A 17)-0.01*COS(A 17)+0.0

O mtodo s estvel para passos muito pequenos h < 0.030

h
[ f (xk , yk ) + f (xk +1 , yk +1 )]
2
h
y k +1 = y k + [100(sin(
i ( xk ) y k ) + 100(sin(
i ( xk +1 ) y k +1 )]
2
h h

y k 1 100 + 100(sin( xk ) + sin( xk +1 ) )


2 2
y k +1 =
h
1 + 100
2
y k +1 = y k +

M e t o do do T ra pe zio

h = 0.5

Yk

=$ E$ 3

=A 7+$ B $ 3

=(B 7*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 7)+SIN(A 8)))/(1+$ B $ 3/2*100)

=A 8+$ B $ 3

=(B 8*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 8)+SIN(A 9)))/(1+$ B $ 3/2*100)

=A 9+$ B $ 3

=(B 9*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 9)+SIN(A 10)))/(1+$ B $ 3/2*100)

=A 10+$ B $ 3

=(B 10*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 10)+SIN(A 11)))/(1+$ B $ 3/2*100)

=A 11+$ B $ 3

=(B 11*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 11)+SIN(A 12)))/(1+$ B $ 3/2*100)

=A 12+$ B $ 3

=(B 12*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 12)+SIN(A 13)))/(1+$ B $ 3/2*100)

=A 13+$ B $ 3

=(B 13*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 13)+SIN(A 14)))/(1+$ B $ 3/2*100)

=A 14+$ B $ 3

=(B 14*(1
14*(1-100*$
100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 14)+SIN(A 15)))/(1+$ B $ 3/2*100)

=A 15+$ B $ 3

=(B 15*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 15)+SIN(A 16)))/(1+$ B $ 3/2*100)

=A 16+$ B $ 3

=(B 16*(1-100*$ B $ 3/2)+$ B $ 3/2*100*(SIN(A 16)+SIN(A 17)))/(1+$ B $ 3/2*100)

Metodo do Trapezio
h=
X

0.5000
Yk

y(0) =

0.0000

Yexato

0.00
0.0000
0
0.50 0.460986095 0.470602653
1.00 0.844567185 0.835984363
1.50 0.988636033 0.996687946
2.00 0.920867137 0.913367558
2.50
0.59974723 0.606422938
3.00 0.157533472 0.151004833
3 50 -0
3.50
-0.347014762
347014762 -0.341384522
-0 341384522
4.00 -0.744664953 -0.75019104
4.50 -0.980244479 -0.975324627
5.00 -0.95713432 -0.96166473

Microsoft Excel
Worksheet

Soluo
por
p Trapzio:
p

=(SIN(A 8)-0.01*COS(A 8)+0.01*

Microsoft Excel
Worksheet

MEC 1701 Mtodos Numricos para Engenharia Mecnica


MEC 2951 Mtodos Numricos e Computacionais
Prof. Mrcio Carvalho
msc@mec.puc-rio.br

Laboratrio: Mtodo de Euler Explcito


Escreva uma rotina MatLab para soluo de um problema de valor inicial usando o mtodo de Euler
explcito. Utilize a rotina desenvolvida para resolver o problema:

du
= Ku
dt
u (t = 0) = 1
Obtenha a soluo para os seguintes valores de K: K = 4; K = -4; K = 0.5; K = -0.5 e diferentes passos
de tempo. Comente o ocorrido.

4/17/11 9:44 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab7-e...\eulerexp.m

1 of 2

1 clc
% Apaga tudo o escrito na janela de conandos
2 clear all
% Apaga as variveis usadas anteriornente
3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
4 % PROGRAMA QUE RESOLVE UM PROBLEMA DE VALOR INICIAL PELO METODO DE EULER EXPLICITO
5
6
7
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
8 % Dados de entrada
9
10 disp( ' PROGRAMA QUE RESOLVE UM PROBLEMA DE VALOR INICIAL');
11 disp( ' -------- --- ------- -- -------- -- ----- ------- ');
12 disp( ' ');
13 disp( '
du
');
14 disp( ' A EQUAO DIFERENCIAL A SER RESOLVIDA : ---- = c1*u
');
15 disp( '
dt
');
16 disp( ' ');
17
18 c1=input('Entre o valor de " c1 " : ');
19
20 disp( ' ');
21 disp( ' CONDIO INICIAL
u(0)= c2');
22 disp( ' ');
23 disp( ' ');
24
25 c2=input('Entre o valor de " c2 " : ');
26
27 disp( ' ');
28
29 tm=input('Entre o tempo maximo 0 ---> : ');
30
31 clc
32 disp( ' ');
33 disp( ' ');
34 disp( '
SOLUO ');
35 disp( '
------- ');
36 disp( ' ');
37
: ');
38 h=input('Entre o passo
39
40 disp( ' ');
41
42 t(1)=0;
43 ue(1)=c2;
44
45 k=1;
46
47 while t(k)<tm
48
49
t(k+1)=t(k)+h;
50
51 % METODO DE EULER

4/17/11 9:44 PM
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab7-e...\eulerexp.m

ue(k+1)=ue(k)*(1+c1*h);
k=k+1;
end
% SOLUO EXATA

s=0;
for ie = 1:k
uex(ie) = c2*exp(c1*t(ie));
s = s + abs( ue(ie) - uex(ie) )
end
E = s;
disp('Erro ')
disp(E)
% GRAFICO
figure;
plot(t,uex,t,ue);
legend('Exato','Euler');
title(' Comparao do metodo de Euler e sol.exata ' );
xlabel('t');
ylabel('u');

2 of 2

MEC 1701 Mtodos Numricos para Engenharia Mecnica


MEC 2951 Mtodos Numricos e Computacionais
Prof. Mrcio Carvalho
msc@mec.puc-rio.br

Laboratrio 5 : Mtodo de Runge-Kutta


Escreva uma rotina MatLab para soluo de um problema de valor inicial usando o mtodo de RungeKutta de quarta ordem. Utilize a rotina desenvolvida para resolver o problema:

du
= u t
dt
u (t = 0) = 1

Determine o valor de u (t ) para diferentes valores do passo de tempo. Determine o valor do passo
de tal forma que a soluo independa do passo escolhido. Faa o mesmo com o mtodo de Euler
explcito, desenvolvido no ltimo laboratrio.

4/17/11 9:46 PM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab...\rungekutta4.m

clc
clear all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PROGRAMA QUE RESOLVE UM PROBLEMA DE VALOR INICIAL
% PELO METODO DE RUNGE-KUTTA de 4 ORDEM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Dados de entrada
disp( ' PROGRAMA QUE RESOLVE UM PROBLEMA DE VALOR INICIAL');
disp( ' -------- --- ------- -- -------- -- ----- ------- ');
disp( ' ');
disp( ' ');
disp( ' ');
U0 = input('Entre o valor initial u(t=0) --->
disp( ' ');
tm = input('Entre o tempo maximo ---> : ');
disp( ' ');
h=input('Entre o passo
: ');
disp( ' ');

: ');

disp( ' ');


t(1)=0;
ue(1)=U0; % ue = solucao pelo metodo de Euler explicito
ur(1)=U0; % ur = solucao pelo metodo de Runge Kutta
k=1;
while t(k)<tm
t(k+1)=t(k)+h;
% METODO DE EULER
ue(k+1)=ue(k)+h*F(t(k),ue(k));
% METODO DE RUNGE-KUTTA
f1=F(t(k),ur(k));
f2=F(t(k)+h/2,ur(k)+h/2*f1);
f3=F(t(k)+h/2,ur(k)+h/2*f2);
f4=F(t(k)+h,ur(k)+h*f3);
ur(k+1)= ur(k)+h*(f1/6+f2/3+f3/3+f4/6);
k=k+1;
end
disp(' Valor em t = tm ');
disp(' ');
disp(' passo = ')
h
disp(' Euler explicito :');
ue(k-1)
disp(' Runge-Kutta :');
ur(k-1)

1 of 2

4/17/11 9:46 PM
56
57
58
59
60
61
62
63
64
65
66
67

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab...\rungekutta4.m

% GRAFICO
plot(t,ue,t,ur);
legend('Euler','Runge-Kutta');
title(' Comparao dos metodos de Euler e Runge-Kutta ' );
xlabel('t');
ylabel('u');

2 of 2

4/17/11 9:46 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab8-edo-rk\F.m

1 function y=F(t,x)
2 y=-x^t;

1 of 1

MEC 1701 Mtodos Numricos para Engenharia Mecnica


MEC 2951 Mtodos Numricos e Computacionais
Prof. Mrcio Carvalho
msc@mec.puc-rio.br

Laboratrio 9 : Mtodo Implcito


Escreva uma rotina MatLab para soluo de um problema de valor inicial usando o mtodo de Euler
implcito. Utilize a rotina desenvolvida para resolver o problema:

du
= u t
dt
u (t = 0) = 1
Verifique a soluo obtida para diferentes passos de tempo. Comente o ocorrido.

4/17/11 9:47 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab9-...\implicito.m

1 of 2

1 clc
% Apaga tudo o escrito na janela de conandos
2 clear all
% Apaga as variveis usadas anteriornente
3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
4 % PROGRAMA QUE RESOLVE UM PROBLEMA DE VALOR INICIAL POR METODO DE EULER IMPLICITO
5
6
7
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
8 % Dados de entrada
9 disp( ' PROGRAMA QUE RESOLVE UM PROBLEMA DE VALOR INICIAL');
10 disp( ' -------- --- ------- -- -------- -- ----- ------- ');
11 disp( ' ');
12 disp( ' ');
13 disp( '
du
');
14 disp( ' A EQUAO DIFERENCIAL A SER RESOLVIDA : ---- = -u^t
');
15 disp( '
dt
');
16 disp( ' ');
17 disp( ' ');
18
19 ci=input('Entre CONDIO INICIAL u(0) : ');
20
21 disp( ' ');
22 disp( ' ');
23
24 tm=input('Entre o tempo maximo 0 ---> : ');
25 Dt=input('Entre o passo
: ');
26
27 clc
28
29 disp( ' ');
30 disp( '
SOLUO ');
31 disp( '
------- ');
32 disp( ' ');
33
34
35 t(1)=0;
36 u(1)=ci;
37 k=1;
38
39 falha = 0;
40
41 while (t(k)<tm) & (falha == 0)
42
43
t(k+1)=t(k)+Dt;
44
45
newton;
46
47
u(k+1) = xraiz;
48
49
k = k+1;
50
51 end

4/17/11 9:47 PM
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

u(k-1)
% GRAFICO
plot(t,u);
xlabel('t');
ylabel('u');

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab9-...\implicito.m

2 of 2

4/17/11 9:47 PM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab9-edo...\newton.m

% SOLUO PELO MTODO DE NEWTON


maxiter = 10;
falha = 0;
a = t(k+1);
b = u(k);
x0 = u(k);
erro = abs(x0-Dt*f1(a,x0)-b);
i = 1;
while (erro > 1e-4) & (i<maxiter)
Dx = -(x0-Dt*f1(a,x0)-b)/(1-Dt*df1dx(a,x0));
x0 = x0 + Dx;
i = i+1;
erro = abs(x0-Dt*f1(a,x0)-b);
end
if (i == maxiter)
disp(' Metodo de Newton nao convergiu');
falha = 1;
else
xraiz = x0;
end

1 of 1

4/17/11 9:47 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab9-edo-eul...\f1.m

1 function y=f1(t,x)
2 y=-x^t;
3

1 of 1

4/17/11 9:48 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab9-edo-...\df1dx.m

1 function z=df1dx(t,x)
2 z=-t*x^(t-1);

1 of 1

PROBLEMA DE VALOR DE CONTORNO


d2y
= f ( x, y, y ) , cond. cont. : y (0) = A ;
dx 2

y (1) = B

MTODO

DE TIRO (SHOOTING METHOD)


Baseado nos Problemas de Valor Inicial.
Estima-se a derivada em x = 0: y (0)
Utilizando
Utilizando-se
se os mtodos de valor inicial
inicial, determina-se
determina se a soluo em x = 1.
1
Verifica-se se o valor obtido em x = 1 igual a B.
B

Repetir at convergir.

Problema Linear
Usar
U oP
Princpio
i i da
d Superposio.
S
i

y1 ( x ) e y 2 ( x) : Funes que satisfazem a eq. Diferencial e a


cond de contorno em x = 0.
cond.
0

y1 (0) = y 2 (0) = A
y1 (0) y2 (0)
y ( x) = c1 y1 ( x) + c2 y 2 ( x) satisfaz a eq. Diferencial

y (0) = c1 y1 (0) + c2 y 2 (0)


Se c1 + c2 = 1

y (0) = A

y (1) = c1 y1 (1) + c2 y 2 (1) = B


y ( x) soluo do problema se:

c1 + c2 = 1
B y 2 (1)
c1 =

y1 (1) y2 (1)
c1 y1 (1) + c2 y 2 (1) = B

e c2 = 1 c1

Problema No-Linear
O Princpio da Superposio no pode ser usado.
Cada valor de y (0) = corresponde um valor de y (1) .
y (1) = g ( )
Utilizar mtodos iterativos para determinar o valor de
que fornece a condio de contorno correta em x = 1, isto
determinar a raiz da equao: f ( ) = g ( ) B
Por exemplo: Mtodo da Secante:

Chute
Ch t 0

Chute 1

f ( 0 ) = g ( 0 ) B
f ( 1 ) = g ( 1 ) B

2 = 1 (g ( 1 ) B )

1 0
g ( 1 ) g ( 0 )

M
O Problema de Valor Inicial pode ser mal-condicionado mesmo que
o Problema de Valor de Contorno seja bem-condicionado.

MTODO DE DIFERENAS FINITAS


A equao diferencial transformada em
um conjunto de equaes algbricas
A funo desconhecida calculada apenas em N pontos NS
Derivadas so aproximadas por diferena dos valores nodais
A equao aproximada escrita em cada ponto nodal, gerando N equaes
Exemplo:

d2y
dy

= f x, y, ; 0 < x < L
2
dx
dx

y (0) = Y0
y ( L) = YL
Obter y(x).

Problema Linear
i=1 i=2

xi +1

xi 1
xi
x = h

x1

i=N

i+1

i1
i-1

xN

Aproximao das derivadas por uso de srie de Taylor truncada:

h2
yi +1 = yi + h yi +
yi + K ( A)
2

h2
yi 1 = yi h yi +
yi + K ( B)
2

Diferentes aproximaes para primeira derivada:

( A)

9 DIFERENA PARA FRENTE

yi =

yi +1 yi
h

yi yi 1
h
y y
( A) ( B ) yi = i +1 i 1
2h
yi =

( B)

9 DIFERENA PARA TRS


9 DIFERENA CENTRAL

Aproximao para segunda derivada (Deve-se eliminar o termo de 1a ordem):


9 DIFERENA CENTRAL

( A) + ( B)

yi =

yi +1 2 yi + yi 1
h2

Interpretao geomtrica

ddy
d
dy
yi +1 yi yi yi 1

d y d dy dx d dx e
h
h
=
=
2
dx
dx dx
h
h
d 2 y yi +1 2 yi + yi 1
2
dx
h2
2

xi 1

i+1

i-1

xi
x = h

xi +1

EXEMPLO: Conduo de calor em uma barra com conveco natural

hc , T

TA

Equao diferencial que descreve


a variao da temperatura na barra.

TB

d 2T hc P
(T T ) = 0

dx 2 kA
T ( x = 0) = T A

T ( x = L) = TB

i=1 i=2

i-1

xi 1

x1

xi

i+1

xi +1

i=N

xN

Incgnitas do problema: T1 , T2 , K , Ti , K , TN

No ponto i:

hP
d 2T
c (Ti T ) = 0
2
dx i kA
Ti +1 2Ti + Ti 1 hc P
(Ti T ) = 0

h2
kA
hP
2 h P
1
1
2 Ti 1 + 2 c Ti + 2 Ti +1 = c T
kA
kA
h
h
h

Para se obter as N equaes necessrias para determinar as N incgnitas,


a aproximao deve ser satisfeita em todos os ns:

i = 1 T1 = TA (c.c.)
hP
2 h P
1
1
i = 2 2 T1 + 2 c T2 + 2 T3 = c T
kA
kA
h
h
h
hP
2 h P
1
1
i = 3 2 T2 + 2 c T3 + 2 T4 = c T
kA
kA
h
h
h
M
i = N TN = TB (c.c.)

O sistema pode ser escrito em forma matricial como:

1
1
h2

0
h
P

1 2
2 2 + c
kA
h
h
hP
1 2
2 2 + c
kA
h
h

M
0

0
0
1

h2

K 0 T1 h P A

T c
T

kA
K 0 2
hc P

T
T3
K 0 T = h P kA
4 c
T
kA
M

K 1 TN
TB

Exemplo: Desenvolver o problema se os ns no so uniformemente distribuidos.

xi 1 xi
i=1 i=2

i-1

xi 1

x1

xi

i+1

xi +1

i=N

xN

EXEMPLO: Condio de contorno na derivada da funo

TA

hc , T

x
L

No ponto i:

d 2T
=0
dx 2
T ( x = 0) = T A
dT
(x = L ) = he (T (x = L ) T )
dx
K

d 2T
=0
dx 2 i
Ti +1 2Ti + Ti 1
=0
h2
1
2
1
2 Ti 1 + 2 Ti + 2 Ti +1 = 0
h
h
h

Para se obter as N equaes necessrias para determinar as N incgnitas,


a aproximao
i
deve
d
ser satisfeita
ti f it em todos
t d os ns:

i = 1 T1 = TA (c.c.)
1
2
1
i = 2 2 T1 + 2 T2 + 2 T3 = 0
h
h
h
1
2
1
i = 3 2 T2 + 2 T3 + 2 T4 = 0
h
h
h
M
TN TN 1 he
h
1 h
1
i=N
= (TN T ) TN 1 + e = e T
h
K
K
h
h K

O sistema pode ser escrito em forma matricial como:

1
1
h2

( h)

0
2
1

h2

0
1 2
h
2

h2
M

( )
0

K 0

K 0

h2

K 0
K 1

TA
T1

T2
0
0

0
T3 =
0

T
0

M
M
h
e
1

h
h
K TN e K T
0

Problema No-Linear
EXEMPLO: Problema de Conveco e Difuso

VA

Equao diferencial que descreve


a velocidade em cada p
ponto.

VB

du
d 2u
u
K 2 =0
dx
dx
u ( x = 0) = VA
u ( x = L ) = VB

i=1 i=2

i-1

xi 1

x1

i=N

i+1

xi +1

xi

xN

Incgnitas do problema: u1 , u 2 , K , ui , K , u N

Aproximao por diferena central:

u u
du
i +1 i 1
dx i
2h
u 2ui + ui 1
d 2u
i +1
2
dx i
h2

No ponto i:

du
d 2u
K 2 =0
ui
dx i
dx i
u u
u 2ui + ui 1
ui i +1 i 1 K i +1
=0
h2
2h

2 K u u
K
K
2 ui 1 + 2 + i +1 i 1 ui + 2 ui +1 = 0
h3
2h
h3
12
24
12
h444
1
443
Ai

Bi

Ai

Para se obter as N equaes necessrias para determinar as N incgnitas,


a aproximao deve ser satisfeita em todos os ns:

i = 1 u1 = VA (c.c.)
2 K u u
K
K
i = 2 2 u1 + 2 + 3 1 u2 + 2 u3 = 0
h
h
2h
h
2 K u u
K
K
i = 3 2 u 2 + 2 + 4 2 u3 + 2 u 4 = 0
h
2h
h
h
M
i = N u N = VB (c.c.)

1
A
2

Funo de
u1 e u3

B2

A2

A3

B3

A3

M
0

u1 VA
K 0
u2
0
K 0
u3 0
K 0 =
u4 0
M M

K 1
u N TB

Os coeficientes da matriz dependem da soluo do problema.


problema

Sistema de equaes No-Linear

Soluo de Sistema de Equaes No-Linear

Mtodo de Picard:
(0)

= u1( 0) , u2( 0) , u3( 0) , K , u N( 0)

1.

Chute inicial;

2.

Calcular coeficientes da matriz usando o valor atual das incgnitas;

( )

A= Ac
3.

(k )

Resolver o sistema de equaes e determinar o novo valor das


incgnitas;
g

( k +1)

( ( ))

= Ac

(k )

Comparar soluo atual com anterior;

Se no covergiu, voltar para 2.

Convergncia Ruim

Mtodo de Newton:
G
Generalizao
li do
d Mtodo
M d de
d Newton
N
para 1 equao
no-linear
li

f ( x + x ) = f ( x ) + x f ( x ) + x 2 f ( x ) + K
f ( x + x ) = 0 f ( x ) + x f ( x )

x =

f (x )
f ( x )

PROCEDIMENTO ITERATIVO

Chute inicial : x( 0)
i=0
While f ( x(i ) ) > , do
f ( x( i ) )
x =
f ( x(i ) )
x(i +1) = x(i ) + x
i = i +1
Raiz : x(i +1)

f ( x , x , x ,K, x ) = 0

N
Sistema a ser resolvido: 1 1 2 3
f 2 ( x1 , x2 , x3 , K , x N ) = 0

f 3 ( x1 , x2 , x3 , K , x N ) = 0
M

f N ( x1 , x2 , x3 , K , x N ) = 0

Expanso por srie de Taylor at termos de primeira ordem de cada equao:

f1 ( x1 + x1 , x2 + x2 , K , x N + x N ) = 0
f
f
f
f1 ( x1 , x2 , K , x N ) + 1 x1 + 1 x2 + K + 1 x N
x1
x2
x N
f 2 ( x1 + x1 , x2 + x2 , K , x N + x N ) = 0
f
f
f
f 2 ( x1 , x2 , K , x N ) + 2 x1 + 2 x2 + K + 2 x N
x1
x2
x N
M
f N ( x1 + x1 , x2 + x2 ,K , x N + x N ) = 0
f
f
f
f N ( x1 , x2 ,K , x N ) + N x1 + N x2 + K + N x N
x N
x1
x2

f1
f
f
x1 + 1 x2 + K + 1 x N
x1
x2
x N
f
f
f
f 2 ( x1 , x2 , K, x N ) = 2 x1 + 2 x2 + K + 2 x N
x N
x1
x2
M
f
f
f
f N ( x1 , x2 , K, x N ) = N x1 + N x2 + K + N x N
x1
x2
x N
f1 ( x1 , x2 , K , x N ) =

f1
f1 f1
K
x
x2
x N x1
1
f1

f
f 2 f 2 K f 2 x2

= 2
x1 x2
x N
M
M
M

x
fN

f
N

{
N
N
N

123
K
f
x N x
x1 x2
4
1
44
424444
3

Sistema em
Forma matricial

Matrix Jacobiana

J ij =

x = J 1 f

f i
x j

PROCEDIMENTO ITERATIVO

Chute inicial : c
i=0

(0)

( ) > , do

While f c

(i )

x = J 1 f
( i +1)

Soluo de um sistema linear

c
= c + x
i = i +1
Raiz : c

(i )

( i +1)

Convergncia Quadrtica

Voltando ao Problema No-Linear:

d 2u
du
u
K 2 =0
dx
dx
u ( x = 0) = VA
u ( x = L ) = VB

Sistema de equaes algbricas no-linear resultante:

f1 (u1 , K , ui 1 , ui , ui +1 , K , u N ) = u1 VA = 0

u u
u 2ui + ui 1
f i (u1 , K , ui 1 , ui , ui +1 , K , u N ) = ui i +1 i 1 K i +1
=0
h2
2h

i = 2,3, K , N
f N (u1 , K , ui 1 , ui , ui +1 , K , u N ) = u N VB = 0
Soluo pelo Mtodo de Newton

Clculo da matriz Jacobiana:

f1
u1
f 2
u1
f 3
u1
M
f N
u1

f1
f
= 0 ;K; 1 = 0
u2
u N
K u
f 2 2 K u3 u1
f 2
K u
f 2
f
= 2 2 ;
= 2 +
;
= 2 + 2 ;
= 0 ; K; 2 = 0
u N
u2 h
2h
u3
2h
u4
h 2h
h
f 3
f 3 2 K u4 u2
f 3
f 3
K u
K u
=0;
= 2 3 ;
= 2 +
;
= 2 + 3 ;
= 0 ;K
u2
h 2h
u3 h
2h
u4
h
2h
u5
= 1;

= 0 ;K;

f N
f
= 0 ; N =1
u N 1
u N

Problema No-Linear
EXERCCIO: Escoamento desenvolvido de um fluido no Newtoniano em
um tubo circular.

=0

p( x) r 2 p ( x + dx
d ) r 2 2rdx
d =0
p ( x + dx)

p(x)

dpp
r = 2
dx

x
dx

Lei de Newton de viscosidade =

Condies de contorno:

d
dpp
= 2
dr
dx

d du
dp
= 2
dr dr
dx

du
d
dr

r=R u=0
du
r=0
=0
dr

Para fluido Newtoniano, a viscosidade constante: =

d
d du
d
d 2u
dp
= 2 = 2 2
dr dr
dr
dx
2
Problema linear. Soluo analtica: d u = 1 dp

du
r dp
=
+ C1
dr 2 dx

2 dx
r 2 dp
u (r ) =
+ C1r + C2
4 dx
dr

Perfil parablico

2
R 2 dp r
u (r ) =
1
4 dx R

u MAX =

R 2 dp

4 dx

Para fluido no Newtoniano, a viscosidade varia com a taxa de deformao.

du 2
= + ( 0 )1 +
dr

n 1

d
du dp
(& ) =
dr
dr dx

n 1

2
2

d
du 1 dp
du
+ ( 0 )1 + =
dr
dr dr 2 dx

42444444
3
144444

r =R u=0
du
r =0
=0
dr

i=1 i=2

x1

i+1

i-1

xi 1
e

xi +1

xi
d

Ponto i:

1
n

du 2 2 du Fd Fe
d

+ ( 0 )1 +
dr
r
dr dr

144444424444443
F

n 1

ui +1 ui 2 2 ui +1 ui
Fd = + ( 0 )1 +

r
r

n 1

ui ui 1 2 2 ui ui 1
Fe = + ( 0 )1 +

r r

Problema
No-linear

i=N

xN

Sistema de equaes no-linear

u2 u1
r
n 1

ui +1 ui 2 2 ui +1 ui
Ri = + ( 0 )1 +

R1 =

n 1

ui ui 1 2 2 ui ui 1 1 dp
+ ( )1 +
, i = 2,3, K , N 1

0


r 2
r
2 dx

RN = u N

Matriz Jacobiana do mtodo de Newton.

J1,1 =

1
r

; J1, 2 =

1
r

; J1,k = 0 (k 3)

n 1

ui +1 ui 2 2 1
J i ,i = + ( 0 )1 +
2 +

r r

ui +1 ui
n 1 ui +1 ui
(
)

1 +
0

r 2
2
r

n 1
1
2

u u
2 i +1 i +
r r

n 1

ui ui 1 2 2 1
+ ( )1 +
2 +

r
r

ui ui 1
n 1 ui ui 1
(
)

1 +

0
r 2
r
2

n 1
1
2

u u
2 i i 1
r r

n 1

ui +1 ui 2 2 1
J i ,i +1 = + ( 0 )1 +
2 +

r
r

ui +1 ui
n 1 ui +1 ui
(
)

1 +
0

r 2
r
2

n 1
1
2

u u
2 i +1 i
r r

n 1

ui ui 1 2 2 1
J i ,i 1 = + ( 0 )1 +
2 +

r r

J i ,k

2
ui ui 1
n 1 ui ui 1
(0 )

1 +
2
r 2
r
= 0 (k i 1, i, i + 1)

J N , N = 1 ; J N ,k = 0 (k N )

n 1
1
2

u u
2 i i 1
r r

MEC 1701 Mtodos Numricos para Engenharia Mecnica


MEC 2951 Mtodos Numricos e Computacionais
Prof. Mrcio Carvalho
msc@mec.puc-rio.br

Laboratrio: Mtodo das Diferenas Finitas para EDO linear


Escreva uma rotina MatLab para soluo de um problema de valor de contorno pelo mtodo de
diferenas finitas (diferena central). Utilize a rotina desenvolvida para resolver o problema:

d 2T hP

(T T ) = 0
dx 2 kA
T (0) = T A , T ( L) = TB
h = 10 W / m 2 o C
k = 200 W / m o C
T A = 50 o C ; TB = 25 o C ; T = 20 o C
P=4m ;

A = 1 m2

4/17/11 9:48 PM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab10-ed...\cond1d.m

clc
% Apaga tudo o escrito na janela de conandos
clear all
% Apaga as variveis usadas anteriornente
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PROBLEMA DE TRANSFERENCIA DE CALOR UNI-DIMENSIONAL
% 28 / 10 / 2004
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ENTRADA DE DADOS
disp('
PROGRAMA DE TRANSFERENCIA DE CALOR UNI-DIMENSIONAL ');
disp( ' ');
disp( ' ');
disp('
DADOS DE ENTRADA ');
disp( ' ----- -- ------- ');
disp( ' ');
TA
= input(' Temperatura na parede da esquerda: ');
TB
= input(' Temperatura na parede da direita: ');
Tinf = input(' Temperatura do ar: ');
disp( ' ');
h
= input(' Coeficiente de Troca de Calor Convectivo: ');
k
= input(' Condutividade Termica da Barra: ');
Area = input(' Area Transversal da Barra: ');
P
= input(' Perimetro Transversal da Barra: ');
disp(' ');
L = input(' Comprimento da Barra: ');
N = input(' Nmero de ns N= : ');
disp( ' ');
disp( ' ');
Dx=L/(N-1);
% Gerao da malha para o grafico
for i=1:N
x(i,1) = (i-1)*Dx;
end
% Nos no interior do dominio
C = h*P/(k*Area);
for i = 2:N-1
A(i,i)
=
A(i,i-1) =
A(i,i+1) =
b(i,1)
=
end
%

-2/Dx^2-C;
1/Dx^2;
1/Dx^2;
-C*Tinf;

Condicoes de Contorno

A(1,1)
b(1,1)
A(N,N)
b(N,1)

=
=
=
=

1;
TA;
1;
TB;

1 of 2

4/17/11 9:48 PM
56
57
58
59
60
61
62
63
64
65
66

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab10-ed...\cond1d.m

% Soluo do sistema de equaes


T=inv(A)*b;

% Grafico do perfil de temperatura


plot(x,T,'b:o');
xlabel('Posicao X')
ylabel('Temperatura [oC]')

2 of 2

MEC 1701 Mtodos Numricos para Engenharia Mecnica


Prof. Mrcio Carvalho
msc@mec.puc-rio.br

Laboratrio: Mtodo das Diferenas Finitas para EDO no-linear.


Um modelo uni-dimensional de um escoamento leva a seguinte equao diferencial:

x = 0 u = V = 10m / s
d 2u
du
= K 2 , com as condies de contorno:
.
x =1 u = 0
dx
dx

Determine a velocidade em cada ponto do domnio (entre 0 e 1) para k = 10; k = 1 e k = 0.01 .

4/17/11 9:49 PM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\la...\edonaolinear.m

clc
% Apaga tudo o escrito na janela de conandos
clear all
% Apaga as variveis usadas anteriornente
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ESCOAMENTO DE UM LIQUIDO NAO NEWTONIANO EM UM TUBO
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ENTRADA DE DADOS
L = 1;
Va = 10;
Vb = 0;
disp('
EDO NAO LINEAR ');
disp( ' ');
disp( ' ');
disp('
DADOS DE ENTRADA ');
disp( ' ----- -- ------- ');
disp( ' ');
disp( ' ');
K
= input(' Coeficiente (K): ');
disp( ' ');
N
= input(' Nmero de ns N : ');
disp( ' ');
disp( ' ');
Dx=L/(N-1);
%
%

Chute Inicial para o Perfil de Velocidade:


Perfil Parabolico de um Liquid Newtoniano

for i=1:N
x(i)=(i-1)*Dx;
v(i,1) = 0;
%
v(i,1)=Va-(Va-Vb)/L * x(i);
end
erro = 1;
ERRO_MAX = 10^-5;
ITER_MAX = 20;
% Calculo do vetor residuo inicial
[res] = calc_residuo(N, Dx, K, Va, Vb, v);
norm_res = norm(res);
iter = 1;
% Metodo de Newton
while (norm_res > ERRO_MAX) & (iter < ITER_MAX)
[J] = calc_jac(N, Dx, K, Va, Vb, v);
DV = pinv(J)*(-res');

1 of 2

4/17/11 9:49 PM
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\la...\edonaolinear.m

v = v + DV;
[res] = calc_residuo(N, Dx, K, Va, Vb, v);
iter = iter+1
norm_res = norm(res)
end
if (norm_res > ERRO_MAX)
disp('NAO CONVERGIU ');
else
plot(x,v);
end

2 of 2

4/17/11 9:49 PM
1
2
3
4
5
6
7
8
9
10
11

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\la...\calc_residuo.m

function [res] = calcresiduo(N, Dx, K, Va, Vb, v)


% funcao que calcula a matriz jacobiana
res(1) = v(1)-Va;
res(N) = v(N)-Vb;
for i=2:N-1
res(i) = v(i)*(v(i+1)-v(i-1))/(2*Dx) - K*(v(i+1)-2*v(i)+v(i-1))/Dx^2;
end

1 of 1

4/17/11 9:49 PM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab11-...\calc_jac.m

function [J] = calcjac(N, Dx, K, Va, Vb, v)


% funcao que calcula a matriz jacobiana
J(1,1) = 1;
J(N,N) = 1;
for i=2:N-1
J(i,i-1) = -v(i)/(2*Dx) - K/Dx^2;
J(i,i)

= (v(i+1)-v(i-1))/(2*Dx) + 2*K/Dx^2;

J(i,i+1) = v(i)/(2*Dx) - K/Dx^2;


end

1 of 1

EQUAO DIFERENCIAL PARCIAL


PROBLEMA UNIDIMENSIONAL TRANSIENTE

dT
d 2T
c
=K 2
dt
dx
T (t = 0, x) = T0
T (t , x = 0) = TA
T (t , x = L) = TB

TA

TB

Condio inicial

T0

Condies de contorno
x

T (t , x) = ?

Ti , j

t = ( j 1)t

Ti , j
t = t

j=2

t =0

j =1

1 2

Discretizao no espao:

i 1 i i +1

N 1 N

Ponto i

Tempo j

T 2Ti + Ti 1
2T
i +1
2
x i
x 2

Equao diferencial deve ser satisfeita em todos os pontos i :

dTi
k Ti +1 2Ti + Ti 1
=
; i = 2, K , N 1
dt c
x 2
T1 = TA
TN = TB
Uma vez discretizada as derivadas em relao a x, obtm-se um
sistema de equaes diferenciais ordinrias em t (prob. de valor inicial):

T1 = TA
dT
k T3 2T2 + T1
2 =
c
x 2
dt
dT
k T4 2T3 + T2
3
=

c
x 2
dt
M
T = T
B
N

Incgnitas do problema:

T1 (t ) , T2 (t ) , K , TN (t )

Mtodo Explcito

Ti , j
Ponto i

Tempo j

dTi Ti , j +1 T1, j
k Ti +1, j 2Ti , j + Ti 1, j
=
; i = 2, K,, N 1

dt
t
c
x 2
Lado direito da EDO avaliada no instante anterior

Ti , j +1 = Ti , j +

t k
[Ti+1, j 2Ti, j + Ti1, j ]; i = 2,K, N 1
x 2 c

Quando um mtodo explcito usado, as temperaturas em todos os pontos i


no intante j+1 so calculadas diretamente em funo das temperaturas nos
pontos i no instante j, conhecidas.
O mtodo de Euler explcito instvel se

t k 1
1 k
>
t >
x 2
2
x c 2
2 c

O passo de tempo tem que ser muito pequeno e funo da discretizao em x

Exemplo usando Excel:

dT
d 2T
c
=K 2
dt
dx
T (t = 0, x) = T0
T (t , x = 0) = TA
T (t , x = L) = TB

Ti , j +1 = Ti , j +

k
= 1 ; L = 1 ; x = 0.1
c
T0 = 0 ; TA = 2 ; TB = 1

t k
[Ti+1, j 2Ti, j + Ti1, j ]; i = 2,K, N 1
x 2 c

Planilha do
Microsoft
Mi
ft Excel
E l

10
t=0

t=0.03
6

t=0 05
t=0.05

4
T

k
= 1 ; x = 0.1 ; t = 0.01
c
t k
1
=1>
2
x c
2

2
0
0

0.2

0.4

0.6

0.8

1.2

-2
-4
-6
x

2.5
t=0
t=0.15

t=0.025
1.5
T

k
= 1 ; x = 0.1 ; t = 0.005
c
t k 1
=
x 2 c 2

0.5

0
0

0.2

0.4

0.6

0.8

1.2

t=0

2.5

Soluo em regime permanente

t=0.15
t=0 025
t=0.025

t=0.1
t=0.15

1.5
T

t=0.4

0.5

0
0

0.2

0.4

0.6
x

0.8

1.2

Ti , j

Mtodo Implcito

Ponto i

Tempo j

dTi Ti , j +1 Ti , j
k Ti +1, j +1 2Ti , j +1 + Ti 1, j +1

=
; i = 2, K , N 1
dt
t
c
x 2
Lado direito da EDO avaliada no instante atual
Conhecida as temperaturas no instante j,
deseja-se determinar as temperaturas no instante j+1.

T1, j +1 = TA
k 1
1
k 1
k 2
1

T
T
T
Ti , j ;
+
+
+

=
i
+
1
,
j
+
1
i
,
j
+
1
i

1
,
j
+
1
2
t c x 2
c x 2
t
c x

i = 2, K , N 1
TN , j +1
+1 = TB
Sistema de equaes linear.

Para cada instante de tempo, deve-se resolver um sistema de equaes linear.

Ax = f
Matriz dos coeficientes

Funo das temperaturas no instante anterior

Vetor com as temperaturas em todos os ns no


instante atual.

PROBLEMA BIDIMENSIONAL EM REGIME PERMANENTE


Parede isolada

2T 2T
+
=0
x 2 y 2
T ( x = 0, y ) = TA
T ( x = L, y ) = TB
T ( x, y = 0) = TC
T
( x, y = L ) = 0
y

T ( x, y ) = ?

TB

TA

TC

Ny

Ti , j
j +1
j
j 1

j =1
i =1

Coord x

i 1 i i +1

(i, j + 1)
(i 1, j )

Coord y

Nx

(i, j ) (i + 1, j )

2T
x 2

(i, j 1)

2T
y 2

i, j

i, j

Equao algbrica resultante no ponto (i,,j) :

Ti +1, j 2Ti , j + Ti 1, j

x 2
Ti , j +1 2Ti , j + Ti , j 1

y 2
i = 2, K , Nx 1
j = 2, K Ny 1

1
1
1
1
1
1
2 Ti +1, j + 2 Ti 1, j + 2 Ti , j +1 + 2 Ti , j 1 2 2 + 2 Ti , j = 0
y
x
x
y
y
x
Condies de contorno:

T1, j = TA ;
TNx , j = TB ;

j = 1, K , Ny
j = 1, K, Ny

Ti ,1 = TC ; i = 2, K , Nx 1
Ti , Ny Ti , Ny 1 = 0 ; i = 2, K , Nx 1

As equaes algbricas devem ser escritas em forma matricial

Ax = f
Matriz dos coeficientes

Termo independente

Vetor com as temperaturas em todos os ns.

T1 = T1,1

T = T

2 1, 2

x = T3 = T1,3

TNx Ny = TNx , Ny

As incgnitas do problema devem ser numeradas de forma sequencial


para escrevermos o sistema de equaes em forma matrical.

Exemplo de uma numerao sequencial:


5

3
2

25

10

24

(i, j )
8
7

T1 = T1,1
T2 = T1, 2
M
TNy = T1, Ny

23

TNy +1 = T2,1

22

M
T( i 1) Ny + j = Ti , j

21

M
TNx Ny = TNx , Ny

13

Seguindo esta regra, a numerao sequencial do n (i,j) dada por:


i 1 colunas
i-1
l
d
de ns
a esquerda
d d
do n
(i,j)
(i j) ; cada
d coluna
l
possuii Ny
N ns:

(i, j ) (i 1) Ny + {j
14243
Nmero de ns nas colunas anteriores

Nmero de ns na coluna i

Equao relativa ao n # 8:

T8 T2,3

1
1
1
1
1
1
2 T3,3 + 2 T1,3 + 2 T2, 4 + 2 T2, 2 2 2 + 2 T2,3 = 0
y
x
x
y
y
x
1
1
1
1
1
1
2 T13 + 2 T3 + 2 T9 + 2 T7 2 2 + 2 T8 = 0
y
x
x
y
y
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 K 25

A=
Linha 8

0 0 A 0 0 0 B C B

0 K

Matrix pentadiagonal

T ( x = 0, y ) = TA = 10
T ( x = L, y ) = TB = 20
T ( x, y = 0) = TC = 0
T
( x, y = L ) = 0
y
Grfico de iso-linhas
contourf

Grfico 3D - superfcie
surf
2
1.8

25
1.6

20

1.4

15

1.2

10

0.8

0.6

-5
2

0.4

1.5

2
15
1.5

0.5

0.5
0

0.2
0

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

MEC 1701 Mtodos Numricos para Engenharia Mecnica


MEC 2951 Mtodos Numricos e Computacionais
Prof. Mrcio Carvalho

msc@mec.puc-rio.br

Laboratrio: Equao Diferencial Parcial Problema Transiente


1. Deseja-se analisar a toro de um eixo AB com um volante na extremidade B, submetido a
um torque M*.
Parmetros fsicos e geomtricos:
eixo:
comprimento L = 1 m
momento de inrcia polar J
4
(rbarra=5 cm)
J =
r
2 barra
coeficiente de cisalhamento G
G= E/[2(1+)] ; E = 200 106 Pa, =0,29

massa especfica = 7800 kg/m3


volante:
momento de inrcia polar massa ID
4
ID= Jvoltante ; J volante =
r
2 volante
raio rvolante = 12 cm

M*
L

Equilbrio:

0<x<L

x=0

=0

x=L

M* G J

2

G J
= J
x
t2

2
= ID
x
t2

Determine numericamente (x,t), do instante inicial at t = 1 segundo,. para um momento


M* = 10 Nm. Utilize o mtodo implcito que desejar. Trace um grfico com a variao de
com o tempo para 4 posies ao longo do eixo (x=L/4; x=L/2; x=3 L/4 e x = L). Trace
tambm, a distribuio de (x,t) para t=1 segundo. Verifique se sua soluo independe da
malha e passo de tempo utilizado (isto , resolva para umas 2 malhas e 2 passos de tempo
diferentes e compare as solues).

4/17/11 9:51 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\l...\edptransiente.m

1 of 3

1 clc
% Apaga tudo o escrito na janela de conandos
2 clear all
% Apaga as variveis usadas anteriornente
3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
4 % PROGRAMA DE DIFERENAS FINITAS
5
6 % REGISTRO DE REVISES
7 %
Fecha
Programador
Revisado por
Descrio da
mudana
8 %
--------------------------------------------9 %
30/11/01
O. Coronado
M. Carvalho
Codigo
Original
10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
11 % ENTRADA DE DADOS
12
13 disp('
PROGRAMA DE REGIME TRANSIENTE ');
14 disp( '
-------- -- ------ ---------- ');
15 disp( ' ');
16 disp( ' ');
17 disp('
DADOS DE ENTRADA ');
18 disp( '
----- -- ------- ');
19 disp( ' ');
20 disp( ' ');
21 disp( ' ');
22 N=input('Entre o numero de ns
N= : ');
23 disp( ' ');
24 IT=input('Entre o numero de intervalos de tempo IT= : ');
25 disp( ' ');
26 % Dados do problema
27 L=1;
% Comprimento da barra
28 rb=0.05;
% Raio da barra
29 rv=0.12;
% Raio do volante
30 Rho=7800;
% Massa especifica
31 E=200e6;
32 v=0.29;
33 % Calculo das constantes
34 J=pi*rb^4/2;
% Momento de inercia polar
35 G=E/(2*(1+v));
% Coeficiente de cisalhamento
36 Id=Rho*pi*rv^4/2; % Momento de inercia polar massa
37 % Condicoes de contorno
38 disp( ' ');
39 disp( ' ');
40 disp( ' CONDIES DE CONTORNO');
41 disp( ' --------- -- -------');
42 disp( ' ');
43 disp( ' ');
44 t=1;
% Tempo maximo
45 T0=input('Entre o angulo teta(x=0,t)= : ');
46 disp( ' ');
47 M=input('Entre o torque
: ');
48 disp( ' ');

4/17/11 9:51 PM
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\l...\edptransiente.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SOLUO PELO METODO IMPLICITO
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dt=t/IT;
%Passo do tempo
Dx=L/(N-1);
%Passo do comprimento
x(1) = 0;
for i=2:N
x(i) = x(i-1)+Dx;
end
%Condies iniciais para t=0
for i=1:N
teta(i,1)=0;
teta(i,2)=0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for j=3:IT+2
% Condicoes de contorno
A(1,1)=1;
f(1,1)=0;
A(N,N-1)=-1/Dx;
A(N,N)=1/Dx+Id/(G*J*Dt^2);
f(N,1)=M/(G*J)-Id/(G*J*Dt^2)*(-2*teta(N,j-1)+teta(N,j-2));
for i=2:N-1
A(i,i+1)=1;
A(i,i)=-(2+Rho*Dx^2/(G*Dt^2));
A(i,i-1)=1;
f(i,1)=Rho*Dx^2/(G*Dt^2)*(-2*teta(i,j-1)+teta(i,j-2));
end
tetavetor=inv(A)*f;
for i=1:N
teta(i,j)=tetavetor(i);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
plot(x,teta(:,IT+2));
title(' Regime transiente');
xlabel(' x ' );
ylabel(' Teta ' );
t(1)=0;
for i=2:IT+2
t(i)=Dt*(i-1);
end

2 of 3

4/17/11 9:51 PM
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\l...\edptransiente.m

figure
a=round((N-1)/4);
plot(t,teta(a+1,:),t,teta(2*a+1,:),t,teta(3*a+1,:),t,teta(N,:))
title(' Regime transiente');
figure(2);
xlabel(' t ' );
ylabel(' Teta ' );
legend('L/4','L/2','3L/4','L');

3 of 3

MEC 1701
Prof. Mrcio Carvalho
msc@mec.puc-rio.br

As equaes diferenciais que descrevem o escoamento tridimensional em regime permanente de um lquido


Newtoniano em um duto retangular so apresentadas abaixo:

u
u
p 2u 2u 2u
u
Re u
+v
+ w = + 2 + 2 + 2
x x
y
z
y
z
x
v
v
v
p 2v 2v 2v
Re u + v + w = + 2 + 2 + 2
y
z
y x
y
z
x

y
z

H=1

w
p 2 w 2 w 2 w
w
w
Re u
+ w = + 2 + 2 + 2
+v
z x
z
y
y
z
x

W=4

Aps o desenvolvimento, a presso s varia na direo do escoamento (direo z) e as componentes da


velocidade na direo x e y so nulas. Desta forma, a equao que descreve o movimento pode ser
simplificada para
p 2 w 2 w

0=
+
+
z x 2 y 2
p
Para um gradiente de presso adimensional de
= 10 , determine:
z
a) O perfil de velocidade w(x,y). Apresente o resultado na forma de um grfico de w(x,y).
b) A velocidade mxima VMax e a velocidade mdia VMED.
c)

O fator de atrito X nmero de Reynolds; isto : f

V D h

P
Dh
4A
L
, onde D h =
o dimetro
O fator de atrito do escoamento pode ser definido como: f =
1
P
2
V
2
hidrulico e V a velocidade mdia do escoamento.
OBS: O produto f

V D h
para o escoamento em um duto circular igual a 64.

d) Utilize o programa desenvolvido para calcular o fator de atrito em funo H / W. Em seus clculos
mantenha a rea da seo reta constante e igual a H W = 4 . Determine a razo que leva ao menor valor do
fator de atrito do escoamento.

4/17/11 9:52 PM

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab13-edp\labedp.m

1 of 3

1 clc
% Apaga tudo o escrito na janela de conandos
2 clear all
% Apaga as variveis usadas anteriornente
3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
4 % PROGRAMA DE DIFERENAS FINITAS
5
6 % REGISTRO DE REVISES
7 %
Fecha
Programador
Revisado por
Descrio da
mudana
8 %
--------------------------------------------9 %
13/11/01
O. Coronado
M. Carvalho
Codigo
Original
10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
11 % ENTRA5DA DE DADOS
12
13 disp( '
PROGRAMA DE DIFERENAS FINITAS ');
14 disp( '
-------- -- ----------- ------- ');
15 disp( ' ');
16 disp( ' ');
17 disp('
DADOS DE ENTRADA ');
18 disp( '
----- -- ------- ');
19 disp( ' ');
20 disp( ' ');
21 Wduto=input('Entre a largura do duto: ');
22 disp( ' ');
23 Hduto=input('Entre a altura do duto : ');
24 disp( ' ');
25 Nx=input('Entre o nmero de ns da direo x e y
Nx=Ny= : ');
26 disp( ' ');
27 Ny=Nx;
28 disp( ' ');
29 Dx=Wduto/(Nx-1);
30 Dy=Hduto/(Ny-1);
31 dpdz=10
32
33 for ix=2:Nx-1
34
for jy=2:Ny-1
35
i=(ix-1)*Ny+jy;
% Linha da matriz A
36
il=(ix+1-1)*Ny+jy;
% Leste
37
iw=(ix-1-1)*Ny+jy;
% Oeste
38
in=(ix-1)*Ny+jy+1;
% Norte
39
is=(ix-1)*Ny+jy-1;
% Sul
40 % Matriz dos coeficentes
41
A(i,i)=-2*(1/Dx^2+1/Dy^2);
42
A(i,il)=1/Dx^2;
43
A(i,iw)=1/Dx^2;
44
A(i,in)=1/Dy^2;
45
A(i,is)=1/Dy^2;
46
f(i,1)=-dpdz;
47
end
48 end

4/17/11 9:52 PM
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab13-edp\labedp.m

% CONDIES DE CONTORNO
for ix=1:Nx
jy = 1;
i=(ix-1)*Ny+jy;
A(i,i)=1;
f(i,1)=0;
jy = Ny;
i=(ix-1)*Ny+jy;
A(i,i)=1;
f(i,1)=0;
end
for jy=1:Ny
ix = 1;
i=(ix-1)*Ny+jy;
A(i,i)=1;
f(i,1)=0;
ix = Nx;
i=(ix-1)*Ny+jy;
A(i,i)=1;
f(i,1)=0;
end

% Soluo do sistema de equaes


WW=inv(A)*f;
% Gerao da malha
x=0:Dx:Wduto;
y=0:Dy:Hduto;
[X,Y]=meshgrid(x,y);
% Armazenando os valores de WW na matriz W
for i=1:Nx
for j=1:Ny
W(i,j)=WW(j+(i-1)*Ny);
end
end
% Calculo da velocidade media
qtotal = 0;
for i = 1:Nx-1
for j = 1:Ny-1
w1 = W(i,j);
w2 = W(i,j+1);

2 of 3

4/17/11 9:52 PM
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139

C:\Marcio\Cursos-PUC\ENG1714\LABORATORIOS\lab13-edp\labedp.m

w3 = W(i+1,j);
w4 = W(i+1,j+1);
qelem = ((w1+w2+w3+w4)/4)*Dx*Dy;
qtotal = qtotal + qelem;
end
end
Wmed = qtotal/(Wduto*Hduto);

% Gerao do garfico 3D
surf(X,Y,W);
% Calculo do fator de atrito
Dhid = 4*(Hduto*Wduto)/(2*(Hduto+Wduto));
rho = 1.;
mu = 1;
fatrito = (-dpdz*Dhid)/(0.5*rho*Wmed^2);
Rey = rho*Wmed*Dhid/mu;
frey = fatrito*Rey;

disp('W Medio =')


disp(Wmed);

disp('F*REYNOLDS =')
disp(frey);

3 of 3

Você também pode gostar