Escolar Documentos
Profissional Documentos
Cultura Documentos
Leandro Rangel1 e Alexandre Rojas2 Aluno do Bacharelado em Matemtica- UERJ 2 Docente Departamento de Informtica e Ciencia da Computao- UERJ
1
Resumo
O presente Tutorial tem por objetivo apresentar uma breve viso relativa aos principais comandos utilizados nos softwares de Computao Algbrica em especial o Mupad, desenvolvido pela Universidade de Paderborn Alemanha destacando a linguagem de programao contida neste software. Trata-se de um projeto multidiscipliar integrando competencias da rea matemtica com a Cincia da Computao.
1. Introduo
At a dcada de 1990, a grande maioria dos professores de matemtica utilizava como suporte metodolgico, na elaborao de suas atividades docentes, basicamente o livro didtico. A partir do advento da popularizao da informtica uma gama maior de possibilidades passou a existir, permitindo que o ensino matemtico fosse difundido com maior facilidade. O processo de mudana no processo de ensino e aprendizagem caracterizado por resistncias, principalmente na insero de novas tecnologias no processo educacional. Sancho (2001, p. 43) refere-se a essas resistncias como tecnofobia. Porem em diversas universidades existe um movimento para a utilizao de softwares educacionais em diversas disciplinas, dentre elas o calculo diferencial e integral. O uso de ferramentas computacionais no processo de ensino-aprendizagem permite ao estudante abordar problemas complexos. No caso da computao simblica, sistemas computacionais permitem tornar a Matemtica mais experimental, permitindo analisar diferentes situaes com visualizao grfica, dando assim oportunidade ao estudante de aprender fazendo.
diferenas finitas, por exemplo. Trata-se de uma rea muito ampla e, portanto, com vrias vertentes, as mais conhecidas so: testes de primalidade e algoritmos de fatorao para inteiros e polinmios, manipulao e soluo de sistemas de equaes polinomiais em vrias variveis, clculo exato de integrais indefinidas de funes elementares e clculo da forma fechada de somatrios de nmeros binomiais [1]. Cada uma destas vertentes tem mtodos prprios, oriundos de uma rea da matemtica subjacente, que nos casos mencionados acima, so respectivamente: teoria de nmeros, teoria das equaes algbricas, geometria algbrica, clculo diferencial e combinatria. Entretanto, em quase todas as vertentes, estes mtodos se misturam com tcnicas de reas afins e de computao. Assim, por exemplo, o mtodo de bases de Groebner, inventado no contexto da geometria algbrica, foi generalizado para lidar com lgebras de operadores, e atravs destas aplicado a problemas de identidades combinatrias. 2.2. Sistemas de Computao Algbrica Um sistema de computao algbrica (ou simblica) um software que permite manipular expresses matemticas de maneira simblica. Normalmente estes sistemas permitem efetuar clculos com inteiros de preciso mltipla (isto , sem que haja um tamanho especifico a priori para o maior inteiro), fraes expressas como a razo entre dois inteiros e polinmios com uma ou vrias variveis. A maioria dos sistemas de computao algbrica atuais pode ser utilizada de maneira interativa. O usurio entra com algumas frmulas e comandos, e o sistema os avalia. Ento devolve uma resposta que pode ser manipulada mais adiante se necessrio. Alm de computaes simblicas exatas, os sistemas de computao algbrica podem obter solues numricas aproximadas. O usurio pode fixar a preciso no nmero de dgitos desejados. Os sistemas de computao algbrica modernos possuem linguagens de programao poderosas, alem de ferramentas para visualizao e animao de dados matemticos.
2. Definies
2.1. Computao Algbrica A computao algbrica a rea da computao que lida com a manipulao e soluo exata de equaes. Estas equaes podem ser polinomiais, diferenciais ou a
2 x cos x 2 sin x
( )
2
( )
Aqui x^2 representa o quadrado de x, enquanto as funes MUPAD diff e int representam, respectivamente, as operaes de "derivada" e "integral". A funo last(1) retorna a expresso anterior (no exemplo, este a derivada de sin(x^2)). No exemplo seguinte, a exibio do resultado do primeiro comando suprimida pelo dois-pontos, e apenas o resultado do segundo comando se aparece na tela: equation := {x + y = 1, x - y = 1}: solve(equation)
{[x = 1, y = 0]}
No exemplo acima, um conjunto de duas equaes atribudo ao identificador equation. A funo solve processa a soluo. Os comandos e funes padres do MuPAD so escritos com letras minsculas. O aplicativo keysensivite, ou seja, diferencia letras maisculas e minsculas. Por exemplo, sin(X) diferente de Sin(X) (este comando no ser reconhecido como funo seno) ou sin(x). Durante essa dissertao sero apresentadas diversas funes, assim como estruturas e operadores de programao, visando ter o conhecimento bsico da linguagem de programao MUPAD, e assim, chegar aos exemplos de utilizao no estudo do calculo.
2 , sin ( x ) cos(cos( x )) 3
No exemplo anterior a funo read recupera o valor dos identificadores a e b que foram armazenados com a funo write no arquivo ab.mu. 4.2. Expresses e Operadores O MUPAD contem uma grande quantidade de funes utilizadas para combinar ou manipular objetos. Porm, seria pouco intuitivo usar funo _plus(a,b) para calcular a adio a + b. Desse modo, o MUPAD implementa uma variedade de operaes importantes, permitindo assim a utilizao de notao matemtica familiar. Os operadores +, -, *, / para as operaes aritmticas bsicas e o operador ^ para a exponenciao so vlidos para expresses simblicas assim como suas funes equivalentes.
0..1 1 2
A tabela 1 contm os operadores da linguagem de programao do MUPAD e suas funes equivalentes.
x x2
desigualdade <>, respectivamente. Os operadores <, <=, > e >= comparam as magnitudes dos argumentos. O retorno dessas comparaes dentro de um contexto comcreto so objetos do tipo boolean, ou seja, VERDADEIRO ou Aps a definio dessa funo ela pode ser utilizada como uma funo do MUPAD: f(4), f(x + 1), f(y)
16, (x + 1) , y 2
2
O MUPAD permite a definio de funes compostas. Essa Definio efetuada por meio do operador @. c := a@b: c(x)
a (b( x ))
Ou de forma simblica: x^i $i = 1..5 x,x2,x3,x4,x5 4, 9, 16, 25, 36, 49 Equaes e desigualdades so objetos MUPAD vlidos. Eles so gerados pelo sinal de igualdade = e pelo sinal de A repetio do operador @ duas vezes, denota a composio iterada de uma funo com si mesmo um determinado numero de vezes: f := g@@4: f(x)
interval Intervalo
4.3. Estruturas bsicas As operaes primitivas e expresses podem ser agrupadas, formando conjuntos chamados estruturas bsicas. Estruturas bsicas podem ser classificadas de trs modos: Estrutura de Seqncia, Estrutura de Seleo e
g ( g ( g ( g ( x ))))
ex
ln(x)
x x
x
cos(x) sen(x) tg(x) arccos(x)
Todas as funes da stdlib esto automaticamente disponveis ao iniciar a utilizao do MUPAD. No h nenhuma diferena perceptvel entre a performance das funes da biblioteca padro e das funes implementadas na linguagem de programao do MUPAD. 4.5. MUPAD PROCEDURES
DOM_PROC
Utilizando o identificador que foi associado procedure, voc pode utiliz-la como uma funo MUPAD: Max(1/5,0.5)
0.5
Dentro de uma Procedure voc pode chamar funes de sistema ou outras procedures, e ainda implementar algoritmos de recursividade. O exemplo favorito para um algoritmo de recursividade o fatorial, uma funo de nmeros naturais(inteiros positivos) que pode ser definida como n! = 1. 2.. n. ou n! = n. (n - 1)! sabendo que por definio 0! = 1. A Seguir temos 2 maneiras de se calcular um fatorial. A primeira atravs de uma repetio simples e a segunda com recursividade: fatorial_1 := proc(n) begin fat := 1; for i from 1 to n do
a 2 ,b 5
Muitas funes do sistema tm retorno de funes simblicas, devido ao MUPAD no encontrar uma representao mais simples para a requisio: sin(x), max(a, b), int(exp(x^3), x)
b2 +1
2
A procedure f altera o valor de uma varivel que foi definida fora da procedure. Quando a procedure termina, a varivel a um tem um valor novo que alterado novamente atravs de chamadas adicionais a procedure f. Utilizando a Palavra-Chave Local os identificadores so declarados como variveis locais e s so validos dentro do procedimento que as declarou. a := b: f := proc() local a; begin a := 2 end_proc: f():a
(b + 1) + 1 ((b + 1) + 1)
2 2 2
+1
b
Apesar dos nomes iguais das variveis, a atribuio a := 2 na varivel local, no afeta o valor do identificador global a definida fora da procedure. No existe limite para o numero de variveis locais declaradas em um procedimento. Basta declar-las apos a palavra chave local.
2 37 1, ,1.234, , Abs( x + 1) 3 3
Uma maneira mais elegante para obter um retorno simblico seria utilizando o Objeto MUPAD que devolve o nome do procedimento de chamada e a funo args() que retorna a seqncia de parmetros de entrada da procedure. Vejamos a seguir como ficaria a procedure Abs implementada nesses moldes. Abs := proc(x) begin if testtype(x, Type::Numeric) then if domtype(x) = DOM_COMPLEX then return(sqrt(Re(x)^2 + Im(x)^2)) else if x >= 0 then return(x) else return(-x) end_if end_if end_if; procname(args()) end_proc: Abs(-1), Abs(-2/3), Abs(1.234), Abs(2 + I/3), Abs(x + 1)
5. Concluso
O uso de da linguagem de Programao incluida no software Mupad no processo de ensino-aprendizagem permitiu o desenvolvimento de diversas solues de um mesmo problema possibilitado o estudante abordar problemas complexos com maior facilidade. No obstante das solues numricas, procurou-se tornar a Matemtica mais experimental, e analisar diferentes situaes com visualizao grfica, dando assim oportunidade ao estudante de aprender fazendo Por outro lado, o uso de softwares do tipo freeware com funcionalidaes similades ao dos softwares pagos desetimula o uso de cpias no autorizadas. Sugere-se a continuidade do trabalho conjunto entre a rea de Informtica e a rea de Matemtica na procura de metodologias que incentivem e facilitem o aprendizado das Ciencias Exatas.
BIBLIOGRAFIA
[1] Castao, Carlos. A pesquisa nos meios e materiais de ensino. In: SANCHO, Juana Maria (org). Para uma tecnologia educacional. Porto Alegre: Artmed, 2001. [2] Drescher,K et al. MuPAD User's Manual and CDROM: Multiprocessing Algebra Data Tool, MuPad Version 1.2.2.- Mupad Gruop (Corporate Author)
2 37 1, ,1.234, , Abs( x + 1) 3 3
A utilizao de Variveis em procedures permitida. Essas variveis externas so chamadas de variveis globais. Observe o comportamento da Procedure abaixo: