1. Este documento apresenta o uso do software livre Maxima para cálculos simbólicos e resolução de equações diferenciais.
2. As principais funcionalidades do Maxima incluem diferenciação, integração, séries de Taylor, transformadas de Laplace, equações diferenciais ordinárias e sistemas de equações.
3. O documento descreve vários métodos para resolver equações diferenciais de primeira e segunda ordem, como equações lineares, separáveis, exatas e homogêneas com coeficientes constantes.
Este documento apresenta uma introdução à linguagem de programação Python. Resume os principais pontos apresentados:
1) Python foi criada em 1990 por Guido van Rossum como uma alternativa à linguagem ABC, sendo de código aberto e multiplataforma.
2) A sintaxe de Python é baseada em indentação para definir blocos de código e possui tipos de dados básicos como inteiros, floats, strings, listas e dicionários.
3) Python suporta programação procedural, orientada a objetos e funcional, possuindo controle de fluxo
O documento apresenta o uso do SQLAlchemy para mapear objetos Python a tabelas de um banco de dados. É criada uma engine para conexão com o banco SQLite e uma classe Contato é mapeada à tabela "agenda". Um programa permite adicionar, listar e sair de contatos de forma interativa na sessão.
Este documento apresenta uma aula sobre Python, abordando: 1) revisão dos conceitos básicos da linguagem; 2) exemplo de programa que calcula a média de notas de alunos; 3) uso de funções como input e convertendo strings para números; 4) desafio da aula anterior para ordenar nomes digitados.
O documento apresenta exemplos de resolução de equações diferenciais exatas. Primeiramente, define o que é uma equação diferencial exata e como encontrá-la. Em seguida, resolve exemplos ilustrando o processo de determinar se uma equação é exata e, caso seja, encontrar sua solução. Por fim, propõe exercícios para o aluno praticar.
Otimizações em Sistemas de Armazenamento mediadas por anotações em Metadadosricardoas
O documento descreve otimizações em sistemas de armazenamento mediadas por anotações em metadados. Ele propõe um modelo que permite a implementação de novas funcionalidades e otimizações através de desvios e anotações em metadados. O documento também apresenta estudos de caso em workflows científicos em larga escala.
Este documento introduz o Scilab para análise estatística, abordando recursos básicos como operações matemáticas, variáveis especiais, comentários e pontuação. Também discute representações de polinômios, vetores, matrizes e listas, além de importação e manipulação de arquivos de dados no Scilab.
Tutorial de econometria espacial utilizando o stataRicardo Schuch
1) O documento apresenta um tutorial sobre econometria espacial utilizando o software Stata. 2) Ele explica como instalar pacotes, importar shapefiles, gerar matrizes de pesos espaciais, testar dependência espacial e realizar regressões espaciais. 3) São apresentados diversos modelos de regressão espacial como SAR, SEM, SAC e SDM.
Lucas Castejon apresenta Python, incluindo suas características, vantagens e instalação. Ele discute como Python é uma linguagem de programação de alto nível, orientada a objetos, interpretada e dinamicamente tipada que roda em múltiplas plataformas.
Este documento apresenta uma introdução à linguagem de programação Python. Resume os principais pontos apresentados:
1) Python foi criada em 1990 por Guido van Rossum como uma alternativa à linguagem ABC, sendo de código aberto e multiplataforma.
2) A sintaxe de Python é baseada em indentação para definir blocos de código e possui tipos de dados básicos como inteiros, floats, strings, listas e dicionários.
3) Python suporta programação procedural, orientada a objetos e funcional, possuindo controle de fluxo
O documento apresenta o uso do SQLAlchemy para mapear objetos Python a tabelas de um banco de dados. É criada uma engine para conexão com o banco SQLite e uma classe Contato é mapeada à tabela "agenda". Um programa permite adicionar, listar e sair de contatos de forma interativa na sessão.
Este documento apresenta uma aula sobre Python, abordando: 1) revisão dos conceitos básicos da linguagem; 2) exemplo de programa que calcula a média de notas de alunos; 3) uso de funções como input e convertendo strings para números; 4) desafio da aula anterior para ordenar nomes digitados.
O documento apresenta exemplos de resolução de equações diferenciais exatas. Primeiramente, define o que é uma equação diferencial exata e como encontrá-la. Em seguida, resolve exemplos ilustrando o processo de determinar se uma equação é exata e, caso seja, encontrar sua solução. Por fim, propõe exercícios para o aluno praticar.
Otimizações em Sistemas de Armazenamento mediadas por anotações em Metadadosricardoas
O documento descreve otimizações em sistemas de armazenamento mediadas por anotações em metadados. Ele propõe um modelo que permite a implementação de novas funcionalidades e otimizações através de desvios e anotações em metadados. O documento também apresenta estudos de caso em workflows científicos em larga escala.
Este documento introduz o Scilab para análise estatística, abordando recursos básicos como operações matemáticas, variáveis especiais, comentários e pontuação. Também discute representações de polinômios, vetores, matrizes e listas, além de importação e manipulação de arquivos de dados no Scilab.
Tutorial de econometria espacial utilizando o stataRicardo Schuch
1) O documento apresenta um tutorial sobre econometria espacial utilizando o software Stata. 2) Ele explica como instalar pacotes, importar shapefiles, gerar matrizes de pesos espaciais, testar dependência espacial e realizar regressões espaciais. 3) São apresentados diversos modelos de regressão espacial como SAR, SEM, SAC e SDM.
Lucas Castejon apresenta Python, incluindo suas características, vantagens e instalação. Ele discute como Python é uma linguagem de programação de alto nível, orientada a objetos, interpretada e dinamicamente tipada que roda em múltiplas plataformas.
O documento resume uma aula sobre sistemas operacionais e Java. Ele define sistemas operacionais, descreve suas funções e características atuais. Também explica a história e funcionalidades da linguagem Java, incluindo a máquina virtual Java. Por fim, apresenta exemplos de código Java para revisar conceitos básicos.
1. O documento discute operações com matrizes, incluindo representação de matrizes, tipos de matrizes, e operações como adição e multiplicação.
2. É apresentada uma implementação das operações com matrizes usando C++, incluindo uma estrutura de dados TMatriz e funções para criar, ler, comparar, somar e multiplicar matrizes.
3. A complexidade das funções é analisada, com destaque para a função de leitura que tem complexidade quadrática O(n2).
Mini-curso Programação Paralela e DistribuídaDeivid Martins
O documento apresenta uma introdução à programação paralela e distribuída, discutindo arquiteturas paralelas, programação para sistemas com memória compartilhada usando CPAR e OpenMP, e programação para sistemas distribuídos usando MPI. Ferramentas como CPAR e MPI são apresentadas como meios para desenvolver aplicações paralelas e distribuídas.
permite selecionar a região da planilha a ser importada
(5) Clique em [Next] para prosseguir com a importação
(6) Na próxima janela, será possível definir o tipo de cada variável (Double,
Integer, Text etc.) e seus respectivos nomes, conforme apresentado na Figura
2.14:
Figura 2.14 – Definição dos tipos e nomes das variáveis
(7) Clique em [Finish] para concluir a importação
(8) O arquivo será aberto no STATISTICA® com os dados importados da planilha
do
O documento discute conceitos sobre algoritmos computacionais. Explica que um algoritmo recebe entrada(s), executa procedimentos e produz saída(s). Também apresenta um exemplo de algoritmo para elevar um número X ao quadrado e dividir pelo resultado por 3.
O documento resume as principais informações sobre eletrônica embarcada. Apresenta a formação acadêmica e experiência profissional de Marcelo Barros, engenheiro eletrônico especializado na área. Fornece conselhos sobre escolha de carreira e orientações sobre sistemas embarcados, desde hardware, software e sistemas operacionais.
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesJulio Menezes
Exercício resolvidos durante o Curso de Grafos e Algoritmos (como aluno de Engenharia da Computação) do Departamento de Computação da Universidade Federal de Sergipe.
O documento discute a introdução à linguagem de programação Python. Aborda tópicos como tipos de dados primitivos, variáveis, operadores matemáticos e lógicos, estruturas de controle como if/else e loops while e for. Também apresenta listas e strings como estruturas de dados fundamentais em Python.
Este programa lê uma cadeia de caracteres compactada na memória e a armazena de forma descompactada. Ele faz isso usando dois ponteiros que avançam a cada iteração do laço para ler cada caractere e armazená-lo em um novo local na memória.
Este guia apresenta os principais comandos e funcionalidades do MatLab para alunos de engenharia. O documento introduz comandos básicos, operações com vetores e matrizes, funções matemáticas, plotagem de gráficos e programação de rotinas no MatLab.
1) O documento descreve um programa multi-threaded que calcula a soma de números usando threads e semáforos para sincronização. Cada thread adiciona 1 à soma global em cada iteração de um loop.
2) O programa cria 100 threads para executar a tarefa em paralelo e compartilhar a variável soma de forma sincronizada usando semáforos.
3) O algoritmo usa semáforos para garantir exclusão mútua na variável compartilhada soma, evitando que threads concorrentes alterem seu valor de forma inconsistente.
Regras de Produção:o Motor de Inferência JESSelliando dias
Este documento descreve os principais componentes de um motor de inferência baseado em regras de produção, incluindo: 1) Um formalismo lógico para representar conhecimento; 2) Um mecanismo de inferência para aplicar regras; 3) Como regras de produção representam conhecimento proceduralmente.
1) O documento descreve a linguagem de programação Java, sua história e conceitos principais.
2) Java foi originalmente criado para dispositivos embarcados e lançado publicamente em 1996.
3) A máquina virtual Java (JVM) executa os bytecodes gerados a partir do código Java, tornando a linguagem independente de plataforma.
O documento introduz o processamento de alto desempenho com GPUs, discutindo sua arquitetura, aplicações e linguagens como CUDA. Explica como as GPUs podem acelerar cálculos paralelizáveis através de milhares de núcleos executando kernels em paralelo, com memória compartilhada e transferência de dados entre CPU e GPU.
1. O documento apresenta análises exploratórias de dados e modelos de classificação para prever se uma organização é tradicional ou exponencial com base em suas características. 2. É treinado um modelo de floresta aleatória que identifica "Demandas Pendentes" como a característica mais importante. 3. Também é construída uma árvore de decisão para classificação e são comparadas suas previsões com as do modelo de floresta aleatória.
Data Stream Mining: trabalhando com dados massivos. Apresentação exibida no TDC 18 de Porto Alegre, nas trilhas de Data Science. Uma breve explicação sobre o contexto data stream, exemplos e resultados aplicando regressão.
O documento apresenta uma introdução à linguagem C, incluindo seu histórico, estrutura básica de programas, diretivas para incluir bibliotecas, e exemplos de entrada e saída de dados. É apresentado o ambiente Dev-C++ para desenvolvimento de programas em C.
O documento apresenta uma introdução à linguagem C, incluindo seu histórico, estrutura básica de programas, diretivas para incluir bibliotecas, e exemplos de entrada e saída de dados. É descrito como usar o ambiente de desenvolvimento Dev-C++ para editar, compilar e executar programas em C.
O documento resume uma aula sobre sistemas operacionais e Java. Ele define sistemas operacionais, descreve suas funções e características atuais. Também explica a história e funcionalidades da linguagem Java, incluindo a máquina virtual Java. Por fim, apresenta exemplos de código Java para revisar conceitos básicos.
1. O documento discute operações com matrizes, incluindo representação de matrizes, tipos de matrizes, e operações como adição e multiplicação.
2. É apresentada uma implementação das operações com matrizes usando C++, incluindo uma estrutura de dados TMatriz e funções para criar, ler, comparar, somar e multiplicar matrizes.
3. A complexidade das funções é analisada, com destaque para a função de leitura que tem complexidade quadrática O(n2).
Mini-curso Programação Paralela e DistribuídaDeivid Martins
O documento apresenta uma introdução à programação paralela e distribuída, discutindo arquiteturas paralelas, programação para sistemas com memória compartilhada usando CPAR e OpenMP, e programação para sistemas distribuídos usando MPI. Ferramentas como CPAR e MPI são apresentadas como meios para desenvolver aplicações paralelas e distribuídas.
permite selecionar a região da planilha a ser importada
(5) Clique em [Next] para prosseguir com a importação
(6) Na próxima janela, será possível definir o tipo de cada variável (Double,
Integer, Text etc.) e seus respectivos nomes, conforme apresentado na Figura
2.14:
Figura 2.14 – Definição dos tipos e nomes das variáveis
(7) Clique em [Finish] para concluir a importação
(8) O arquivo será aberto no STATISTICA® com os dados importados da planilha
do
O documento discute conceitos sobre algoritmos computacionais. Explica que um algoritmo recebe entrada(s), executa procedimentos e produz saída(s). Também apresenta um exemplo de algoritmo para elevar um número X ao quadrado e dividir pelo resultado por 3.
O documento resume as principais informações sobre eletrônica embarcada. Apresenta a formação acadêmica e experiência profissional de Marcelo Barros, engenheiro eletrônico especializado na área. Fornece conselhos sobre escolha de carreira e orientações sobre sistemas embarcados, desde hardware, software e sistemas operacionais.
Grafos e Algoritimos - Dr. Julio Cesar de Araujo MenezesJulio Menezes
Exercício resolvidos durante o Curso de Grafos e Algoritmos (como aluno de Engenharia da Computação) do Departamento de Computação da Universidade Federal de Sergipe.
O documento discute a introdução à linguagem de programação Python. Aborda tópicos como tipos de dados primitivos, variáveis, operadores matemáticos e lógicos, estruturas de controle como if/else e loops while e for. Também apresenta listas e strings como estruturas de dados fundamentais em Python.
Este programa lê uma cadeia de caracteres compactada na memória e a armazena de forma descompactada. Ele faz isso usando dois ponteiros que avançam a cada iteração do laço para ler cada caractere e armazená-lo em um novo local na memória.
Este guia apresenta os principais comandos e funcionalidades do MatLab para alunos de engenharia. O documento introduz comandos básicos, operações com vetores e matrizes, funções matemáticas, plotagem de gráficos e programação de rotinas no MatLab.
1) O documento descreve um programa multi-threaded que calcula a soma de números usando threads e semáforos para sincronização. Cada thread adiciona 1 à soma global em cada iteração de um loop.
2) O programa cria 100 threads para executar a tarefa em paralelo e compartilhar a variável soma de forma sincronizada usando semáforos.
3) O algoritmo usa semáforos para garantir exclusão mútua na variável compartilhada soma, evitando que threads concorrentes alterem seu valor de forma inconsistente.
Regras de Produção:o Motor de Inferência JESSelliando dias
Este documento descreve os principais componentes de um motor de inferência baseado em regras de produção, incluindo: 1) Um formalismo lógico para representar conhecimento; 2) Um mecanismo de inferência para aplicar regras; 3) Como regras de produção representam conhecimento proceduralmente.
1) O documento descreve a linguagem de programação Java, sua história e conceitos principais.
2) Java foi originalmente criado para dispositivos embarcados e lançado publicamente em 1996.
3) A máquina virtual Java (JVM) executa os bytecodes gerados a partir do código Java, tornando a linguagem independente de plataforma.
O documento introduz o processamento de alto desempenho com GPUs, discutindo sua arquitetura, aplicações e linguagens como CUDA. Explica como as GPUs podem acelerar cálculos paralelizáveis através de milhares de núcleos executando kernels em paralelo, com memória compartilhada e transferência de dados entre CPU e GPU.
1. O documento apresenta análises exploratórias de dados e modelos de classificação para prever se uma organização é tradicional ou exponencial com base em suas características. 2. É treinado um modelo de floresta aleatória que identifica "Demandas Pendentes" como a característica mais importante. 3. Também é construída uma árvore de decisão para classificação e são comparadas suas previsões com as do modelo de floresta aleatória.
Data Stream Mining: trabalhando com dados massivos. Apresentação exibida no TDC 18 de Porto Alegre, nas trilhas de Data Science. Uma breve explicação sobre o contexto data stream, exemplos e resultados aplicando regressão.
O documento apresenta uma introdução à linguagem C, incluindo seu histórico, estrutura básica de programas, diretivas para incluir bibliotecas, e exemplos de entrada e saída de dados. É apresentado o ambiente Dev-C++ para desenvolvimento de programas em C.
O documento apresenta uma introdução à linguagem C, incluindo seu histórico, estrutura básica de programas, diretivas para incluir bibliotecas, e exemplos de entrada e saída de dados. É descrito como usar o ambiente de desenvolvimento Dev-C++ para editar, compilar e executar programas em C.
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)