SlideShare uma empresa Scribd logo
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 é:
t
tey
dt
dy 2
2 −
=+
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:
t
tey
dt
dy 2
2 −
=+
in: ode2('diff(y,t) + 2*y = t*exp(-2*t),y,t);
out: t
ec
t
y 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ção geral 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 t
et
y
−
−
=
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
dy
yNxM
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
dy
yxNyxM , 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
dy
yxNxuyxMxu 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: c
yxyx
=
+
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
dy
ytf
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 rt
ey = , aplicando as derivadas a cada fator e dividindo toda a equação por rt
e ,
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 2
2
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 1
21
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 é:
+−= dt
tyyW
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:
x
etyyy 22
4'4'' −−
=++
In: ode2('diff(y,x,2)+4*'diff(y,x)+4*y-(x^(-2))*exp(-2*x), y, x);
Out: )1)(log()( 22
12 +−+= −−
xeecxcy xx
Podemos notar que
14
)1)(log()( 2
+−= −
xexY x
, x
exy 2
1 )( −
= , x
xexy 2
2 )( −
= .
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
dy
yxf =),(
*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 π 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
k
y −=
..
(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
a
b= .
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 amortecedores em 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
>===
−
∞
−
∞
−
s
s
e
dtedttuetuL
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-π).uc(t) onde f(t) = t² .
Exemplo 2: Resolva a equação y’’- 2y’+ y = uπ(t)-u2π(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).

Mais conteúdo relacionado

Semelhante a Utilização do Software Maxima

Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
thomasdacosta
 
Sistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoSistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de Numeração
Carlos Pereira
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizes
RADILSON RIPARDO DE FRETIAS
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e Distribuída
Deivid Martins
 
Apostila Statistica 6.0
Apostila Statistica 6.0Apostila Statistica 6.0
Apostila Statistica 6.0
Kaique Santos Teixeira
 
Aula2
Aula2Aula2
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
Marcelo Barros de Almeida
 
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesGrafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Julio Menezes
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
Gemilson George
 
Prova 2012 2_p4_gabarito
Prova 2012 2_p4_gabaritoProva 2012 2_p4_gabarito
Prova 2012 2_p4_gabarito
Amélia Moreira
 
Guia Matlab
Guia MatlabGuia Matlab
Guia Matlab
Rodrigo Silva
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
JoelManuel8
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESS
elliando dias
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
thomasdacosta
 
Inpe
InpeInpe
MRO predict
MRO predictMRO predict
Data stream mining - TDC POA 2018 (Data Science)
Data stream mining - TDC POA 2018 (Data Science)Data stream mining - TDC POA 2018 (Data Science)
Data stream mining - TDC POA 2018 (Data Science)
Andre Nunes
 
TDC18 (POA) Data Science - data stream mining
TDC18 (POA) Data Science - data stream miningTDC18 (POA) Data Science - data stream mining
TDC18 (POA) Data Science - data stream mining
André Luís Nunes
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
profwtelles
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
Mauricio Wieler
 

Semelhante a Utilização do Software Maxima (20)

Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Sistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoSistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de Numeração
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizes
 
Mini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e DistribuídaMini-curso Programação Paralela e Distribuída
Mini-curso Programação Paralela e Distribuída
 
Apostila Statistica 6.0
Apostila Statistica 6.0Apostila Statistica 6.0
Apostila Statistica 6.0
 
Aula2
Aula2Aula2
Aula2
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesGrafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
Grafos e Algoritimos - Dr. Julio Cesar de Araujo Menezes
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Prova 2012 2_p4_gabarito
Prova 2012 2_p4_gabaritoProva 2012 2_p4_gabarito
Prova 2012 2_p4_gabarito
 
Guia Matlab
Guia MatlabGuia Matlab
Guia Matlab
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESS
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Inpe
InpeInpe
Inpe
 
MRO predict
MRO predictMRO predict
MRO predict
 
Data stream mining - TDC POA 2018 (Data Science)
Data stream mining - TDC POA 2018 (Data Science)Data stream mining - TDC POA 2018 (Data Science)
Data stream mining - TDC POA 2018 (Data Science)
 
TDC18 (POA) Data Science - data stream mining
TDC18 (POA) Data Science - data stream miningTDC18 (POA) Data Science - data stream mining
TDC18 (POA) Data Science - data stream mining
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 

Utilização do Software Maxima

  • 1. 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. 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. 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. 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. 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. 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. 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 é: t tey dt dy 2 2 − =+ 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. 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: t tey dt dy 2 2 − =+ in: ode2('diff(y,t) + 2*y = t*exp(-2*t),y,t); out: t ec t y 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ção geral 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. 9 Exemplo 2: in: ic1( y=(t^2/2+%c)*%e^(-2*t) , y=0, t=1); out: 2 )1( 22 t et y − − = 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 dy yNxM 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 dy yxNyxM , tem-se que:
  • 10. 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 dy yxNxuyxMxu 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: c yxyx = + 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 dy ytf dt yd ,,2 2 Onde f é alguma função dada.
  • 11. 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 rt ey = , aplicando as derivadas a cada fator e dividindo toda a equação por rt e , 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 2 2 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. 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 1 21 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. 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 é: +−= dt tyyW 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: x etyyy 22 4'4'' −− =++ In: ode2('diff(y,x,2)+4*'diff(y,x)+4*y-(x^(-2))*exp(-2*x), y, x); Out: )1)(log()( 22 12 +−+= −− xeecxcy xx Podemos notar que
  • 14. 14 )1)(log()( 2 +−= − xexY x , x exy 2 1 )( − = , x xexy 2 2 )( − = . 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 dy yxf =),( *Note que tal função só desenha campos de direções para equações diferenciais ordinárias de primeira ordem.
  • 15. 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. 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. 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. 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. 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. 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. 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 π 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. 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. 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. 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. 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. 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. 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. 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 k y −= .. (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 a b= . 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. 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 amortecedores em 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. 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. 31 L{ cu (t)}= 0, > − s s e cs , Demonstração: 0,)()}({ 0 >=== − ∞ − ∞ − s s e dtedttuetuL 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-π).uc(t) onde f(t) = t² . Exemplo 2: Resolva a equação y’’- 2y’+ y = uπ(t)-u2π(t)
  • 33. 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).