Baixe o app para aproveitar ainda mais
Prévia do material em texto
M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L Maxima no Ca´lculo (Interface gra´fica wxMaxima) Ulysses Sodre´ Andrielber da Silva Oliveira Soˆnia Ferreira Lopes Toffoli Giovana Alves Isabela Belansson Londrina-PR, 20 de Maio de 2009 Arq: maxcalc.tex Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L CONTEU´DO 2 Conteu´do 1 Detalhes gerais sobre o Maxima 5 1.1 Mini histo´ria do Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Sobre a instalac¸a˜o do Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Menus do wxMaxima e todas as suas alternativas . . . . . . . . . . . . . . . . . 7 1.4 A linha de comando na interface wxMaxima . . . . . . . . . . . . . . . . . . . . 11 1.5 Uma pequena lista de func¸o˜es do Maxima . . . . . . . . . . . . . . . . . . . . . 16 2 Ca´lculos nume´ricos 18 2.1 Ca´lculos com expresso˜es reais . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Ca´lculos de somas e produtos finitos e infinitos . . . . . . . . . . . . . . . . . . 20 3 Ca´lculos alge´bricos 22 3.1 Expandindo, fatorando e substituindo . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Expresso˜es com nu´meros complexos . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 Resoluc¸a˜o de um sistema linear . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Resoluc¸a˜o de um sistema alge´brico na˜o linear . . . . . . . . . . . . . . . . . . . 25 3.5 Trabalhando com precisa˜o nas respostas . . . . . . . . . . . . . . . . . . . . . . 25 3.6 Zeros de polinomiais de uma varia´vel . . . . . . . . . . . . . . . . . . . . . . . 26 4 Elementos de A´lgebra Linear 28 4.1 Listas no Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.2 Operac¸o˜es com vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3 Principais operac¸o˜es com matrizes . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4 Inversa de uma matriz atrave´s do escalonamento . . . . . . . . . . . . . . . . . . 42 4.5 Inversa de matriz por escalonamento (forma alternativa) . . . . . . . . . . . . . . 44 4.6 Outra forma para obter a inversa por escalonamento . . . . . . . . . . . . . . . . 45 5 Ca´lculo diferencial e Integral 47 5.1 Limites, Derivadas e diferenciais . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2 Atribuindo valor a um ponto do domı´nio de uma func¸a˜o . . . . . . . . . . . . . . 52 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L CONTEU´DO 3 5.3 Integrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.4 Decomposic¸a˜o em frac¸o˜es parciais . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.5 Integrac¸a˜o por substituic¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.6 Expansa˜o de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.7 Comprimento de arco de uma curva . . . . . . . . . . . . . . . . . . . . . . . . 58 5.8 Resolvendo equac¸o˜es diferenciais ordina´rias . . . . . . . . . . . . . . . . . . . . 60 5.9 Integrais de Linha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6 Transformac¸o˜es Trigonome´tricas 66 7 Maxima no Ca´lculo de func¸o˜es de Va´rias varia´veis 67 7.1 Derivadas parciais e aplicac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2 Ma´ximos e Mı´nimos com multiplicadores de Lagrange . . . . . . . . . . . . . . 69 7.3 Ma´ximos e Mı´nimos com o Teorema de Sylvester . . . . . . . . . . . . . . . . . 72 7.4 Sequeˆncias e Se´ries nume´ricas reais . . . . . . . . . . . . . . . . . . . . . . . . 75 7.5 Se´ries de poteˆncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 8 Elementos de geometria diferencial no plano 85 9 Equac¸o˜es Recursivas 87 10 Interpolac¸a˜o de Lagrange e Interpolac¸a˜o por spline 89 11 Ajuste linear 93 I´ndice 95 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L CONTEU´DO 4 Introduc¸a˜o OMaxima (1) e´ um CAS (Computer Algebra System) que realiza muitas operac¸o˜es matema´-ticas simbo´licas da lista apresentada abaixo. O Maxima (freeware) equivale ao Maple. Neste trabalho, usamos a interface gra´fica wxMaxima para Windows, abordando as principais func¸o˜es utilizadas nas operac¸o˜es matema´ticas que esta˜o dispo-nı´veis no Maxima. Na˜o tivemos a menor intenc¸a˜o de abordar as milhares de func¸o˜es existentes no Maxima. Existem alternativas para todos os outros grandes sistemas operacionais. Na Sec¸a˜o I, no´s apresentamos uma mini histo´ria do Maxima e citamos alguns detalhes sobre a instalac¸a˜o do Maxima. Mostramos todos os Menus do wxMaxima, bem como todas as suas alternativas. Destacamos atenc¸a˜o especial a` linha de comando. Na Sec¸a˜o II, realizamos ca´lculos nume´ricos no Maxima, usando a matema´tica: dos nu´meros racionais, dos nu´meros decimais (float) e dos nu´meros decimais com muitos dı´gitos (bigfloat). Tratamos tambe´m de ca´lculos de somato´rios (somas) e produtos, tanto finitos como infinitos. Na Sec¸a˜o III, estudamos ca´lculos alge´bricos com expansa˜o e fatorac¸a˜o de expresso˜es reais ou complexas, substituic¸a˜o de valores em expresso˜es, resoluc¸a˜o de sistemas lineares e na˜o-lineares. Trabalhamos com precisa˜o de muitos dı´gitos nas respostas dos problemas. Calculamos zeros de func¸o˜es polinomiais de uma varia´vel. Na Sec¸a˜o IV, abordamos elementos de A´lgebra Linear com listas, vetores, matrizes e suas principais operac¸o˜es e inversa de uma matriz por escalonamento. Na Sec¸a˜o V, estudamos o Ca´lculo diferencial e Integral. Tratamos sobre limites, derivadas, diferenciais, integrais, frac¸o˜es parciais, integrac¸a˜o por substituic¸a˜o, expansa˜o de Taylor, comprimento de arco de uma curva e resolvemos equac¸o˜es diferenciais ordina´rias. Na sec¸a˜o VI, tratamos sobre transformac¸o˜es Trigonome´tricas, elementos de geometria diferencial no plano, equac¸o˜es recursivas, interpolac¸a˜o, aproximac¸a˜o e ajuste linear. Na sec¸a˜o VII, realizamos aplicac¸o˜es no Ca´lculo de func¸o˜es de va´rias varia´veis, incluindo Derivadas parciais, Ma´ximos e Mı´nimos com multiplicadores de Lagrange e com o Teorema de Sylvester, Sequeˆncias e Se´ries de nu´meros reais e Se´ries de poteˆncias. Nas outras sec¸o˜es, estudamos Elementos de Geometria diferencial, Sequeˆncias recursivas e alguns elementos de Interpolac¸a˜o e Aproximac¸a˜o. O nu´cleo de um CAS manipula simbolicamente expresso˜es matema´ticas, incluindo: 1. Simplificac¸a˜o de expresso˜es, simplificac¸a˜o automa´tica com hipo´teses e restric¸o˜es. Substituic¸a˜o e operac¸o˜es simbo´licas ou nume´ricas com precisa˜o arbitra´ria. 2. Mudanc¸a da forma de expresso˜es: expansa˜o, produtos e somas, fatorac¸a˜o, frac¸o˜es parciais, reescrever func¸o˜es trigonome´tricas como exponenciais. 3. Diferenciac¸a˜o parcial e total. Estudos de otimizac¸a˜o com e sem restric¸a˜o. 4. Soluc¸a˜o exata ou aproximada de sistemas de equac¸o˜es lineares ou na˜o-lineares. 5. Soluc¸a˜o de algumas equac¸o˜es diferenciais ordina´rias e equac¸o˜es de diferenc¸as. 1 Maxima deve ser lida como Mæk-sima. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L Sec¸a˜o 1 Detalhes gerais sobre o Maxima 5 6. Ca´lculos de: limites, derivadas, integrais definidas e indefinidas, nume´ricas, inclusive em va´rias varia´veis, transformadas integrais de Laplace e Fourier. 7. Operac¸o˜es com se´ries nume´ricas e de poteˆncias como expansa˜o, soma e produto. 8. Operac¸o˜es com matrizes incluindo produto direto e ca´lculo de inversas. 9. Mostra de expresso˜es matema´ticas em uma forma matema´tica como em LaTeX. 10. Pacotes adicionais de Matema´tica aplicada, Fı´sica e Estatı´stica. 11. Plotagem de gra´ficos 2D, 3D e parame´tricos de func¸o˜es bem como animac¸a˜o. 12. Inclusa˜o de alguma linguagem de programac¸a˜o. 1 Detalhes gerais sobre o Maxima 1.1 Mini histo´ria do Maxima Maxima e´ um sistema de a´lgebra computacional, implementado em Lisp. O Maxima e´ derivado do sistema Macsyma, desenvolvido no MIT nos anos de 1968 a 1982 como parte do Projeto MAC. MIT remanejou uma co´pia do co´digo fonte do Macsyma para o Departamento de Energia em 1982; aquela versa˜o e´ agora conhecida como Macsyma DOE. Uma co´pia do Macsyma DOE foi mantida pelo Professor William F. Schelter da Universidade do Texas de 1982 ate´ sua morte em 2001. Em 1998, Schelter obteve permissa˜o do Departamento de Energia para liberar o co´digo fonte do Macsyma DOE sob a Licenc¸a Pu´blica GNU, e em 2000 ele iniciou o projeto Maxima no SourceForge para manter e desenvolver o Macsyma DOE, agora chamado Maxima. 1.2 Sobre a instalac¸a˜o do Maxima 1. Para executar o Maxima no Windows ou no Linux, digite Maxima: Linhas de comando maxima [ENTER] 2. Se voceˆ usa o Windows, eu sugiro que instale o Maxima na pasta C:\Maxima do seu com- putador. 3. Para este material, utilizamos a versa˜o 5.14.0, com a interface gra´fica wxMaxima versa˜o 0.7.4 tendo os comandos escritos em Portugueˆs usado no Brasil. 4. O processo de instalac¸a˜o do Maxima no Windows, cria um ı´cone com a forma: 5. Podemos usar a interface gra´fica wxMaxima, pressionando este ı´cone. 6. Apo´s inicializar o programa wxmaxima.exe, voceˆ vera´ uma janela contendo algo como: Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.2 Sobre a instalac¸a˜o do Maxima 6 Maxima: Linhas de comando /* wxMaxima 0.7.4 http://wxmaxima.sourceforge.net Maxima 5.14.0 http://maxima.sourceforge.net Using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (aka GCL) Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) 7. Na u´ltima linha da tela mostrada acima, voceˆ vera´ o ro´tulo (%i1) (input1) que significa a primeira entrada da linha de comando do Maxima. 8. Na parte inferior da janela aberta ha´ uma a´rea com uma caixa de entrada: 9. Nesta figura, esta˜o doze boto˜es com as principais func¸o˜es usadas no Maxima. 10. A caixa denominada ENTRADA: e´ muito importante. Atrave´s dela, podemos inserir as nossas expresso˜es matema´ticas. Observe que eu ja´ digitei 10! (fatorial de 10): Maxima: Linhas de comando 10! 11. Tomando o cuidado de na˜o alterar o co´digo, (a menos que saiba o que esta´ fazendo), digite 10! e depois pressione a tecla Enter para obter: Maxima: Linhas de comando (%o1) 3628800; 12. A resposta (%o1) (output1) que aparece no notebook e´ o resultado da operac¸a˜o solicitada na linha de comando que tem a etiqueta (%i1). 13. Muitas vezes indicaremos o co´digo a ser digitado e a resposta por: Maxima: Linhas de comando 10!; >>> 3628800 14. Outras vezes, a resposta ficara´ centralizada apo´s o co´digo. Fatoramos a saı´da da u´ltima operac¸a˜o (%) com: Maxima: Linhas de comando factor(%); 28 34 52 7 15. Para Encerrar a sessa˜o do Maxima, pressione as teclas Ctrl-Q , isto e´, pressione a tecla Ctrl com um dedo e ao mesmo tempo pressione a tecla Q com outro dedo. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.3 Menus do wxMaxima e todas as suas alternativas 7 1.3 Menus do wxMaxima e todas as suas alternativas As entradas mais comuns do Maxima possuem teclas de atalho na interface wxMaxima, como por exemplo, as teclas Ctrl-O que serve para Abrir um Arquivo. Arquivo Aqui ficam informac¸o˜es sobre arquivos de entrada e arquivos saı´da do Maxima. Abrir Ctrl-O Abrir um arquivo com a extensa˜o wxm. Read File Ler um arquivo com a extensa˜o wxm. Salvar Ctrl-S Salvar um arquivo com a extensa˜o wxm. Salvar como Salvar um arquivo com um nome e extensa˜o desejados pelo usua´rio. Carregar pacote Ctrl-L Carregar pacote com a extensa˜o wxm. Carregar arquivo batch Ctrl-B Carrega um pacote com a extensa˜o bat. Exportar para HTML Exporta o notebook aberto como uma pa´gina HTML. Selecionar arquivo Monitorar arquivo Imprimir Ctrl-P Imprimir o notebook aberto. Sair Ctrl-Q Encerrar a sessa˜o do Maxima. Editar Detalhes sobre o processo de edic¸a˜o do notebook. Copiar Ctrl-C Copia a parte selecionada para o clipboard. Copiar texto Ctrl-C Copia a parte selecionada como texto para o clipboard. Copiar TeX Copia a parte selecionada como LaTeX para o clipboard. Apagar selec¸a˜o Elimina a entrada selecionada. Copiar como imagem Copia a parte selecionada como uma imagem. Selec¸a˜o para imagem Seleciona uma imagem. Selec¸a˜o para entrada F5 Recortar Ctrl-X Copia a parte selecionada para o clipboard e elimina o mesmo do local onde a parte esta´. Colar Ctrl-V Cola o material que esta´ no clipboard. Desdobrar Abrir a a´rea etiquetada. Entrada longa Ctrl-I Abre janela de edic¸a˜o para entrada com va´rias linhas. Editar entrada Ctrl-E Edita a parte selecionada. Reavaliar entrada Ctrl-R Executa de novo a entrada selecionada. Inserir Inserir entrada, texto, nome e tı´tulo da sessa˜o. Entrada F7 Insere uma expressa˜o matema´tica. Texto F6 Inserir texto. Sessa˜o Ctrl-F6 Inserir nome da sessa˜o. Tı´tulo Ctrl-Shift-P Inserir tı´tulo do capı´tulo desenvolvido. Limpar a tela Limpa a tela completamente. Aproximar Alt-I Afastar Alt-O Ir a` entrada F4 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.3 Menus do wxMaxima e todas as suas alternativas 8 Ir a` janela de saı´da F3 Selecionar u´ltima entrada F2 Configurar Configurac¸o˜es gerais da interface wxMaxima. Maxima Detalhes sobre o funcionamento do Maxima. Interromper Ctrl-G Interrompe uma operac¸a˜o que esta´ sendo realizada pelo Maxima. Reiniciar Maxima Reinicia o Maxima, limpando as func¸o˜es, limpando as varia´veis e limpando as expresso˜es que estavam na memo´ria. Limpar memo´ria Limpa a memo´ria, isto e´, limpa todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria. Adicionar ao caminho Mostrar func¸o˜es Mostra as func¸o˜es usadas na sessa˜o atual. Mostrar definic¸o˜es Mostra as definic¸o˜es usadas na sessa˜o atual. Mostrar varia´veis Mostra todas as varia´veis usadas na sessa˜o atual. Apagar func¸a˜o Elimina uma func¸a˜o. Apagar varia´vel Elimina uma varia´vel. Alternar exibic¸a˜o do tempo Indica o tempo gasto em uma tarefa. Alterar exibic¸a˜o 2D Alterna as expresso˜es como xml, ascii ou none. Mostrar forma TeX Mostra a expressa˜o como uma expressa˜o em TeX. Equac¸o˜es Detalhes sobre equac¸o˜es. Resolver ... Abre janela de dia´logo para resolver uma equac¸a˜o exatamente. Resolver numericamente ...Abre janela de dia´logo para resolver uma equac¸a˜o numeri- camente. Raı´zes de polinoˆmio Obte´m todas as raı´zes do polinoˆmio indicado na passagem anterior com a func¸a˜o allroots. Raı´zes do polinoˆmio (real) Obte´m todas as raı´zes reais do polinoˆmio indicado na pas- sagem anterior com a func¸a˜o realroots. Resolver sistema linear ... Janela de dia´logo para obter o nu´mero de equac¸o˜es do sistema e na sequ¨eˆncia abre outra janela para receber as equac¸o˜es e tambe´m as varia´veis que sera˜o obtidas na soluc¸a˜o em func¸a˜o das equac¸o˜es. Resolver sistema alge´brico ... Janela de dia´logo para obter o nu´mero de equac¸o˜es do sis- tema e na sequ¨eˆncia abre outra janela para receber as equac¸o˜es e tambe´m as varia´veis que sera˜o obtidas na soluc¸a˜o em func¸a˜o das equac¸o˜es. Eliminar varia´vel ... Janela de dia´logo para eliminar uma varia´vel de uma expressa˜o matema´tica. Resolver EDO ... Janela de dia´logo para resolver EDO. Problema de valor inicial (1) ... Janela de dia´logo para resolver um PVI1. Problema de valor inicial (2) ... Janela de dia´logo para resolver um PVI2. Problema de valor de fronteira ... Janela de dia´logo para resolver um PVF Problema de valor de fronteira. Resolver EDO com Laplace ... Janela de dia´logo para resolver uma EDO atrave´s do me´todo de Laplace. Valor no ponto ... Janela de dia´logo para associar um valor a um ponto. A´lgebra Operac¸o˜es comuns da A´lgebra e da A´lgebra Linear. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.3 Menus do wxMaxima e todas as suas alternativas 9 Gerar matriz ... Janela de dia´logo para gerar uma matriz com as entradas postas uma a uma, de uma forma lenta. Introduzir matriz ... Janela de dia´logo para inserir uma matriz com todas as entradas em uma caixa. Inverter matriz Inverte a matriz indicada na u´ltima passagem. Polinoˆmio caracterı´stico ... Janela de dia´logo para gerar o polinoˆmio caracterı´stico de uma matriz. Determinante Calcula o determinante de uma matriz. Autovalores Calcula os autovalores (e suas multiplicidades) de uma matriz. Autovetores Calcula os autovetores, autovalores (e suas multiplicidades). Matriz adjunta Calcula a matriz adjunta de uma matriz dada. Transpor matriz Calcula a transposta de uma matriz dada. Criar lista ... Janela de dia´logo para gerar uma lista de uma certa expressa˜o, quando a varia´vel percorre um certo domı´nio. Aplicar lista ... Janela de dia´logo para aplicar uma operac¸a˜o a uma lista existente. Mapear lista ... Janela de dia´logo para aplicar uma func¸a˜o a uma lista. Mapear a uma matriz ... Janela de dia´logo para aplicar uma func¸a˜o a uma matriz. Ca´lculo Operac¸o˜es de Ca´lculo Diferencial e Integral. Integrar ... Janela de dia´logo para realizar a integral de uma func¸a˜o. Integrac¸a˜o Risch ... Janela de dia´logo para a integral de Risch de uma func¸a˜o. Mudar varia´vel ... Janela de dia´logo para realizar uma mudanc¸a de varia´vel em uma ex- pressa˜o matema´tica. Diferenciar ... Janela de dia´logo para a derivada ou diferencial de uma func¸a˜o. Encontrar limite ... Janela de dia´logo para calcular o limite de uma func¸a˜o. Obter se´rie ... Janela de dia´logo para gerar a se´rie de Taylor de uma func¸a˜o. Aproximac¸a˜o de Pade´ ... Janela de dia´logo para gerar a aproximac¸a˜o de Pade´. Calcular soma ... Janela de dia´logo para gerar a soma (o somato´rio) de uma expressa˜o indexada sobre um certo domı´nio. Calcular produto ... Janela de dia´logo para gerar o produto de uma expressa˜o indexada sobre um certo domı´nio. Transformada de Laplace ... Janela de dia´logo para calcular a transformada de Laplace de uma func¸a˜o. Transformada inversa de Laplace ... Janela de dia´logo para calcular a transformada in- versa de Laplace de uma func¸a˜o. Ma´ximo divisor comum ... Janela de dia´logo para calcular o ma´ximo divisor comum en- tre polinoˆmios. Mı´nimo mu´ltiplo comum ... Janela de dia´logo para calcular o mı´nimo mu´ltiplo comum entre polinoˆmios. Dividir polinoˆmios ... Janela de dia´logo para dividir polinoˆmios e indicar o resto em uma lista. Frac¸o˜es parciais ... Janela de dia´logo para realizar a decomposic¸a˜o de uma expressa˜o racional em frac¸o˜es parciais. Frac¸a˜o contı´nua Gera uma frac¸a˜o contı´nua a partir de uma lista de nu´meros inteiros. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.3 Menus do wxMaxima e todas as suas alternativas 10 Simplificar Processos de simplificac¸a˜o de expresso˜es. Simplificar expressa˜o Simplificac¸a˜o racional da expressa˜o com a func¸a˜o ratsimp. Ver bota˜o Simplificar na a´rea de baixo do notebook. Simplificar radicais Simplifica uma expressa˜o que pode conter logaritmos, exponenciais e radicais, converte-a em uma expressa˜o comum, usando a func¸a˜o radcan. Ver bota˜o Simplificar (r) na a´rea de baixo do notebook. Fatorar expressa˜o Fatora uma expressa˜o real com a func¸a˜o factor. Ver bota˜o Fatorar na a´rea de baixo do notebook. Fatorar complexo Fatorar expressa˜o complexa com a func¸a˜o gfactor. Expandir expressa˜o Expandir expressa˜o com a func¸a˜o expand. Ver bota˜o Expandir na a´rea de baixo do notebook. Expandir logaritmos Expandir expressa˜o com logaritmos. Contrair logaritmos Contrair expressa˜o com logaritmos. Fatoriais e gama Realiza ca´lculos de fatoriais e com a func¸a˜o gamma. Converter para fatoriais Converter binoˆmios e as func¸o˜es Beta e Gama para fatoriais. Converter para gama Converter binoˆmios, fatoriais e a func¸a˜o beta para func¸a˜o gama. Simplificar fatoriais Simplificar uma expressa˜o envolvendo fatoriais. Combinar fatoriais Combinar uma expressa˜o envolvendo fatoriais. Simplificac¸a˜o trigonome´trica Simplificac¸a˜o de expresso˜es trigonome´tricas. Simplificar trigonome´tricas Simplifica expressa˜o trigonome´trica utilizando a func¸a˜o trigsimp. Ver bota˜o Simplificar (tr) na a´rea de baixo do notebook. Reduzir trigonome´tricas Reduz expressa˜o trigonome´trica com a func¸a˜o trigreduce. Ver bota˜o Reduzir (tr) na a´rea de baixo do notebook. Expandir trigonome´tricas Expande expressa˜o trigonome´trica utilizando a func¸a˜o trigexpand. Ver bota˜o Expandir (tr) na a´rea de baixo do notebook. Forma canoˆnica Simplifica expressa˜o trigonome´trica a uma forma canoˆnica com a func¸a˜o trigrat. Simplificac¸a˜o complexa Realiza simplificac¸o˜es em expresso˜es complexas. Converter para forma retangular Converte uma expressa˜o complexa para a forma retangular com a func¸a˜o rectform. Ver bota˜o Forma ret na a´rea de baixo do notebook. Converter para forma polar Converte expressa˜o complexa para a forma polar. Obter parte real Gera a parte real de expressa˜o complexa. Obter parte imagina´ria Gera a parte imagina´ria de expressa˜o complexa. Demoivre Converte func¸a˜o exponencial de argumento imagina´rio para a forma trigonome´trica. Exponencializar Converte func¸o˜es trigonome´tricas para a forma exponencial. Substituir ... Substituir varia´vel em uma expressa˜o. Avaliar formas substantivas Avaliar todas as formas substantivas na expressa˜o. Alternar flag alge´brico Adicionar igualdade alge´brica ... Adicionar igualdade ao simplificador racional. Ca´lculo com mo´dulo ... Configurar calculos com mo´dulo. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.4 A linha de comando na interface wxMaxima 11 Gra´ficos Realizar a construc¸a˜o de gra´ficos.Gra´ficos 2D ... Janela de dia´logo para a construc¸a˜o de gra´ficos 2D. Gra´ficos 3D ... Janela de dia´logo para a construc¸a˜o de gra´ficos 3D. Formato do gra´fico ... Janela de dia´logo para ajustar o formato do gra´fico. Nume´rico Alternativas para saı´das nume´ricas. Alternar saı´da nume´rica Alternar saı´da nume´rica. Para float Gera a saı´da float de uma expressa˜o. Para bfloat Gera a saı´da bfloat de uma expressa˜o. Ajustar precisa˜o ... Janela de dia´logo para ajustar precisa˜o de ponto flutuante. Ajuda Sistema de Ajuda do Maxima. Ajuda do Maxima F1 Mostrar help do Ma´xima. Descrever Ctrl-H Mostrar a descric¸a˜o de comando. Exemplo Mostra exemplos de uso de comando indicado. Apropos Mostra comandos semelhantes ao comando indicado. Mostrar dica Mostra dica do Maxima. Informac¸o˜es da versa˜o Informac¸o˜es sobre a Versa˜o do Maxima. Relatar bug Relatar bug no programa. Sobre Informac¸o˜es sobre o Maxima 1.4 A linha de comando na interface wxMaxima 1. O Maxima pode ser usado em linha de comando com a interface wxMaxima. Voceˆ informa um comando, obte´m uma resposta e pode inserir o comando seguinte. 2. O objeto (%i1) e´ uma etiqueta. Cada linha de entrada ou linha de saı´da possui uma etiqueta numerada. 3. As etiquetas numeradas podem ser usadas como refereˆncias em outras expresso˜es ate´ o final da sessa˜o. Nunca use nomes de varia´veis como %i1 ou %o5, pois isto causara´ confusa˜o com as linhas etiquetadas. 4. As etiquetas com i (input) denotam comandos e etiquetas com o (output) denotam re- spostas geradas pelo Maxima. 5. Todas as func¸o˜es embutidas possuem nomes que esta˜o em minu´sculas como por exemplo: sin, cos, save, load, etc. 6. As principais constantes embutidas possuem nomes em minu´sculas como por exemplo: %e, %pi, inf, minf, infinity, etc. 7. O Maxima e´ sensı´vel ao contexto, isto e´, letras maiu´sculas e minu´sculas sa˜o diferentes. 8. Se voceˆ digitar SIN(x) ou Sin(x), o Maxima assume que voceˆ quer escrever alguma outra func¸a˜o embutida que e´ diferente da func¸a˜o sin. 9. Nomes de func¸o˜es e varia´veis definidas pelo usua´rio podem ter maiu´sculas func(XY), minu´sculas FUNC(xy) ou ambas, como Func(Xy), Func(xY), que sa˜o diferentes. 10. Encerramos uma linha de comando com ponto e vı´rgula (;) seguido da tecla Enter . Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 1.4 A linha de comando na interface wxMaxima 12 11. Um comando simples e´ uma expressa˜o com um ponto e vı´rgula ; no final, e neste caso, a resposta e´ mostrada na tela. Maxima: Linhas de comando 2*5; >>> 10 12. A tecla Enter sozinha na˜o indica que voceˆ realizou a sua entrada, mas se voceˆ esquecer do ponto e vı´rgula no final da linha de comando da interface wxMaxima, a interface colocara´ este ponto para voceˆ. 13. Voceˆ pode escrever va´rios comandos na mesma linha de comando, desde que use o sinal de ponto e vı´rgula ; entre estes comandos: Maxima: Linhas de comando 10^1; 10^3; 10^5; >>> 10 1000 100000 14. Voceˆ pode realizar a mesma operac¸a˜o que antes usando a func¸a˜o display: Maxima: Linhas de comando display(10^1); display(10^3); display(10^5); 101 = 10 103 = 1000 105 = 100000 15. Voceˆ pode obter o mesmo resultado que antes usando o func¸a˜o do. Assim, para cada i=1 ate´ 5 com passo 2, mostra a pote^ncia 10i: Maxima: Linhas de comando for i:1 thru 5 step 2 do display(10^i); 16. Realizamos a mesma operac¸a˜o que antes usando o func¸a˜o ldisplay: Maxima: Linhas de comando ldisplay(a[1]:10^1); ldisplay(a[3]:10^3); ldisplay(a[5]:10^5); a1 = 10 a3 = 1000 a5 = 100000 17. Podemos realizar a mesma operac¸a˜o que antes usando o func¸a˜o do: Maxima: Linhas de comando for i:1 thru 5 step 2 do ldisplay(a[i]:10^i); a1 = 10 a3 = 1000 a5 = 100000 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.4 A linha de comando na interface wxMaxima 13 18. Podemos escrever va´rios comandos na mesma linha de comando, com vı´rgulas entre os comandos, envolvendo toda a linha com um par de colchetes [ ]: Maxima: Linhas de comando [10^2, 10^3, 10^4]; >>> [100, 1000, 10000] 19. Uma entrada com um dollar ($) no final, faz com que a resposta na˜o aparec¸a na tela. Isto e´ u´til para resultados intermedia´rios longos que na˜o desejamos mostrar na tela. Maxima: Linhas de comando 2^50$ 20. Para criar uma linha de comando com va´rias linhas de texto, a interface wxMaxima possui a tecla de atalho Ctrl+I que abre uma janela e permite editar a expressa˜o. 21. Um comando complexo pode exigir mais do que uma linha de comando e as linhas podem ser encerradas com um ponto e vı´rgula ou com um dollar. Maxima: Linhas de comando load("diag")$ A: matrix([2,0],[3,5])$ jordan(A)$ minimalPoly(%); >>> (x-5)(x-2) Assim, o polinoˆmio minimal da matriz A e´ dado por m(x) = (x−5)(x−2). 22. No Maxima, o sinal de multiplicac¸a˜o de expresso˜es nume´ricas ou literais, e´ um asterisco *. Na notac¸a˜o comum da matema´tica, a resposta aparece sem o sinal. Maxima: Linhas de comando (x+2)*(x-3); >>> (x-3)(x+2) 23. O SINAL % REPRESENTA A U´LTIMA EXPRESSA˜O CALCULADA PELO MAXIMA. 24. Para expandir o produto obtido no u´ltimo resultado, basta digitar: Maxima: Linhas de comando expand(%); x2− x−6 25. O Maxima interpreta os expoentes por treˆs formas distintas, sendo duas coincidentes: Maxima: Linhas de comando [x^3^4, x^(3^4), (x^3)^4]; [x81, x81, x12] 26. Para associar um valor a uma varia´vel, use dois pontos (:), que na˜o e´ um sinal de igualdade (Observac¸a˜o: O sinal de igualdade e´ usado em equac¸o˜es). Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.4 A linha de comando na interface wxMaxima 14 27. No Maxima, podemos associar uma constante a um valor e depois utilizar esta constante em algum ca´lculo. Maxima: Linhas de comando (%i1) c:10; c^2; (%o1) 10 (%o2) 100 28. Pondo uma aspa simples ’ (apo´strofe) antes da expressa˜o, o Maxima evita o ca´lculo da expressa˜o, gerando uma expressa˜o denominada substantiva no Maxima. Maxima: Linhas de comando ’c^2; c2 29. Pondo duas aspas simples ’’ (apo´strofes) antes da expressa˜o, o Maxima realizara´ o ca´lculo da expressa˜o substantiva. Maxima: Linhas de comando ’’c^2; >>> 100 30. Para repetir uma linha (%i2) que ja´ foi digitada anteriormente, basta usar a etiqueta ’’%i2 com duas aspas simples (’’) antes dela. Na˜o use aspas duplas! Maxima: Linhas de comando ’’%i2; Esta forma repete a linha (%i2) sem digitar de novo, os comandos, func¸o˜es e varia´veis da linha toda. 31. Todos os comandos digitados em uma sessa˜o do Maxima ficam armazenados na memo´ria do computador, sob o nome de history da sessa˜o. Para acessar tais comandos, basta pres- sionar as quatro setas de movimento do cursor: ↑ ← ↓ → 32. Para repetir um comando que voceˆ ja´ foi digitado, basta acessar o referido comando com as setas de movimento do cursor. 33. Se existe uma linha com a expressa˜o c^2; basta voceˆ procurar tal linha com as setas de movimento (para cima e para baixo) e ao encontrar a mesma, pressionar Enter sem realizar todo o trabalho de digitac¸a˜o. 34. Para usar o u´ltimo resultado calculado, use a respectiva etiqueta de saı´da o ou o sı´mbolo especial de porcentagem (%). 35. Para interromper um ca´lculo sem sair do Maxima, pressioneCtrl+G . Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.4 A linha de comando na interface wxMaxima 15 36. Se, apo´s digitar um co´digo, voceˆ observa que o ca´lculo demora para realizar a operac¸a˜o: Maxima: Linhas de comando sum(1/x^2, x, 1, 1000000); utilize a tecla de atalho Ctrl+G para interromper a operac¸a˜o. 37. Voceˆ vera´ uma tela com uma mensagem semelhante a esta: Maxima: Linhas de comando Maxima encountered a Lisp error: Console interrupt. Automatically continuing. To reenable the Lisp debugger set *debugger-hook* to nil. 38. As constantes e (base do logaritmo natural), i (raiz quadrada de -1) e pi (3.14159) sa˜o referidas como %e, %i e %pi, como: Maxima: Linhas de comando [ %pi , %e , %i] 39. O uso de % nas constantes nada tem a ver com o uso de % na refereˆncia ao ca´lculo. 40. Voceˆ pode obter ajuda sobre uma palavra como zeromatrix no Maxima, com: Maxima: Linhas de comando ?? zeromatrix; 41. Voceˆ obtera´ uma resposta semelhante a: Maxima: Linhas de comando 0: zeromatrix (Func¸~oes e Varia´veis Def. Matrizes e A´lgebra Linear) 1: zeromatrixp (Func¸~oes e Varia´veis Definidas para linearalgebra) Enter space-separated numbers, ‘all’ or ‘none’: 42. Para ver informac¸o˜es sobre 1: zeromatrixp, digite 1 e pressione a tecla Enter . Voceˆ devera´ ver uma tela semelhante a Maxima: Linhas de comando -- Func¸~ao: zeromatrixp (<M>) Se <M> n~ao for uma matriz de bloco, retorna ‘true’ se ‘is(equal(<e>,0))’ for verdadeiro para cada elemento <e> da matriz <M>. Se <M> for uma matriz de bloco, retorna ‘true’ se ‘zeromatrixp’ avaliar para ‘true’ para cada elemento de <e>. (%o6) true 43. Voceˆ pode obter um exemplo de como usar a palavra laplace no Maxima, com: Maxima: Linhas de comando example(laplace); laplace(%e(a+2*t)*sin(t)*t, t, s) ea (2s−4) (s2−4s+5)2 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.5 Uma pequena lista de func¸o˜es do Maxima 16 1.5 Uma pequena lista de func¸o˜es do Maxima Ver o manual de refereˆncia do Maxima doc/html/maxima_toc.html (na pasta principal de instalac¸a˜o do Maxima). No pro´prio Maxima, voceˆ pode usar describe(NomeFuncao). allroots(a) Obte´m todas as (em geral complexas) raı´zes da equac¸a˜o polinomial A e lista as mesmas em formato numerico (isto e´, com 16 dı´gitos significativos). append(a,b) Anexa a lista b a` list a, resultando uma u´nica lista. batch(a) Carrega e roda um programa denominado a. coeff(a,b,c) Toma a expressa˜o a e fornece os coeficientes de b elevado a` poteˆncia c. concat(a,b) Concatena o sı´mbolo a com o sı´mbolo b, criando o sı´mbolo ab. cons(a,b) Acrescenta o objeto a a` lista b como o seu primeiro elemento. demoivre(a) Transforma as exponenciais complexas a para suas equivalentes trigonome´tricas. denom(a) Fornece o denominador de a. Por exemplo: Maxima: Linhas de comando a:= (1+x)/(1-x^2); denom(a) depends(a,b) Declara a como uma func¸a˜o de b. Isto e´ u´til para escrever derivadas na˜o avaliadas, usadas em Equac¸o˜es Diferenciais. desolve(a,b) Tenta resolver um sistema linear a de Equac¸o˜es Diferenciais Ordina´rias para as inco´gnitas b usando Transformadas de Laplace. determinant(a) Retorna o determinante de uma matriz quadrada a. diff(a,b1,c1,b2,c2,...,bn,cn) Gera a derivada parcial mixta de a com respeito a cada bi, ci vezes. diff(a,b,1) pode ser escrita como diff(a,b). ’diff(...) gera uma derivada na˜o avaliada, para ser usada em uma Equac¸a˜o Diferencial. eigenvalues(a) Retorna duas listas, a primeira com os autovalores de uma matriz quadrada a e a segunda com as suas respectivas multiplicidades. eigenvectors(a) Faz tudo que eigenvalues faz, e, ale´m disso, anexa uma lista dos autove- tores de a. entermatrix(a,b) Solicita que o usua´rio insira uma matriz a×b, elemento-a-elemento. ev(a,b1,b2,...,bn) Avalia a sob as condic¸o˜es bi. Os termos bi podem ser equac¸o˜es, listas de equac¸o˜es (como as retornadas por solve), ou associac¸o˜es, nesses casos ev ”plugs”os bi dentro de a. Os Bi podem ser palavras como numer (e o resultado retorna em formato nume´rico), detout (as matrizes inversas em a sa˜o realizadas com o determinante fatorado fora), ou diff (as derivadas em a sa˜o avaliadas, isto e´, ’diff em a e´ trocada por diff). Por simplicidade, em um comando manual (isto e´, na˜o dentro de uma func¸a˜o definida pelo usua´rio), o ev pode ser quebrado, reduzindo a sintaxe para a,b1,b2,...,bn. expand(a) Expande algebricamente a. Em particular, a multiplicac¸a˜o e´ distribuı´da sobre a adic¸a˜o. exponentialize(a) Transforma todas as func¸o˜es trigonome´tricas em a para as suas equiva- lentes exponenciais complexas. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 1.5 Uma pequena lista de func¸o˜es do Maxima 17 factor(a) Fatora a. freeof(a,b) Retorna true se a varia´vel a na˜o e´ parte da expressa˜o b. grind(a) Mostra uma varia´vel ou func¸a˜o a em um formato compacto. Quando usado com writefile e um editor fora do Maxima, oferece um esquema para produzir arquivos batch que incluem expresso˜es geradas pelo Maxima. ident(n) Returna uma matriz identidade n×n. imagpart(a) Retorna a parte imagina´ria de a. integrate(a,b) Tenta obter a integral indefinida de a com respeito a` varia´vel b. integrate(a,x,c,d) Tenta calcular a integral indefinida de a na varia´vel x, de x=c a x=d. Os limitantes de integrac¸a˜o c e d podem ser infinito: inf (positivo) ou minf (negativo). invert(a) Calcula a inversa da matriz quadrada a. kill(a) Remove a varia´vel a e as suas associac¸o˜es e propriedades do ambiente do Maxima. limit(a,x,c) Fornece o limite da expressa˜o a quando a varia´vel x se aproxima de c. O valor de c pode ser tomado como inf ou minf como em integrate. lhs(a) Fornece o lado esquerdo da equac¸a˜o a. loadfile(a) Carrega um arquivo de disco com o nome a a partir do direto´rio padra˜o. O arquivo do disco deve estar no formato pro´prio (isto e´, criado por um comando save. makelist(a,x,c,d) Cria uma lista de a’s (cada um dos quais talvez dependa de x), concatenado de x=c ate´ x=d. map(a,b) Aplica a func¸a˜o a sobre as subexpresso˜es de b. matrix(a1,a2,...,an) Cria uma matriz consistindo de linhas ai, onde cada linha ai e´ uma lista de m elementos [b1,b2,...,bm]. num(a) Fornece o numerador de a. ode2(Eq,y,x) Tenta resolver equac¸o˜es diferenciais ordina´rias Eq de primeira e segunda ordem na varia´vel y como func¸a˜o da varia´vel x. part(a,b1,b2,...,bn) Primeiro toma a parte de ordem b1 de a, depois a parte de ordem B2 daquela e assim por diante. playback(m) Mostra as u´ltimas m etiquetas e suas expresso˜es associadas. Se m e´ omitido, todas as linhas sa˜o mostradas. Ver o Manual para outras opc¸o˜es. ratsimp(a) Simplifica a e retorna um quociente de dois polinoˆmios. realpart(a) Retorna a parte real de a. rhs(a) Fornece o lado direito da equac¸a˜o a. save(a,b1,b2,..., bn) Cria um arquivo com nome a no atual direto´rio padra˜o, com varia´veis, func¸o˜es ou arrays bi. O formato do arquivo permite que ele seja carregado no Maxima com o comando loadfile. Tudo (mesmo as etiquetas) pode ser salvo se b1 e´ all. solve(Eq,x) Tenta resolver a equac¸a˜o alge´brica Eq para a inco´gnita x. Uma lista de soluc¸o˜es da equac¸a˜o e´ retornada. Mais simplesmente, se a e´ uma equac¸a˜o da forma Eq=0, ela pode ser abreviada simplesmente pela expressa˜o Eq. UlyssesSodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L Sec¸a˜o 2 Ca´lculos nume´ricos 18 string(a) Converte a para a notac¸a˜o linear do Maxima (similar a` notac¸a˜o de Fortran) exata- mente como se ela tivesse sido digitada e coloca a no buffer para possı´vel edic¸a˜o. A expressa˜o na forma de string na˜o deve ser usada nos ca´lculos. stringout(arq,b1,b2,...,bn) Cria um arquivo denominado arq no atual direto´rio padra˜o, com varia´veis (por exemplo, etiquetas) b1,b2,...,bn. O arquivo fica texto puro e na˜o pode ser recarregado no Maxima, mas as expresso˜es ‘stringout’ podem ser incorporadas em um programa Fortran, Basic ou C com pouca edic¸a˜o. subst(a,b,f) Substitui a por b em f. taylor(f,x,a,n) Expande f em uma se´rie de Taylor na varia´vel x em torno do ponto x=a, ate´ incluir o termo (x− a)n. Maxima tambe´m suporta expanso˜es de Taylor em mais do que uma varia´vel independente. Ver o Manual para detalhes. transpose(M) Fornece a transposta da matriz M. trigexpand(f) Expande uma func¸a˜o trigonome´trica simplificada f que usa fo´rmulas da soma de aˆngulos para simplificar os argumentos individuais de sin ou cos. Por exemplo, trigexpand(sin(x+y)) fornece cos(x)sin(y)+sin(x)cos(y). trigreduce(f) Func¸a˜o para simplificac¸a˜o trigonome´trica de f que faz uso de identidades para converter produtos e poteˆncias de sin e cos em uma soma de termos, cada uma delas contendo somente um simples sin ou cos. Por exemplo: trigreduce(sin(x)^2) fornece (1-cos(2x))/2. trigsimp(a) Func¸a˜o de simplificac¸a˜o trigonome´trica que troca tan, sec, etc., por seus equiva- lentes em sin e cos. Tambe´m reconhece a identidade sin2(x)+ cos2(x) = 1. 2 Ca´lculos nume´ricos 2.1 Ca´lculos com expresso˜es reais 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. As operac¸o˜es aritme´ticas comuns sa˜o: + adic¸a˜o, - subtrac¸a˜o, * multiplicac¸a˜o, / divisa˜o, ^ exponencial, ^^ poteˆncia de matrizes, . produto de matrizes e sqrt raiz quadrada. 3. Saı´das do Maxima sa˜o mostradas pela aritme´tica exata (racional). Maxima: Linhas de comando 1/100 + 1/101; 201 10100 4. Vamos associar um valor irracional a uma letra a. Na tela vemos a sua forma simbo´lica: Maxima: Linhas de comando a: (1 + sqrt(2))^5; ( √ 2+1) 5 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 2.1 Ca´lculos com expresso˜es reais 19 5. Expandimos o ca´lculo anterior e simplificamos com: Maxima: Linhas de comando expand(a); 29 √ 2+41 6. Para que um resultado seja mostrado em notac¸a˜o decimal, basta acrescentar a expressa˜o ,numer; no final da linha de comando. Maxima: Linhas de comando a, numer; >>> 82.01219330881976 7. O mesmo resultado pode ser visto em notac¸a˜o decimal, com a linha de comando. Maxima: Linhas de comando float(a); >>> 82.01219330881976 8. Nesta versa˜o do Maxima, o acre´scimo numer fornece 16 digitos significativos, sendo que o u´ltimo pode ser aproximado, e este nu´mero de dı´gitos e´ controlado pela varia´vel do Maxima fpprec, cujo valor padra˜o e´ 16. 9. Para saber o nu´mero de dı´gitos que o Maxima esta´ operando, digite: Maxima: Linhas de comando fpprec; >>> 16 10. O Maxima oferece alta precisa˜o de modo arbitra´rio com a func¸a˜o bfloat: Maxima: Linhas de comando bfloat(a); >>> 8.201219330881975b1 11. Modificaremos o nu´mero de dı´gitos com fpprec, para que a saı´da tenha 50 dı´gitos: Maxima: Linhas de comando fpprec: 50; >>> 50 12. Agora, solicitaremos o valor de a com o comando bfloat: Maxima: Linhas de comando bfloat(a); >>> 8.20121933088197465622215531766414642333984375b1 13. Com estas alterac¸o˜es, obteremos nu´meros grandes exatos: Maxima: Linhas de comando 40!; >>> 815915283247897734345611269596115894272000000000 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 2.2 Ca´lculos de somas e produtos finitos e infinitos 20 2.2 Ca´lculos de somas e produtos finitos e infinitos 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. Um somato´rio finito dos 100 primeiros nu´meros naturais: Maxima: Linhas de comando sum(n, n, 1, 100); >>> 5050 3. Somato´rios finitos dos quadrados e cubos dos 100 primeiros nu´meros naturais: Maxima: Linhas de comando sum(n^2, n, 1, 100); >>> 338350 sum(n^3, n, 1, 100); >>> 25502500 4. Um produto finito dos 20 primeiros nu´meros naturais: Maxima: Linhas de comando product(n, n, 1, 20); >>> 2432902008176640000 5. Produtos finitos dos quadrados e cubos dos 20 primeiros nu´meros naturais: Maxima: Linhas de comando product(n^2, n, 1, 20); >>> 5919012181389927685417441689600000000 product(n^3, n, 1, 20); >>> 14400376622525549608547603031202889616850944000000000000 6. Fo´rmulas das somas finitas das poteˆncias unita´rias, quadra´ticas e cu´bicas dos n primeiros nu´meros naturais: Maxima: Linhas de comando [sum(i,i,1,n), sum(i^2,i,1,n), sum(i^3,i,1,n)], simpsum=true; [ n2+n 2 , 2n3+3n2+n 6 , n4+2n3+n2 4 ] 7. Um produto finito com fatores polinomiais tendo coeficientes simples: Maxima: Linhas de comando % Comenta´rio: simplify_products:true; product(x+i, i, 1, 4); >>> (x+1)(x+2)(x+3)(x+4) 8. Um produto finito com fatores polinomiais tendo coeficientes funcionais: Maxima: Linhas de comando product(x+i*(i+1)/2, i, 1, 4); >>> (x+1)(x+3)(x+6)(x+10) Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 2.2 Ca´lculos de somas e produtos finitos e infinitos 21 9. Um produto finito sem simplificac¸a˜o: Maxima: Linhas de comando product(k, k, 1, n); n ∏ k=1 k 10. O mesmo produto finito do item anterior com simplificac¸a˜o: Maxima: Linhas de comando product(k, k, 1, n), simpproduct; >>> n! 11. Um produto finito mais complicado: Maxima: Linhas de comando product(integrate(x^k,x,0,1), k, 1, n); n ∏ k=1 1 k+1 12. Um produto finito de poteˆncias condicionais: Maxima: Linhas de comando product(if k<=5 then a^k else b^k, k, 1, 10); a1×a2×a3×a4×a5×b6×b7×b8×b9×b10 = a15 b40 13. Um somato´rio finito de 10 frac¸o˜es e´ realizado com: Maxima: Linhas de comando sum(1/(i*(i+1)), i, 1, 100); 14. Treˆs somas infinitas muito importantes: Maxima: Linhas de comando [A:sum(1/n^2,n,1,inf), B:sum(1/n^3,n,1,inf), C:sum(1/n^4,n,1,inf)]; [ ∞ ∑ n=1 1 n2 , ∞ ∑ n=1 1 n3 , ∞ ∑ n=1 1 n4 ] 15. Tais se´ries convergem, e os valores das mesmas, sa˜o obtidas com a opc¸a˜o simpsum=true: Maxima: Linhas de comando [A, B, C], simpsum=true; [ pi2 6 , ζ (3), pi4 90 ] 16. Tambe´m podemos adicionar somato´rios na˜o avaliados: Maxima: Linhas de comando A + B + C; ∞ ∑ n=1 1 n2 + ∞ ∑ n=1 1 n3 + ∞ ∑ n=1 1 n4 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u lo - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L Sec¸a˜o 3 Ca´lculos alge´bricos 22 17. Podemos colocar todos os termos sob um mesmo sinal de soma com sumcontract: Maxima: Linhas de comando sumcontract(%); ∞ ∑ n=1 1 n2 + 1 n3 + 1 n4 18. Agora vamos avaliar com a func¸a˜o ev (evaluation) esta soma Maxima: Linhas de comando ev(%,simpsum=true); ζ (3)+ pi4 90 + pi2 6 3 Ca´lculos alge´bricos 3.1 Expandindo, fatorando e substituindo 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. O Maxima e´ uma importante ferramenta computacional para realizar ca´lculos alge´bricos. Vemos isto quando o Maxima manipula expresso˜es alge´bricas. 3. Aqui esta´ uma expressa˜o polinomial: Maxima: Linhas de comando (x + 3*y + x^2*y)^2; (x2y+3y+ x)2 4. Vamos expandir esta u´ltima expressa˜o com: Maxima: Linhas de comando expand(%); x4y2+6x2y2+9y2+2x3y+6xy+ x2 5. Vamos fatorar esta u´ltima expressa˜o com: Maxima: Linhas de comando factor(%); (x2 y+3y+ x)2 6. Vamos expandir a u´ltima expressa˜o e substituir a varia´vel x pela frac¸a˜o 5/z: Maxima: Linhas de comando expand(%), x=5/z; 30y z + 150y2 z2 + 25 z2 + 250y z3 + 625y2 z4 +9y2 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 3.2 Expresso˜es com nu´meros complexos 23 7. Utilizamos a func¸a˜o ratsimp (Simplificac¸a˜o racional) para colocar todos os termos sobre um mesmo denominador: Maxima: Linhas de comando ratsimp(%); 9y2z4+30yz3+(150y2+25)z2+250yz+625y2 z4 8. Vamos fatorar esta u´ltima expressa˜o com a func¸a˜o factor: Maxima: Linhas de comando factor(%); (3yz2+5z+25y)2 z4 3.2 Expresso˜es com nu´meros complexos 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. Definimos uma expressa˜o com nu´meros complexos como: Maxima: Linhas de comando w: 3 + k * %i; >>> ik+3 3. A func¸a˜o realpart retorna a parte real de um complexo: Maxima: Linhas de comando realpart(w); >>> 3 4. A func¸a˜o imagpart retorna a parte imagina´ria de um complexo: Maxima: Linhas de comando imagpart(w); >>> k 5. Podemos obter uma poteˆncia de um complexo com expoente real: Maxima: Linhas de comando w^4; (i k+3)4 6. Podemos expandir a u´ltima expressa˜o com: Maxima: Linhas de comando expand(%); k4−12ik3−54k2+108ik+81 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 3.3 Resoluc¸a˜o de um sistema linear 24 7. Podemos multiplicar um complexo por uma exponencial do tipo e^u: Maxima: Linhas de comando w^2 * e^{%i * k + 3}; ei k+3 (i k+3)2 8. Podemos multiplicar um complexo por uma exponencial do tipo exp(u): Maxima: Linhas de comando w^2 * exp(%i * k + 3); (i k+3)2 ei k+3 3.3 Resoluc¸a˜o de um sistema linear 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. O Maxima pode obter a soluc¸a˜o exata de um sistema linear. Criaremos um sistema de equac¸o˜es lineares, com as equac¸o˜es indicados pelos nomes eq1, eq2 e eq3. Maxima: Linhas de comando eq1: 2*x + 3*y - 4*z = 1; eq2: 7*x - 1*y - 3*z = 3; eq3: 1*x + 1*y + 2*z = 5; 3. A func¸a˜o linsolve resolve o sistema linear, recebendo duas listas, a primeira com as equac¸o˜es eq1, eq2 eq3 e a segunda com as varia´veis x,y,z. Maxima: Linhas de comando linsolve([eq1,eq2,eq3], [x,y,z]); 4. A resposta e´ uma lista em um par de colchetes [...] com a soluc¸a˜o do sistema: [x= 94 81 , y= 103 81 , z= 104 81 ] 5. Vamos estudar um outro exemplo. Maxima: Linhas de comando eq1: x + z = y; eq2: 2*a*x - y = 2*a^2; eq3: y - 2*z = 2; 6. Para gerar uma saı´da apropriada, usaremos uma varia´vel de controle sobre o processo de soluc¸a˜o e o modo de programac¸a˜o: Maxima: Linhas de comando [globalsolve:false, programmode:true]; 7. Agora podemos obter a resposta com: Maxima: Linhas de comando linsolve([eq1,eq2,eq3], [x,y,z]); >>> [x=a+1, y=2a, z=a-1] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 3.4 Resoluc¸a˜o de um sistema alge´brico na˜o linear 25 3.4 Resoluc¸a˜o de um sistema alge´brico na˜o linear 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. O Maxima pode resolver um sistema na˜o linear de equac¸o˜es alge´bricas, obtendo soluc¸o˜es exatas. Criaremos um sistema de equac¸o˜es, em que as equac¸o˜es sa˜o indicadas pelas varia´veis eq1, eq2 e eq3. Maxima: Linhas de comando eq1: x + y*z = 1; eq2: y - x*z = 0; eq3: x + y = 5; 3. A func¸a˜o solve que resolve o sistema, recebe uma lista com duas listas, a primeira com as equac¸o˜es eq1, eq2 eq3 e a segunda com as varia´veis x,y,z. Maxima: Linhas de comando solve([eq1,eq2,eq3], [x,y,z]); Soluc¸a˜o1 : [ [x= 25 √ 79i+25 6 √ 79i−34 ,y= 5 √ 79i+5√ 79i+11 ,z= √ 79i+1 10 ], Soluc¸a˜o2 : [x= 25 √ 79i−25 6 √ 79i+34 ,y= 5 √ 79i−5√ 79i−11 ,z=− √ 79i−1 10 ] ] 4. A resposta e´ uma lista em dois colchetes [...] e cada colchete conte´m uma soluc¸a˜o distinta para as equac¸o˜es simultaˆneas. Para simplificar nu´meros complexos com racionalizac¸a˜o, usamos: Maxima: Linhas de comando G: rectform(%); [ [x= 11 4 − √ 79 i 4 ,y= √ 79 i 4 + 9 4 ,z= √ 79 i 10 + 1 10 ], [x= √ 79 i 4 + 11 4 ,y= 9 4 − √ 79 i 4 ,z= 1 10 − √ 79 i 10 ] ] 3.5 Trabalhando com precisa˜o nas respostas 1. Para reduzir a precisa˜o nos ca´lculos para 3 dı´gitos, digite: Maxima: Linhas de comando fpprec:3; bfloat(G); >>> [[x=2.75b0 -2.22b0 i, y=2.22b0 i +2.25b0, z=8.89b-1 i +1.0b-1], [x=2.22b0 i +2.75b0, y=2.25b0 -2.22b0 i, z=1.0b-1-8.89b-1 i] ] 2. Simplificamos a u´ltima expressa˜o, com: Maxima: Linhas de comando ratsimp(%); Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 3.6 Zeros de polinomiais de uma varia´vel 26 [ [x=−364 i−451 164 ,y= 364 i+369 164 ,z= 80 i+9 90 ], [x= 364 i+451 164 ,y=−364 i−369 164 ,z=−80 i−9 90 ] ] 3.6 Zeros de polinomiais de uma varia´vel 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. O Ca´lculo de zeros (raı´zes) exatos de polinomiais de uma varia´vel e´ um problema fechado que aprendemos na escola, mas pode ser usado para dar exemplos de artifı´cios u´teis. 3. Seja uma func¸a˜o polinomial f=f(x) de grau 2, que atribuı´mos a` varia´vel poli: Maxima: Linhas de comando poli: x^2-x-12; x2− x−12 4. Para calcular as raı´zes da equac¸a˜o polinomial f(x)=0, usamos a func¸a˜o solve: Maxima: Linhas de comando sol: solve(poli=0,x); >>> [x=-3,x=4] 5. Agora vamos reconstruir a polinomial original, mostrando as duas partes da resposta sol: Maxima:Linhas de comando p1: part(sol,1); >>> x=-3 p2: part(sol,2); >>> x=4 6. Na parte p1 ha´ uma expressa˜o a` esquerda que pode ser obtida com a func¸a˜o lhs e uma expressa˜o a` direita que pode ser obtida com a func¸a˜o rhs. Na parte p2 ha´ uma expressa˜o a` esquerda que pode ser obtida com a func¸a˜o lhs e outra expressa˜o a` direita que pode ser obtida com a func¸a˜o rhs. Maxima: Linhas de comando lhs(p1); >>> x rhs(p1); >>> -3 lhs(p2); >>> x rhs(p2); >>> 4 7. Os fatores fat1 e fat2 podem ser construı´dos como Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 3.6 Zeros de polinomiais de uma varia´vel 27 Maxima: Linhas de comando fat1: lhs(p1)-rhs(p1); >>> x+3 fat2: lhs(p2)-rhs(p2); >>> x-4 8. Agora podemos obter a expressa˜o polinomial dada inicialmente: Maxima: Linhas de comando p: expand(fat1 * fat2); x2− x−12 9. Uma outra forma de recuperar a expressa˜o original, realizando em diversos passos. 10. Primeiro reescrevemos as equac¸o˜es como termos, usando a func¸a˜o map do Maxima que aplica uma certa func¸a˜o a todos os elementos de uma lista. Maxima: Linhas de comando Lista: map( lambda([eq],lhs(eq)-rhs(eq)), sol ); >>> [x+3,x-4] 11. Observac¸a˜o: A func¸a˜o usada para aplicar os elementos da lista e´ uma func¸a˜o especial do Maxima, denominada lambda, e no nosso caso tem a forma: Maxima: Linhas de comando lambda( [eq], lhs(eq)-rhs(eq) ) 12. Uma expressa˜o lambda inicia com o sı´mbolo lambda seguido por pareˆnteses. Dentro dos pareˆnteses fica a lista de paraˆmetros formais escrita em colchetes e uma expressa˜o alge´brica. Sabemos que uma expressa˜o sera´ atribuı´da ao paraˆmetro formal quando a func¸a˜o for chamada. Subtraı´mos o lado direito do lado esquerdo para obter um fator. 13. Para verificar que tais termos sa˜o os fatores do polinoˆmio poli, multiplicamos estes fa- tores, usando agora a func¸a˜o apply que aplica uma operac¸a˜o aritme´tica aos elementos de uma lista. Para transformar uma lista de termos em um produto, aplicamos multiplicac¸a˜o aos elementos daquela lista: Maxima: Linhas de comando apply("*", Lista); >>> (x-4)(x+3) 14. Isso e´ um polinoˆmio na forma fatorada. Expansa˜o nos fornece o polinoˆmio inicial: Maxima: Linhas de comando expand(%); x2− x−12 15. A func¸a˜o solve obte´m zeros de polinomial de uma varia´vel, pondo os zeros em uma lista de equac¸o˜es. A func¸a˜o mapmapeia uma func¸a˜o para todos os elementos da lista e responde com uma lista que serve para reescrever uma lista de equac¸o˜es como uma lista de termos. A func¸a˜o apply aplica uma operac¸a˜o a todos os elementos de uma lista e responde com um resultado simples e serve para multiplicar os elementos de uma lista. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L Sec¸a˜o 4 Elementos de A´lgebra Linear 28 4 Elementos de A´lgebra Linear 4.1 Listas no Maxima 1. Reiniciar o Maxima , limpando as func¸o˜es, varia´veis e expresso˜es da memo´ria do PC. 2. Criando duas listas com comprimentos diferentes: Maxima: Linhas de comando A: [10,20,30]; >>> [10,20,30] B: [40,50,60,70,80,90]; >>> [40,50,60,70,80,90] 3. Exibindo o primeiro elemento da lista B Maxima: Linhas de comando B[1] >>> 40 4. Anexando duas listas para formar uma terceira lista: Maxima: Linhas de comando C: append(A,B); >>> [10,20,30,40,50,60,70,80,90] 5. Obtendo o comprimento de uma lista (nu´mero de elementos da lista): Maxima: Linhas de comando length(C); >>> 9 6. Modificando o primeiro elemento da lista B Maxima: Linhas de comando B[1]: 15; >>> 15 7. Mostrando a lista B ja´ modificada: Maxima: Linhas de comando B; >>> [15,50,60,70,80,90] 4.2 Operac¸o˜es com vetores 1. Reiniciar o Maxima , limpando as func¸o˜es, varia´veis e expresso˜es da memo´ria do PC. 2. Para obter o oposto do vetor-linha u=(1,2,3), basta digitar Maxima: Linhas de comando u: [1,2,3]; -u >>> [-1,-2,-3] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 4.2 Operac¸o˜es com vetores 29 3. Para somar o vetor u como o seu oposto -u, basta digitar Maxima: Linhas de comando u + (-u) >>> [0,0,0] 4. Para somar os vetores-linha (listas) u=(1,2,3) e v=(4,5,6), basta digitar: Maxima: Linhas de comando u: [1,2,3]; v: [4,5,6]; u+v; >>> [1,2,3] [4,5,6] [5,7,9] 5. Multiplicamos o escalar k=5 pelo vetor-linha v=(1,2,3) com a operac¸a˜o *: Maxima: Linhas de comando k:5; v:[2,1,3]; k*v; >>> 5 [2, 1, 3] [10, 5, 15] 6. Para construir o conjunto {u,v,w} formado pelos vetores u=(1,2), v=(3,4) e w=(5,6), do espac¸o R2, podemos digitar Maxima: Linhas de comando u:[1,2]; v:[3,4]; w:[5,6]; >>> [1, 2] [3, 4] [5, 6] 7. Criaremos uma combinac¸a˜o linear C de {u,v,w}, com os escalares x, y e z: Maxima: Linhas de comando C: x*u + y*v + z*w >>> [5 z + 3 y + x, 6 z + 4 y + 2 x] 8. O sistema linear C e´ formado por 2 equac¸o˜es (combinac¸o˜es lineares) obtidas por: Maxima: Linhas de comando Eq1: C[1]; /* Primeira linha de C */ >>> 5 z + 3 y + x Eq2: C[2]; /* Segunda linha de C */ >>> 6 z + 4 y + 2 x 9. Para resolver um sistema linear C nas treˆs varia´veis x,y,z, digitamos Maxima: Linhas de comando linsolve([Eq1,Eq2], [x,y,z]); >>> [x = %r1, y = -2 %r1, z = %r1] 10. Pela resposta, as varia´veis x, y e z dependem de uma varia´vel gene´rica %r1, o que significa que o conjunto {u,v,w} e´ linearmente dependente. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 4.2 Operac¸o˜es com vetores 30 11. Verificamos a dependeˆncia linear do conjunto {u,v,w} resolvendo o sistema linear nas varia´veis x,y, (Em R2, existem no ma´ximo dois vetores LI) tomando: Maxima: Linhas de comando linsolve([Eq1,Eq2], [x,y]); >>> [x = z, y = -2z] 12. Para construir um conjunto {u,v,w} formado pelos vetores u=(1,2,3), v=(4,5,6) e w=(7,8,1), do espac¸o R3, digitamos Maxima: Linhas de comando u: [1,2,3]; v: [4,5,6]; w: [7,8,1]; 13. Para verificar se o conjunto de vetores {u,v,w} e´ linearmente dependente, construı´mos o sistema linear Maxima: Linhas de comando S: x*u + y*v + z*w 14. Resolvemos o sistema linear com a func¸a˜o linsolve, digitando Maxima: Linhas de comando linsolve([S[1],S[2],S[3]], [x,y,z]); Pela resposta: [x= 0, y= 0, z= 0], o conjunto {u,v,w} e´ linearmente independente. 15. Para escrever o vetor m=(11,12,13) como combinac¸a˜o dos vetores do conjunto {u,v,w} do item anterior, construı´mos um processo quase igual ao anterior. Como o conjunto {u,v,w} ja´ esta´ na memo´ria do computador, basta inserir o vetor m: Maxima: Linhas de comando m: [11,12,13]; 16. Para gerar z como combinac¸a˜o de {u,v,w}, construı´mos o sistema linear: Maxima: Linhas de comando S: x*u + y*v + z*w - m 17. Resolvemos o sistema linear, digitando Maxima: Linhas de comando linsolve([S[1],S[2],S[3]], [x,y,z]); [x=−7 3 ,y= 10 3 ,z= 0] Pela resposta acima, segue que m=−7 3 u+ 10 3 v+(0)w 18. Para escrever um vetor m=(a,b,c) como combinac¸a˜o de {u,v,w} do item anterior, repeti- moso processo anterior, trocando o vetor (11,12,13) pelo vetor (a,b,c). Como {u,v,w} ja´ esta´ na memo´ria do computador, basta inserir apenas o vetor: Maxima: Linhas de comando m: [a,b,c]; Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 4.3 Principais operac¸o˜es com matrizes 31 19. Para escrever o vetor m como combinac¸a˜o linear dos vetores do conjunto {u,v,w}, con- struı´mos o sistema linear S: Maxima: Linhas de comando S: x*u + y*v + z*w - m 20. Resolvemos o sistema linear, digitando: Maxima: Linhas de comando linsolve([S[1],S[2],S[3]], [x,y,z]) A resposta fornece [x=−3c−38b+43a 24 ,y= 3c−10b+11a 12 ,z=−c−2b+a 8 ] significando que m=−3c−38b+43a 24 u+ 3c−10b+11a 12 v+ c−2b+a 8 w Concluı´mos que o vetor m=(a,b,c) de R3 e´ combinac¸a˜o linear dos vetores do conjunto {u,v,w}, que gera o espac¸o R3, logo, {u,v,w} e´ uma base para o espac¸o vetorial R3. 4.3 Principais operac¸o˜es com matrizes 1. Va´ ao menu Maxima e pressione Reiniciar Maxima , para limpar todas as func¸o˜es, varia´veis e expresso˜es que estavam na memo´ria do computador. 2. O Teorema Fundamental de A´lgebra Linear garante que toda transformac¸a˜o linear T esta´ associada a umamatriz M e reciprocamente, toda matriz M define uma transformac¸a˜o linear. Com este teorema, podemos obter propriedades de transformac¸o˜es lineares pelas propriedades das respectivas matrizes associadas. 3. OMaxima pode calcular: determinante, inversa, autovalores e autovetores de matrizes com elementos simbo´licos (isto e´, elementos envolvendo varia´veis alge´bricas.) 4. Iniciaremos inserindo uma matriz com o nome m, elemento-a-elemento: Maxima: Linhas de comando m: entermatrix(2,2); 5. Apo´s pressionar Enter vemos na tela a seguinte pergunta: Maxima: Linhas de comando Is the matrix 1.Diagonal 2.Symmetric 3.Antisymmetric 4.General Answer 1, 2, 3 or 4 : 6. Digite: Maxima: Linhas de comando 4. General (Geral) >>> 4 Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 32 7. O Maxima comec¸a a mostrar as posic¸o˜es das entradas para que voceˆ insira cada uma sep- aradamente. Digite de acordo com o que esta´ indicado abaixo: Maxima: Linhas de comando Row 1 Column 1: (Linha 1 Coluna 1) 1 Row 1 Column 2: (Linha 1 Coluna 2) a Row 2 Column 1: (Linha 2 Coluna 1) 1 Row 2 Column 2: (Linha 2 Coluna 2) b Finalmente, voceˆ veˆ a mensagem Matrix entered e aparece a matriz completa:[ 1 a 1 b ] 8. Outro modo de inserir esta matriz e´ acionar o menu A´lgebra, Introduzir matriz..., para ver uma janela de dia´logo semelhante a 9. Pressione OK para ver uma janela, que pode ser preenchida da forma seguinte: 10. Pressionando OK , veremos algo como [ 1 a 1 b ] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 33 11. A forma mais ra´pida de criar uma matriz A com 2 linhas e 2 colunas, e´ digitar: Maxima: Linhas de comando A: matrix([1,3],[7,5]); [ 1 3 7 5 ] 12. Podemos somar a matriz A com ela pro´pria, digitando Maxima: Linhas de comando A+A; [ 2 6 14 10 ] 13. Podemos multiplicar o escalar 2 pela matriz A, com: Maxima: Linhas de comando 2*A; para obter o mesmo resultado que antes:[ 2 6 14 10 ] 14. Digitando A^2, obtemos uma matriz 2x2 que e´ uma poteˆncia na˜o usual, sendo que cada entrada de A esta´ ao quadrado da respectiva entrada de A. Maxima: Linhas de comando A^2; [ 1 9 49 25 ] 15. Digitando A*A, obtemos um produto elemento-a-elemento da matriz A, que e´ um produto na˜o usual em A´lgebra Linear: Maxima: Linhas de comando A*A; [ 1 9 49 25 ] 16. O produto usual de matrizes, por exemplo, A×A e´ obtido, digitando: Maxima: Linhas de comando A.A; [ 22 18 42 46 ] 17. A mesma resposta que A.A; e´ obtida com a poteˆncia usual de matrizes, com o co´digo: Maxima: Linhas de comando A^^2; Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 4.3 Principais operac¸o˜es com matrizes 34 18. Podemos obter a transposta de uma matriz A, digitando: Maxima: Linhas de comando transpose(A); [ 1 7 3 5 ] 19. Obtemos agora o trac¸o de uma matriz A, digitando: Maxima: Linhas de comando mat_trace(A); >>> 6 20. Obtemos agora a adjunta de uma matriz A, digitando: Maxima: Linhas de comando adjoint(A); [ 5 −3 −7 1 ] 21. Obtemos agora o determinante de uma matriz A, digitando: Maxima: Linhas de comando determinant(A); >>> -16 22. Realizamos a divisa˜o da adjunta da matriz A pelo determinante da matriz A: Maxima: Linhas de comando adjoint(A)/determinant(A); − 5 16 3 16 7 16 − 1 16 23. Obtemos a inversa de uma matriz A, digitando: Maxima: Linhas de comando invert(A); − 5 16 3 16 7 16 − 1 16 o que significa que A−1 = adj(A) det(A) 24. Vamos calcular de novo a adjunta de uma matriz A: Maxima: Linhas de comando adjoint(A); [ 5 −3 −7 1 ] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 4.3 Principais operac¸o˜es com matrizes 35 25. Agora obteremos a inversa da matriz a, com o modificador detout: Maxima: Linhas de comando invert(A), detout; − [ 5 −3 −7 1 ] 16 26. A inversa parece uma frac¸a˜o, e o modificador detout (determinant out) informa que o determinante no denominador (fora da inversa) e a adjunta no numerador. 27. Uma matriz alge´brica pode ser construı´da como um conjunto de listas nas linhas, como: Maxima: Linhas de comando M: matrix([a,b],[c,d]); [ a b c d ] 28. Vamos construir uma matriz nume´rica: Maxima: Linhas de comando N: matrix([1],[2]); [ 1 2 ] 29. Realizamos o produto ponto (.) da matriz M pela matriz N. O nu´mero de linhas da matriz M deve ser igual ao nu´mero de colunas da matriz N. Maxima: Linhas de comando M.N; [ 2b+a 2d+ c ] 30. Selecionando a coluna 1 da matriz M Maxima: Linhas de comando col(M,1); [ a c ] 31. Selecionando a coluna 2 da matriz M Maxima: Linhas de comando col(M,2); [ b d ] 32. Selecionando a linha 2 da matriz M Maxima: Linhas de comando row(M,2); >>> [ c d ] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 36 33. Obtendo a linha 1 da matriz M: Maxima: Linhas de comando M[1]; >>> [a, b] 34. Obtendo apenas a linha 2 da matriz M: Maxima: Linhas de comando M[2] >>> [c, d] 35. Obtendo um elemento da matriz situado na linha 1 e na coluna 2 de M: Maxima: Linhas de comando M[1,2] >>> b 36. Obtendo a matriz M2, usando o operador . para o produto usual de matrizes. Maxima: Linhas de comando M.M; [ bc+a2 bd+ab cd+ac d2+bc] 37. A mesma resposta para M2, pode ser obtida com Maxima: Linhas de comando M^^2; 38. Verificac¸a˜o que M.M = M^^2: Maxima: Linhas de comando M.M - M^^2; [ 0 0 0 0 ] 39. Agora verificamos a igualdade com a func¸a˜o compare. Apo´s executar a linha de comando, vemos o sinal de igualdade =, indicando que as matrizes comparadas sa˜o iguais. Maxima: Linhas de comando compare(M.M,M^^2); >>> = 40. A inversa de uma matriz pode ser obtida por: Maxima: Linhas de comando M^^(-1); dad−bc − bad−bc − c ad−bc a ad−bc Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 37 41. Multiplicando M por M^^(-1) e fazendo a simplificando racional: Maxima: Linhas de comando M.M^^(-1); ratsimp(%); [ 1 0 0 1 ] 42. Podemos obter os Autovalores e Autovetores de uma matriz pelo processo usualmente tratado em uma aula de A´lgebra Linear. Seja a matriz Maxima: Linhas de comando M: matrix([1,2,3],[4,5,6],[7,8,9]) 43. Podemos construir uma matriz da forma Maxima: Linhas de comando M - z * ident(3); 1− z 2 34 5− z 6 7 8 9− z 44. O polinoˆmio caracterı´stico da matriz M na varia´vel z, e´ dado por: Maxima: Linhas de comando determinant(%); >>> ((5-z)(9-z)-48)(1-z)-2(4(9-z)-42)+3(32-7(5-z)) 45. Obtemos a equac¸a˜o caracterı´stica com o comando Maxima: Linhas de comando ratsimp(%); −z3+15z2+18z 46. Resolvemos esta u´ltima equac¸a˜o na varia´vel z, digitando: Maxima: Linhas de comando solve(%, [z]); 47. Obtemos assim os autovalores de M: [z=−3 √ 33−15 2 , z= 3 √ 33+15 2 , z= 0] 48. O Maxima possui func¸o˜es para obter autovalores, autovetores, equac¸o˜es e polinoˆmios car- acterı´sticos. A func¸a˜o charpoly(M,x) gera o polinoˆmio caracterı´stico da matriz M na varia´vel x, definido por p(x)=determinant(M-diagmatrix(length(M),x)). 49. Vamos considerar uma matriz M como: Maxima: Linhas de comando M: matrix([3,1],[2,4]); [ 3 1 2 4 ] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 38 50. O comando abaixo desenvolve a expressa˜o polinomial e simplifica a mesma. Maxima: Linhas de comando expand(charpoly(M,x)); x2−7x+10 51. Usamos agora o modo de programac¸a˜o para resolver a u´ltima equac¸a˜o: Maxima: Linhas de comando (programmode:true, solve(%)); >>> [x=5, x=2] 52. Criamos enta˜o um vetor gene´rico Y que servira´ para gerar os autovetores: Maxima: Linhas de comando Y: matrix([a],[b]); [ a b ] 53. Avaliamos a equac¸a˜o caracterı´stica para obter as duas equac¸o˜es do sistema linear Maxima: Linhas de comando ev(M.Y-x*Y, %th(2)[1]); [ b−2a 2a−b ] 54. Tomamos agora a expressa˜o localizada na primeira linha e na primeira coluna da u´ltima da u´ltima expressa˜o obtida anteriormente: Maxima: Linhas de comando %[1,1] = 0; >>> b-2a = 0 55. Na sequ¨eˆncia, usaremos a restric¸a˜o a2+b2 = 1 para garantir que os autovetores v= (a,b) (vetores pro´prios de M) sejam unita´rios, isto e´, |v|= |(a,b)|= 1. Maxima: Linhas de comando a^2 + b^2 = 1; solve([%th(2),%], [a,b]); [ [a=− 1√ 5 , b=− 2√ 5 ] , [ a= 1√ 5 , b= 2√ 5 ] ] 56. O modo fa´cil de obter os autovalores da matriz A e´ usar a func¸a˜o eigenvalues: Maxima: Linhas de comando eigenvalues(A); >>> [ [-2,8], [1,1] ] Lista1:[-2,8] (a) O primeiro valor da Lista1 e´ -2 que e´ primeiro autovalor (b) O segundo valor da Lista1 e´ 8 que e´ o segundo autovalor. Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M a x i m a n o C a´ l c u l o - X X V S e m a n a d a M a t e m a´ t i c a - 2 0 0 9 - U E L 4.3 Principais operac¸o˜es com matrizes 39 Lista2:[1,1] (a) O primeiro valor da Lista2 e´ 1 = multiplicidade do autovalor -2 (b) O segundo valor da Lista2 e´ 1 = multiplicidade do autovalor 8 57. A expressa˜o P: copymatrix(M) gera uma co´pia da matriz M com o nome P. Este e´ o u´nico modo para gerar uma copia separada da matriz M elemento a elemento. 58. Ao realizar atribuic¸o˜es de uma matriz para outra, como em m2:m1, na˜o copiamos m1. Atribuic¸o˜es como m2[i,j]:x ou setelmx(x,i,j,m2) modificam m1[i,j]. 59. Obtemos os autovetores da matriz A, com a func¸a˜o eigenvectors: Maxima: Linhas de comando eigenvectors(A); >>> [ [ [-2,8], [1,1] ], [1,-1], [1,7/3] ] Lista1:[-2,8] (a) O primeiro valor da Lista1: -2 e´ primeiro autovalor (b) O segundo valor da Lista1: 8 e´ o segundo autovalor Lista2:[1,1] (a) O primeiro valor da Lista2: 1 e´ a multiplicidade do autovalor -2 (b) O segundo valor da Lista2: 1 e´ a multiplicidade do autovalor 8 Lista3:[1,-1] e´ o autovetor associado ao autovalor -2. Lista4:[1,7/3] e´ o autovetor associado ao autovalor 8. 60. Vamos inserir as matrizes A e B de mesma ordem, digitando: Maxima: Linhas de comando A: matrix([1,3],[ 7,5]); [ 1 3 7 5 ] Maxima: Linhas de comando B: matrix([8,2],[-4,3]); [ 8 2 −4 3 ] 61. Podemos somar as matrizes A e B, digitando: Maxima: Linhas de comando A+B; [ 9 5 3 8 ] 62. Podemos multiplicar as matrizes A e B, digitando: Maxima: Linhas de comando A.B; [−4 11 36 29 ] Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 40 63. Vamos construir a matriz M, digitando: Maxima: Linhas de comando M: matrix([1,2,3],[4,5,6],[7,8,1]); 64. O posto da matriz M pode ser obtido com a func¸a˜o rank: Maxima: Linhas de comando rank(M) >>> 3 A matriz M tem posto ma´ximo em R3, isto e´, o conjunto das linhas de M e´ LI, ou seja, os vetores-linhas da matriz M formam uma base para o espac¸o vetorial R3. 65. Vamos mudar agora a matriz M, para algo como: Maxima: Linhas de comando M: matrix([1,2,3],[4,5,6],[7,8,9]); 66. O posto desta matriz M pode ser obtido com: Maxima: Linhas de comando rank(M) >>> 2 Esta matriz na˜o tem posto ma´ximo em R3, isto e´, o conjunto formado pelas linhas da matriz M e´ LD (linearmente dependente), isto e´, os vetores-linhas n~ao formam uma base para o espac¸o vetorial R3. 67. Obtemos o subespac¸o Imagem da transformac¸a˜o linear associada a` matriz M, com: Maxima: Linhas de comando M: matrix([1,2,3],[4,5,6],[7,8,9]); columnspace(M) Obtemos o subespac¸o gerado pelos vetores-coluna do conjunto {v1,v2,v3} que e´ uma base para o espac¸o coluna de M. span 14 7 , 25 8 O subespac¸o Imagem da transformac¸a˜o T e´ gerado pelos vetores-coluna (1,4,7) e (2,5,8). 68. Para obter o subespac¸o gerado pelo nu´cleo de uma matriz M, digite: Maxima: Linhas de comando M: matrix([1,2,3],[4,5,6],[7,8,9]); nullspace(M); span 1−2 1 O Nu´cleo da transformac¸a˜o linear associada a M e´ a reta gerada pelo vetor (1,-2,1). Ulysses Sodre´, Giovana Alves, Isabela Belansson, Andrielber S. Oliveira, Soˆnia F. L. Toffoli M ax im a no C a´l cu lo -X X V Se m an a da M at em a´t ic a -2 00 9 -U E L 4.3 Principais operac¸o˜es com matrizes 41 69. Exercı´cio: Para cada item, digite o co´digo Maxima que gera o resultado indicado: (a) Definir uma matriz M com 3 linhas e 3 colunas, para obter M = 5 4 50 5 6 0 0 3 (b) Realizar a soma da matriz M com a
Compartilhar