1. Resumo do Tutorial
Neste Tutorial, veremos como resolver, simbolicamente, Equações Diferenciais Ordinárias de Ordens 1 e 2 usando os métodos estudados tipicamente em um curso introdutório de EDO.
À medida que o curso avançar, outros métodos serão discutidos como, por exemplo, solução por séries.
2. Equações Diferenciais Ordinárias de Ordem 1
Vejamos como resolver EDOs de ordem 1 expressas pela forma geral:Esquema Geral da Solução no Sage
a) definição da variável independente: x=var('x');
b) definição da variável dependente: y=function('y')(x)
c) solução através do comando desolve:
desolve(edo, variavel, ics=..., ivar=..., show_method=..., contrib_ode=...)
onde os parâmetros do comando desolve são:
edo: é a equação diferencial ordinária que se deseja resolver; por exemplo, a equação é escrita como diff(y,x)==2*y+x (observe o duplo ==)
variavel: nome da variável dependente (no exemplo acima, y)
ics: argumento opcional que permite especificar condições iniciais; para Ordem 1, forneça uma lista ; para Ordem 2, ou
ivar: argumento opcional que permite especificar a variável independente (isto é essencial quando a EDO depende de parâmetros, ex:
show_method: argumento opcional (default=False); se especificado como True, o Sage informa o método de solução utilizado (linear, separable, exact, homogeneous, etc)
contrib_ode: argumento opcional (default=False); se for True, o Sage tratará casos como equações de Ricatti, Lagrange, e outros casos patológicos (não veremos isto em detalhe).
A seguir, serão fornecidos vários exemplos de resolução simbólica de EDOs de ordem 1, no Sage.
Equações Lineares
São equações do tipo:Exemplo:
[1/4*(4*_C + e^(4*x))*e^(-3*x), 'linear']
[, linear]
Equações a Variáveis Separáveis
São equações do tipo:Exemplo:
[, separable]
Equações Homogêneas
São equações do tipo: , onde P e Q são funções homogêneas de mesmo grau (em um dado intervalo)Exemplo:
[, homogeneous]
Equações Exatas
São equações do tipo:, onde f é uma função de 2 variáveis e diferenciável.Exemplo: , com
[, exact]
3. Alguns Exemplos Mais Elaborados
Exemplo 1:
Podemos utilizar outros recursos do Sage em conjunto com o comando de resolução de EDO; por exemplo, vamos resolver a EDO acima do mesmo modo que nos exemplos anteriores, mas utilizaremos o comando expand para expressar a solução, obtida pelo Sage, em uma forma mais simples e, a seguir, vamos impor uma condição inicial.
a) Resolução da EDO
b) Resolução da EDO e Simplificação da Solução
c) Método Utilizado
'linear'
d) Impõe Condição Inicial X(0)=1
Exemplo 2:
É simples verificar que se trata de uma EDO a variáveis separáveis e veremos que o Sage reconhece esse fato.
Por outro lado, o Sage fornece uma solução em forma implícita; veremos que, neste caso, podemos utilizar o comando solve para obter uma expressão explícita para a solução.
Por fim, construiremos os gráficos correspondentes à solução da EDO para diferentes condições iniciais.
É simples verificar que se trata de uma EDO a variáveis separáveis e veremos que o Sage reconhece esse fato.
Por outro lado, o Sage fornece uma solução em forma implícita; veremos que, neste caso, podemos utilizar o comando solve para obter uma expressão explícita para a solução.
Por fim, construiremos os gráficos correspondentes à solução da EDO para diferentes condições iniciais.
'separable'
[, ]
Agora vamos traçar os gráficos para a primeira solução (o procedimento é análogo, para a segunda); além disso, vamos assumir
Para isso, precisamos atribuir valores numéricos à constante C, mas como ter acesso a essa constante ?
Observe que a função depende tanto da variável dependente como da constante C. O Sage possui um comando que retorna as variáveis/parâmetros de uma equação
(_C, x)
Vemos portanto que as variáveis da equação armazenada em são _C e x, nessa ordem; ou seja, _C é a variável de índice 0 e x é a variável de índice 1.
Para acessar C, executamos o comando:
Para acessar C, executamos o comando:
Como fazemos para atribuir o valor 5 ao parâmetro C? Usamos o comando:
e^(-sqrt(-2*cos(x) + 10))
No comando acima, executamos os seguintes passos:
a) resolvemos a equação ed obtendo y=f(x)
b) substituimos c=5 na expressão de f(x)
c) selecionamos o lado direito (através de rhs() ) da equação y=f(x) (porque queremos graficar f(x))
Agora, podemos traçar a solução para c=5
a) resolvemos a equação ed obtendo y=f(x)
b) substituimos c=5 na expressão de f(x)
c) selecionamos o lado direito (através de rhs() ) da equação y=f(x) (porque queremos graficar f(x))
Agora, podemos traçar a solução para c=5
Podemos graficar simultaneamente diferentes soluções particulares, correspondentes a diferentes condições iniciais (valores de C).
Observe o uso de uma estrutura de repetição (for) cuja sintaxe é da linguagem PYTHON (já mencionamos que o Sage usa Python).
A expressão for k in range(1,10,2) significa que o contador k parte do valor 1 e vai até 10 de 2 em 2. Portanto, k=1, 3, 5, 7,9.
Observe o uso de uma estrutura de repetição (for) cuja sintaxe é da linguagem PYTHON (já mencionamos que o Sage usa Python).
A expressão for k in range(1,10,2) significa que o contador k parte do valor 1 e vai até 10 de 2 em 2. Portanto, k=1, 3, 5, 7,9.
3. Equações Diferenciais Ordinárias de Ordem 2
Futuramente, veremos que, quando se resolve determinadas Equações Diferenciais Parciais pelo Método de Separação de Variáveis naturalmente somos conduzidos ao problema de resolver uma Equação Diferencial Ordinária de Ordem 2.
Por esse motivo, apresentamos aqui como resolver EDOs de segunda ordem com o Sage, mas apenas no caso em que as equações são lineares e a coeficientes constantes.
Exemplo 1:
IMPONDO DUAS CONDIÇÕES INICIAIS (para a função e sua derivada no instante t=0): e
IMPONDO DUAS CONDIÇÕES DE CONTORNO: e