10. Sistemas não lineares

Um sistema não linear, de segunda ordem está constituído por duas variáveis de estado, x e y, que verificam duas equações diferenciais, autónomas, de primeira ordem

eq-aula10-1.png

Exemplo 1

Encontre os pontos fixos do sistema

eq-aula10-2.png

Resolução: a derivada de x será nula em todos os pontos na elipse

eq-aula10-3.png

Dentro da elipse, a derivada de x é positiva: o campo de direcções aponta para a direita, e por fora da elipse o campo aponta para a esquerda

A derivada de y é nula na hipérbole

eq-aula10-4.png

à esquerda da hipérbole, o campo de direcções aponta para baixo, entre as duas ramas da hipérbole o campo aponta para cima, e no lado direito de hipérbole o campo aponta para baixo

Os pontos fixos do sistema são os quatro pontos de intersecção entre a elipse e a hipérbole.

(%i1) load("plotdf")$
(%i2) f: [4-x^2-4*y^2,y^2-x^2+1]$
(%i3) plotdf(f,[xradius,3],[yradius,3],
  [xfun,"sqrt(1-x^2/4);-sqrt(1-x^2/4);sqrt(x^2-1);-sqrt(x^2-1)"]);
fig-10-1.png

Para calcular as coordenadas dos quatro pontos fixos usamos

(%i4) fixos: ev(solve(f), numer);
(%o4) [[y = - .7745966692414833, x = - 1.264911064067352],
[y = - .7745966692414833, x = 1.264911064067352],
[y = .7745966692414833, x = - 1.264911064067352],
[y = .7745966692414833, x = 1.264911064067352]]

Linearização

As duas funções f e g podem ser escritas na forma de uma série de Taylor:

eq-aula10-5.png
eq-aula10-6.png

Se (u, v), for um ponto fixo do sistema, f(u,v) e g(u,v) serão nulas. Mudando a origem de coordenadas para o ponto fixo (u, v), numa vizinhança da origem, o sistema pode ser aproximado pelo sistema linear:

eq-aula10-7.png

Essa matriz, obtida a partir das derivadas das funções de estado, designa-se por matriz jacobiana. O sistema resultante é linear.

Exemplo 2

Determine a estabilidade e desenhe o retrato de fase do sistema

eq-aula10-2.png

Resolução: já vimos, no exemplo 1 que esse sistema tem quatro pontos fixos, que se encontram na lista fixos

Define-se uma lista com as variáveis de estado, e uma função genérica para o termo geral da matriz jacobiana:

(%i5) v: [x,y]$
(%i6) h[i,j] := diff(f[i], v[j])$

A matriz jacobiana, com duas linhas e duas colunas, obtém-se com o comando genmatrix

(%i7) jacobiana: genmatrix(h,2,2);
                               [ - 2 x  - 8 y ]
(%o7)                          [              ]
                               [ - 2 x   2 y  ]

Substituindo as coordenadas de cada ponto fixo, obtemos as matrizes dos sistemas lineares que aproximam o sistema na vizinhança do respectivo ponto fixo. Por exemplo, no primeiro ponto fixo:

(%i8) m1: ev(jacobiana, fixos[1]);
                  [ 2.529822128134704   6.196773353931866  ]
(%o8)             [                                        ]
                  [ 2.529822128134704  - 1.549193338482967 ]

para determinar que tipo de ponto fixo é, calculam-se os valores próprios da matriz nesse ponto. O determinante

(%i9) determinant(m1);
(%o9)                         - 19.59591794226542

é negativo e, por tanto, o primeiro ponto é um ponto de sela. O mesmo acontece com o quarto ponto fixo

(%i10) m4: ev(jacobiana, fixos[4]);
                 [ - 2.529822128134704  - 6.196773353931866 ]
(%o10)           [                                          ]
                 [ - 2.529822128134704   1.549193338482967  ]
(%i11) determinant(m4);
(%o11)                        - 19.59591794226542

no segundo ponto fixo:

(%i12) m2: jacobiana, fixos[2];
                 [ - 2.529822128134704   6.196773353931866  ]
(%o12)           [                                          ]
                 [ - 2.529822128134704  - 1.549193338482967 ]
(%i13) determinant(m2);
(%o13)                         19.59591794226542
(%i14) (m2[1,1] + m2[2,2])/2;
(%o14)                        - 2.039507733308835

O traço é negativo, o determinante é positivo, e maior que o quadrado do traço sobre 2: o ponto fixo é um foco atractivo.

(%i15) m3: jacobiana, fixos[3];
                  [ 2.529822128134704  - 6.196773353931866 ]
(%o15)            [                                        ]
                  [ 2.529822128134704   1.549193338482967  ]
(%i16) determinant(m3);
(%o16)                         19.59591794226542
(%i17) (m3[1,1] + m3[2,2])/2;
(%o17)                         2.039507733308835

O terceiro ponto fixo também é um foco, mas repulsivo.

(%i18) plotdf(f,[xradius,3],[yradius,3],
 [xfun,"sqrt(1-x^2/4);-sqrt(1-x^2/4);sqrt(x^2-1);-sqrt(x^2-1)"]);
fig-10-2.png

Jaime Villate
Data: 2009-10-20 19:03:39 +0000