Professional Documents
Culture Documents
Bruna Santos
Introduo ao MAXIMA-2009
Bruna Santos
Introduo ao MAXIMA-2009
Bruna Santos
Introduo ao MAXIMA-2009
Bruna Santos
Autora:
Bruna Santos aluna de licenciatura em Matemtica na Faculdade de Cincias da Universidade do Porto e bolseira de integrao na investigao do Centro de Matemtica da Universidade do Porto / Fundao para a Cincia e a Tecnologia.
Orientao e Reviso:
Zlia da Rocha professora no Departamento de Matemtica da Faculdade de Cincias da Universidade do Porto desde de 1994, sendo responsvel por disciplinas das reas de Clculo Automtico, Anlise Numrica, Teoria de Aproximao e Polinmios Ortogonais e Aplicaes. Durante estes anos, tem orientado vrios alunos de Prtica Pedaggica de Ensino Supervisionada, de Mestrado e de Doutoramento em Matemtica Aplicada, sendo autora de vrios artigos cientficos, nas reas de Matemtica, Calculo Cientfico e Programao Simblica.
Introduo ao MAXIMA-2009
Bruna Santos
Agradecimentos:
Este espao dedicado a todos aqueles que deram a sua contribuio para que este livro fosse realizado. Em primeiro lugar, agradeo Professora Doutora Zlia da Rocha pela forma como orientou o meu trabalho. Agradeo por ter acreditado, desde sempre, nas minhas capacidades e neste tutorial. As notas dominantes da sua orientao foram determinantes para o desenvolvimento deste manual assim como a cordialidade com que sempre me recebeu. Estou grata pela liberdade de aco que me permitiu, pois foi decisiva para que este trabalho contribusse para o meu desenvolvimento pessoal e acadmico. Gostaria de agradecer ao Professor Doutor Slvio Gama pelos valiosos comentrios sobre Estatstica. Um agradecimento especial ao Arlindo Trindade, por ter estado sempre na retaguarda, apoiando e incentivando mais este passo no meu percurso. Deixo tambm uma palavra de agradecimento Maria Freitas pelo o incentivo para escrever mais e melhor. A todos os outros que me ajudaram a desenvolver este trabalho e cujo nome no foi aqui mencionado deixo aqui o meu agradecimento sincero. Por fim, informo que a ltima parte deste trabalho foi realizada durante a vigncia de uma Bolsa de Integrao Investigao, financiada pela Fundao para a Cincia e a Tecnologia, atravs do Centro de Matemtica da Universidade do Porto, instituies s quais agradeo. Porto, 21 de Dezembro de 2009 Bruna Santos
Introduo ao MAXIMA-2009
Bruna Santos
Prefcio:
O MAXIMA uma linguagem computacional que permite realizar clculos numricos e simblicos, representaes grficas e efectuar programao, possuindo uma grande variedade de comandos para os mais variados fins em Matemtica e aplicaes. um software de livre acesso, disponvel para os sistemas operativos usuais. Desde o ano lectivo de 2008/2009, que tem vindo a ser adoptado em vrias disciplinas no ensino superior em Portugal, em substituio de outros softwares comercializados do mesmo tipo, como o Maple ou o Mathematica. Dado a escassa bibliografia actualmente existente sobre a utilizao e aplicao deste manipulador algbrico, este livro ser til a quem deseje comear a usar o MAXIMA no mbito da Matemtica em geral e, em particular, das reas de Anlise Numrica e Probabilidade e Estatstica, tanto nas vertentes interactiva como de programao. Este manual, que comeou por ser um pequeno bloco de notas da Bruna Santos, teve origem na realizao, por esta aluna, das unidades computacionais propostas na disciplina de Anlise Numrica II, por mim leccionada, da responsabilidade do Departamento de Matemtica da Faculdade de Cincias da Universidade do Porto, ao qual perteno. Foi, pois, com agrado e naturalidade, que apoiei a iniciativa da Bruna Santos para iniciar e desenvolver este tutorial como material de apoio para quem do MAXIMA necessite. O trabalho apresentado ser objecto de melhoramento e de complementao num futuro que desejamos prximo. Porto, 21 de Dezembro de 2009. Zlia da Rocha
Introduo ao MAXIMA-2009
Bruna Santos
ndice Geral:
Autora:.......................................................................................................................... 4 Agradecimentos: ........................................................................................................... 5 Prefcio:........................................................................................................................ 6 ndice Geral: ................................................................................................................. 7 Um pouco de histria .............................................................................................. 11 Capitulo 1. .................................................................................................................. 12 Mos obra ................................................................................................................ 12 A natureza est escrita em linguagem matemtica. -Galileu.............................. 12 1.1 Primeiro contacto com o MAXIMA .................................................................. 14 1.2 As janelas de interface com o utilizador............................................................. 14 1.3 Constantes Matemticas: ................................................................................... 15 1.4 Manipulao de Variveis:........................................................................... 16 1.5 Aprendendo a Guardar................................................................................. 17 1.6 Operadores e Funes Matemticas ............................................................. 18 1.6.1 Operadores Aritmticos: ...................................................................... 18 1.6.2 Operadores Relacionais:....................................................................... 19 1.6.3 Funes Matemticas Elementares:...................................................... 19 1.6.4 Funes Trigonomtricas: .................................................................... 19 1.7 Nmeros Decimais e Complexos ................................................................. 20 1.7.1 Nmeros Decimais............................................................................... 20 1.7.2 Nmeros Complexos............................................................................ 21 Capitulo 2. .................................................................................................................. 22 Listas, Matrizes e suas Operaes ............................................................................... 22 A natureza est escrita em linguagem matemtica. Galileu............................. 22 2.1 Listas........................................................................................................... 24 2.2 Quadro Resumo: Comandos sobre Listas ..................................................... 27 2.3 Matrizes....................................................................................................... 28 2.3.1 Operaes Bsicas com Matrizes ............................................................. 28 2.3.2 Acrescentando e Eliminando Elementos: ................................................. 30 2.3.3 Elementos de lgebra Linear ................................................................... 31 2.4 Operaes Bsicas com Matrizes: ................................................................ 34 2.5 Quadro Resumo: Comandos sobre Matrizes................................................. 35 Capitulo 3. .................................................................................................................. 36 Equaes, Sistemas de Equaes e Equaes Diferenciais........................................... 36 3. Equaes, Sistemas de Equaes e Equaes Diferenciais ............................... 38 3.1 Equaes: .......................................................................................................... 38 3.2 Sistemas de Equaes .................................................................................. 40 3.3 Equaes Diferenciais Ordinrias ................................................................ 40 3.4 Quadro Resumo: Comandos do Capitulo 3................................................ 43 Capitulo 4. .................................................................................................................. 45 Grficos ...................................................................................................................... 45 O livro da natureza foi escrito exclusivamente com figuras e smbolos matemticos. - Galileu ....................................................................................... 45 4.1 Introduo aos Grficos..................................................................................... 47 4.1.1 Grficos de Funes de uma Varivel Coordenadas Cartesianas .................. 47 4.1.2 Grficos de Dados Discretos........................................................................... 49 4.1.3 Grficos de Funes Paramtricas .................................................................. 52 7
Introduo ao MAXIMA-2009
Bruna Santos
4.1.4 Grficos em Coordenadas Polares................................................................... 53 4.1.5 Grficos de Funes Implcitas....................................................................... 54 4.2 Grficos Tridimensionais................................................................................... 55 4.2 Quadro Resumo: Opes grficas: ..................................................................... 57 Capitulo 5. .................................................................................................................. 58 Clculo Diferencial e Integral...................................................................................... 58 5.1 Operaes com Polinmios: .............................................................................. 60 5.2 Limites e Continuidade:..................................................................................... 60 5.3 Derivadas: ......................................................................................................... 62 5.4 Primitiva e Integrais: ......................................................................................... 66 5.5 Quadro Resumo: Comandos de Calculo Integral e Diferencial........................... 69 5.6 Quadro Resumo: Comandos sobre Limites ........................................................ 70 Capitulo 6. .................................................................................................................. 71 Estatstica Descritiva e Probabilidades ........................................................................ 71 6.1 Distribuies Discretas ................................................................................ 73 6.1.1 Distribuio Binomial.............................................................................. 73 6.1.2 Distribuio de Poisson............................................................................ 75 6.2 Distribuies Contnuas ............................................................................... 76 6.2.1 Distribuio Exponencial ..................................................................... 76 6.2.2 Distribuio Normal............................................................................. 77 6.3 Mtodo de Monte Carlo............................................................................... 82 6.4 Quadro Resumo: Comandos de Probabilidade e Estatstica Descritiva ............... 83 6.4.1 Distribuies Continuas e Discretas................................................................ 83 6.4.2 Anlise de Dados:........................................................................................... 84 6.3.3 Representao Grfica de Dados:.................................................................... 85 Capitulo 7. .................................................................................................................. 86 7.1 Programao no MAXIMA ............................................................................... 88 7.1.1 Instruo if: ............................................................................................. 88 7.1.2 Instruo: for...end:.................................................................................. 89 7.1.3 Instruo block: ....................................................................................... 89 7.2 Quadro Resumo: Instrues de Programao ............................................... 91 Capitulo 8. .................................................................................................................. 92 8.1 Srie de Taylor ............................................................................................ 94 8.2 Interpolao Polinomial..................................................................................... 95 8.3 Regresso linear .......................................................................................... 97 8.4 Resoluo Numrica de Equaes No Lineares Mtodo de Newton ........ 98 8.5 Polinmios Ortogonais Legrendre........................................................... 100 8.6 Srie de Fourier ......................................................................................... 101 8.7 Equaes Diferenciais Ordinrias: Mtodo de Runge-Kutta....................... 103 8.8 Quadro Resumo: Comandos de Anlise Numrica ..................................... 105 8.9 Pacotes (Packages) utilizados em Anlise Numrica............................... 105 Bibliografia:.......................................................................................................... 108 ndice de ilustraes:................................................................................................. 109 Contacto:............................................................................................................... 110
Introduo ao MAXIMA-2009
Bruna Santos
Introduo ao MAXIMA-2009
Bruna Santos
Ao meu pai
Preciso acreditar que algo extraordinrio possvel.
10
Introduo ao MAXIMA-2009
Bruna Santos
Um pouco de histria
Um software livre , segundo a definio criada pela Free Software Foundation, qualquer programa de computador que pode ser instalado, explorado e distribudo sem qualquer restrio. Um exemplo de um software livre o MAXIMA. O MAXIMA derivado do sistema Macsyma, o lendrio sistema de lgebra computacional desenvolvido entre os anos de 1968 e 1982 no Instituto de Tecnologia de Massachusetts (MIT) como parte do Projecto MAC. O MIT enviou uma cpia do cdigo fonte do Macsyma para o Departamento de Energia em 1982, sendo que essa verso agora conhecida como Macsyma DOE. Essa cpia foi mantida pelo Professor William F. Schelter da Universidade do Texas entre 1982 e 2001, ano do seu falecimento. Em 1998, Schelter obteve permisso do Departamento de Energia para colocar disponvel o cdigo fonte do Macsyma DOE sob a Licena Pblica GNU e em 2000 ele iniciou o projecto MAXIMA no SourceForge para manter e desenvolver o Macsyma DOE, agora chamado MAXIMA. Um sistema de computao algbrica, como o MAXIMA, permite manipular e explorar expresses matemticas de maneira simblica e interactiva. O usurio digitaliza na janela do programa algumas frmulas, comandos e o sistema avalia-os devolvendo uma resposta que pode ser manipulada posteriormente, caso seja necessrio. -nos permitido tambm obter solues numricas aproximadas e visualizar graficamente quer dados, quer funes matemticas. O MAXIMA, como se trata de um software do tipo freeware, com funcionalidades similares aos softwares comercializados, no estimula o uso de cpias no autorizadas.
11
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 1.
Mos obra
A natureza est escrita em linguagem matemtica. -Galileu
12
Introduo ao MAXIMA-2009
Bruna Santos
Os objectivos deste captulo introdutrio so: Adquirir uma ideia geral do que o MAXIMA e como instala-lo; Introduzir comandos e obter respostas na janela; Formatar nmeros e expresses; Familiarizar-se com algumas constantes, operadores e comandos bsicos; Como guardar o trabalho no ambiente do WxMaxima.
13
Introduo ao MAXIMA-2009
Bruna Santos
O Mxima um potente software livre, que permite: I. Efectuar clculos numricos e simblicos; II. Traar grficos bidimensionais e tridimensionais; III. Elaborar implementaes computacionais eficientes e precisas; Para descarregar o MAXIMA, para o sistema operativo Windows, utilize o link: http://sourceforge.net/projects/MAXIMA/files/MAXIMA/5.10.0-Windows/MAXIMA5.10.0b.exe/download Aps descarregar o programa, prossiga a instalao atendendo s recomendaes apresentadas. Pode optar-se pelas interfaces: I. WxMaxima; II. xMAXIMA; Embora, ambos produzam os mesmos resultados, a interface WxMaxima revelase mais interactiva com o utilizador do que a xMAXIMA, motivo pelo qual foi escolhida para desenvolver este manual. O MAXIMA est disponvel para outros sistemas operativos, por exemplo, o Linux. Para mais informaes sobre o Mxima para outros sistemas operativos consulte a pgina: http://MAXIMA.sourceforge.net/
Aps a instalao do Mxima, aparece uma janela com a seguinte apresentao (se optar pelo wxMxima):
14
Introduo ao MAXIMA-2009
Bruna Santos
1 Interface:WxMaxima
Vamos ver como se pode realizar uma operao aritmtica entre dois nmeros: (%i1) 5+2; Para visualizarmos o valor desta expresso necessrio empregar no final de cada instruo(;) e em seguida Shift+Enter. Podemos visualizar o resultado: (%o2) 7 Exploremos alguns exemplos de constantes matemticas conhecidas cujo os identificadores comeam por %: (%i2) % pi; (%o2) %pi o output do programa ser a mesma expresso que se escreveu No entanto, se colocarmos o comando float, visualizaremos um valor aproximado de : (%i3) float (%pi); (%o3) 3.141592653589793 ser impresso no programa um valor numrico da constante
15
Bruna Santos
Uma ferramenta importante no MAXIMA a capacidade de atribuir e manipular variveis. Uma varivel, em programao, um identificador ao qual se pode atribur valores. No MAXIMA a instruo de atribuio concretiza-se empregando o smbolo : . (%i1) a:7; (%o1) 7 Se pretendemos visualizar o valor da varivel a, utilizamos o comando print. (%i2) print(a); (%o2)7 Podemos manipular as variveis efectuando, por exemplo, operaes aritmticas: (%i3) b:3; (%o3) 3 (%i4) c:a+b; (%o4) 10 (%i5) 2*c; (%o5) 20 (%i6) b*c; (%o6) 30 (%i6) b*c $ Empregando $ o resultado da expresso no impresso no ecr (%i7) c^b; (%o7) 1000 (%i8)(%); (%o8) 1000 Quando se utiliza o smbolo % acede-se ao ltimo valor calculado e armazenado na memria do MAXIMA.1
16
Introduo ao MAXIMA-2009
Bruna Santos
Se, aps a realizao de operaes na interface do wxMxima, pretendemos voltar a utilizar o trabalho, devemos seguir os seguintes passos:
2 Opo Save As
17
Introduo ao MAXIMA-2009
Bruna Santos
1.6.1
Operadores Aritmticos:
O quadro seguinte lista as operaes aritmticas que se podem realizar entre expresses: Operadores + / * ^ Operao Soma Subtraco Diviso Multiplicao Exponenciao
18
Bruna Santos
O objectivo dos operadores relacionais fornecer respostas do tipo verdadeiro e falso a comparaes. Assim, se a comparao for verdadeira vale true, se for falsa, vale false. O MAXIMA possui operadores relacionais que podem ser usados para comparar nmeros, variveis, expresses, matrizes, etc. Comando > >= < <= = # Descrio Maior Maior ou igual Menor Menor ou igual Igualdade Negao da igualdade
Tabela 1-3:Operadores Relacionais
1.6.3
Funes Matemticas Elementares: Comando abs (expresso) Descrio do Comando Calcula o valor absoluto da expresso. Se a expresso for um nmero complexo, retorna o mdulo: |x+iy|= x 2 + y 2 Factorial de um nmero, x. Raiz quadrada de x. Raiz de ndice b e expoente a Calcula o logaritmo neperiano de x.2 Calcula a exponencial de x.
1.6.4
Funes Trigonomtricas:
O MAXIMA no possui uma funo interna para o logaritmo de outra base, assim a definio
log a b :=
19
Introduo ao MAXIMA-2009 Funo Trigonomtrica sin(x) , sinh (x) cos(x) , cosh(x) tan(x) , tanh(x) acos(x) asin(x) atan(x)
Bruna Santos Descrio Seno, Seno hiperblico Cosseno , Cosseno hiperblico Tangente, Tangente hiprbolica Arco-seno Arco-cosseno Arco-tangente
1.7
1.7.1
Nmeros Decimais
A obteno de uma representao decimal de um nmero real feita por duas formas: I. float(expresso) II. Aps a expresso a calcular, acrescentar uma vrgula e a palavra numer. Exemplo - 1: Calcule o valor de " ! e e Resoluo: (%i1) %pi-%e; (%o1) %pi-%e (%i2) float(%); (%o2)0.42331082513075 (%i3) %pi/7, numer; (%o3) 0.44879895051283
Exemplo 1-1
! na forma decimal. 7
Em clculo numrico, por vezes, os resultados e os clculos efectuados necessitam de ser expressos com um determinado nmero de casas decimais e/ou algarismos significativos. Podemos estabelecer essa preciso mediante a fixao de um valor varivel interna global fpprec (float point precision), que por defeito no Mxima 16) ou atravs do menu Numeric do WxMaxima; na opo Set Precision. Exemplo - 2: Calcule o valor de e com 25 casas decimais:
20
Bruna Santos
1.7.2
Nmeros Complexos
No MAXIMA os nmeros complexos so da forma a+b*%i, em que a parte imaginria denotado por %i e a e b so nmeros reais. Os comandos realpart e imagpart indicam a parte real e parte imaginria, respectivamente. Se desejarmos simplificar uma expresso envolvendo nmeros complexos podemos utilizar, por exemplo, a funo demoivre. Exemplo-3: Dado o nmero complexo 2+5i aceda parte real e imaginaria e simplifique o nmero. Resoluo: (%i1) numcomplexo: 2+5*%i; (%o1) 5*%i+2 (%i2) realpart(numcomplexo); (%o2)2 (%i3) imagpart(numcomplexo); (%o3) 5 (%i4) exp (numcomplexo); 5% i + 2 (%o4) %e (%i5) demoivre (%); 2 (%o5) %e (%i sin(5) + cos(5))
Exemplo 1-3
21
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 2.
Listas, Matrizes e suas Operaes
A natureza est escrita em linguagem matemtica. Galileu
22
Introduo ao MAXIMA-2009
Bruna Santos
Neste captulo abordaremos os seguintes itens: Criar listas e matrizes; Manipular listas e matrizes; Realizar operaes com listas e matrizes;
23
Introduo ao MAXIMA-2009
Bruna Santos
2.1 Listas
As listas so utilizadas para representar vrios tipos de dados aglomerados por uma determinada ordem. No Mxima uma lista define-se do seguinte modo: (%i1) lista1 :[b,a,1,4,5]; (%o1) [b,a,1,4,5] O comando listp (expr) verifica se a expresso ou no uma lista. Por exemplo: (%i2) listp(lista1); (%o2)true Retomando true quando uma lista.. (%i3) listp(x:9); (%o3) false Retomando false quando o argumento no uma lista. Os elementos de uma lista so indexados a partir de um. Para aceder a elementos da lista faz-se: (%i4) first(lista1); ou lista[1]; (%o4) b Acede ao primeiro elemento da lista (%i5) last(lista1); (%o5) 5 Acede ao ltimo elemento de uma lista (%i6) rest (lista, 2); (%o6) [1,4,5] Imprime uma lista com os dois primeiros elementos removidos. (%i7) part (lista, 3); ou lista[3]; (%o7) 1 Acede ao terceiro elemento de uma lista (%i8) length (lista); (%o8) 5 Determina o nmero de elementos de uma lista (%i9) sort(lista1); (%o9) [1,4,5,a,b, X] Ordena os elementos de uma lista.
24
Introduo ao MAXIMA-2009
Bruna Santos
De seguida definimos uma nova lista que nos ser til para os comandos que se seguem: (%i1) lista2:[3,5,6,a,d,t]; (%o1) [3,5,6,a,d,t] (%i2) join(lista1, lista2) (%o2)[b,3,a,5,1,6,4,a,5,d] Cria uma nova lista contendo os elementos da lista1 e da lista2 intercalados. O comando join ignorou os elementos da lista mais longa. (%i3) append(lista1, lista2) (%o3) [b,a,1,4,5,3,5,6,a,d,t] Cria uma nova lista incluindo todos os elementos de lista1 e lista 2 seguidos, incluindo os elementos da lista mais longa. Existem comandos que nos permitem adicionar novos elementos a uma lista, tanto no incio como no final de mesma. Vejamos como os comandos cons e endcons funcionam: (%i1) cons(X,lista1); (%o1) [X,b,a,1,4,5] Adiciona o elemento X no inicio da lista. (%i2) endcons(X,lista); (%o2)[b,a,1,4,5,X] Adiciona o elemento X no final da lista. possvel realizar operaes elementares, tais como a soma, subtraco, multiplicao, com os elementos de uma lista ou entre elementos de duas listas: (%i1) lista3:[1,4,5,8,7]; (%o1) [1,4,5,8,7] (%i2) apply("+", lista3) (%o2)25 Somou todos os elementos da lista3 (%i3) apply("*", lista3); (%o3) 1120 Multiplicou todos os elementos da lista3 Para aplicar uma funo do tipo seno, factorial, etc. a cada elemento de uma lista recorre-se ao comando map: (%i1) map ("!", lista3); (%o1) [1, 24, 120, 40320, 5040]
25
Introduo ao MAXIMA-2009
Bruna Santos
(%i2) map (sin, lista3); (%o2)[sin(1),sin(4),sin(5),sin(8),sin(7)] Se aplicarmos o comando float expresso anterior, obtemos o valor numrico do seno de cada elemento da lista: (%i3) float(%); (%o3) [0.8414709848079,-0.75680249530793,-0.95892427466314,0.98935824662338, 0.65698659871879] Ao aplicar o comando map a um determinado tipo de funes, nomeadamente funes trigonomtricas, exponencial e logartmica; no preciso empregar "". Podemos efectuar as operaes de subtraco (-), multiplicao (*) e diviso (/) entre listas. Note-se que a diferena entre os (.) e (*). O Com efeito, o smbolo (*) efectua a multiplicao do elemento [i] da lista 1 pelo elemento [i] (com o mesmo ndice) da lista 2, enquanto o smbolo (.) efectua o produto escalar entre duas listas, isto , a soma do produto dos elementos correspondentes das duas listas. Assim: (%i4) lista2:[9,3,4,5,1]; (%o4) [9,3,4,5,1] (%i5) lista2+lista3 (%o5) [10,7,9,13,8] Soma os elementos com mesmo ndice da listas 2 e 3 (%i6) lista2*lista3; (%o6) [9,12,20,40,7] (%i7) lista2.lista3; (%o7) 88 Por vezes, necessrio construir listas com certos critrios e caractersticas. Para isso, o MAXIMA dispe de dois comandos: o create_list e o makelist 3 (%i1) create_list1(x^i,i,[1,3,7]); (%o1) [x, x^3 ,x^7]
3
26
Introduo ao MAXIMA-2009 (%i2) makelist (x=y,y,[a,b,c]); (%o2)[x = a, x = b, x = c] (%i3) create_list1(1/i, i, 1, 4); (%o3) [1, 1/2, 1/3, 1/4] (%i4) x:makelist (x[k],k,0,4); (%o4)[x[0], x[1] ,x[2], x[4]]
Bruna Santos
Comandos listp (expresso) first (lista) last (lista) rest (lista,n) part (lista,n) ou lista[n] length (lista) sort (lista) join (lista1, lista2)
Descrio Determina se a expresso ou no uma lista. No caso afirmativo retorna true seno retorna false. primeiro elemento de uma lista. o ltimo elemento de uma lista. uma lista com os n primeiros elementos da lista removidos. Acede ao elemento de ndice n de uma lista. Determina o comprimento de uma lista. Ordena os elementos de uma lista por ordem crescente e/ou alfabtica. Cria uma nova lista com os elementos da lista 1 e da lista 2 intercalados. Este comando ignora os elementos da lista mais longa, se as listas no possurem o mesmo comprimento. Cria uma nova lista com os elementos da lista 1 e da lista 2 seguidos. Adiciona um elemento no incio da lista, sem alterar a lista inicial. Para actualizar a lista inicial, preciso efectuar a seguinte instruo de atribuio: lista: cons (elemento, lista); Adiciona um elemento no fim da lista sendo que este comando possui as mesmas caractersticas que cons. Estes comandos permitem-nos criar listas com determinadas caractersticas.
endcons (elemento,lista) creat_list ( expresso, varivel, lista) makelist (expresso, varivel, lista)
Tabela 2-5
27
Introduo ao MAXIMA-2009
Bruna Santos
2.3 Matrizes
No Mxima uma matriz define-se do seguinte modo: (%i1) A: matrix (lista1,lista2,..,listan); Onde as lista1, lista2, ..., listan so as linhas da matriz e devem ter o mesmo comprimento.
& 5 ' 3 ' 4# Exemplo 1: Defina, no Mxima, a matriz A= $ 1 ' 7 12 ! e determine o nmero de $ ! $ ! 10 4 ' 6 % "
linhas e de colunas de A. Resoluo: (%i1) A: matrix ([5, -3, -4],[1, -7, 12], [10,4,-6]);
& 5 ' 3 ' 4# $ 1 ' 7 12 ! $ ! $ ! 10 4 ' 6 % "
(%o1)
Com o Mxima possvel efectuar as operaes bsicas (soma, subtraco, multiplicao, inversa e exponenciao) com matrizes. Por exemplo, se A e B so duas matrizes com a mesma dimenso, A+B, a soma as duas matrizes.
& 5 ' 3 ' 4# & 1 ' 3 ' 6# $ ! ! Exemplo 2: Sejam as matrizes A= $ 1 ' 7 12 ! e B= $ $ 2 ' 7 12 ! $ $ 6! %10 4 " %10 1 ' 6! " atravs de comandos do Mxima:
calcule
a) A+B; b) 3A;
28
Introduo ao MAXIMA-2009 c) B-2A; d) (A.B !1 ) 4; e) AB !1 ; Resoluo: (%i1) A: matrix ([5, -3, -4], [1, -7, 12], [10, 4, 6])$ (%i2) B: matrix ([1, -3, -6], [2, -7, 12], [10, 1, -6])$ (%i3) A+B;
& 6 ' 6 ' 10# $ ! (%o3) $ 3 ' 14 24 ! $ 5 0 ! %20 "
Bruna Santos
(%i4) 3.A;
&15 ' 9 ' 12# $ ! (%o4) $ 3 ' 21 36 ! $ 18 ! %30 12 "
(%i5) B 3.A;
6 6 # & ' 14 $ ! (%o5) $ ' 1 14 ' 24! $ %' 20 ' 11 ' 24! "
(%i6) A.B;
' 42 # &' 41 2 $ (%o6) $ 107 58 ' 162! ! $ ! 78 ' 52 ' 48 % "
(%i7) A.B ;
!1
!1
29
Introduo ao MAXIMA-2009
Bruna Santos
"1 $5 $ (%o7) $ 2 $ $1 #
1 1 1 4
Por vezes, h necessidade de acrescentar ou extrair colunas e/ou linhas a uma matriz.
& 1 ' 3 ' 6# $ ! Exemplo 3: Seja A= $ 2 ' 7 12 ! . Resolva as seguintes alneas atravs do $ %10 1 ' 6! " MAXIMA: a) Aceda ao elemento da segunda linha e terceira coluna b) Extraa a primeira linha; c) Extraa a ltima coluna; d) Adicione a linha [3,7,9] matriz A; &2# $ ! e) Adicione a coluna $' 1! $ %5! "
Resoluo: (%i1) A: matrix ([1, -3, -6], [2, -7, 12], [10, 1, -6])$ (%i2) A[2,3]; (%o2)12 (%i3) row(A, 1); (%o3) [1, -3, -6]; (%i4) col(A,3);
& ' 6# $ ! (%o4) $ 12 ! $ % ' 6! "
30
Bruna Santos
(%o5)
Definio: Uma matriz diagonal toda a matriz quadrada em que os elementos que no pertencem diagonal principal so iguais a zero. Sendo que, os elementos da diagonal principal podem ou no serem iguais a zero (no sendo necessariamente iguais). A matriz diagonal tem as seguintes propriedades: I. II. III. simtrica. Tem por valores prprios os elementos da diagonal principal e por vectores prprios os vectores da base cannica. O determinante igual ao produto dos elementos da diagonal principal.
Exemplo 4: Atravs de comandos do Mxima: a) Defina uma matriz diagonal, MD, em que os elementos na diagonal so diferentes de zero; b) Determine o determinante da matriz diagonal. c) Calcule o polinmio caracterstico, P (! ) = det( I " ! MD ) , de MD. d) Encontre os valores prprios e vectores prprios de MD.
Resoluo:
31
Bruna Santos
b) (%i2) determinant (MD); (%o2) 49 c) (%i3) charpoly (MD,x); (%o3) (2 ! x )(7 ! x ) Para calcular os valores e vectores prprios, no Mxima, necessrio chamar o pacote eigen.mac. atravs load(eigen). (%i4) load (eigen); (%o4) C:/Programas/MAXIMA-5.17.0/share/MAXIMA/5.17.0/share/matrix/eigen.mac (%i5) eigenvalues (MD); (%o5) [[7],[2]] Retoma duas listas. A primeira lista retoma os valores prprios e a segunda lista retoma a multiplicidade dos mesmos. Neste caso 7 valor prprio duplo. d) (%i6) eigenvectors (MD); (%o6) [[[2,7],[1,1]],[1,0],[0,1]] Retorna uma lista de listas cuja primeira sub-lista a sada de eigenvalues e as outras sublistas so os autovectores da matriz correspondente.
Exemplo 2-7
Definio: Uma matriz quadrada Anxn diz-se invertvel se existir uma matriz B, tal que AB=BA= Identidade
32
Introduo ao MAXIMA-2009
Bruna Santos
(%i2) Id:ident(2);
&1 0# (%o2) $ ! %0 1 "
(%i5) B.A;
&1 0# (%o5) $ ! %0 1 "
Exemplo 2-8
Definio: Uma matriz quadrada A diz-se ortogonal se e s se a sua inversa for igual sua transposta, isto :
33
Introduo ao MAXIMA-2009
" $ Exemplo 6: Verifique, com comandos do Mxima, se a matriz C= $ $ $ # 1 2 3 2
Bruna Santos
3% ' 2 ' 1' ! ' 2&
(%i4) C.TC;
&1 0# (%o4) $ ! %0 1 "
Exemplo 2.3-9
Operao AB
Descrio
Soma ou diferena de matrizes (adiciona ou subtrai elementos correspondentes, ou seja, A[i,j] B[i,j] onde i,j # !" ) Multiplicao de um escalar por todos
k*M
34
Introduo ao MAXIMA-2009
Bruna Santos elementos de uma matriz Produto entre duas matrizes. Produto de uma matriz pelo o inverso da outra. A exponenciao (^) realizada, elemento a elemento.
eigenvects (M) ou eigenvectores (M) determinant (M) invert (M) ident(n) transpose (M) addcol (M, coluna 1,,coluna n) addrow (M, lista 1,, lista n)
Descrio Determina o nmero de linhas e nmero de colunas de uma matriz Retorna uma matriz diagonal de dimenso n por n em que os elementos da diagonal principal so todos iguais varivel fornecida. Calcula o polinmio caracterstico de uma matriz Imprime uma lista de duas listas. A primeira sub-lista contem os valores prprios, a segunda sub-lista contm a multiplicidade dos mesmos na ordem correspondente. Retorna uma lista contendo os vectores prprios da matriz M. Calcula o determinante da matriz M Retorna a inversa da matriz M. Retorna uma matriz identidade n por n. Calcula a matriz transposta de M. Acrescenta a(s) coluna(s) dada(s) no final da matriz M. Acrescenta a(s) linhas dada(s) no final da matriz M.
Corresponde ao somatrio dos produtos da linha i da matriz A e das colunas j da matriz B. O produto entre matrizes requer que o nmero de colunas da matriz A deva ser igual ao nmero de linhas da matriz B.
35
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 3.
Equaes, Sistemas de Equaes e Equaes Diferenciais
Os nmeros so as regras dos seres e a Matemtica o Regulamento do Mundo. - F. Gomes Teixeira
36
Introduo ao MAXIMA-2009
Bruna Santos
O objectivo deste captulo a manipulao de equaes, sistemas de equaes e equaes diferenciais. Aps a leitura deste captulo o leitor ser capaz de: Definir e resolver equaes no MAXIMA; Aceder aos membros de uma equao; Calcular razes de equaes; Definir e resolver sistemas de equaes; Definir e resolver equaes diferenciais;
37
Introduo ao MAXIMA-2009
Bruna Santos
3.1 Equaes:
No MAXIMA as equaes definem-se atravs do operador =. Para aceder ao primeiro e ao segundo membro utilizam-se, respectivamente, os comandos lhs e rhs (que podemos traduzir como lado esquerdo e lado direito). Exemplo 1: Defina a equao x 3 + 4 = membro da mesma. Resoluo: (%i1) eq:x^3 +4 =(6+x^2)/x; (%o1) x 3 + 4 =
6 + x2 x
Podemos somar e multiplicar expresses a ambos os membros de uma equao. Por exemplo: (%i4) (x/4)*eq; (%o4)
x( x 3 + 4) 6 + x 2 = 4 4
(%i5) expand(%);
38
Introduo ao MAXIMA-2009
Bruna Santos
Podemos definir uma funo de uma ou mais variveis utilizando o operador := : (%i1) f(x,y) := x+(x/y); x (%o1) f ( x, y ) := x + y (%i2) f(9,3); calcula o valor da funo no ponto (9,3). (%o2) 12 Outra maneira de definir uma funo atravs do comando define. Exemplificando: (%i1) exp: log(y) + cos(x); (%o1) exp: log(y) + cos(x); (%i2) define (F1(x,y),exp); (%o2) F1(x,y):= log(y) + cos(x); (%i3) F1(2,3), numer; (%o3) 0.68246545212097
No MAXIMA, para calcular os zeros de uma equao podemos utilizar o comando solve (equao) ou solve (equao=0). Contudo, nem sempre possvel obter uma soluo de forma analtica. Nesse caso pode utilizar-se comandos que tm como base a aplicao de mtodos numricos. Um exemplo deste tipo de comando o find_roots(equao).
Exemplo 2: Calcule as razes da equao e ! x = x . Resoluo: (%i1) f(x) :=exp(-x)-x; (%o1) f(x) :=exp(-x)-x; (%i2) solve(f(x)); (%o2)[ x = %e ! x ] o comando solve no fornece uma resposta explcita.
39
Bruna Santos
Os sistemas de equaes escrevem-se como listas de equaes. No caso em que o sistema linear, este pode resolver-se atravs do comando solve (ou linsolve). Exemplo 1: Resolva os seguintes sistemas: #x + 2 y = 5 i. " !2 x + y = 4
$2 x + 3 y % z = 0 ! #4 x + y + z = 7 !% 2 x + y + z = 4 "
ii.
Resoluo: (%i1) solve([x+2*y=5, 2*x+y=4], [x,y]); (%o1) [[ x=1,y=2 ]] (%i2) linsolve([2*x+3*y-z=0, 4*x+y+z=7, -2*x+y+z=4], [x,y,z]); && 1 ## (%o2) $ $ x = , y = 1, z = 4! ! 2 "" %%
Exemplo 3.2-1
envolvendo uma nica funo incgnita y=y(x) e suas derivadas. A varivel independente x e y a varivel dependente. A derivada de ordem n denota-se pelo smbolo y ( n ) ( x) . A ordem da equao diferencial ordinria dada pela mais alta derivada da funo presente na equao.
40
Introduo ao MAXIMA-2009
Bruna Santos
O comando do MAXIMA que resolve equaes diferencias ordinrias de primeira e segunda ordem ode2 (ode=ordinary differential equation). Ao usar o comando temos que definir a: I. Equao diferencial; II. Varivel dependente; III. Varivel independente; Exemplo Defina e dy ( x ! 1) y 3 + ( y ! 1) x 3 =0 dx Resoluo: 1: resolva a seguinte equao diferencial
(%i1) eqdif: (x-1)*y^3 + (y-1)*x^3* diff (y,x) =0; dy (%o1) ( x ! 1) y 3 + ( y ! 1) x 3 ( ) = 0 dx (%i2)resoleq:ode2(eqdif,y,x); 2y !1 2x ! 1 (%o2) a soluo depende de uma constante arbitrria = %c ! 2 2y 2x 2 representada por %c.
Nota: necessrio o uso do apstrofo () antes de diff com o objectivo de evitar o clculo da derivada Exemplo 3.3-1
Exemplo 2: Defina e resolva a equao diferencial de segunda ordem d2y dy + y( ) 3 = 0 2 dx dx Resoluo: (%i1) eqdif2: diff(y,x,2)+y*diff(y,x)^3=0; (%o1)
d2y dy + y( 2 dx dx
)3 = 0
(%i2) resoleq2:ode2(eqdif2,y,x);
41
Introduo ao MAXIMA-2009
Bruna Santos
Exemplo 3: Defina e resolva o seguinte problema de valor inicial (PVI) dy sin( x) , onde as condies iniciais so (,0). x2 + 3 xy = dx x Resoluo: (%i1) eqdif3: x^2*diff(y,x) + 3*x*y=sin(x)/x; (%o1) x 2 (
dy sin( x) ) + 3 xy = dx x
(%o2) y = !
Exemplo 3.3-3
Existem equaes diferenciais cuja soluo analtica no possvel de determinar. Assim, teremos que recorrer ao estudo qualitativo dessas equaes, desenhando um campo de direces nas duas dimenses x e y.
Exemplo 4: Obtenha o campo de direces da equao diferencial trajectria da soluo que passa por (-1,3) . Resoluo: (%i1 )load("plotdf")$ (%i2) plotdf(x-y^2, [trajectory_at,-1,3]);
Exemplo 3.3-4
dy = x ! y2 e a dx
42
Introduo ao MAXIMA-2009
Bruna Santos
rhs (expr)
solve (expr,x) find_roots (f(x),x,a,b) find_roots (f,x,a,b) allroots (expr) allroots (eqn) linsolve ([expr1,expr2,...,exprn],[x1,x2,..,xn])
Descrio Acede ao lado esquerdo (isto , o primeiro membro) da expresso expr, quando o operador de expr for relacional ou de atribuio. Acede ao lado direito (isto , o segundo argumento) da expresso expr, quando o operador de expr for relacional ou de atribuio. Resolve a equao algbrica, expr, na varivel x, Determina a raiz da funo f, ou da expresso f(x), na varivel x (por exemplo), pertencente ao intervalo [a,b]. Calcula, atravs de mtodos numricos, razes, complexas ou reais, do polinmio (expr) ou de uma equao polinomial de uma varivel (eqn). Resolve uma lista de equaes lineares simultaneamente, ou seja, um sistema.
43
Bruna Santos Resolve equaes diferenciais ordinrias (EDO) de primeira ou de segunda ordem. Recebe trs argumentos: uma EDO deqn, a varivel dependente, dvar, e a varivel independente, ivar Resolve o problema de valor inicial constitudo por uma equao diferencial de primeira ordem e as coordenadas xval e yval do ponto inicial. Produz o campo de direces de uma equao diferencial em duas dimenses, x e y.
ic1(deqn1,xval, yval)
plotdf
44
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 4.
Grficos
O livro da natureza foi escrito exclusivamente com figuras e smbolos matemticos. - Galileu
45
Introduo ao MAXIMA-2009
Bruna Santos
O Mxima possui vrios recursos para produzir diversos tipos de grficos em duas e trs dimenses. Os objectivos deste captulo so: !continuos #discretos # Traar grficos a duas dimenses de tipos: " . # paramtri cos # $ polares Inserir texto na rea do grfico; Traar grficos a trs dimenses;
46
Introduo ao MAXIMA-2009
Bruna Santos
Para visualizarmos graficamente funes de uma varivel utiliza-se o comando plot2d(). Acedemos a este comando de duas formas: I. Utilizando a funo plot2d() directamente. II. No menu do WxMaxima, selecciona-se Plot e seguidamente a opo Plot2d donde surgir uma janela de dilogo da forma:
Atravs desta janela possvel definir vrios parmetros de uma forma interactiva. No nosso exemplo, introduzimos a funo sin(x) nos intervalos [-10,10] x [1,1]. Aps a concluso da introduo dos vrios parmetros surgir: (%i1) wxplot2d ([sin(x^2)], [x,-10,10], [y,-1,1])
47
Introduo ao MAXIMA-2009
Bruna Santos
Para visualizar mltiplos grficos na mesma janela devemos colocar as funes na forma de lista como podemos ver no exemplo que se segue: Exemplo 1: Represente na mesma janela, ou seja, no mesmo sistema de eixos, as duas funes x 3 , x reduzindo o intervalo de valores de x e y entre [0,2] e [0,4], respectivamente. Resoluo: (%i1) plot2d ([x^3, sqrt(x)], [x,0,1], [y,0,4]);
48
Introduo ao MAXIMA-2009
Bruna Santos
possvel assinalarmos as funes6 assim como os eixos coordenados. Retomando o exemplo anterior: (%i2) plot2d([x^3, sqrt(x)], [x,0,1], [y,0,4], [legend, Grafico 1, Grafico 2], [xlabel, Eixo - X], [ylabel, Eixo - Y]);
Nas cincias experimentais, a recolha e anlise de dados discretos, normalmente resultantes de experincias ou observaes, tem um papel fulcral na obteno de concluses sobre determinados fenmenos e ou teorias. A opo discrete do plot2d permite representar lista de pontos. Exemplo 2: Considere o registo de 4 em 4 horas da evoluo da temperatura (em graus centigrados) durante 24 horas na cidade do Porto. [[0h, 10],[4h,12],[8h,15], [12h, 20], [15h, 25], [20h, 18]]. Represente os dados graficamente. Resoluo: (%i1) temperaturas:[[0, 10],[4,12 ],[8,15], [12, 20], [15, 25], [20, 18]]; (%o1) [[0,10],[4,12],[8,15],[12,20],[15,25],[20,18]]
6
Ao colocar legendas nos grficos o Gnuplot no aceita caracteres especiais, como, ; nem acentos ortogrficos.
49
Bruna Santos
Exemplo 3: Utilizando os dados do exemplo anterior verifique: 5 i. Se a funo f ( x) = x + 2 , descreve aproximadamente a evoluo da 3 temperatura. ii. Represente os dados unidos por segmentos de recta. Resoluo: i) (%i3) plot2d([[discrete, temperaturas], (5/3)*x+2], [style, [points, 3, 4], [lines, 1, 2], [legend, dados, funcao teorica]), [xlabel, Tempo (Horas)], [ylabel, Temperatura (C)]];
Exemplo 4.1-3
50
Introduo ao MAXIMA-2009
Bruna Santos
Em concluso a recta no acompanha bem o conjunto de todos pontos representados. ii) (%i4) plot2d([ discrete, temperaturas]);
51
Introduo ao MAXIMA-2009
Bruna Santos
A representao de funes paramtricas pode se feita no MAXIMA atravs da opo parametric do plot2d. Exemplo 4: Represente a funo paramtrica (2cos (t), 2 sin(t)) no intervalo [0, 2 ! ]. Resoluo: (%i3) plot2d([parametric, 2*cos(t), 2*sin(t)], [t,0,2*%pi]);
Exemplo 4.1-4
52
Introduo ao MAXIMA-2009
Bruna Santos
Um modo importante de representao de pontos num plano consiste no uso de coordenadas polares atravs da opo set polar do gnuplot_preamble. A opo set zeroaxis impede o traado dos eixos coordenados. Exemplo 5: Represente graficamente as seguintes funes. i. ! (" )= 0,5sin(4" ), " #[0, 4$ ]. ii. ! (" )= -3+2cos(" ), " #[0, 2$ ]. Resoluo: i) (%i1) plot2d([0.5*sin(4*phi)],[phi,0,4*%pi],[gnuplot_preamble, "set polar; set zeroaxis;"]);
Exemplo 4.1-5
Introduo ao MAXIMA-2009
Bruna Santos
Existem vrias maneiras de representar curvas no plano. Entre estas, destaca-se o implicit_plot. Exemplo 6: Represente graficamente a curva x 2 ! y 2 = 2 no intervalo [-2; 2] x [4,4]. Resoluo: (%i1) load(implicit_plot); (%o1)C:/Programas/MAXIMA5.17.0/share/MAXIMA/5.17.0/share/contrib/implicit_plot.lisp (%i2) implicit_plot (x^2-y^2=2, [x, -4, 4], [y, -4, 4], [gnuplot_preamble, "set zeroaxis"]);
Exemplo 4.1-6
54
Introduo ao MAXIMA-2009
Bruna Santos
Ilustrao 15 Curva: x
! y2 = 2
Existem distintos modos de criar grficos tridimensionais no MAXIMA. O comando plot3d() permite faz-lo, os seus argumentos so: I. Funo ou lista de funes. II. Domnio. III. Contradomnio.
f ( x, y ) = 3 ! x 2 ! y 2 no domnio
55
Introduo ao MAXIMA-2009
Bruna Santos
Ilustrao 16
f ( x, y ) = 3 ! x 2 ! y 2
Podemos visualizar um grfico tridimensional, noutro formato, para alm do Gnuplot. Usando a funo, f ( x, y ) = 3 ! x 2 ! y 2 , do exemplo anterior, e utilizando a opo openmath do plot_format (que se encontra instalado no Mxima), obtemos: (%i2) plot3d (3-x^2-y^2, [x,-4,4], [y,-5,5], [plot_format, openmath]);
f ( x, y ) = 3 ! x 2 ! y 2
Utilizando o menu Config (canto superior esquerdo), podemos modificar algumas opes.
56
Introduo ao MAXIMA-2009
Bruna Santos
Cria um grfico a duas dimenses. Opes Impulses- Desenha linhas verticais entre a curva do grfico e o eixo do x. Points Para representar dados discretos. Style Parametric Para representar funes paramtricas. Implicit plot- Para representar funes implcitas. Opes set polar Para representar funes em coordenadas polares.7 set zero axis No desenha os eixos coordenados. Plot3d(expr, [x minimo, x maximo], [y Cria um grfico de uma ou trs funes de mnimo, y mximo]), [opes]) duas variveis.
Tabela 8: Opes Grficas
57
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 5.
Clculo Diferencial e Integral
A imaginao mais importante que o conhecimento. Albert Einstein
58
Introduo ao MAXIMA-2009
Bruna Santos
Os objectivos deste captulo so: Explorar comandos de manipulao algbrica de polinmios, tais como: simplificao, expanso e factorizao; Calcular, atravs do MAXIMA: i. O valor de uma funo num ponto; ii. O limite de uma funo; iii. A derivada de uma funo; iv. Os pontos crticos; v. O integral definido de uma funo;
59
Introduo ao MAXIMA-2009
Bruna Santos
No MAXIMA, possvel efectuar operaes elementares sobre expresses, calcular limites, derivadas e integrais de funes de forma rpida e eficaz. Exemplo 1: - Factorize o polinmio 25 x 2 ! 10 xy + y 2 ; - Expanda o polinmio (z + k ) z 2 ! k ;
3 5
Resoluo: (%i1) factor (25*x^2 -10*x*y +y^2); (%o1) (5 x ! y ) 2 (%i2) expand ((z + k) ^ 3 * (z - k)^2); (%o2) z 5 + kz 4 ! 2k 2 z 3 ! 2k 3 z 2 + k 4 z + k 5
Exemplo 5.1-1
Por vezes, necessrio calcular o valor de uma funo num ponto especfico. Exemplo 1: Calcule o valor da funo f ( x ) = x + cos x no ponto x = ! . Resoluo: (%i1) f(x):= x + cos (x); (%o1) f(x):= x + cos (x); (%i2) f(%pi) (%o2)%pi-1
Exemplo 5.2-1
Definio: Seja f (x) uma funo real de varivel real e c um ponto de ! . Seja K o limite de f(x), quando x converge para c. A notao habitual :
lim f ( x) = K
x !c
60
Introduo ao MAXIMA-2009
Bruna Santos
Exemplo 3: Calcule o limite, direita e esquerda, da funo Resoluo: (%i1) limit(1/(x-1),x,1, plus); (%o1) ! 8 (%i2) limit(1/(x-1),x,1,minus); (%o2) " !
Exemplo 5.2-3
1 no ponto x = 1 . x !1
Exemplo 4: Calcule os limites: 1 a) lim ; x " +! x e x ! e!x b) lim x x # !" e + e ! x 1 c) lim x "1 x ! 1 Resoluo: (%i1) limit (1/sqrt(x), x, inf); (%o1) 0 (%i2) limit ((exp(x)-exp(-x))/(exp(x)+exp(-x)),x, minf); (%o2)-1
Se a expresso de sada for ind ou und, significa que o limite calculado indefinido.
61
Introduo ao MAXIMA-2009 (%i3) limit (1/ (x-1), x, 1); (%o3) infinity representa o infinito complexo.
Exemplo 5.2-4
Bruna Santos
5.3 Derivadas:
Definio: A derivada de uma funo f no ponto x, f '( x ) , definida, a partir da noo de limite, por: f ( x + !x ) # f ( x ) f '( x ) = lim !x " 0 !x A interpretao geomtrica da derivada de uma funo num ponto o declive da recta tangente nesse ponto. importante salientar que se uma funo f derivvel no ponto x=c, ento a funo contnua nesse ponto. Exemplo 1: Calcule a primeira e a segunda derivada da funo f ( x ) = x 3 x 2 ! 1 no ponto x = 2 . Resoluo: (%i1) f(x):=x^3 * sqrt (x^2-1); definio da funo f ( x ) (%o1) 3 x 2 x 2 ! 1 (%i2) define(df1(x),diff(f(x),x,1)); o comando define permite definir f '( x ) atravs do comando diff. x4 2 2 (%o2) df1(x):= 3 x x ! 1 ! x2 !1 (%i3) df1(2); avalia f '(2) 16 (%o3) 12 3 + 3 (%i4) define(df2(x),(diff(f(x),x,2))); define a segunda derivada (%o4) df2(x):= 6 x x 2 ! 1 +
7x3 x2 !1 ! x5
(x
!1 2
136 3 3
Exemplo 5.3-1
62
Introduo ao MAXIMA-2009
Bruna Santos
Exemplo 2: Determine a equao da recta tangente ao grfico da funo f ( x) = 2 sin( x) + cos(2 x) no ponto (! ,1), representando a funo e a recta graficamente. Resoluo: (%i1) f(x):=2* sin(x) + cos(2*x); (%o1) f ( x) := 2 sin( x) + cos(2 x) Para determinar a equao da recta tangente no ponto (! ,1), calcula - se f ' (! ) (%i2) define(df1(x),(diff(f(x),x,1))); (%o2) 2 cos( x) ! 2 sin( 2 x) (%i3) tangente(x):=df1 (%pi)*x+f(0)$ A equao da recta tangente tem a forma y(x)=mx+b. A equao : y(x)=-2x++2. (%i3) plot2d ([f(x), tangente(x)], [x,0,2*%pi], [y,-4,2]);
Exemplo 10
Grfico de
63
Introduo ao MAXIMA-2009
Bruna Santos
Frequentemente, necessrio estudar o comportamento de uma funo num determinado intervalo I. Para isso, necessrio determinar os pontos crticos da funo, assim como a monotonia. O MAXIMA til neste tipo de tarefas. Exemplo 3: Calcule os pontos crticos e os pontos de descontinuidade da funo x 2 + 3x f (x) = 3 . Represente graficamente a funo. x ! 5x2 Resoluo: (%i1) f(x):= (x^2+3x)/(x^3 -5*x^2); (%o1) f ( x) :=
x 2 + 3x x 3 ! 5x 2
(%i2) pcriticos1: solve(diff(f(x), x, 1)); os pontos crticos so os zeros de f '( x ) (%o2) " # x = !2
6 ! 3, x = 2 6 ! 3 $ %
[ x = 0, x = 5 ]
Exemplo 5.3-3
f ( x) =
x 2 + 3x x 3 ! 5x 2
64
Bruna Santos
1 , determine: ( x ! 1) 2
Primeira derivada; Segunda derivada; Interseco da funo com eixo y; A paridade da funo; O comportamento da funo, quando x " 1! , x " 1+ ;
1 ( x ! 1) 2
(%i2) define(dg1(x),(diff(g(x),x,1))); 2 (%o2) dg1( x) = ( x ! 1) 3 b) (%i3) define(dg2(x),(diff(g(x),x,2))); (%o3) dg 2( x) = ! c) (%i4) soy: g(0); (%o4) -1 d) (%i5) ev (g(x) = g(-x),pred); A funo no par, porque no verifica: g (x)=g (-x). (%o5) false e) (%i6) is (g(x) = - g(-x)); (%o6) false A funo no impar, porque no verifica: g (x)=- g (-x). f) (%i7) limit (g(x), x, 1, plus); O limite da funo para valores direita de 1 : (%o7) " ! 65
6 ( x ! 1) 4
Introduo ao MAXIMA-2009
Bruna Santos
(%i8) limit (g(x), x, 1, minus); O limite da funo para valores esquerda de 1 : (%o8) " !
Exemplo 5.3-4
O clculo de integrais revela-se de grande importncia em reas como a Fsica e Matemtica. Definio: Se uma funo f contnua e no negativa num intervalo fechado [a,b] , ento a rea da regio delimitada pelo grfico de f, pelo eixo dos x e pelas rectas verticais x=a e x=b dada por:
rea = ! f ( x)dx
a b
Exemplo 1: Calcule a primitiva da funo f ( x ) = sen 5 x cos x . Resoluo: (%i1) f(x):=sin(x)^5 * cos(x); (%o1) f ( x ) = sen 5 x cos x (%i2) Intg:integrate (f(x), x); sin 6 x (%o2) O comando integrate no apresenta a constante de integrao. Desta 6 forma, a primitiva da funo a que est indicada a menos da soma de uma constante arbitrria.
Exemplo 5.4-1
66
Introduo ao MAXIMA-2009
Bruna Santos
Exemplo 2: A probabilidade de um aluno se lembrar de uma percentagem entre a e b do material apreendido durante uma aula dado por: b 15 Pa ,b = ! x 1 " xdx a 7 , onde x representa a percentagem do contedo lembrado aps a aula. Escolhe-se um aluno aleatoriamente. Determine a probabilidade do aluno se lembrar de 50% a 70 % da matria dada. Represente essa probabilidade graficamente e torne este grfico apelativo atravs da opo impulses. Resoluo: (%i1) p(x): =((15*x)/7)*sqrt(1-x); definio da funo integranda. (%o1)
15 x 1! x 7
1 )dx x + 0.1
67
Introduo ao MAXIMA-2009
1 ) x + 0.1
Bruna Santos
(%o1) sin(
Exemplo 5.4-3
No possvel resolver analiticamente este integral atravs do comando integrate. Ser necessrio aplicar mtodos numricos para calcular este tipo de integrais. O MAXIMA disponibiliza um pacote designado Quadpack. Neste esto presentes uma coleco de comandos que implementam algoritmos para o clculo numrico de integrais definidos, entre os quais o Romberg correspondente ao mtodo com o mesmo nome. Vejamos um exemplo de como utilizar o pacote Quadpack e o comando Romberg: (%i2) quad_qags (p, x, 0, 1); (%o2) [0.59450627843597,1.9863238307029738*10 !10 10,147,0] O comando quad_qags retorna uma lista com quatro elementos onde: 1. o valor do integral; 2. o erro absoluto estimado; 3. o nmero de avaliaes da funo integranda; 4. um cdigo de erro;
O cdigo de erro pode tomar 7 valores, que se caracterizam: 0. 1. 2. 3. 4. 5. 6. Se no foi encontrado nenhum problema Se foram utilizados muitos sub-intervalos. Se foi detectado um erro de arredondamento excessivo. O integral comporta-se de um modo bastante oscilatrio. No houve convergncia. O integral provavelmente divergente ou converge muito lentamente. O integral no vlido.
68
Introduo ao MAXIMA-2009
Bruna Santos
Vamos explorar o comando Romberg para calcular o valor do integral. Numa primeira estncia temos que chamar o comando para que este fique disponvel na seco para uso do utilizador. Assim, faamos: (%i3) load (romberg); (%o3) C:/Programas/Mxima5.17.0/share/MAXIMA/5.17.0/share/numeric/romberg.lisp (%i4) romberg (p,x,0,1); (%o4) 0.59450623879744
Comando expand (expresso) factor (expresso) subst (a,b,c) limit (funo, varivel, limite pretendido) diff(funo, varivel, n) integrate (funo, varivel) ou integrate (funo, varivel, a*, b*) a* e b* so os limites de integrao superior e inferior, respectivamente. romberg (funo, varivel, a*, b*) a* e b* so os limites de integrao superior e inferior, respectivamente.
Descrio Expande uma expresso Factoriza a expresso dada, independentemente do nmero de variveis, em factores irredutveis. Substitui o valor a em b na expresso/funo, c. Calcula o limite de uma funo. Calcula a n-sima derivada da funo na varivel pretendida. Calcula o integral da funo com ou sem limites de integrao.
69
Introduo ao MAXIMA-2009
Bruna Santos
No clculo de limites o comando limit usa smbolos especiais, que encontramos descritos no seguinte quadro: Smbolo inf minf plus minus Descrio +! "! Calcula o limite de um valor pela direita. Calcula o limite de um valor pela esquerda.
Tabela 10: Comandos sobre limites
70
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 6.
Estatstica Descritiva e Probabilidades
No h ramo da Matemtica, por mais abstracto que seja, que no possa um dia vir a ser aplicado aos fenmenos do mundo real Lobachevsky
71
Introduo ao MAXIMA-2009
Bruna Santos
O MAXIMA uma valiosa ferramenta em anlise de dados e estatstica. Neste captulo, introduziremos comandos concernentes aos seguintes tpicos: Clculo de probabilidades de distribuies discretas; Clculo de probabilidades de distribuies contnuas; Leitura de ficheiros no formato txt; Anlise estatstica de dados; Representao estatstica de dados;
72
Introduo ao MAXIMA-2009
Bruna Santos
Introduo ao MAXIMA-2009 ii) P(X>3)= 1-P( X3) (%i3) 1-cdf_binomial(3,20,0.15); (%o3) 0.352274825843
Exemplo 6.1-1
Bruna Santos
B. (%i4) mean_binomial (20,0.15); (%o4) 3.0 C. (%i5) load (descriptive); (%o5)C:/Programas/Mxima5.17.0/share/MAXIMA/5.17.0/share/contrib/descriptive/descriptive.mac (%i6) lista: random_binomial (20,0.15,15); (%o6) [5, 2, 1, 6, 2, 3, 2, 1, 5, 1, 4, 4, 3, 3, 3]
Exemplo 6.1-1
(%i7) histogram(lista);
74
Introduo ao MAXIMA-2009
Bruna Santos
75
Introduo ao MAXIMA-2009
Bruna Santos
76
Introduo ao MAXIMA-2009
Bruna Santos
f ( x) =
( 2)
, - < x < +
Os parmetros designam-se por: o valor esperado, isto , mdia de x. a varincia de X ( >0). A notao para uma distribuio Normal X~N (,). O grfico da funo densidade de probabilidade de uma varivel aleatria com distribuio N (,) a famosa curva em forma de sino, tambm dita curva de Gauss abaixo representada:
Exemplo 2: O tempo gasto, em minutos, de um exame de Estatstica, tem distribuio Normal. O valor esperado 120 minutos e a varincia 15 minutos. Sorteando um aluno ao acaso, qual probabilidade de que ele demore no mximo 100 minutos a realizar o exame? Resoluo: Seja a varivel aleatria X: X= Tempo de realizao do exame de Estatstica Distribuio de X X~N (120,15). P( X<100)
77
Introduo ao MAXIMA-2009 (%i1) load(distrib); (%o1)C:/Programas/Mxima5.17.0/share/MAXIMA/5.17.0/share/contrib/distrib/distrib.mac (%i2) cdf_normal (100, 120, 15); (%o2) 0.091211219725868
Exemplo 6.2-2
Bruna Santos
Em diversas situaes, dispomos de um conjunto de dados que pretendemos estudar a nvel estatstico para consequentemente tirar concluses. O MAXIMA possui ferramentas que nos ajudam nesta tarefa. Suponhamos que possumos um conjunto de dados num ficheiro de texto, com extenso .txt, referentes temperatura registada durante um determinado nmero de dias numa cidade. A questo como migrar esses dados do ficheiro .txt para o MAXIMA? A resposta simples. Basta apenas seguir os seguintes passos: 1. Num directrio, escolha do leitor, coloque o ficheiro .txt numa pasta. (Neste exemplo, usou-se o ambiente de trabalho como directrio e a pasta designada por Pasta). 2. No menu do WxMaxima selecciona-se a opo MAXIMA e em seguida Add to path. Sugira uma janela deste formato:
78
Introduo ao MAXIMA-2009
Bruna Santos
file_search_MAXIMA : cons(sconcat("C:/Documents and Settings/B/Ambiente de trabalho/Pasta/###.{lisp,mac,mc}"), file_search_MAXIMA); 4. Carregamos simultaneamente em Shift+Enter; 5.Digita-se o seguinte: (%i1) dados: read_matrix(file_search("D.txt")); 6.Aparecer os dados em forma de matriz. &25 # $22 ! $ ! $21 ! $ ! $25 ! $26 ! $ ! $29 ! $22 ! $ ! $24 ! $19 ! $ ! $23 ! $ ! $25 ! $27 ! $ ! $26 ! $18 ! $ ! $18 ! $25 ! $ ! $25 ! $ ! (%o2) $16 ! $30 ! $ ! $27 ! $ % ! " 7. Para calcularmos a mdia, mediana, desvio-padro, varincia, etc, necessrio chamar o pacote descriptive. (%i3) load (descriptive); (%o3)C:/Programas/MAXIMA5.17.0/share/MAXIMA/5.17.0/share/contrib/descriptive/descriptive.mac
Calculemos: Mdia
79
Introduo ao MAXIMA-2009 (%i4) mean(dados), numer; (%o4) 23.65 Varincia (%i5) var(dados), numer; (%o5) 13.4275 Desvio padro: (%i6) std(dados), numer; (%o6) 3.66435533211505 Amplitude da amostra: (%i7) range (dados); (%o7) 14 Mediana (%i8) median (dados); (%o8) 25 Valor Mnimo (%i8) mini (dados); (%o8) 16 Valor Mximo (%i9) maxi (dados); (%o9) 30
Bruna Santos
80
Bruna Santos
Diagrama de barras
81
Bruna Santos
O mtodo de Monte Carlo um mtodo estatstico utilizado em simulaes estocsticas com diversas aplicaes em reas como matemtica, fsica, biologia, etc. Este mtodo tem sido utilizado em aproximaes numricas, nomeadamente no clculo do valor do integral de funes complexas. O mtodo consiste na gerao de uma amostra de nmeros pseudo - aleatrios de alguma distribuio de probabilidade e o uso dessa amostra para calcular o valor do integral como um valor esperado. Consideremos o Integral: " = ! h( x)dx .
a b
Quando possvel factorizar a funo, h(x) do seguinte modo: h(x) = g(x)f(x), onde f(x) a funo densidade de probabilidade da varivel aleatria X definida no intervalo [a,b], passa a ter: " = ! g ( x) f ( x)dx = E[ g ( x)] .
a b
Deste modo o problema da avaliao do integral definido simples transforma-se num problema de estimao bastante familiar: a estimao do valor esperado da varivel
82
Introduo ao MAXIMA-2009
Bruna Santos
aleatria, g(X). Caso se considere que X~Uniforme(a,b), uma estimativa razovel e centrada para : $ # (b " a )
! h( x )
i =1 i
.
1
mtodo de Monte Carlo - montecarlosimples(a,b,f,n) para n=10000. Resoluo: (%i1) load ("distrib")$ (%i2) load ("descriptive ")$ (%i3) F(x):=4*sqrt(1-x^2)$ (%i3) Integral :mean(F(random_continuous_uniform (0,1,10000))); (%o3) 3.145570252322345
Exerccio de Aplicao 5: Mtodo de Monte Carlo
Existe uma conveno de nome no pacote distrib. Todos os nomes de funes tm duas partes, a primeira faz referncia funo ou ao parmetro que queremos calcular: Funo Funo densidade de probabilidade Funo distribuio de probabilidade Quartil Mdia Varincia Comando pdf_* cdf_* quantile_* mean_* var_*
83
Introduo ao MAXIMA-2009 Desvio padro Coeficiente de assimetria Coeficiente de curtose Varivel estatstica pseudo-aleatria
A segunda parte uma referncia explcita distribuio que queremos aceder: Distribuies: Discretas Binomial Poisson Bernoulli Geomtrica Discreta uniforme Contnuas Exponencial Normal Student Contnua uniforme Pareto *exp *normal *student_t *continuous_uniform *pareto *binomial *poisson *bernoulli *geometric *discrete_uniform Comando
O pacote descriptive contm um conjunto de comandos para efectuar clculos de estatstica descritiva e desenhar grficos estatsticos. Comando mean (lista/matriz) Descrio Calcula a mdia aritmtica de um conjunto de dados de uma nica varivel (lista) ou vrias variveis (matriz) Calcula a varincia de um conjunto de dados, de uma nica varivel (lista) ou vrias variveis (matriz) Calcula o desvio-padro de um conjunto de dados, de uma nica varivel (lista) ou vrias variveis (matriz) Calcula a diferena entre o maior valor e o menor valor de um conjunto de dados Calcula a mdia aritmtica de um conjunto de dados que se apresenta sob a forma de matriz ou lista. Acede ao valor mnimo de uma amostra
84
Introduo ao MAXIMA-2009
maxi (lista/matriz)
Comando histogram (lista/matriz com uma coluna, apenas, [opes]) dataplot (lista/matriz) boxplot(lista/matriz)
Descrio Desenha um grfico de um histograma. Podemos escolher opes desde a cor do histograma at ao nmero de classes em que queremos dividir os dados. Visualizao directa de dados de amostra de uma nica varivel (lista) ou de vrias variveis (matriz). Visualizao directa de dados de amostra de uma nica varivel (lista) ou de vrias variveis (matriz).
85
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 7.
O MAXIMA como linguagem de programao
"Todas as mximas j foram escritas. Resta apenas p-las em prtica" - Blaise Pascal
86
Introduo ao MAXIMA-2009
Bruna Santos
Este captulo dedicado programao numa perspectiva mais abrangente. O MAXIMA pode ser usado de uma forma interactiva, ou seja, instrues de entrada versus respostas de sada, ou como uma linguagem de programao com a formulao de blocos constitudos por vrias instrues e argumentos que posteriormente sero executados fornecendo os resultados previstos. Abordaremos: Instrues de controlo do fluxo de programa: Instrues condicionais: I. Ifthenend; II. Ifthenelseend; Instrues de ciclos: I. Forstepthru do; II. Forstepwhiledo; Formulao de algoritmos com o comando block; Formulao de comentrios dentro de uma clula input atravs dos operadores: /* */ Os comandos e as capacidades de programao sero utilizados conjuntamente com contedo de captulos anteriores.
87
Introduo ao MAXIMA-2009
Bruna Santos
Alm das potencialidades do MAXIMA para realizar clculos numricos e simblicos assim como representaes grficas, tambm possvel implementar algoritmos com o objectivo de optimizar o tempo e o esforo computacional. Assim, podemos voltar a reutilizar os programas formulados quantas vezes forem necessrios.
Para tomar uma deciso numa situao condicional, o MAXIMA tem as instrues: If condio then instruo; End
Instruo 1: Ifthen..end
Exemplo 1: (%i1) a:5; (%o1) 5 (%i2) if a>0 then print("Numero Positivo"); (%o2) Numero Positivo (%i3) b:-2; (%o3) -2 (%i4) if b>0 then print("Numero Positivo") else (Numero Negativo); (%o4) Numero Negativo
Exemplo 7.1-1
88
Introduo ao MAXIMA-2009
Bruna Santos
Outra possibilidade de controlar as iteraes com a verso: for varivel:valor1 step valor2 while condio do instruo;
Instruo 4: forstepwhiledo
Exemplo 2: /* Calcula o quadrado dos nmeros impares no intervalo de 1 at 10 */ (%i1) for i:1 step 2 thru 10 do print (i^2);
#1 !9 ! !25 (%o1) ! !49 !81 ! ! "done
Exemplo 7.1-2
No entanto, se desejarmos utilizar comandos para definir procedimentos muito mais elaborados que englobem sequncias de instrues, devemos utilizar a instruo block, cuja estrutura : Nome_do_comando(argumento1,argumento2,...,argumentok):=block ( [varivel_local1, varivel_local2,, varivel_localk ], instruo1, instruo2, ... instruo n );
Instruo 5: Instruo block
89
Introduo ao MAXIMA-2009
Bruna Santos
Exemplos: 1) Programa que calcula a rea e o permetro de um crculo de raio r: (%i1) circulo(r):=block([rea, perimetro], area:%pi*r^2, perimetro:2*%pi*r, return([area,perimetro])); (%o1) circulo(r):=block([area], area:%pi*r^2, perimetro:2*%pi*r, return([area,perimetro])); (%i2)circulo(3); (%o2) [9%pi, 6%pi] 2) Programa que dada uma lista de notas calcula a mdia aritmtica, a nota mxima e a nota mnima: (%i3) notas(lista):= block([media,maximo,minimo,n], n:length(lista), media:sum(lista[i],i,1,n)/n, maximo:lmax(lista), minimo:lmin(lista), print("Media das notas da turma=",media, "Nota maxima =:",maximo," Nota minima =:", minimo) )$ (%i4)lista:[10, 9, 15, 13, 11, 7, 19, 10, 15, 17, 12, 13, 13, 14, 12, 11, 8, 7, 19, 13]; (%o4) [10, 9, 15, 13, 11, 7, 19, 10, 15, 17, 12, 13, 13, 14, 12, 11, 8, 7, 19, 13] (%i5) notas(lista); (%o5) Media das notas da turma=12.4 Nota maxima=19 Nota minima=7
Exemplo 7.1-3
90
Introduo ao MAXIMA-2009
Bruna Santos
7.2
Descrio Executa ciclos sujeitos a contagem. Executa ciclos sujeitos a condies. Avaliar e executa instrues que se encontram em sequncia. Retorna o valor da ultima expresso executada.9 Imprime valores e/ou resultados. Usado para sair explicitamente de um bloco, trazendo o valor do argumento Permite colocar comentrios dentro de uma clula input.
91
Introduo ao MAXIMA-2009
Bruna Santos
Capitulo 8.
Anlise Numrica
Cada problema que resolvi, tornou-se numa regra, que serviu depois para resolver outros problemas- Ren Descartes
92
Introduo ao MAXIMA-2009
Bruna Santos
Esta seco apresenta diversas aplicaes de clculo numrico em MXIMA, nomeadamente: Srie de Taylor; Interpolao Polinomial de Lagrange; Mtodo dos Mnimos Quadrados por Regresso Linear Resoluo Numrica de Equaes No Lineares Mtodo de Newton; Polinmios Ortogonais de Legendre; Srie de Fourrier. Resoluo Numrica de Equaes Diferenciais Ordinrias Mtodo de Runge Kutta.
93
Introduo ao MAXIMA-2009
Bruna Santos
Seja f uma funo com derivadas de ordem k, para k = 1(1)n, na vizinhana de x 0 . A soma parcial de ordem n do seu desenvolvimento em srie de Taylor com plo em x0 dada por:
S n ( f , x0 ) =
"
k =0
(k )
k ( x0 ) ( x ! x ) 0 k!
Exerccio de Aplicao 1: Dada a funo f ( x) = cos( x) , calcule o polinmio de Taylor S n ( f , x0 ) , para n=4,6 e 8, em x0 = 0 , e represente graficamente a funo e os polinmios numa vizinhana de x0 . Resoluo:
(%i1) PolT(f,x0,n,x):=taylor(f(x),x,x0,n)$ (%i2) g(x):=cos(x)$ (%i3) S4(x):=PolT(g,0,4,x)$ (%i4) S6(x):=PolT(g,0,6,x)$ (%i5) S8(x):=PolT(g,0,8,x)$ (%i6)plot2d([cos(x),S4(x),S6(x),S8(x)],[x,-4,4],[style,[lines,1,2],[lines,1,3], [lines,1,4],[lines,1,5]], [legend, "Funcao", "Polinomio de Taylor de grau 4"," Polinomio de Taylor de grau 6"," Polinomio de Taylor de grau 8"]);
94
Introduo ao MAXIMA-2009
Bruna Santos
Como podemos constatar, os polinmios de Taylor constituem uma boa aproximao da funo na vizinhana do plo, neste caso, a origem. E a aproximao tanto melhor e ao longo de um maior intervalo, quanto maior for o valor de n.
A interpolao consiste em determinar uma funo que assume valores conhecidos em certos pontos, a que chamaremos ns de interpolao. A classe de funes escolhida para a interpolao , priori, arbitrria e deve ser adequada s caractersticas do problema. Neste caso, iremos considerar uma funo polinomial ou polinmio.
Ln ( x ) := ! y j l n j ( x ),
j= 0 n
ln j ( x) =
$ (x
95
Introduo ao MAXIMA-2009
Bruna Santos
Exerccio de Aplicao 2: Considerando a lista de pontos {(-2, 4), (3, 2), (5, -1)}, calcule o polinmio interpolador de Lagrange que por eles passa. Represente graficamente os pontos e o polinmio. Resoluo:
(%i1) Pontos:[[-2,4], [3, 2],[5, 1]]; (%o1) [[-2,4],[3,2],[5,1]] (%i2) load("interpol")$ O pacote interpol possui o comando lagrange, que calcula o polinmio interpolador. (%i3) lagrange(Pontos); (%o3) !
96
Introduo ao MAXIMA-2009
Bruna Santos
Frequentemente, em cincias experimentais, preciso estabelecer uma relao entre: Uma varivel dependente ou de resposta, y; Uma, ou mais, variveis independentes, x (ou x1 ,..., x n ).
Essa relao pode ser traduzida por um modelo de regresso linear pelo mtodo dos mnimos quadrados, que determina a recta:
y = ax + b,
a= coeficiente linear b= coeficiente angular
Exerccio de Aplicao 3: Pretende-se estudar a relao da produo de uma variedade de trigo, em Kg, e a quantidade, em Kg de adubo fertilizante utilizado: Fertilizante 16 24 32 40 48 56 64 72 80 (xi ) Quantidade 199 214 230 248 255 305 298 323 359 de trigo (yi ) Resoluo: (%i1) dados:[[16,199], [24,214 ], [32,230], [40, 248], [48,255], [48,262], [48,279], [48,267], [56, 305], [64,298], [72, 323], [80,359]]$ (%i2) load(stats)$ (%i3) simple_linear_regression (dados); SIMPLE LINEAR REGRESSION
97
Introduo ao MAXIMA-2009
mod el = 2.41666666668 x + 154.111111111 correlation = 0.98266512147707 v _ estimation = 114.0317660317459 b _ conf _ int = [2.009183744425169,2.824149588908167] (%o3) hypothese = H 0 : b = 0, H 1 : b #0 distribution = [ student _ t ,7] statistic = 14.0239216561971 pvalue = 6.484956191640386.10 !7
Bruna Santos
Represeno grfica do modelo calculado e dos dados: (%i4) f(x):=2.41666666666666*x+154.111111111$ (%i5) plot2d([[discrete, dados],f(x)],[x,16,84],[style, [points,1,5],[lines,1,4]], [legend,"dados experimentais","modelo calculado"],[xlabel, "kg"]);
O mtodo de Newton permite resolver numericamente uma equao no linear: f(x)=0, x ! [ a, b] . Partindo de um valor inicial, ou de arranque, x 0 ! [ a, b], calcula uma sucesso de valores aproximados:
98
Introduo ao MAXIMA-2009
Bruna Santos
xn + 1 = xn !
f ( xn ) , n " N0 , f '( xn )
que converge, sob certas condies, para a soluo exacta da equao. Exerccio de Aplicao 4: Calcule o valor aproximado dos zeros da seguinte funo:
f ( x ) = cos( x ) ! ( x ! 2)2 + 1 ,
com erro inferior a 10!5 e represente-a graficamente. Resoluo: (%i1) f(x):=cos(x)-(x-2)^2 +1$ (%i2) load(newton1)$ (%i3) newton(f(x),x,0,10^-5); x 0 = 0 (%o4) 0.66271812270536 (%i5) newton(f(x),x,4,10^-5); x 0 = 4 (%o5) 2.467609314656555 (%i6) plot2d([f(x)],[x,0,3],[y,-1,1],[legend, "f(x)"]);
99
Introduo ao MAXIMA-2009
Bruna Santos
[a, b] ,
( pn , pm ) =
" p ( x) p
n a
( x ) w ( x ) dx = 0, n ! m; n, m = 0,1,...;
( pn , pn ) ! 0, n = 0,1,....
Os polinmios de Legendre, implementados no MXIMA, so ortogonais no intervalo [!1,1] , relativamente ao peso unitrio e satisfazem a normalizao: pn (1) = 1 Alm disso, satisfazem as seguintes condies iniciais e relao de recorrncia:
p0 ( x ) = 1, p1 ( x ) = x, 2n + 1 n pn +1 ( x ) = xpn ( x ) ! xpn !1 ( x ), n = 1, 2,... n +1 n +1
Exerccio de Aplicao 4: Calcule os polinmios ortogonais de Legendre de graus de 0 a 5, simplifique-os e represente-os graficamente. Resoluo: (%i1) load("orthopoly")$ (%i2) L05:makelist(expand(legendre_p(n,x)),n,0,5);
& 3 x 2 ' 1 5 x 3 ' 3 x 35 x 4 + 3 15 x 2 63 x 5 + 15 x 35 x 3 # (%o2) $1, x, , , ' , ' ! 2 2 8 4 8 4 " %
(%i5)plot2d(L05,[x,-1,1]);
100
Introduo ao MAXIMA-2009
Bruna Santos
Pela observao grfica podemos constatar, entre outras caractersticas, a propriedade de simetria destes polinmios:
p2 n (! x ) = p2 n ( x ), p2 n +1 (! x ) = ! p2 n +1 ( x ), n " 0.
Seja f uma funo peridica, com perodo 2L, e contnua no intervalo [-L, L]. Ento a Srie de Fourier de f a srie de funes:
" ( . n/x + . n/x +% a 0 + ! &a n cos, ) + bn sin , )# - L * - L *$ n =1 ' Os coeficientes an e bn designam-se por coeficientes de Fourier e definem-se do seguinte modo:
101
Introduo ao MAXIMA-2009
Bruna Santos
Exerccio de Aplicao 7: Calcule a srie de Fourier da funo: f ( x) =| x | !2, x " [!1,1] . Resoluo: (%i1) load ("fourie")$ Disponibiliza comandos para computao simblica de sries de Fourier. (%i2) f(x):=abs(x)-2$ (%i3) g:fourexpand(fourier (f(x), x, 1),x,1,3)$ Is sin(%pi*n) positive, negative, or zero? positive;
3 # !a 0 = * 2 ! ) sin(% pin) cos(% pin) 1 ! ' * % pin + % pi 2 n 2 * % pi 2 n 2 !a n = 2' ( ! !bn = 0 ! "
& $ $ %
(%i4) plot2d([f(x),g],[x,-1.5,1.5]);
102
Introduo ao MAXIMA-2009
Bruna Santos
Como podemos constatar, a srie de Fourier constitui uma boa aproximao da funo no intervalo dado [-1, 1].
Considere o seguinte problema de valor inicial (PVI) constitudo por uma equao diferencial ordinria e respectiva condio inicial:
! y '( x ) = f ( x, y( x )) , x ![ a, b ]. " # y(a ) = y0
O mtodo de RungeKutta calcula uma aproximao numrica da soluo do PVI, {( xk , yk )}k = 0(1) n , onde yk um valor aproximado de y( xk ) , yk ! y( xk ) , e
xk = a + kh, k = 0(1) n , so abcissas igualmente espaadas no intervalo [ a, b] . A integrao numrica de PVIs pelo o mtodo de Runge-Kutta define-se:
103
Introduo ao MAXIMA-2009
" K 1 = f ( x k , yk ) $ h hK $ K 2 = f ( x k + , yk + 1 ) 2 2 $ $ h hK 2 ) $ K 3 = f ( x k + , yk + 2 2 # $K 4 = f ( xk + h, yk + K 3 ) $ $ $ h $ yk +1 = yk + ( K1 + 2 K 2 + 2 K 3 + K 4 ) , k = 1(1)n ! 1, 6 % sendo ( x0 , y 0 ) o ponto de arranque.
Bruna Santos
Exerccio de Aplicao 7: Aplique o mtodo de Runge-Kutta ao seguinte PVI: ! dy x # = 0.2 e + xy , x %[ 0, 2 ]. dx " # $ y(0) = 0 Resoluo: (%i1) load ("dynamics")$ (%i2) solpvi: rk([0.2*exp(x)+x*y],[y],[0],[x,0,2, 0.1])$ h =0.1, n=20; (%i3) plot2d([discrete, solpvi], [style, lines],[x,-.1,4],[y,-100,2000], [legend, "Solucao do PVI"]);
104
Introduo ao MAXIMA-2009
Bruna Santos
lagrange (lista de pontos) newton(g(x),x,x0,erro) legendre_p(n,x) rk([eq1,eq2,,eqn],[variavel1, varivel 2,, variaveln],[dominio]) simple_linear_regression (x);
Descrio Expande a funo f(x) numa srie de Taylor truncada, contendo os termos at ordem n, na varivel x, em torno do plo x0. Retorna uma lista de coeficientes de Fourier de f(x) definidos no intervalo [-p, p]. Retorna a srie de Fourier partindo da lista l dos coeficientes de Fourier at ao termo limit (limit pode ser inf). x e p possuem o mesmo significado que em fourier. Calcula o polinmio interpolador de Lagrange nos pontos da lista dadd. Retorna uma soluo aproximada da equao g(x)=0, usando o mtodo de Newton. Calcula o polinmio de Legendre de grau n, na varivel x, definido no intervalo [-1,1] e que em 1 vale 1. Implementa o mtodo de Runge-Kutta de 4ordem para a resoluo de equaes diferenciais. Calcula a regresso linear simples de uma matriz de duas colunas ou de uma lista de pares. A sada desta instruo inclui diversos parmetros, alm da equao ajustada do modelo de regresso linear simples, nomeadamente: Correlao; Intervalo de Confiana (por padro 0,95); P_value; Correlao de diferentes tipos de dados; Estimador de varincia residual.
Pacote stats
Descrio Disponibiliza um conjunto de procedimentos de inferncia clssica estatstica e procedimentos de teste. 105
Bruna Santos Disponibiliza um conjunto de funes para computao simblica de sries de Fourier. Disponibiliza os mtodos lagrangianos, lineares e os de splines cbicos para interpolao polinomial. Permite aplicar o mtodo de Newton para a resoluo de equaes. Avalia e calcula vrios tipos de polinmios ortogonais. Inclui comandos para explorar sistemas dinmicos e a implementao do mtodo de Runge-Kutta de 4 ordem.
106
Introduo ao MAXIMA-2009
Bruna Santos
107
Introduo ao MAXIMA-2009
Bruna Santos
Bibliografia:
[1] Marinez, Wendy L., Computational Statististics Handbook with MATLAB, Chapman & Hall/CRC, 2002. [2] Figueiredo, Fernanda; Figueiredo, Adelaide; Ramos, Alexandra; Teles, Paulo; Estatstica Descritiva e Probabilidades Problemas resolvidos e propostos com aplicaes em R; Escolar Editora; 2007. [3] Villate, Jaime E.; Introduo aos Sistemas dinmicos Uma Abordagem prtica com Maxima; 2006; http://fisica.fe.up.pt/pub/MAXIMA/sistdinam.pdf [4] Site do sistema operativo MAXIMA: http://MAXIMA.sourceforge.net/ [5] da Rocha, Zlia; Unidades computacionais da disciplina de Anlise Numrica I; Departamento de Matemtica da Faculdade de Cincias da Universidade do Porto; 2008/2009. [6] Chaves, Gabriela; Clculo Infinitesimal; Departamento de Matemtica Pura da Faculdade de Cincias da Universidade do Porto; 2000.
108
Introduo ao MAXIMA-2009
Bruna Santos
ndice de ilustraes:
1 Interface:WxMaxima ............................................................................................... 15 2 Opo Save As ..................................................................................................... 17 3 Atribuir um nome ao ficheiro e guardar.................................................................... 18 Ilustrao 4 - Campo de direces ............................................................................... 43 Ilustrao 5- Janela de Dilogo de Grficos 2D no WxMaxima .................................... 47 Ilustrao 6 Grfico da funo sin(x^2) ....................................................................... 48 Ilustrao 7 Grfico do par de funes [x^2, sqrt(x)] ................................................... 48 Ilustrao 8 Grfico legendado do par de funes [x^2, sqrt(x)] .................................. 49 Ilustrao 9 Representao grfica dos valores da temperatura .................................... 50 Ilustrao 10 Representao das temperaturas e da funo terica ............................... 51 Ilustrao 11 Representao grfica dos dados ............................................................ 51 Ilustrao 12 Grfico da funo paramtrica (2cos (t), 2 sin(t)) ................................... 52 Ilustrao 13 Grfico da funo ( ! )=0,5 sin ( 4 ! ) ................................................... 53 Ilustrao 14 Grfico da funo ( ! )=-3+2cos ( ! ) em coordenadas polares............... 54 Ilustrao 15 Curva: x 2 ! y 2 = 2 .................................................................................. 55 Ilustrao 16 f ( x, y ) = 3 ! x 2 ! y 2 .............................................................................. 56 Ilustrao 17 Grfico da funo f ( x, y ) = 3 ! x 2 ! y 2 .................................................. 56 Ilustrao 18 Grfico da funo f ( x) =
x 2 + 3x ....................................................... 64 x 3 ! 5x 2
109
Introduo ao MAXIMA-2009
Bruna Santos
Contacto:
Se tem dvidas sobre o MAXIMA ou questes relacionadas com este livro introdutrio, por favor, visite o blog: sobreviveraomaxima.blogspot.com, ou envie um e-mail para blogmaxima@gmail.com.
110