Van Der Pol
Van Der Pol
Van Der Pol
1 Introdução histórica 2
3 Código implementado 10
vanderpol.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
rungekutta4o2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
eulermelhoradoo2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1
Capítulo 1
Introdução histórica
d2 y(t) dy(t)
+ µ(y 2 − 1) + y(t) = acos(bt) ; µ, a, b ∈ <
dt2 dt
Alguns fenômenos têm relação com este modelo: em 1927, van der Mark e van
der Pol publicaram um trabalho na Nature relatando a presença de um ruído
irregular ao induzir circuitos a certas frequências naturais; ao ser extendido, esse
modelo pode ser aplicado nos potenciais de ação de neurônios; em sismologia
pode ser utilizado para modelar duas placas de uma falha geológica.
O relato do ruído irregular é tido como uma das primeiras evidências de caos
determinístico.
Até hoje, extensões do modelo de Van der Pol são comuns em problemas reais e
modelos mais gerais de sistemas dinâmicos tiveram como base sua formulação.
2
Capítulo 2
Breve análise
Voltemos à equação de Van der Pol original e tratemos o caso µ > 0:
d2 y(t) dy(t)
+ µ(y 2 − 1) + y(t) = acos(bt) ; µ, a, b ∈ <
dt2 dt
Foi provado por Liénard que, sob estas condições, o oscilador sempre tende a
um ciclo-limite, este teorema é chamado de Teorema de Liénard.[1]
Trabalharemos com o oscilador não forçado, isto é, o modelo de Van der Pol com
a = 0. Reescrevendo a equação de Van der Pol em duas equações diferenciais
de primeira ordem, através da inclusão da variável x(t), e incluindo condições
iniciais :
(
y 0 (t) = x(t) x(t0 ) = x0
x0 (t) = µ(1 − y 2 )x − y y(t0 ) = y0
3
Amortecimento positivo
3
x(t)
y(t)
2
−1
−2
−3
0 5 10 15 20
t
1
dy/dt
−1
−2
−3
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
y(t)
4
Baixo amortecimento
2.5
1.5
0.5
dy/dt
−0.5
−1
−1.5
−2
−2.5
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
y(t)
2.5
1.5
0.5
dy/dt
−0.5
−1
−1.5
−2
−2.5
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
y(t)
5
Auto-sustentação
d2 y(t) dy(t)
+ p(y) + y(t) = 0
dt2 dt
1
dy/dt
−1
−2
−3
−4 −3 −2 −1 0 1 2 3
y(t)
6
3
dy/dt
0
−1
−2
−3
−2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
y(t)
7
Convergência do método e confiabilidade dos re-
sultados
Primeiramente vamos comparar o método Runge-Kutta de quarta ordem e Euler
melhorado com passo 2e-3, implementados respectivamente nos script’s runge-
kutta4o2.m e eulermelhoradoo2.m, com o método ode45 do Matlab a fim de que
possamos utilizá-lo como base de comparação confiável futuramente.
2.5 3
RK45
2 rungekutta4o2 passo 2e−3
2
1.5
1
1
0.5 RK45
Euler melhorado com passo 2e−3
y(t)
x(t)
0 0
Runge−Kutta com passo 2e−3
−0.5
−1
−1
−1.5
−2
−2
−2.5 −3
0 5 10 15 20 −2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
t y(t)
2.5 15
RK45
2 Euler melhorado com passo 2e−3
Runge−Kutta com passo 2e−3
10
1.5
1
5
0.5
y(t)
x(t)
0 0
−0.5
−5
−1
−1.5
−10 RK45
Euler melhorado com passo 2e−3
−2
Runge−Kutta com passo 2e−3
−2.5 −15
0 5 10 15 20 −2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5
t y(t)
8
A variedade de situações simuladas, o baixo custo computacional e o fato do
segundo método convergir melhor em variações mais altas motivaram a escolha.
Fica bem mais evidente a diferença quando o passo é aumentado em duas ordens
de grandeza.
3 3
RK45
Euler melhorado com passo 2e−1
Runge−Kutta com passo 2e−1
2 2
1 1
RK45
y(t)
x(t)
0 0 Euler melhorado com passo 2e−1
Runge−Kutta com passo 2e−1
−1 −1
−2 −2
−3 −3
0 5 10 15 20 −3 −2 −1 0 1 2 3
t y(t)
9
Capítulo 3
Código implementado
vanderpol.m
1 function [ t , x , y ] = v a n d e r p o l (mu, n , I , C, metodo )
2
3 % Função que s i m u l a o modelo de Van d e r Pol com parâmetro mu,
n número de i t e r a ç õ e s , i n t e r v a l o na forma [ t i t f ] ,
c o n d i ç õ e s i n i c i a i s na forma [ x0 y0 ] , e nome do método a
ser u t i l i z a d o
4
5 S . dy = @( t , x ) x ;
6 S . dx = @( t , x , y ) mu∗(1−y ^2) ∗x−y ;
7 eval ( [ ’ [ t ␣x␣y ] ␣=␣ ’ metodo ’ o 2 p l o t a ( S , n , I , C, ’ ’ Van␣ d e r ␣ Pol ␣
para ␣ \mu= ’ num2str (mu) ’ ’ ’ ) ’ ] )
8 subplot ( 2 , 1 , 1 )
9 plot ( t , x , ’ r ’ , t , y , ’ b ’ )
10 legend ( ’ x ( t ) ’ , ’ y ( t ) ’ )
11 xlabel ( ’ t ’ )
12 subplot ( 2 , 1 , 2 )
13 plot ( x , y )
14 xlabel ( ’ x ( t ) ’ )
15 ylabel ( ’ y ( t ) ’ )
16 end
10
rungekutta4o2.m
1 function [ t , x , y ] = r u n g e k u t t a 4 o 2 ( S , n , I , C)
2
3 % Entradas : c o n j u n t o h a n d l e com S . dx ( t , x , y ) e S . dy ( t , x ) ,
número de i t e r a ç õ e s , i n t e r v a l o no f o r m a t o [ t i t f ] ,
c o n j u n t o de c o n d i ç õ e s no f o r m a t o [ y0 x0 ]
4
5 h = ( I ( 2 )−I ( 1 ) ) /n ; % c a l c u l o p a s s o
6 t (1) = I (1) ; % condições i n i c i a i s
7 x ( 1 ) = C( 1 ) ;
8 y ( 1 ) = C( 2 ) ;
9 f o r i =1:n−1 % f a ç o as i t e r a ç õ e s
10 t ( i +1) = t ( i ) + h ;
11 k ( 1 ) = S . dy ( t ( i ) , x ( i ) ) ; % c a l c u l o próximo y
12 k ( 2 ) = S . dy ( t ( i )+h/2 , x ( i ) +(h / 2 ) ∗k ( 1 ) ) ;
13 k ( 3 ) = S . dy ( t ( i )+h/2 , x ( i ) +(h / 2 ) ∗k ( 2 ) ) ;
14 k ( 4 ) = S . dy ( t ( i )+h , x ( i )+h∗k ( 3 ) ) ;
15 y ( i +1) = y ( i ) + ( h / 6 ) ∗ ( k ∗ [ 1 2 2 1 ] ’ ) ;
16 k ( 1 ) = S . dx ( t ( i ) , x ( i ) , y ( i ) ) ; % c a l c u l o próximo x
17 k ( 2 ) = S . dx ( t ( i )+h/2 , x ( i ) +(h / 2 ) ∗k ( 1 ) , y ( i ) ) ;
18 k ( 3 ) = S . dx ( t ( i )+h/2 , x ( i ) +(h / 2 ) ∗k ( 2 ) , y ( i ) ) ;
19 k ( 4 ) = S . dx ( t ( i )+h , x ( i )+h∗k ( 3 ) , y ( i ) ) ;
20 x ( i +1) = x ( i ) + ( h / 6 ) ∗ ( k ∗ [ 1 2 2 1 ] ’ ) ;
21 end
22 end
eulermelhoradoo2.m
1 function [ t , x , y ] = e u l e r m e l h o r a d o o 2 ( S , n , I , C)
2
3 % Entradas : c o n j u n t o h a n d l e com S . dx ( t , x , y ) e S . dy ( t , x ) ,
número de i t e r a ç õ e s , i n t e r v a l o no f o r m a t o [ t i t f ] ,
c o n j u n t o de c o n d i ç õ e s no f o r m a t o [ y0 x0 ]
4
5 h = ( I ( 2 )−I ( 1 ) ) /n ; % c a l c u l o p a s s o
6 t (1) = I (1) ; % condições i n i c i a i s
7 y ( 1 ) = C( 2 ) ;
8 x ( 1 ) = C( 1 ) ;
9 f o r i =1:n−1 % f a ç o as i t e r a ç õ e s
10 t ( i +1) = t ( i ) + h ;
11 k ( 1 ) = S . dy ( t ( i ) , x ( i ) ) ; % c a l c u l o próximo y
12 k ( 2 ) = S . dy ( t ( i )+h/2 , x ( i ) +(h / 2 ) ∗k ( 1 ) ) ;
13 y ( i +1) = y ( i ) + h∗k ( 2 ) ;
14 k ( 1 ) = S . dx ( t ( i ) , x ( i ) , y ( i ) ) ; % c a l c u l o próximo x
15 k ( 2 ) = S . dx ( t ( i )+h/2 , x ( i ) +(h / 2 ) ∗k ( 1 ) , y ( i ) ) ;
16 x ( i +1) = x ( i ) + h∗k ( 2 ) ;
17 end
18 end
11
Referências Bibliográficas
12