Soluções gráficas de equações diferenciais

1) Plotando várias soluções de equações diferenciais com seq e plot

Uma das grandes vantagens do uso do Maple é a facilidade de se plotar gráficos de soluções de equações diferenciais.

Podemos plotar uma ou mais soluções de uma equação diferencial de vários modos dentro do Maple V. Descrevemos a seguir três modos de se plotar gráficos de equações diferenciais

O Maple não resolve simultaneamente uma equação diferencial com mais de uma condição inicial. Um modo de plotar uma família de soluções de uma equação diferencial, com mais de uma condição inicial, é gerar uma sequência de condições iniciais e depois gerar uma lista de soluções com o comando dsolve.

Vmaos usar o comando seq para criar uma sequência de condições iniciais

seq( f(i), i = m..n)

na qual [Maple Math] é uma função e i varia de m até n, m e n inteiros. Por exemplo

> restart;

> seq(i*0.5, i = -2..2); define uma sequência de reais com intervalo de 0,5

[Maple Math]

> EquDifs := seq( { D(y)(x)=y(x), y(0)=0.5*i} , i=-2..2); define a sequência de equações diferenciais a serem resolvidas

[Maple Math]
[Maple Math]

> Sols := seq( dsolve( EquDifs[i], y(x)), i=1..5); dá a sequência de soluções

[Maple Math]
[Maple Math]

> Funcs := seq(rhs(Sols[i]), i=1..5); isolamos os segundos membros das igualdades

[Maple Math]

> plot({Funcs}, x = -2..2); plotamos todas as soluções simultaneamente

[Maple Plot]

> EquDifs[1]; extrai a primeira equação da lista

[Maple Math]

>

2) Campo de Direções e o Retrato de Fase - DEtools[dfieldplot, phaseportrait]

Plotar o Campo de Direções para uma equação de primeira ordem não-autônoma y' = f(x,y) em um conjunto N pontos ( [Maple Math] ), ...,( [Maple Math] ), significa desenhar um segmento de reta (ou seta) em cada ponto (xJ, yJ) com coefiecinte angular m = tan ( [Maple Math] ) = f( xJ,yJ). Este segmento é tangente à solução y(x) que passa pelo ponto (xJ, yJ), isto é, satisfaz a condição y(xJ) = yJ.

Dentro da biblioteca DEtools temos os comandos para se plotar o Campo de Direções de uma equação y' = f(x,y) com dfieldplot . A sintaxe do comando é

dfieldplot( y' = f(x,y), [y ] , x = a..b, y = c..d , dirgrid = [m, n], arrows = OPÇÃO, outras opções )

Na opção "dirgrid" escolhe-se uma grade de "m x n" pontos (o defaul é [10,10] ) no domínio dado. Em "arrows = OPÇÃO" podemos escolher THIN (seta fina), SLIM (seta delgada), THICK (seta espessa), LINE (segmento de reta), NONE (nada)" para o desenho das linhas tangentes.

> with(DEtools): carregamos a biblioteca DEtools

dfieldplot(D(y)(x)=y,[y], x=-2..4, y=-1..2,\

dirgrid=[20,20], arrows=LINE);

[Maple Plot]

>

Com o comando phaseportrait da biblioteca DEtools o Maple plota o Retrato de Fase da equação nos pontos e domínios especificados. Este comando plota automaticamente também o Campo de Direções das soluções . Chamamos atenção de que o Maple emprega métodos numéricos para plotar as soluções e, portanto, não é permitido parâmetros literais na equação dada . A sintaxe do comando é dada por

phaseprotrait( D(y)(x)=f(x,y), [y], x=a..b,{ [x1,y1], ..., [xN,yN] }, y=c..d , OutrasCaracterísticas=opção)

Vamos plotar as soluções da equação y' = -2y + exp(x) nos 6 pontos especificados abaixo

> restart; with(DEtools):

> eq2 := D(y)(x )= -2*y(x)+exp(-x);

[Maple Math]

> phaseportrait(eq2, [y], x=-2..4, {[0,-1], [0,0], [0,.5], [0,.75], [0,1.5], [0,2]}, y=-1..2, linecolor=black);

[Maple Plot]

Dentre as outras opções que estão descritas em DEtools[DEplot] temos

iterations, arrows, dirgrid, obsrange, scene, colour, linecolour, stepsized

Podemos usar ainda as opções dsolve/numeric (por exemplo, method = ) e de ?plot[options] (por exemplo, title = `equação1` ). Damos um exemplo no qual invertemos os eixos com scene = [y(x),x]

> phaseportrait(eq2,[y], x=-2..4,

> {[0,-1],[0,0],[0,.5],[0,.75],[0,1.5],[0,2]}, y=-1..2,

> scene=[y(x),x], method=classical[foreuler], stepsize=.05,

> linecolour=sin(t*Pi/2), title=`Solucao Invertida`,

> dirgrid=[20,20],arrows=LINE,linecolor = [gold, yellow, wheat, blue, green, black], colour=gray);

[Maple Plot]

>

1) ?plot[options] que são axesfont, labelfont, linestyle, thickness, titlefont, resolution, xtickmarks, axes, color, colour, coords, font, scaling, style, symbol, view ,`

2) dsolve/numeric que são procedure, value, corrections, errorper,s tartinit, stepsize, tolerance, abserr, control, ctrl, itask, maxder, maxfun, maxkop, maxord, maxpts, maxstep, method, minrel, minstep, number, relerr, start, initial

Observação:

Ao resolver uma equação diferencial numericamente no Maple V, num intervalo arbitrariamente escolhido, podemos estar escolhendo um intervalo maior do que o domínio teórico da solução procurada. Neste caso o Maple V pode apresentar uma solução que fica " maluca" após passar por um desses pontos limites do domínio regular da função.

Por exemplo, a equação y' = - x / y tem como solução geral [Maple Math] . Se damos a condição inicial [Maple Math] , temos a solução [Maple Math] que tem o domínio [Maple Math] . Nos pontos [Maple Math] e [Maple Math] temos que [Maple Math] . Nestes pontos a equação diferencial não está definida pois a tangente à curva solução se torna vertical.

Vejamos o que ocorre quando tentamos calcular a solução num domínio [Maple Math] com phaseportrait. O gráfico que deveria ser um arco de círculo aparece prolongado Se restringimos o domínio [Maple Math] obtemos o arco de círculo esperado

> with(DEtools):

> phaseportrait(D(y)(x)=-(x/y),[y],x=-4..4, {[0,1]}, y=-2..2,linecolor=blue);

[Maple Plot]

> phaseportrait(D(y)(x)=-(x/y), [y], x=-0.9..0.9, {[0,1]}, y=-1..1, linecolor=black, scaling=constrained);

[Maple Plot]

Compare!

[Maple Plot] [Maple Plot]

domínio [Maple Math] domínio [Maple Math]

>

Devemos ter cautela ao investigar soluções de equações diferenciais numericamente com phaseportrait , pois, o que o Maple apresenta pode não exprimir uma verdade matemática. Isto pode trazer problemas e é muito comum quando a solução geral só pode ser expressa implicitamente. Um modo de resolver este problema é plotar as soluções implicitamente, conforme descrito a seguir.

c) Plotando soluções implícitas - plots[contourplot , implicitplot]

Vamos supor que queremos plotar as soluções da equção diferencial [Maple Math] que tem como solução geral [Maple Math] . Podemos traçar as curvas de nível das soluções no Maple com os comandos contourplot ou com implicitplot da bilioteca plots .

Com o comando contourplot traçamos curvas de nível de uma função dentro dos intervalos especificados.

Com este comando não podemos escolher quais curvas serão traçadas, mas podemos especificar a precisão desejada com a opção grid=[m,n] (default = [25,25]) . No exemplo abaixo vamos preencher os espaços entre as curvas com filled=true "num intervalo de cores" que vai do azul ao vermelho com coloring = [red, blue] pois cada cor é dada por um número

> with(plots):

> contourplot(y-1/3*y^3-1/3*x^3,x=-3..3,y=-3..3, grid=[10,10],filled=true,
coloring=[yellow, blue]);

[Maple Plot]

Outro modo de obter as curvas de nível da função acima é com implicitplot . Para usar este comando temos que explicitar todas as curvas de nível que queremos plotar. Um modo de obter a lista das curvas é usar o comando seq e depois usar implicitplot para plotá-las

> listaeq := seq(y-1/3*y^3-1/3*x^3=i*0.5,i=-5..5);

> with(plots):

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

> implicitplot({listaeq}, x=-3..3, y=-3..3);

[Maple Plot]

>

Observação: Um modo de se obter os valores das constates CJ = F(x_J,y_J) para cada condição inicial é substituir (x_J,y_J) na solução geral F(x,y) = C com subs e depois calcular CJ numericamente com solve e evalf.

Voltar para o Sumário