1. Definição
CAS é o acrónimo de “Computer
Algebra System” que, em português, se pode traduzir por “Sistema de
Computação Algébrica” ou “Sistema Algébrico Computacional”. O termo refere-se a
uma classe de programas de computador que têm a capacidade de “manipular”
expressões matemáticas. Tal como uma calculadora, estes programas são capazes
de efectuar computação numérica, isto é, aquela que envolve não só as operações
aritméticas básicas com números mas também cálculos mais avançados como achar
os zeros de um polinómio, as raízes de uma equação, o valor numérico de uma
função num ponto ou operar com matrizes. Mas aquilo que verdadeiramente os
distingue e identifica é a sua capacidade de lidar com símbolos em vez de
números, ou seja, de efectuar computação simbólica e algébrica. Tal significa
que, usando as regras da Álgebra, realizam computação de símbolos que
representam objectos matemáticos. Exemplos deste tipo de computação podem ser,
por exemplo, a simplificação de uma expressão, a factorização de um polinómio,
a determinação da derivada de uma função ou o cálculo de um integral
indefinido.
Em termos simples, um CAS é um sistema para realizar matemática com um
computador (slogan utilizado por Stephen Wolfram para promover a sua criação, o Mathematica,
“Mathematica: A System for Doing Mathematics by Computer”).
2. Categorias
O aparecimento e a evolução deste tipo de programas aconteceram ao longo das últimas
quatro décadas, a par do desenvolvimento de uma nova disciplina, a Computação
Simbólica (também chamada de Manipulação Simbólica ou Álgebra Computacional,
entre outras designações). Com o tempo, foram criadas categorias para este tipo
de programas. Podemos, por exemplo, classificar um CAS de acordo com o
propósito para o qual foi criado. Um primeiro grupo refere-se aos programas em que
é possível implementar soluções para satisfazer um leque específico de
problemas, usualmente associadas a uma determinada área ou assunto (o SCHOONSCHIP, na Física, ou o KANT, na Teoria dos Números, por
exemplo). Um segundo grupo engloba os CAS’s que possuem uma quantidade alargada
de estruturas e funções matemáticas que cobrem um conjunto geral de aplicações
e áreas (MACSYMA, REDUCE, DERIVE, Maple ou Mathematica, por exemplo).
Uma outra categorização destes programas pode ser feita de acordo com o
modo como são disponibilizados. Alguns são comercializados pelas empresas que
os criaram ou detêm a suas patentes, outros estão disponíveis livremente segundo uma licença GPL. Seguem-se três links que disponibilizam informação sobre a variedade de programas
existentes:
3. Funcionalidades
Para além das capacidades descritas, usualmente, um CAS apresenta
outras funcionalidades, nomeadamente, as que se relacionam com a apresentação
de gráficos de funções ou condições e com a disponibilização de uma linguagem de programação
para que o utilizador possa construir os seus próprios procedimentos.
É também habitual em alguns programas encontrar uma separação entre a
parte responsável pela computação, o núcleo, e a parte responsável pela
interacção com o utilizador, o interface (na forma de Notebook em alguns casos). É assim possível encontrar diferentes
interfaces para o mesmo núcleo (caso dos interfaces xMaxima e wxMaxima para o
Maxima) e tornar mais acessível ao
utilizador a linguagem específica do programa. As interfaces mais actuais
fornecem menus e janelas próprios para a introdução dos comandos e dos símbolos
necessários à construção das expressões a avaliar. Existem até webinterfaces disponíveis online para alguns destes programas (o WolframAlpha é, talvez, o exemplo mais refinado).
4. Prós e contras
A finalidade da utilização de um CAS é a automatização do processo de
resolução de um problema (matemático). Por si só o programa não fará tal
automatização. Cabe ao utilizador usar os recursos que o CAS disponibiliza,
maximizando-os se possível, para efectivar tal automatização. Em meu entender,
o CAS é um instrumento para a realização de matemática, não um fim em si mesmo.
No entanto, para desempenhar esse papel o CAS obriga ao conhecimento da sua
linguagem, facto que exige tempo e disponibilidade. Este processo de
familiarização com a linguagem do CAS pode ser, ele próprio, um processo de
aprendizagem matemática. Na verdade ele obriga, por exemplo, à visualização e reconhecimento
de estruturas ou à adopção de processos de testagem, capacidades inerentes à
matemática.
Sem procurar contextualizar a utilização destes programas nos
diferentes níveis de ensino (tema que merece uma análise profunda), enunciam-se,
em seguida, algumas vantagens na sua utilização em geral:
- Capacidade de lidar com grandes quantidades de computação algébrica, isto é, a capacidade de manipular expressões matemáticas que, tratadas com papel e lápis, obrigariam a grande esforço e dispêndio de tempo.
- O CAS pode ajudar à demonstração de resultados e teoremas que, sem auxílio da tecnologia, obrigariam, mais uma vez, a dispêndio de tempo em cálculos e simplificações muitas vezes repetitivos. Acontece até que existem exemplos de demonstrações matemáticas cujos resultados foram primeiro comprovados por um CAS e só depois pelos processos de demonstração universal e matematicamente aceites.
- Ao deixar para o CAS a parte computacional (cálculos, simplificações, etc), podemos concentrar-nos melhor no essencial de um problema matemático.
- O CAS pode ser uma ferramenta importante na realização de experiências matemáticas. Tal facilita a testagem de conjecturas, por exemplo.
Com base na literatura existente apresento dois exemplos de
contrariedades.
- Devemos estar preparados para as exigências destes programas em termos, por exemplo, de memória do nosso computador ou de tempo de computação (em termos de matemática avançada, claro está). Uma eficiente programação e a utilização de bons modelos matemáticos minimizarão o risco de tal acontecer.
- Um outro problema está relacionado com o output de resultados, quer no que se refere ao seu tamanho, quer no que respeita ao seu formato e possível reutilização. Quando eles são grandes, as linhas disponíveis no nosso interface podem não ser suficientes. Esta questão do output implica um conhecimento profundo da linguagem específica do CAS em questão. Tal necessidade pode ser, por si só, uma contrariedade.
Referências:
Herget, W., Heugl, H. Kutzler, B., & Lehmann, E. (2000). Indispensable Manual Calculation Skills in a
CAS Environment. Disponível em:
Heck, André (2003). Introduction
to Maple. Disponível em:
Computer Algebra System. Disponível
em:
Sem comentários:
Enviar um comentário