Equações diferenciais de primeira ordem

Como escrever e resolver uma equação diferencial no Maple V

O primeiro passo para resolver uma equação diferencial ordinária (EDO) no Maple V é decidir qual a forma que vamos escrevê-la como input do Maple V.

Uma equação diferencial ordinária de primeira ordem y' = f(x,y) pode ser escrita com comando de derivada de uma expressão diff , por exemplo :

(1) equação := diff(y(x),x) = f(x, y(x))

ou com operador D

(2) equação := D(y)(x) = f(x,y(x))

No caso de uma equação diferencial que é dada na forma P(x,y) dx + Q(x,y) dy = 0 devemos escolher uma das variáveis y = y(x) ou x = x(y) como a variável dependente, isto é, devemos escrever a equação de uma das formas (3) ou (4) abaixo

(3) equação := P(x,y) + Q(x,y)* D(y)(x) = 0

(4) equação := P(x,y) *D(x)(y)+ Q(x,y) = 0

A experência tem mostrado que o Maple é capaz de calcular a solução geral ou específica para a maioria das equações diferenciais clássicas que estão nos textos básicos de cálculo.

A solução geral ou específica de uma equação diferencial é chamada no Maple de solução exata (type = exact). A solução exata de uma EDO escrita nas formas (1), (2), (3) acima é calculada com o comando dsolve explicitando a variável dependente e independente y(x)

dsolve( equação, y(x))

O Maple resolve a equação diferencial y' = f(x,y) com a condição inicial y(a) = b com o comando

dsolve( { equação , y(a) = b} , y(x) )

É importante lembrar que o retorno do comando dsolve é, para o Maple, do tipo igualdade, na qual o segundo membro é a solução, explícita ou implícita, na forma

y(x) = G(x)

y(x) = F(x,y) = C

É importante observar que isto não quer dizer que y(x ) é uma função de x

Por exemplo, a equação y' = y tem como solução geral y = C exp(x) com C uma constante

> restart;

> EqDif := diff(y(x), x) - y(x) = 0;

[Maple Math]

> dsolve(EqDif);

[Maple Math]

Se colocarmos uma condição inicial [Maple Math]

> Sol := dsolve( {diff(y(x),x) - y(x) = 0, y(0) = 2}, y(x) );

[Maple Math]

Se perguntarmos " qual o é o tipo" de dado do último retorno obtemos( =) que é uma igualdade

> whattype(%);

[Maple Math]

Muitas vezes queremos utilizar a solução 2 exp(x) para usos posteriores, tais como, plotar o gráfico. Para isto devemos isolar o segundo membro da igualdade acima com rhs (right hand size)

> EXpr := rhs(Sol);

[Maple Math]

> plot(EXpr, x=-2..2); plota a solução no intervalo [-2,2]

[Maple Plot]

>

Soluções exatas de equações diferenciais

Daremos a seguir alguns exemplos de situações que poderão ocorrer ao resolver uma equação diferencial de modo exato.

Atenção : Ao resolver uma equação diferencial do modo exato, é recomendável escrever todas as constantes numéricas na forma de números inteiros ou de frações. O Maple pode não efetuar integrações se as constantes forem dadas na forma de uma real com ponto flutuante.

Exemplo 1 . Situações em que o Maple apresenta mais de uma solução

O Maple pode dar uma ou mais respostas como solução de um problema de valor inicial, contrariando, muitas vezes, o resultado que é esperado teóricamente. Destacamos aqui duas situações em que isto pode ocorrer:

1) A equação dada tem solução geral que é implícita mas a equação não tem solução no ponto inicial dado. Por exemplo, a equação exata [Maple Math] tem solução geral [Maple Math] , mas com a condição inicial [Maple Math] este problema não tem solução com a variável dependente [Maple Math] .

> restart;

> Circulos := 2*x + 2*y(x)*D(y)(x) = 0;

[Maple Math]

> dsolve( Circulos, y(x) ); solução geral

[Maple Math]

> dsolve( {Circulos, y(1)=0}, y(x) ); duas "soluções"

[Maple Math]

2) A equação dada apresenta solução geral implícita, que é uma equação (de graus 2, 3 ou 4) na variável y(x) e queremos resolver a equação com uma condição inicial. Neste caso o Maple V faz "um esforço" para encontrar "as soluções" explicitamente e, após encontrá-las, ele nos apresenta todas as respostas, incluindo aquelas que são complexas. A solução procurada é uma das respostas mas o Maple V não nos inidica qual. O Maple sempre apresenta a solução complexa do problema que podemos não estar interessado

Por exemplo, a equação [Maple Math] tem solução única y(x) com a condição inicial [Maple Math] . A restriçao do domínio da solução deve ser tal que -1 < y < 1.

> restart;

> Cubicas := - x^2 + (1-y(x)^2)*D(y)(x) = 0;

[Maple Math]

> SolCub := dsolve(Cubicas, y(x)); solução geral é

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> dsolve({ Cubicas, y(0)=0}, y(x)); apresenta duas soluções complexas

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

>

Um modo de resolver o problema é calcular a solução implícita do problema de valor inicial [Maple Math] substituindo os valores [Maple Math] e [Maple Math] na solução geral e calcular o valor da constante. Por exemplo,

> subs({y(x)=0, x=0}, SolCub);

[Maple Math]
[Maple Math]

> _C1 := solve(%, _C1);

[Maple Math]

>

Observação: Um outro modo de resolver as situações (1) e (2) acima é trocar a variável dependente y(x) por x(y). Este procedimento pode não funcionar de modo geral.

>

Exemplo 2 : A solução da equação envolve funções que são definidas internamente no Maple.

Muitas vezes o Maple não consegue fazer certas integrais. Neste caso as integrais são deixadas indicadas. Em outras equações as soluções podem ser dadas em termos de funções internas do Maple tais como, erf(x) (função erro), sign(x) (função sinal =1 se x > 0 , = -1 se x < 0), Heaviside(x) (=1 se x > 0, = 0 se x < 0), funções de Bessel ou outras funções que estão descritas no arquivo inifcns (initial functions). Por exemplo :

> restart;

> dsolve( {diff(y(x), x) = exp(x^3), y(1)=2}, y(x) ); o Maple deixa indicado na versão 4, mas aqui ele deixa em termos da função Gama

[Maple Math]
[Maple Math]

> Int(exp(-t^2), t=0..x) = int(exp(-t^2), t=0..x); define a funcão erro, a menos de uma constante

[Maple Math]

> restart;

> dsolve( D(y)(x)-2*x*y(x) -1 = 0, y(x)); a solução envolve a função erro

[Maple Math]

O comando dsolve pode ser usado com uma opção que permite explicitar a solução em termos da variável independente optando-se por explicit = true , ( o default no Release 4 é explicit = false ), por exemplo :

> restart;

> ed1 := 2*sin(x)*cos(x) + cos(y(x))*sin(x)*D(y)(x) = 0;

[Maple Math]

> dsolve(ed1, y(x)); temos a solução explícita nesta versão

[Maple Math]

>

Exemplo 4 : Problema com duas soluções e transformação de solução complexa em real

O Maple V resolve as equações diferenciais pressupondo que as variáveis são complexas, se não houver nenhuma ressalva poderá haver respostas envolvendo funções de variáveis complexas. A equação [Maple Math] tem duas soluções y(x) = 0 e [Maple Math] para a condição [Maple Math] , isto é, [Maple Math] é um ponto singular. O Maple V fornece as soluções na seguinte forma

> restart;

> dsolve( {-y(x)+ (2*y(x)-x)*D(y)(x) = 0, y(0)=0}, y(x));

[Maple Math]

Se x é real e positivo temos as duas soluções escritas de um modo "um tanto estranhas". Se pensamos que x é uma variável real então a primeira solução é tal que y(x) = 0 se x > 0 e y(x) = x se [Maple Math] .

Este tipo de resposta do Maple V também ocorre para pontos iniciais nos quais temos uma única solução. Por exemplo, se tomamos a condição inicial y(0) =1, temos a solução y(x) = 0 que é válida somente para os valores x > 0, pois x = 0 é um ponto singular. O Maple V fornece a mesma resposta da condição inicial anterior. A restrição do domínio da solução não é fornecida

> restart;

> s := dsolve( { -y(x)+(2*y(x)-x)*D(y)(x)=0, y(1)=0}, y(x));

[Maple Math]

> simplify(s[1]); na respota aparece a função sinal de um número complexo csgn(x)

[Maple Math]

> assume(x > 0); assumindo x positivo

> simplify({s[1], s[2]}); a letra x~ é a variável x com a restrição x > 0 a qual fica válida para o resto do arquivo corrente do Maple V.

[Maple Math]

Para retornar a variável x geral (complexa) reinicializamos com restart e verificamos

> restart; x;

[Maple Math]

>

Voltar para o Sumário