Buscar

TUTORIAL MÁXIMA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
 
Universidade Estadual de Campinas 
 
Trabalho de MA311 
 
 
 
UUUtttiiillliiizzzaaaçççãããooo dddooo 
SSSoooffftttwwwaaarrreee MMMaaaxxxiiimmmaaa 
 
 
 
 
 
 
 
 
Nomes: 
 
Cristina Marioni Torres RA: 042708 
Filipe Ricardo Polizel RA:043583 
Letícia Andréa Bocchi Silva RA:048060 
Luís Fernando L. Sato RA:044865 
Natália do Carmo Carvalho RA:045786 
Thiago de Moraes Sfredo RA:046708 
Tiago Bonatto de Lima RA:046769 
 2
 
 
Índice 
 
 
1) Introdução .......................................................................................................................... 3 
1.1) Histórico e modo de obtenção..................................................................................... 3 
1.2) Conceitos básicos do Maxima..................................................................................... 4 
2) Solução de equações diferenciais....................................................................................... 7 
2.1)Definição de equação diferencial ................................................................................. 7 
2.2) Solução de equações diferenciais de primeira ordem ................................................. 8 
 2.2.1) Equações lineares .............................................................................................. 8 
 2.2.2) Equações separáveis.......................................................................................... 9 
 2.2.3) Equações exatas ................................................................................................ 9 
2.3) Solução de equações diferenciais de segunda ordem:............................................... 10 
 2.3.1) Equações Homogêneas com Coeficientes Constantes .................................... 11 
 2.3.2) Raízes Complexas da Equação Característica................................................. 11 
 2.3.3) Raízes Repetidas ............................................................................................. 12 
2.4) Equações Não-Homogêneas;..................................................................................... 12 
 2.4.1) Método dos Coeficientes Indeterminados ....................................................... 12 
 2.4.2) Variação dos Parâmetros................................................................................. 13 
2.5) Resolvendo sistema de EDOs: .................................................................................. 14 
3) Apresentação de Campo de Direções e Trajetórias.......................................................... 14 
4) Solução de equações diferenciais por transformada de Laplace ...................................... 18 
4.1) Definição da transformada de Laplace...................................................................... 18 
4.2) Resolvendo equações diferenciais com transformada de Laplace. ........................... 19 
5) Séries ................................................................................................................................ 21 
5.1) Função sum( ):........................................................................................................... 21 
5.2) Função taylor( ): ........................................................................................................ 22 
5.3) Função diff( ): ........................................................................................................... 23 
5.4) Função solve_rec( ): .................................................................................................. 24 
5.5)Resolvendo um EDO por séries: ................................................................................ 25 
6) Osciladores amortecidos: ................................................................................................. 27 
7) Função Degrau ou Função de Heaviside.......................................................................... 30 
7.1) Definição: .................................................................................................................. 30 
8) Bibliografia ...................................................................................................................... 32 
8.1)Sites: ........................................................................................................................... 32 
8.2) Livros: ....................................................................................................................... 33 
 
 
 
 3
 
1) Introdução 
 
1.1) Histórico e modo de obtenção 
O Maxima é um software livre para cálculos matemáticos, semelhante ao MatLab e 
ao Mathematica. Trata-se de um sistema de álgebra computacional para manipulação de 
expressões simbólicas e numéricas, incluindo a diferenciação, integração, série de Taylor, 
transformações de La Place, equações diferenciais ordinárias, sistemas de equações 
lineares, polinomiais, e séries, listas, vetores, matrizes. O Maxima produz resultados 
precisos usando seu sistema especial de “floating” e pode trabalhar com funções e dados 
em duas ou três dimensões. 
O código fonte do Maxima pode ser compilado em muitos sistemas, incluindo 
Windows, Linux, e MacOS X. O código fonte para todos os sistemas e pré-compilado 
binário para Windows e Linux, e está disponível no GNU General Public License. O 
download do sotware pode ser feito pelo link 
http://sourceforge.net/project/showfiles.php?group_id=4933 . 
Maxima é derivado do sistema Macsyma, o sistema legendário da álgebra do 
computador desenvolvido nos anos de 1968 a 1982 no Instituto de Tecnologia de 
Massachusetts como parte do Projeto MAC. MIT remanejou uma cópia do código fonte do 
Macsyma para o Departamento de Energia em 1982; aquela versão é agora conhecida como 
Macsyma DOE. Uma cópia do Macsyma DOE (Departamento de Energia) foi mantida pelo 
Professor William F. Schelter da Universidade do Texas de 1982 até sua morte em 2001. 
Em 1998, Schelter obteve permissão do Departamento de Energia para liberar o código 
fonte do Macsyma DOE sob a Licença Pública GNU, e em 2000 ele iniciou o projeto 
Maxima no SourceForge para manter e desenvolver o Macsyma DOE, agora chamado 
Maxima. 
Maxima é o único sistema baseado nesse esforço ainda publicamente disponível e 
com uma comunidade de usuário ativa, graças a sua natureza aberta da fonte. Macsyma era 
revolucionário em seu dia, e muitos sistemas mais atrasados, tais como o Bordo e o 
Mathematica, foram inspirados por ele. 
 
 
 
 
 4
1.2) Conceitos básicos do Maxima 
Inicie o Maxima com o comando "maxima". Maxima mostrará a informação de 
versão e uma linha de comando. Termine cada comando noMaxima com um ponto e 
vírgula. Termine uma sessão com o comando "quit();". 
Aqui está um exemplo de sessão: 
 
 
[wfs@chromium]$ máxima 
Maxima 5.9.1 http://maxima.sourceforge.net 
Using Lisp CMU Common Lisp 19a 
Distributed under the GNU Public License. See the file COPYING. 
Dedicated to the memory of William Schelter. 
This is a development version of Maxima. The function bug_report() 
provides bug reporting information.(%i1) factor(10!); 
 8 4 2 
(%o1) 2 3 5 7 
(%i2) expand ((x + y)^6); 
 6 5 2 4 3 3 4 2 5 6 
(%o2) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x 
(%i3) factor (x^6 - 1); 
 2 2 
(%o3) (x - 1) (x + 1) (x - x + 1) (x + x + 1) 
(%i4) quit(); 
[wfs@chromium]$ 
 
Maxima pode procurar as páginas info. Use o comando describe para mostrar 
todos os comandos e variáveis contendo uma dada seqüência de caracteres, e 
opcionalmente sua documentação. O ponto de interrogação ? é uma abreviatura para 
describe: 
 
 
(%i1) ? integ 
 
 0: (maxima.info)Introduction to Elliptic Functions and Integrals. 
 1: Definitions for Elliptic Integrals. 
 2: Integration. 
 3: Introduction to Integration. 
 4: Definitions for Integration. 
 5: askinteger :Definitions for Simplification. 
 6: integerp :Definitions for Miscellaneous Options. 
 7: integrate :Definitions for Integration. 
 8: integrate_use_rootsof :Definitions for Integration. 
 9: integration_constant_counter :Definitions for Integration. 
Enter space-separated numbers, `all' or `none': 6 5 
 
Info from file /usr/local/info/maxima.info: 
 5
 - Function: integerp (<expr>) 
 Returns `true' if <expr> is an integer, otherwise `false'. 
 
 
 - Function: askinteger (expr, integer) 
 - Function: askinteger (expr) 
 - Function: askinteger (expr, even) 
 - Function: askinteger (expr, odd) 
 `askinteger (expr, integer)' attempts to determine from the 
 `assume' database whether `expr' is an integer. `askinteger' will 
 ask the user if it cannot tell otherwise, and attempt to install 
 the information in the database if possible. `askinteger (expr)' 
 is equivalent to `askinteger (expr, integer)'. 
 
 `askinteger (expr, even)' and `askinteger (expr, odd)' likewise 
 attempt to determine if `expr' is an even integer or odd integer, 
 respectively. 
 
(%o1) false 
 
Para usar um resultado em cálculos posteriores, você pode atribuir esse valor a uma 
variável ou referir-se a esse mesmo valor através de seu rótulo gerado automaticamente. 
Adicionalmente, % refere-se ao mais recente resultado calculado: 
 
 
(%i1) u: expand ((x + y)^6); 
 6 5 2 4 3 3 4 2 5 6 
(%o1) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x 
(%i2) diff (u, x); 
 5 4 2 3 3 2 4 5 
(%o2) 6 y + 30 x y + 60 x y + 60 x y + 30 x y + 6 x 
(%i3) factor (%o2); 
 5 
(%o3) 6 (y + x) 
 
Maxima tem conhecimento sobre números complexos e constantes numéricas: 
 
 
(%i1) cos(%pi); 
(%o1) - 1 
(%i2) exp(%i*%pi); 
(%o2) - 1 
 
Maxima pode fazer cálculos diferenciais e integrais: 
 6
 
 
(%i1) u: expand ((x + y)^6); 
 6 5 2 4 3 3 4 2 5 6 
(%o1) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x 
(%i2) diff (%, x); 
 5 4 2 3 3 2 4 5 
(%o2) 6 y + 30 x y + 60 x y + 60 x y + 30 x y + 6 x 
(%i3) integrate (1/(1 + x^3), x); 
 2 x - 1 
 2 atan(-------) 
 log(x - x + 1) sqrt(3) log(x + 1) 
(%o3) - --------------- + ------------- + ---------- 
 6 sqrt(3) 3 
 
Maxima pode resolver sistemas lineares e equações cúbicas: 
 
 
(%i1) linsolve ([3*x + 4*y = 7, 2*x + a*y = 13], [x, y]); 
 7 a - 52 25 
(%o1) [x = --------, y = -------] 
 3 a - 8 3 a - 8 
(%i2) solve (x^3 - 3*x^2 + 5*x = 15, x); 
(%o2) [x = - sqrt(5) %i, x = sqrt(5) %i, x = 3] 
 
Maxima pode resolver sistemas de equações não lineares. Note que se você não quer 
um resultado impresso, você pode encerrar seu comando com $ em lugar de encerrar com 
;. 
 
 
(%i1) eq_1: x^2 + 3*x*y + y^2 = 0$ 
(%i2) eq_2: 3*x + y = 1$ 
(%i3) solve ([eq_1, eq_2]); 
 3 sqrt(5) + 7 sqrt(5) + 3 
(%o3) [[y = - -------------, x = -----------], 
 2 2 
 
 3 sqrt(5) - 7 sqrt(5) - 3 
 [y = -------------, x = - -----------]] 
 2 2 
 
Maxima pode gerar gráficos de uma ou mais funções: 
 
 7
 
(%i1) eq_1: x^2 + 3*x*y + y^2 = 0$ 
(%i2) eq_2: 3*x + y = 1$ 
(%i3) solve ([eq_1, eq_2]); 
 3 sqrt(5) + 7 sqrt(5) + 3 
(%o3) [[y = - -------------, x = -----------], 
 2 2 
 
 3 sqrt(5) - 7 sqrt(5) - 3 
 [y = -------------, x = - -----------]] 
 2 2 
(%i4) kill(labels); 
(%o0) done 
(%i1) plot2d (sin(x)/x, [x, -20, 20]); 
(%o1) 
(%i2) plot2d ([atan(x), erf(x), tanh(x)], [x, -5, 5]); 
(%o2) 
(%i3) plot3d (sin(sqrt(x^2 + y^2))/sqrt(x^2 + y^2), [x, -12, 12], [y, -
12, 12]); 
(%o3) 
 
 
*Nota: 
Para a função Degrau Unitário Maxima não é capaz de desenhar os gráficos nem 
calcular sua transformada de La Place, apesar de estar inclusa em sua biblioteca.A Função 
Degrau Unitário é implementada como unit_step[x]. 
 
 
 
2) Solução de equações diferenciais 
 
2.1)Definição de equação diferencial 
 
Uma equação diferencial é qualquer equação na qual esteja presente a derivada de 
alguma variável. Um exemplo simples é: 
 
ttey
dt
dy 22 −=+ 
 
Note que 
dt
dy
 também pode ser escrito como y′ . A variável y é chamada de 
variável dependente e t é a variável independente. 
Equações diferenciais são divididas em várias classificações, sendo a mais básica a 
ordem. A ordem de uma equação diferencial é dada pela derivada de maior grau encontrada 
nela. No exemplo acima, a única derivada é de primeiro grau, portanto, trata-se de uma 
equação diferencial de primeira ordem. 
 8
 
2.2) Solução de equações diferenciais de primeira ordem 
 
Não existe um método universal para resolver equações de primeira ordem. 
Portanto, estas equações foram divididas em várias subclasses com métodos de solução 
diferentes. As mais importantes subclasses são equações lineares, equações separáveis e 
equações exatas. 
 
2.2.1) Equações lineares 
 
Equações lineares são normalmente encontradas na forma 
 
)()( tgyyp
dt
dy
=+ 
 
e representam uma relação linear entre a variável dependente e a independente. 
Para resolver uma equação linear de primeira ordem no Maxima usa-se o comando 
ode2(equação, variável dependente, variável independente). 
 
Exemplo 1: 
ttey
dt
dy 22 −=+ 
 
in: ode2('diff(y,t) + 2*y = t*exp(-2*t),y,t); 
out: tec
ty 2
2
2
−
��
�
�
��
�
�
+= 
 
O Maxima retorna a solução geral da equação diferencial, por isso o uso da 
constante c . Isto possibilita desenhar o campo vetorial e trajetorial da equação (assumindo 
arbitrariamente valores para a constante). O valor da constante depende das condições 
iniciais do problema (exemplo logo a seguir). 
Observe que o comando para solução, tanto de equações de primeira ordem quanto 
para segunda, é o mesmo no Maxima. Este comando examina a equação e aplica vários 
métodos de solução até encontrar a solução geral. Para descobrir qual método foi utilizado 
pelo Maxima na resolução da equação, existe o comando method. Para a equação 
resolvida acima, method retorna linear, o que quer dizer que o maxima obteve a 
soluçãogeral da equação diferencial tratando-a como uma equação linear. 
 
Aplicando as condições iniciais t = 1 e y = 0 para a equação resolvida no exemplo 
acima, podemos determinar o valor da constante c através da função ic1. Esta função deve 
ser usada da seguinte forma 
 
ic1(solução, valor inicial de t, valor inicial de y) 
 
 9
Exemplo 2: 
 
in: ic1( y=(t^2/2+%c)*%e^(-2*t) , y=0, t=1); 
out: 
2
)1( 22 tety
−
−
= 
 
Esta é a solução do problema de valor inicial apresentado. 
 
2.2.2) Equações separáveis 
 
Equações separáveis são geralmente da forma 
 
0)()( =+
dx
dyyNxM 
 
ou seja, a função N que multiplica a derivada depende apenas da variável dependente e o 
termo M depende apenas da variável independente. Estas equações podem ser resolvidas 
por integração direta, pois podem ser escritas na forma dyyNdxxM )()( −= , e a solução 
pode ser encontrada integrando-se ambos os lados da equação. 
 
Exemplo 3: 
12
2
+
=
x
x
dx
dy
 
 
in: ode2( 'diff(y,x) = 2*x/(1+2*y), y, x) 
out: c
xyy
+=
+
22
22
 
 
Para esta equação a função method retorna separable. 
Aplicando as condições iniciais x = 2 e y = 0 nesta solução geral, encontramos a 
seguinte solução particular: 
 
in: ic1((y^2+y)/2=x^2/2+%c, x=2, y=0); 
out: 
2
4
2
22
−
=
+ xyy
 
 
2.2.3) Equações exatas 
 
A definição de uma equação exata de primeira ordem é, para uma 
equação 0),(),( =+
dx
dyyxNyxM , tem-se que: 
 
 10
),(),( yxNyxM xy = 
 
Cumprida esta condição, a solução geral da equação é dada pela função F, sendo 
 
),(),( yxMyxFx = e ),(),( yxNyxFy = 
 
Nem sempre uma equação diferencial encontra-se na forma exata. Para transformá-
la em uma equação exata, pode se multiplicar a equação por um determinado fator 
integrante u, que depende apenas de uma das variáveis. Comumente, utiliza-se u(x). 
A equação transformada é então 
 
0),()(),()( =+
dx
dyyxNxuyxMxu e u
N
NM
dx
du xy −
= 
 
Exemplo da solução de uma equação exata com o uso de fator integrante: 
 
03)( 22 =++�
�
�
�
�
�
+ xyy
dx
dy
xxy 
 
In: ode2( (3*x*y + y^2) + (x^2 + x*y)*'diff(y,x) = 0; , y, x) 
Out: cyxyx =+
2
2 322
 
 
Neste exemplo a função method retorna exact. 
Para avaliar se o Maxima usou um fator integrante para transformar a equação 
diferencial acima em uma equação exata, use-se a função intfactor. 
Neste caso a função intfactor retorna x , ou seja, houve a necessidade de 
multiplicar a equação diferencial por xxu =)( . 
A equação exata resolvida pelo Maxima então foi 
03)( 2232 =++�
�
�
�
�
�
+ yxxy
dx
dy
xyx . 
2.3) Solução de equações diferenciais de segunda ordem: 
 
Como já visto anteriormente, equações de segunda ordem são aquelas em que o 
maior grau de suas derivadas é 2. Nesta seção veremos os diversos métodos de resolução 
destas equações, aplicados a cada tipo de equação. 
 
Podemos ainda definir uma equação diferencial de segunda ordem pela forma: 
 
��
�
�
��
�
�
�
�
�
�
�
�
=��
�
�
��
�
�
dx
dyytf
dt
yd
,,2
2
 
 
Onde f é alguma função dada. 
 11
 
2.3.1) Equações Homogêneas com Coeficientes Constantes 
 
Esse tipo de equação é dado na forma: 
 
ay’’+ by’+cy = 0, 
 
onde a, b e c são constantes. 
 
O método de resolução de tais equações é bem simples, basta realizarmos a troca de 
variável rtey = , aplicando as derivadas a cada fator e dividindo toda a equação por rte , 
chegaremos a uma equação do segundo grau. 
 
Seja r1 e r2 as raízes dessa equação, então teremos como solução geral do problema: 
 
trtr
ececy 21 21 += 
 
Note que as constantes c1 e c2 podem ser encontradas dado um problema de valor 
inicial. 
 
Exemplo 4: 
 
03'5'' =+− yyy 
 
In: ode2('diff(y,x,2)-5*'diff(y,x)+6*y, y, x); 
 
Out: tt ececy 22
3
1 += 
 
Neste caso a função method retorna constcoeff. 
 
 
2.3.2) Raízes Complexas da Equação Característica 
 
Este é um caso particular de equação homogênea com coeficientes constantes. Onde 
obtemos raízes complexas da equação de segundo grau, ou seja, 04 <− acb . 
 
As raízes da equação de segundo grau, neste caso, são dadas por 
 
µλ ir +=1 e µλ ir −=2 , 
 
onde 1−=i . 
 
Neste problema, s solução para a equação diferencial se apresenta na forma: 
 
 12
tsenectecy tt µµ λλ −+= 21 cos 
 
Exemplo 5: 
 
05''' =++ yyy 
 
In: ode2('diff(y,x,2)+'diff(y,x)+5*y, y, x); 
 
Out: 
2
19
cos
2
19 2
2
2
1
x
ec
x
senecy
xx
−−
+= 
 
Neste caso a função method retorna constcoeff. 
 
2.3.3) Raízes Repetidas 
 
Este é mais um caso particular de equação homogênea com coeficientes constantes. 
Onde as raízes r1 e r2 da equação de segundo grau obtida da equação diferencial são iguais. 
 
Neste problema, a solução geral para a equação diferencial se apresenta na forma: 
 
trtrtr exccxececy 121
2
2
1
1 )( +=+= 
 
Exemplo 6: 
 
0'2'' =++ yyy 
 
In: ode2('diff(y,x,2)+2*'diff(y,x)+y, y, x); 
 
Out: xxx exccxececy −−− +=+= )( 2121 
 
Neste caso a função method retorna constcoeff. 
2.4) Equações Não-Homogêneas; 
 
 2.4.1) Método dos Coeficientes Indeterminados 
 
Equações não-homogêneas são da forma 
 
)()(')('' tgytqytpy =++ , 
 
onde p, q e g são funções contínuas no intervalo considerado. 
 
Toda equação não-homogênea tem uma equação homogênea associada, que é da 
forma: 
 13
 
0)(')('' =++ ytqytpy 
 
A solução geral de uma equação não-homogênea pode ser escrita na forma: 
 
)()()()( 2211 tYtyctycty ++== φ , 
 
onde y1 e y2 formam um conjunto de soluções da equação homogênea associada e Y é uma 
solução específica da solução da equação original (não-homogênea). 
 
O Maxima não utiliza este método, por sua falta de generalidade. 
 
2.4.2) Variação dos Parâmetros 
 
Este é um método mais geral para a solução de equações diferenciais não-
homogêneas, já que não são necessárias hipóteses detalhadas sobre a forma da solução. 
 
A idéia básica do método da variação dos parâmetros é substituir as constantes c1 e 
c2 por funções u1(t) e u2(t), respectivamente, determinando essas funções de forma que a 
expressão resultante para a solução geral seja: 
 
tsentuttuy 2)(2cos)( 21 += 
 
Do método da variação de parâmetros, conclui-se que uma solução particular da 
equação particular é: 
 
�� +−= dttyyW
tgty
tydt
tyyW
tgty
tytY ))(,(
)()()())(,(
)()()()(
21
1
2
21
2
1 , 
 
onde W(y1,y2) é o Wronskiano aplicado às funções y1(t) e y2(t). 
Temos ainda que a solução geral para é: 
 
)()()( 2211 tYtyctycy ++= 
 
Exemplo 7: 
 
xetyyy 224'4'' −−=++ 
 
In: ode2('diff(y,x,2)+4*'diff(y,x)+4*y-(x^(-2))*exp(-2*x), y, x); 
 
Out: )1)(log()( 2212 +−+= −− xeecxcy xx 
 
Podemos notar que 
 
 14
)1)(log()( 2 +−= − xexY x , xexy 21 )( −= , xxexy 22 )( −= . 
 
Neste caso a função method retorna variationofparameters. 
 
2.5) Resolvendo sistema de EDOs: 
 
O software Maxima possui um comando que facilita muito a resolução de um 
sistema de equações diferenciais. Esse comando é o “desolve”. Ele calcula o sistema 
utilizando a transformada de La Place. É um método parecido a resolução de um sistema 
linear comum, mas utiliza a transformada de La Place para transformar um sistema de 
EDOs em um de equações algébricas e depois faz a inversa da transformada de La Place 
para encontrar o resultado final. 
 
Inserindo as equações do sistema: 
 
input: eq1: 'diff(f(x),x)='diff(g(x),x)+sin(x) 
input: eq2: 'diff(g(x),x,2)='diff(f(x),x)-cos(x) 
 
Colocando algumas condições iniciais. 
 
Input: atvalue('diff(g(x),x),x=0,a) 
Input:atvalue(f(x),x=0,1) 
 
Resolvendo o sistema: 
 
Input: desolve([%o1,%o2],[f(x),g(x)]) 
Output: [f(x) = a %e - a + 1, g(x) = cos(x) + a %e - a + g(0) - 1] 
3) Apresentação de Campo de Direções e 
Trajetórias 
Campo de Direções é uma ferramenta importante para a avaliação de equações 
diferenciais, pois dão uma noção dos valores que as soluções dessas equações tendem. Eles 
são compostos por vetores tangentes às soluções nos pontos do plano xy. 
Para desenhar campos de direções no Maxima, devemos primeiramente carregar a 
biblioteca “plotdf” utilizando o comando “load(plotdf);”. 
A função que desenha os campos de direções é “plotdf”, para utilizá-la, passamos 
como argumento a função 
 
dx
dyyxf =),( 
 
*Note que tal função só desenha campos de direções para equações diferenciais 
ordinárias de primeira ordem. 
 
 15
Exemplo 1: Traçar o campo de direções para a equação diferencial 
 
0135' =++− xxyy 
 
*Note que temos 135' −+== xxyy dx
dy
 
 
plotdf(5*x*y + 3*x –1); 
 
 
Agora veremos alguns dos argumentos da função “plotdf”: 
 
 
Argumento Parâmetros Valor Padrão Papel 
xradius 1 (real) 0 Magnitude do eixo x. 
yradius 1 (real) 0 Magnitude do eixo y. 
xcenter 1 (real) 0 Centro do eixo x. 
ycenter 1 (real) 0 Centro do eixo y. 
tinitial 1 (real) 0 Valor inicial do parâmetro “t” . 
nsteps 1 (inteiro) 100 Número de passos p/ traçar a trajetória. 
tracjetory_at 2 (real, real) vazio Ponto em que é traçado a trajetória. 
tstep 1 (real) 0,01 Valor adicionado a “t” a cada passo. 
 
Exemplo 2: Traçar o campo de direção de 
 
yxy 5.02' −+= 
 
 mostrando a trajetória de uma possível solução. 
 
 16
 
*Note que traçamos a solução para o ponto (1, 1), além de definir a magnitude dos 
eixos x e y, o número de passos e o incremento de t. 
 
 
Exemplo 3: Para o exemplo anterior, mostrar várias soluções. 
 
Para mostrarmos diversas soluções no Maxima, devemos traçar o campo de 
direções; clicando em “Config” podemos ver o campo “Trajectory at”, ao inserirmos os 
valores da coordenada do ponto desejado mostramos soluções adicionais, como mostrado 
abaixo: 
 
 17
 
 
*As soluções traçadas acima correspondem aos pontos (-5,-5), (-2,-2), (0,0), (1,1), 
(2,2), (3,3) e (4,4). 
 
 
 
 
 
 
 
Exemplo 4: A aceleração )'(v de um corpo em queda satisfaz a seguinte equação: 
 
vv 2.08.9' −= , 
 
onde v é a velocidade do corpo.Desenhe o campo de direções para o problema dado, e 
estime a velocidade limite de queda. 
 
Primeiramente, desenhemos o campo de direções: 
 
plotdf(9.8 –0.2*y); 
 
 18
 
 
Olhando as soluções traçadas no campo de direções acima, notamos que para um 
tempo muito longo, todas tendem a um número próximo de 50. Disto podemos estimar que 
a velocidade limite de queda é aproximadamente 50. 
Analisando o caso v(0) = 49, notamos que a velocidade não se altera com o tempo, 
ou seja, v’(t) = 0 para qualquer t, disso podemos concluir que a velocidade limite é de 49. 
 
4) Solução de equações diferenciais por 
transformada de Laplace 
 
4.1) Definição da transformada de Laplace. 
 
 Seja uma função f(t) definida no intervalo ],0[ ∞ . A Transformada de Laplace de 
)(tf em s é: 
 
 19
 
 
quando a integral imprópria existe. 
 )(tf é a transformada inversa de Laplace de )(sF , o que quer dizer que 
 
)()}({ sFtfL = logo, )()}(}{1{ tfsFL =− ; 
 
Para resolver uma equação diferencial por La Place usamos o seguinte comando na 
linha de comando do Maxima:”laplace(g[t], t, s)”, )(tg em que é a função a ser aplicada a 
transformada. 
Já o comando para calcular a transformada inversa de La Place é: ilt(f[s], s, t). 
 
*Nota: Na versão que utilizamos do Maxima (0.6.6, win32) as funções de Transformada de 
La Place já vinha pré-instaladas e não foi necessário carregar nenhum pacote adicional. 
 
Exemplo1: Encontre a transformada de La Place de: 
 
(a) 3)( ttf = 
(b) )sin()( attf = 
(c) )cos()( attf = 
 
Solução: 
(a)usando o comando: 
Input: laplace(t^3, s, t) 
Output: t 2 
 
(b) Input: laplace(sin(a*t), t, s) 
Output: a/(s^2+a^2) 
 
(c) Input: laplace(cos(a*t), t, s) 
Output: s/(s^2+a^2) 
Exemplo 2: Encontre a inversa da transformada de La Place de 16²
4
+s 
 
Vamos usar o comando ilt para calcular a inversa: 
 
Input: ilt(4/(s^2 + 16), s, t) 
Output: t 2 
 
4.2) Resolvendo equações diferenciais com transformada de 
Laplace. 
 
 Transformada de La Place pode ser usada para resolver diversas equações 
diferenciais. Normalmente, quando usamos La Place para resolver uma equação diferencial 
 20
de uma função )(ty , calculamos a transformada de La Place para cada termo da equação 
diferencial, depois resolvemos algebricamente a equação para a transformada de La Place 
de )}({),( tyLty , e finalmente determinamos )(ty calculando a transformada inversa de La 
Place de )}({ tyL . Muito confuso? Então observe o exemplo abaixo: 
 
Exemplo 3: Resolva a seguinte equação diferencial com valores iniciais pelo método das 
transformadas de La Place: 
1)0(",0)0(,)(5)('2)('' ===++ yyttytyty 
Usando o comando “ode” para resolver a equação diferencial: 
 
Input: ode: 'diff(y(t), t, 2) + 5*'diff(y(t), t) + 4*y(t) = t; 
Output: 'diff(y(t),t,2)+5*('diff(y(t),t,1))+4*y(t)=t 
Inserindo as condições iniciais: 
Input: atvalue(y(t), t=0, 0); 
Output: 0 
 
Input: atvalue('diff(y(t), t), t= 0, 0); 
Output: 0 
Calculando a transformada de La Place: 
Input: lap_ode:laplace(ode,t,s); 
Output:s^2*laplace(y(t),t,s)+5*s*laplace(y(t),t,s)+4*laplace(y(t),t,s)=1/
s^2 
A equação diferencial original era uma equação diferencial, agora é uma equação 
algébrica com a variável “laplace(y(t), t, s)”. Para resolver basta usar o comando solve: 
Input: sol: solve(%, 'laplace(y(t), t, s)); 
Output: [laplace(y(t),t,s)=1/(s^4+5*s^3+4*s^2)] 
 
*Note que você tem que escrever a desconhecida com um apóstrofo. Sem o apóstrofo, 
Maxima tentará avaliar a expressão “laplace(y(t), t, s)”. 
Veja que a resposta é uma lista com a solução linear. 
Agora, podemos aplicar a transformação inversa de La Place para que a equação. 
algébrica com dependência em s , volte a ser dependente de t . Para selecionar um item da 
lista basta usar o comando map: 
Input: map( lambda( [eq], ilt(eq, s, t)), sol) 
Output: [y(t)=%e^(-t)/3-%e^(-4*t)/48+t/4-5/16] 
 21
Isso é novamente uma lista de uma equação. Note que a inversa da transformação de La 
Place foi aplicada a ambos os lados da equação: 
• Sobre o lado esquerdo, a aplicação da inversa da transformação de La Place na 
transformada de La Place de )(ty retorna )(ty ; 
• Sobre o lado direito, a aplicação da inversa da transformação de La Place retorna a 
solução da equação diferencial dada. 
 
 
5) Séries 
 
Expansões em séries têm uma vasta aplicabilidade inserida no cálculo, visto que 
determinadas funções e suas propriedades – continuidade, regras de derivação, integração 
dentre outras operações – podem ser estudadas a fundo neste contexto. Temos ainda uma 
outra abordagem neste sentido, a Teoria dos Números – números primos, irracionais, 
transcendentes, as constantes e e pi etc, esses tópicos também permitem um estudo com 
base em séries. Não podemos deixar de citar é claro, uma funcionalidade bastante útil das 
séries, mais especificamente, séries de potências, estas podem ser usadas como um método 
alternativo para resolução de equações diferenciais. 
 
O Maxima disponibiliza várias funções para o trato com expressões em séries, em 
especial a série de Taylor. Vejamos algumas delas pertinentes ao nosso estudo: 
 
 
 
 
 
5.1) Função sum( ): 
 
- Dado uma determinada expansão em série, converte esta em somatório. 
 
Sintaxe: 
 
sum (expressão,variável, início, fim) 
 
Exemplo 1: 
 
 22
 
 
 
 
5.2) Função taylor( ): 
 
 -Apresenta uma expansão em séries de Taylor para uma dada função. 
 
Sintaxe 2: 
 
 taylor (f(x), variável, início, fim) 
 
 
 
Exemplo 3: 
 
 
 23
 
 
 
5.3) Função diff( ): 
 
 -Diferencia não só expressões comuns como também expansões em série. 
 
Sintaxe: 
 
 diff (expressão, variável, ordem da derivada) 
 
Exemplo 4: 
 
Dada a expressão “%o44”: 
 
 
suas derivadas de segunda, terceira e quarta ordem são: 
 
 
 
 24
 
 
 
 
Embora o Maxima não nos forneça uma forma direta para calcular equações 
diferencias através das séries, temos uma função que nos fornece a solução da relação de 
recorrência. 
 
5.4) Função solve_rec( ): 
 
 -Resolve a relação de recorrência no processo de resolução de uma equação 
diferencial por meio de séries de potências. 
 
*Nota: para a utilização desta ferramenta é necessário carregá-la previamente com o auxílio 
da função “load”: 
 
 
 
Temos: 
 
Sintaxe: 
 
solve_rec (relação de recorrência, a[n]) 
 
Exemplo 5: 
 
 
 
 25
 
 
 
 
5.5)Resolvendo um EDO por séries: 
 
O método que utilizamos para resolver as EDOs por séries via um software é 
bastante distinto do método analítico aprendido durante as aulas. 
Iniciamos dizendo que queremos usar uma função genérica )(ty expandida usando 
série de Taylor. 
 
sery: taylor(y(t), t,0,10) 
 
Colocamos as condições iniciais. 
 
Input: atvalue(y(t), t=0, 2) 
Output: 2 
 
continuando... 
 
Input: atvalue('diff(y(t), t), t=0, 2) 
Output: 2 
 
 
 
 
 
 
 
Colocando EDO a ser resolvida 
 
input: eq: 4*'diff(sery, t, 2) + 4*'diff(sery, t) + 37*sery = 0 
output: 
82+4*(at('diff(y(t),t,2),t=0))+(4*(at('diff(y(t),t,2),t=0))+4*(at('diff(y(t),t,3),t=0))+74)*t+((3
7*(at('diff(y(t),t,2),t=0))+4*(at('diff(y(t),t,3),t=0))+4*(at('diff(y(t),t,4),t=0)))*t^2)/2+((37*(a
t('diff(y(t),t,3),t=0))+4*(at('diff(y(t),t,4),t=0))+4*(at('diff(y(t),t,5),t=0)))*t^3)/6+((37*(at('di
ff(y(t),t,4),t=0))+4*(at('diff(y(t),t,5),t=0))+4*(at('diff(y(t),t,6),t=0)))*t^4)/24+((37*(at('diff(
y(t),t,5),t=0))+4*(at('diff(y(t),t,6),t=0))+4*(at('diff(y(t),t,7),t=0)))*t^5)/120+((37*(at('diff(y
(t),t,6),t=0))+4*(at('diff(y(t),t,7),t=0))+4*(at('diff(y(t),t,8),t=0)))*t^6)/720+((37*(at('diff(y(t
),t,7),t=0))+4*(at('diff(y(t),t,8),t=0))+4*(at('diff(y(t),t,9),t=0)))*t^7)/5040+((37*(at('diff(y(t
),t,8),t=0))+4*(at('diff(y(t),t,9),t=0))+4*(at('diff(y(t),t,10),t=0)))*t^8)/40320+((37*(at('diff(
 26
y(t),t,9),t=0))+4*(at('diff(y(t),t,10),t=0)))*t^9)/362880+(37*(at('diff(y(t),t,10),t=0))*t^10)/3
628800+...=0 
 
igualamos em zero cada coeficiente, já que sabemos que duas séries de potência são iguais 
somente se ambos tiverem coeficientes iguais. 
 
input: diff_eq1: 82 + 4*(at('diff(y(t),t,2),t=0))=0 
 
input: diff_eq2: 
(4*(at('diff(y(t),t,2),t=0))+4*(at('diff(y(t),t,3),t=0))+74)=0 
 
input: diff_eq3: 
(37*(at('diff(y(t),t,2),t=0))+4*(at('diff(y(t),t,3),t=0))+4*(at('diff(y(t
),t,4),t=0)))/2=0 
 
input: diff_eq4: 
(37*(at('diff(y(t),t,3),t=0))+4*(at('diff(y(t),t,4),t=0))+4*(at('diff(y(t
),t,5),t=0)))/6=0 
 
input: 
diff_eq5:(37*(at('diff(y(t),t,4),t=0))+4*(at('diff(y(t),t,5),t=0))+4*(at(
'diff(y(t),t,6),t=0)))/24=0 
 
input: 
diff_eq6:(37*(at('diff(y(t),t,5),t=0))+4*(at('diff(y(t),t,6),t=0))+4*(at(
'diff(y(t),t,7),t=0)))/120=0 
 
input: 
diff_eq7:(37*(at('diff(y(t),t,6),t=0))+4*(at('diff(y(t),t,7),t=0))+4*(at(
'diff(y(t),t,8),t=0)))/720=0 
 
input: 
diff_eq8:(37*(at('diff(y(t),t,7),t=0))+4*(at('diff(y(t),t,8),t=0))+4*(at(
'diff(y(t),t,9),t=0)))/5040=0 
 
input: 
diff_eq9:(37*(at('diff(y(t),t,8),t=0))+4*(at('diff(y(t),t,9),t=0))+4*(at(
'diff(y(t),t,10),t=0)))/40320=0 
 
input: 
diff_eq10:(37*(at('diff(y(t),t,9),t=0))+4*(at('diff(y(t),t,10),t=0)))/ 
362880=0 
 
input: diff_eq11:37*(at('diff(y(t),t,10),t=0))/ 3628800=0 
 
 
transformando em sistema as equações já inseridas. 
 
ode_system: [diff_eq1, diff_eq2, diff_eq3, diff_eq4, diff_eq5, diff_eq6, 
diff_eq7, diff_eq8, diff_eq9, diff_eq10, diff_eq11] 
 
Resolvendo cada equação do sistema e substituindo na equação abaixo. 
 
*Nota: inicialmente usaríamos apenas um comando solve com 12 parâmetros que 
incluiriam as equações diferenciais, mas a versão do Maxima está com problemas nesse 
aspecto e apenas devolve uma lista vazia. 
 27
 
Input: solve(diff_eq1,[y(t)]) 
Input: solve(diff_eq2,[y(t)]) 
Input: solve(diff_eq3,[y(t)]) 
Input: solve(diff_eq4,[y(t)]) 
Input: solve(diff_eq5,[y(t)]) 
Input: solve(diff_eq6,[y(t)]) 
Input: solve(diff_eq7,[y(t)]) 
Input: solve(diff_eq8,[y(t)]) 
Input: solve(diff_eq9,[y(t)]) 
Input: solve(diff_eq10,[y(t)]) 
Input: solve(diff_eq11,[y(t)]) 
 
e substituindo os 11 valores de y(t) na EDO principal, temos a solução em 
série aproximada da equação: 
 
y(t) = 2 + 2x + 41*x^2/4 + x^3/3 + 1501*x^4/192 – 1649*x^5/960 – 
48941*x^6/23040 + 54977*x^7/80640 + 1371001*x^8/5160960 – 
5439299*x^9/46448640 – 28969841*x^10/1857945600 
 
 
 
 
 
6) Osciladores amortecidos: 
 
 
 28
Figura 1.00 – Oscilador Harmônico Amortecido 
 
 
A figura 1.00 mostra o sistema de suspensão de um automóvel. Dentro da mola 
temos um amortecedor, isto é, um cilindro cheio de óleo, que produz uma força oposta ao 
movimento, diretamente proporcional à velocidade: 
 
avFv −= , 
 
onde a é uma constante. 
Temos a equação de aceleração do sistema dada por: 
 
 y
m
ky −=
..
 (1.0) 
 
 
A equação de movimento obtém-se subtraindo
m
Fv
 no lado direito da equação (1.0). 
Desse modo, obtemos a equação diferencial do oscilador harmônico amortecido: 
 
y'’ + by’ + w²y = 0 (1.1) 
 
onde 
m
ab = . 
Trata-se de uma equação linear, de segunda ordem, que pode ser resolvida 
analiticamente, no Maxima da seguinte forma: 
Usando o comando ode2 do Maxima. 
 
(%i1) eq2: ’diff(y,t,2) + b*’diff(y,t) + wˆ2*y = 0$ 
(%i2) ode2(eq2, y, t); 
 
A expressão )2)(2( bwbw +− é positivo, negativo, ou zero? 
 
Para casos em particular, ou seja, se conhecermos as constantes de amortecimento 
(b) de um sistema podemos resolvê-lo dessa forma com o programa Maxima. 
Obtém-se 3 tipos de soluções, segundo (2w−b) seja nula, positiva ou negativa. O 
lado direito da figura 1.00 mostra os três tipos de soluções. 
 
� Quando b < 2w, dizemos que o amortecimento é fraco, e a solução é uma 
função que oscila, mas com amplitude que decresce rapidamente. 
 
� O caso b = 2w é designado de amortecimento crítico e conduz a uma solução 
que se aproxima decresce rapidamente para y = 0 (com algumas condições 
iniciais, y pode chegar a mudar de sinal antes de se aproximar para zero). 
 
 29
�	
�
�
−=
−−=
xy
bxxx
ω
ω
.
.
� Finalmente, b > 2w corresponde ao caso de sobre-amortecimento 
(amortecimento forte), em que y decresce lentamente para zero. 
Um oscilador real tem sempre um termo de amortecimento devido ao atrito com o 
ar. O que acontece é que o amortecimento pode ser muito fraco, o que faz com que a 
amplitude das oscilações diminuía lentamente. Assim, a equação 1.1 é mais realista do que 
a equação 1.2 abaixo, que nada mais é do que a equação 1.0 evidenciando as constantes de 
forma positiva. 
 
yy 2
..
ω−=
 (1.2) 
 
onde 
m
k
=ω
 (1.3) 
 
 
O respectivo sistema autônomo de primeira ordem é: 
 
 
(1.4) 
 
 
 
A Figura 1.10 mostra a evolução do sistema, no espaço de fase (x, y) e no domínio 
do tempo: 
 
Figura 1.10 - Evolução do Oscilador Harmônico com amortecimento Fraco. 
 
 
No caso do uso de amortecedoresem automóvel, para que o carro não oscile cada 
vez que passe sobre um obstáculo, os amortecedores são desenhados de forma a produzirem 
amortecimento crítico ou ligeiramente forte. 
Devido ao uso continuo e com o passar do tempo ocorre um processo de desgaste, o 
óleo do amortecedor começa a perder pressão e quando o sistema entra no regime de 
amortecimento fraco, o carro oscila quando empurramos a parte posterior do veículo para 
baixo, característica que nos indica que precisamos substituir os amortecedores. 
 
 30
	
�
≥
<
=
;0,1
;0,0)(
tse
tse
tu c
7) Função Degrau ou Função de Heaviside 
 
 
7.1) Definição: 
 
A função degrau, ou função de Heaviside, é uma função descontínua, que também é 
conhecida como função degrau unitário, pode ser definida por 
 
 
 
 
 
 
O software Maxima não é indicado para trabalhar com função degrau porque 
aprensenta falhas.Apesar da função Degrau Unitário estar contida em sua biblioteca, não é 
possível traçar o gráfico da função, nem calcular sua tranformada de Laplace; Sendo assim, 
usaremos o software Mathematica, que tem um layout parecido com o Máxima, para 
fazermos os gráficos e calcular transformadas de La Place. 
A função degrau unitário no software Mathematica é implementada como 
UnitStep[x]. O gráfico da função degrau é feito abaixo. 
 
 
 
 
Sua transformada de La Place é 
 
 31
L{ cu (t)}= 0, >
−
s
s
e cs
 , 
 
Demonstração: 
 
0,)()}({
0
>===
−
∞
−
∞
−
�� ss
edtedttuetuL
cs
c
st
c
st
c 
 
-Exemplos de uso do software para resolução de problemas com função degrau: 
 
 
 
Exemplo 1: Esboce o gráfico da função f (t-pi).uc(t) onde f(t) = t² . 
 
 
 
 
 
 
 
Exemplo 2: Resolva a equação y’’- 2y’+ y = upi(t)-u2pi(t) 
 
 
 32
 
 
 
 
 
8) Bibliografia 
8.1)Sites: 
 
http://maxima.sourceforge.net/ 
 33
http://pt.wikipedia.org/wiki/Maxima 
http://maxima.sourceforge.net/docs/manual/pt/maxima.html 
http://maxima.sourceforge.net/docs/manual/pt/maxima_1.html#SEC1 
http://sourceforge.net/project/showfiles.php?group_id=4933 
http://www.math.utexas.edu/pipermail/maxima/2004/007034.html 
 
8.2) Livros: 
 
Classical dynamics of particles and systems (Thornton & Marion, 2004). 
 
Jaime E. Villate - Introdução aos Sistemas Dinâmicos – Fac. de Engenharia, Universidade 
do Porto,2006; 
 
Willian E. Boyce e Richard C. DiPrima - "Equações Diferenciais Elementares e 
Problemas de Valores de Contorno”, LTC (7ª edição, 2002); 
 
George F. Simmons - "Cálculo com Geometria Analítica”, tradução - Seiji , Rodney e 
Sílvio , MacGraw-Hill Ltda (1ª edição,1988).

Outros materiais