Sistemas de equações diferenciais e equações de segunda ordem
Soluções exatas, numéricas e por séries de sistemas e equações de segunda ordem
Dada a equação diferencial de segunda ordem y'' = f(x,y,y') com as condições iniciais y(a) = b e y'(a) = c podemos escrever esta equação no MapleV com o comando do operador de segunda ordem D(D(y)) = (D@@2)(y) ou com o comando da derivada repetida diff(y(x),x,x) = diff(y(x), x$2) . A sintaxe do comando é
Equação := { (D@@2)(y)(x)= f(x, y,D(y)(x) ) , y(a)=b , D(y)(a)=c}
Como no caso de equação de primeira ordem, os vários tipos de solução são obtidos com o comando dsolve especificando-se o tipo com type = que pode ser ( exact (defaut), numeric , series ) .
Sol := dsolve(Equação, y(x), type=opção, OutrasOpções = )
A saída deste comando é uma igualdade ( o Maple não considera como uma função) que pode depender de uma ou duas constantes se as duas condições iniciais não forem dadas
Sol:= y(x)=F(x,_C1,_C2)
No caso de equações lineares podemos optar output = basis para exibir uma base de soluções da equação homogênea juntamente com uma solução particular da equação não-homogênea. Neste caso a saída é uma lista da forma
Sol := [ [b1(x), b2(x)], p(x)]
Dado um sistema de primeira ordem x'=f(x,y,t), y'=g(x,y,t) nas variáveis dependente (x(t),y(t)), com as condições iniciais (opcionais) x(a) = b e y(a) = c podemos escrever o sistema na forma
Sistema := { D(x)(t)=f(x,y,t), D(y)(t)=g(x,y,t), x(a)=b , y(a)=c }
Resolvemos este sistema com desolve do seguinte modo
Lista := dsolve(Sistema, {x(t),y(t)}, type= opção, OutrasOpções = ...)
O retorno é uma lista com duas igualdades que podem depender de duas constantes
Lista := { x(t) = F( t,_C1,_C2) , y(t)= G(t,_C1,_C2) }
Obsevamos que, no caso de um sistema linear, o comando output = basis não funciona do mesmo modo que para equações de segunda ordem
Exemplo 1:
Vamos resolver a equação do oscilador harmônico y'' +
y = 0 sem condições iniciais
> restart;
> Oscilador_Harm := (D@@2)(y)(x)+(omega^2) * y(x); a equação ficará =0 por default
> dsolve(Oscilador_Harm, y(x)); dá a soluçao geral
> sol := dsolve(Oscilador_Harm, y(x), output=basis); dá uma base de soluções
> Oscilador_Forc := Oscilador_Harm = cos(omega*x); oscilador com termo forçante ressonante
> Sol := dsolve(Oscilador_Forc, y(x), output=basis); dá uma base da equação homogênea mais uma solução particular
Exemplo 2 : Considere o sistema de equações diferenciais lineares x' = x+y , y'=y . A seguir vamos
a) calcular a solução geral deste sistema
b) achar uma base de soluções para este sistema,
c) resolver este sistema por séries
d) calcular uma solução numerica
> Sist1 := { D(x)(t) = x(t) + y(t), D(y)(t) = y(t)}; define o sistema
> Lis1 := dsolve(Sist1, {x(t), y(t)}); dá a solução geral do sistema
Ao resolver o sistema na forma geral, o Maple não fornece uma base de soluções como nas equações de segunda ordem. Podemos dar esta base claculando-se duas soluções particualres com condições iniciais x(0)=1, y(0)=0 e x(0)=0, y(0)=1
> Sist2 := { D(x)(t)=x(t) + y(t), D(y)(t)=y(t), x(0)=1,y(0)=0};
> Lis2 := dsolve(Sist2, {x(t),y(t)});
> Sist3 := { D(x)(t)=x(t)+y(t), D(y)(t)=y(t), x(0)=0, y(0)=1};
> Lis3 := dsolve(Sist3, {x(t), y(t)});
A seguir calculamos as soluções de Sist3 por séries e uma solução numérica :
> Lis4 := dsolve(Sist3, {x(t), y(t)}, series ); calcula a solução por séries
> Lista5 := dsolve(Sist3, {x(t), y(t)}, numeric); calcula a solução numérica numa lista de pontos pelo método method=rkf45 ( Fehlberg fourth-fifth order Runge-Kutta method) que é o default.
> Lista5(1); retorna o valor numérico no ponto t=1 , x(1)=e, y(1)=e
> Lista5(2);
Na secção sobre soluções numéricas de equações de primeira ordem encontramos outros métodos e também o modo de plotar as soluções numéricas
Exemplo 4.
A equação de Bessel de ordem 1 é dada por
y'' +x y' + (
- 1)y =0 . Vamos resolver esta equação com a condição inicial y(0)=1 , y'(0)=0 ,de forma exata, por séries e numericamente
> bessel1 := x^2*(D@@2)(y)(x)+x*D(y)(x)+(x^2-1)*y(x) = 0;
> Exa := dsolve({bessel1, y(1)=1, D(y)(1)=0}, y(x));
a solução exata aparece em termos das funções de Bessel da biblioteca do Maple
> Ser := dsolve({bessel1, y(1)=1, D(y)(1)=0}, y(x), series);
> LLis := dsolve({bessel1, y(1)=1, D(y)(1)=0}, y(x), numeric);
> LLis(1.3); avalia a solução numérica no ponto x=1.3
>
Voltar para o Sumário