|
|
||||
Responsável
BREVES CONSIDERAÇÕES SOBRE A UTILIDADE DOS Lenimar Nunes de Andrade INTRODUÇÃO
A Computação, em suas várias formas, tem produzido significativas transformações sociais, econômicas e culturais no mundo contemporâneo. E, de fato, hoje em dia, é impossível imaginar nosso cotidiano sem uma efetiva utilização do computador. Tradicionalmente, o vocábulo computar tem sido utilizado com o significado de “efetuar cálculos com números”. A Computação Numérica envolve não só as operações aritméticas básicas de adição, subtração, multiplicação, divisão e radiciação, mas também procedimentos mais sofisticados, a exemplo da determinação das raízes de um polinômio por meio de métodos de aproximação. Essa modalidade de computação envolve apenas números: os dados iniciais e os resultados finais são números. Em geral, a Computação Numérica gera resultados aproximados, pois todos os cálculos são efetuados com aproximações decimais finitas. Por exemplo, a simples divisão de 1 por 3 em notação decimal é aproximadamente igual a 0,33333333. Ao se multiplicar esse valor por 3, o produto dará 0,99999999 (em lugar de 1). Não importa quantas casas decimais sejam utilizadas, esse valor será sempre aproximado. Além disso, se esse pequeno erro inicial da ordem de 0,00000001 for agregado a cálculos posteriores, também aproximados, tende a se propagar e a aumentar. Há cerca de seis décadas, tem se desenvolvido outra modalidade de computação, denominada Computação Simbólica ou Computação Algébrica. Nessa modalidade, é possível manipular símbolos (não obrigatoriamente expressões decimais), representando números inteiros, racionais, irracionais, imaginários, ou, ainda, polinômios, funções, matrizes, sequências, sistemas de equações e até mesmo estruturas mais abstratas, como equações diferenciais, grupos e anéis. Enquanto em Computação Numérica se opera apenas com aproximações de decimais finitas para números reais, em Computação Algébrica é possível operar com símbolos que representam objetos matemáticos mais gerais (além de números). Por exemplo, ao se calcular usando uma calculadora ou um programa de Computação Numérica, o resultado será 1,4142135 × 1,7320508 = 2,4494897. Por outro lado, um programa de computação algébrica mostrará resultado como sendo = , algo bastante próximo do que se faz em sala de aula. Assim, um programa desse tipo efetua cálculos com radicais sem a necessidade de representá-los em forma decimal aproximada, pois “conhece” as regras e propriedades algébricas dos objetos envolvidos. Além disso, é possível operar com objetos matemáticos que não são números. Por exemplo, um programa de computação algébrica pode desenvolver identidades algébricas como
SISTEMAS DE COMPUTAÇÃO ALGÉBRICA Nas últimas décadas, houve considerável progresso na teoria envolvendo algoritmos simbólicos ou algébricos. Ambientes computacionais que empregam esse tipo de teoria passaram a ser chamados de Sistemas de Computação Algébrica (SCA) ou Sistemas de Manipulação Simbólica, dentre outras denominações. Esses sistemas podem ser utilizados em inúmeras áreas da ciência e da tecnologia, e podem ser divididos em duas categorias básicas: sistemas de uso específico e sistemas de uso geral. O que os SCA têm em comum é a grande capacidade de efetuar rapidamente cálculos analíticos que podem ser bastante trabalhosos. Alguns exemplos de SCA disponíveis gratuitamente estão no quadro da página anterior.
EXEMPLOS A figura 1, na página a seguir, mostra uma tela com um exemplo de utilização do Maxima, em que é dada uma matriz e são calculadas a sua inversa M -1 e seu determinante Na figura 2, são mostrados exemplos de utilização do Reduce: o desenvolvimento da potência (x + y + z)5; o cálculo do fatorial de 40 (40!); a solução da equação biquadrada x4 – 10x2 + 23 = 0 e a fatoração dos polinômios x4– 16 e x5+ x + 1. Esses exemplos já ilustram algumas das possibilidades de aplicação de Sistemas de Computação Algébrica na sala de aula do ensino médio. Esses sistemas podem fazer cálculos pesados (tanto numéricos quanto simbólicos) com facilidade, permitindo que os alunos lidem com uma gama maior de exemplos (cuja manipulação seria difícil apenas com papel e lápis) e enfoquem aspectos mais conceituais da Matemática (uma vez que as contas trabalhosas ficam a cargo do computador). Por exemplo, dificilmente um aluno no ensino médio seria capaz de fatorar ou calcular raízes de um polinômio de grau superior a 4. Entretanto, o fato de o SCA ter feito esse cálculo oferece ao aluno a oportunidade de explorar aspectos mais qualitativos de funções polinomiais, como o comportamento do gráfico. Às vezes se comenta que o fatorial de um número natural cresce muito rápido quando esse número aumenta, mas é praticamente impossível determinar esses fatoriais apenas com papel e lápis. O cálculo de fatoriais feito pelo programa fornece uma percepção mais concreta desse crescimento. Praticamente todos os SCA podem ser usados como linguagens de programação, embora a utilização desse tipo de recurso exija um pouco mais de estudo. Observe, por exemplo, os seguintes comandos do Maxima: for n from 1 thru 100 do print(n, float(sqrt(n))); mostra uma listagem com n e sua respectiva raiz quadrada para todo n de 1 a 100. for k from 100 thru 200 do if primep(k) then print(k, “e primo”); lista os inteiros primos de 100 a 200.
UM ASSISTENTE MATEMÁTICO Um SCA pode ser usado como um assistente matemático, simplificando expressões algébricas, encontrando raízes de equações, fatorando polinômios, efetuando operações com matrizes, construindo gráficos de funções, além de ser útil na resolução de problemas em diversos campos da Matemática. Esses programas são capazes de obter respostas que podem ser comparadas com aquelas de que o usuário já dispõe. Podem, também, efetuar a parte mais trabalhosa de cálculos, deixando para o usuário apenas a análise e conclusão a respeito dos resultados. Em particular, esse recurso permite que sejam tratados no ensino médio problemas que não poderiam ser abordados sem o apoio do computador, devido à dificuldade de cálculos. Por tudo isso, esses programas são ferramentas de ajuda valiosa, podendo ser aliados em todo o processo de ensino-aprendizagem. Apresentamos aqui duas atividades que podem ser realizadas em sala de aula do ensino médio. São atividades conceitualmente simples, mas que envolvem cálculos trabalhosos, de modo que se justifica o uso de um recurso computacional. MAXIMA REDUCE Escolhemos um tema que enfatiza a capacidade desse tipo de programa em manipular expressões algébricas: polinômios e equações polinomiais. Utilizamos o Maxima nos exemplos, mas poderia ter sido usado outro sca com as devidas adaptações nos comandos.
ATIVIDADE I Como primeira atividade, vamos calcular o máximo divisor comum de dois polinômios usando o conhecido algoritmo da divisão euclidiana. Inicialmente, fornecemos dois polinômios p e q na variável x: p: x^7 + 5*x^6 - 9*x^5 + 27*x^4 - 56*x^3 - 16*x - 112 Nos comandos acima, os dois pontos são símbolos de atribuição, isto é, servem para definir os polinômios com as letras p e q, respectivamente. Usamos o programa para dividir p por q, digitando r: divide(p, q); cuja resposta é [x + 4, –9x5+ 45x4– 45x3+ 27x2+ 54x – 72]. Esse resultado é da forma [r1; r2], onde r1 é o quociente da divisão e r2 é o resto. A seguir, dividimos q pelo resto r[2]: s: divide(q, r[2]); Depois, dividimos r[2] pelo resto da divisão anterior s[2]: t: divide(r[2], s[2]); cuja resposta é Dividimos s[2] pelo resto da divisão anterior t[2]: w: divide(s[2], t[2]); que o programa responde Como o resto dessa divisão é igual a zero, encerramos o processo de sucessivas divisões e concluímos que mdc(p; q) é o resto t[2] da divisão de r[2] por s[2], dividido pelo coeficiente do termo de maior grau, ou seja, que mdc(p; q) = = x3 + x + 2. Podemos também aproveitar a capacidade do programa em resolver equações polinomiais para comprovar que as raízes do máximo divisor comum de p e q é a interseção dos conjuntos das raízes de p com as raízes de q. Para verificar isso, basta digitar os comandos a seguir: mdc: gcd(p, q); Na sequência de instruções acima, gcd (da sigla em inglês “greatest common divisor”) é comando do Maxima para o mdc de polinômios, e o comando solve serve para resolver equações. Assim, na segunda linha, estamos encontrando as raízes do polinômio mdc de p e q. A ideia é comparar essas raízes com as de p e q, determinadas em seguida.
ATIVIDADE 2 Como segunda atividade, vamos determinar todas as possíveis raízes racionais de uma equação polinomial de coeficientes inteiros f(x) = 0 e, depois, testar uma por uma para verificar qual delas é raiz da equação. Definimos f(x) com um comando f(x) := 21*x^3-482*x^2-1089*x+350; Calculamos uma lista q dos divisores do coeficiente do termo de maior grau q: listify(divisors(21)) e o programa responde [1; 3; 7; 21]. Calculamos os divisores do termo constante p: listify(divisors(350)) que o programa responde [1; 2; 5; 7; 10; 14; 25; 35; 50; 70; 175; 350]. for j from 1 thru length(p) do Nesse caso, para cada elemento da lista de divisores p e cada elemento de q, testa-se se r = ou r = - é uma raiz da equação. Depois que a verificação é executada, são mostradas mensagens como “–1 não é raiz” ou “2/7 é raiz”. É possível a resolução direta da equação com um comando solve(f(x)=0) para comparar com as respostas mostradas anteriormente.
REFERÊNCIA SymbolicNet, Symbolic Mathematical Computation Information Center, disponível na Internet em www.symbolicnet.org.
|