Mathomatic

De Wiki Software Livre na Educação

Mathomatic é um sistema algébrico computacional multiplataforma, livre e de código aberto, de propósito geral que pode, simbolicamente, resolver, simplificar, combinar e comparar equações algébricas, bem como representar números complexos, aritmética modular e polinomial, juntamente à aritmética padrão. Ele faz alguns cálculos simbólicos (derivada, extremos, série de Taylor e integração simbólica de polinômios, assim como a Transformada de Laplace), integração numérica e suporta toda a álgebra elementar, exceto logaritmos. As funções trigonométricas podem ser introduzidas e manipuladas utilizando-se exponencial complexa, com o preprocessador GNU M4. Não estão atualmente implementadas as funções gerais como f(x), aritmética de precisão arbitrária e de intervalos e matrizes.

Recursos[editar]

O Mathomatic se destaca ao resolver, diferenciar, simplificar, calcular e visualizar álgebra elementar.<ref name="Mathomatic_introduction" /> Ele também realiza somatórios, multiplicações e exibição automática de cálculos de qualquer tamanho ao ligar valores sequenciais ou de teste em qualquer formula, aproximando-a e simplificando-a antes de exibí-la.

Resultados intermediários (exibição do trabalho) podem ser visualizados ao digitarmos previamente "set debug 1". Isso funciona para resoluções e para quase todos os comandos no Mathomatic. O comando "set debug 2" revela ainda mais detalhes sobre o trabalho realizado.

O software não inclui uma interface gráfica exceto com a marca registrada Mathomatic autorizada, versões para smartphones e tablets rodando iOS<ref name="iPhone" /> ou Android<ref name="Android" />. O software livre Mathomatic, disponível na página oficial<ref name="Mathomatic_website" />, está autorizado para uso em qualquer outro tipo de software, devido à sua licença livre GNU LGPL. Ele está disponível como uma biblioteca livre e como uma aplicação em modo console que utiliza uma linha de comando colorida com saída amigável à impressão que roda em um emulador de terminal sob quaisquer sistemas operacionais<ref name="Mathomatic_introduction" />. A interface do console é muito simples e requer pouco mais do que aprender a notação algébrica básica para começar. Toda a entrada e saída se dá em uma linha por vez de texto ASCII. Por padrão, a entrada e a saída são os fluxos padrão do sistema. O Mathomatic é tipicamente compilado com o editline ou o GNU readline para entrada mais fácil.

Não há capacidades de programação; o interpretador funciona como uma calculadora algébrica. Expressões e equações são na notação infixa algébrica padrão. As operações são realizadas sobre elas ao se entrar com comandos em Inglẽs simples.

Pelo fato de toda a aritmética numérica ser de precisão dupla, o ponto flutuante, e erros de arredondamento não são rastreados. O Mathomatic não é adequado para aplicações que requerem alta precisão, tais como cálculos astronômicos. É útil para cálculos simbólico-numéricos com precisão de cerca de 14 dígitos, embora muitos resultados serão exatos, se possível.

O Mathomatic pode ser usado como uma ferramenta de geração de código de aritmética de ponto flutuante ou de inteiros e também para simplificar e converter equações em atribuições otimizadas nas linguagens Python, C, e Java. Os resultados podem ser compatíveis com muitos outros programas matemáticos, exceto os formatos de entrada e de saída TeX e MathML, que estão atualmente indisponíveis. Os caracteres ASCII que são permitidos nos nomes das variáveis do Mathomatic são configuráveis, permitindo nomes de variáveis no formato TeX.

O código-fonte do Mathomatic pode ser compilado como uma biblioteca de matemática simbólica com uma API muito simples, que pode ser conectada a programas em C compatíveis que necessitem usar o motor de matemática simbólica do Mathomatic.

Exemplos de sessão[editar]

Arquivo:Image-mathomatic snapshot.png
outro conjunto de exemplos, de uma captura de tela

Exemplo de geração de código e de resolução, onde o trabalho é exibido:

1-> x = (a+1)*(b+2)

#1: x = (a + 1)*(b + 2)

1-> set debug 1
Success.
1-> solve for b
level 1: x = (a + 1)*(b + 2)
Subtracting "(a + 1)*(b + 2)" from both sides of the equation:
level 1: x - ((a + 1)*(b + 2)) = 0
Subtracting "x" from both sides of the equation:
level 1: -1*(a + 1)*(b + 2) = -1*x
Dividing both sides of the equation by "-1":
level 1: (a + 1)*(b + 2) = x
Dividing both sides of the equation by "a + 1":
level 1: b + 2 = x/(a + 1)
Subtracting "2" from both sides of the equation:
level 1: b = (x/(a + 1)) - 2
Solve completed:
level 1: b = (x/(a + 1)) - 2
Solve successful:

           x
#1: b = ------- - 2
        (a + 1)

1-> code C ; output C programming language code
b = ((x/(a + 1.0)) - 2.0);
1-> variables C ; define the variables for the C compiler
double x;
double a;
double b;
1->

História[editar]

O desenvolvimento do Mathomatic iniciou no ano de 1986 por George Gesslein II, como um experimento em matemática computacional<ref name="Mathomatic_history">George Gesslein II (29 de Junho 2012). Mathomatic User Guide Official Mathomatic documentation (history). Página visitada em 13 de Julho de 2012.</ref>. Foi originalmente escrito em Microsoft C para MS-DOS. As versões 1 e 2 foram publicadas pela Dynacomp de Rochester, Nova York, em 1987<ref name="released1987">The Software catalog: Microcomputer. sGoogle Books (6 de Fevereiro de 2007). Recuperado em 29 de Novembro de 2011.</ref> e 1988<ref>Intelligent instruments & computer. sGoogle Books. Recuperado em 29 de Novembro de 2011.</ref> como um produto de software científico para DOS. Mais tarde, foi lançado como shareware e, então, como emailware, com um programa de desenho de gráficos bidimensionais de funções. Na virada do milênio, o Mathomatic foi portado para o Compilador C GNU sob o Linux e se tornou software livre. O programa gráfico foi descontinuado; o desenho de gráficos 2D/3D de equações agora é realizado com o gnuplot.

O nome "Mathomatic" é um amálgama de "math" e "automatic"<ref name="Mathomatic_introduction">George Gesslein II (29 June 2012). Mathomatic User Guide. Página visitada em 13 July 2012.</ref> e foi inspirado pelo nome e pela automação do Rog-O-Matic, que foi um dos primeiros experimentos em inteligência artificial.

Plataformas disponíveis[editar]

Mathomatic está disponível para quase todas as plataformas, incluindo Microsoft Windows usando MinGW.<ref>Mathomatic MS-Windows port. Mathomatic.org (4 November 2011). Retrieved on 29 November 2011.</ref> Ele está disponível para o Mac OS X,<ref>Mathomatic Mac OS X port. Mathomatic.org (4 November 2011). Retrieved on 29 November 2011.</ref><ref>Mathomatic Mac OS X port from MacPorts</ref> for iOS,<ref name="iPhone">Mathomatic for iOS. Itunes.apple.com. Retrieved on 10 March 2012.</ref> para o Android,<ref name="Android">Mathomatic for Android. Play.google.com. Retrieved on 13 July 2012.</ref> a para o Nintendo DS sob o DSLinux e como aplicativo autônomo.<ref>Mathomatic ported to the Nintendo DS. Blog.davr.org (22 February 1999). Retrieved on 29 November 2011.</ref> Fedora Linux,<ref>The Mathomatic package in Fedora. Admin.fedoraproject.org. Retrieved on 29 November 2011.</ref> Slackware,<ref>Official Slackware port of Mathomatic in SlackBuilds. Slackbuilds.org. Retrieved on 29 November 2011.</ref> Debian,<ref>All Mathomatic packages in Debian. Packages.debian.org. Retrieved on 31 August 2012.</ref> Ubuntu,<ref>All Mathomatic packages in Ubuntu Linux. Launchpad.net. Retrieved on 29 November 2011.</ref> Gentoo Linux,<ref>Gentoo Packages /package/sci-mathematics/mathomatic. Packages.gentoo.org (25 November 2011). Retrieved on 29 November 2011.</ref> e todas as principais distribuições do BSD<ref>OpenBSD CVS tree for Mathomatic</ref><ref>NetBSD pkgsrc CVS tree for Mathomatic</ref><ref>FreeBSD CVS tree for Mathomatic</ref> incluem o Mathomatic como um pacote automaticamente instalável. Existe um porte para JavaScript usando Emscripten, permitindo ao Mathomatic rodar em um navegador.<ref>https://blenheimears.com/mathomatic/</ref> Os portes são todos mantidos por indivíduos autônomos.

Requisitos[editar]

Construir o programa a partir do código-fonte requer um compilador C com as bibliotecas padrão do C. Se o Mathomatic for compilado com o GCC ou com o Tiny C Compiler para um sistema operacional tipo Unix, nenhuma modificação precisa ser feita no código-fonte. O Mathomatic não usa códigos especiais exclusivos do GCC e então geralmente compilará com facilidade com qualquer compilador C. A utilização da Biblioteca de Matemática Simbólica do Mathomatic permite misturar linguagens de programação e é independente do sistema operacional.<ref name="Mathomatic_developer_info">George Gesslein II (29 June 2012). Mathomatic User Guide.</ref>

O Mathomatic pode ser portado para qualquer computador com pelo menos 1 megabyte de memória RAM livre. A distribuição padrão do Mathomatic<ref name="Mathomatic_website">encontrada em seu website. Mathomatic.org. Retrieved on 29 November 2011.</ref> requer, por padrão, um máximo de 400 megabytes, dependendo do tamanho dos espaços de equações e de quantas expressões foram inseridas. Os espaços de equações são arrays de tamanho fixo que são alocados conforme necessário e seus tamanhos são definidos durante a compilação ou na inicialização do programa. Cada expressão algébrica ou equação introduzida na linha de comando principal é armazenada em um espaço de equação.

O Mathomatic faz a maioria das manipulações simbólicas com movimentos de memória, como um programa em linguagem assembly. Isso faz o programa travar quando usado com o novo módulo LLVM, que parece incompatível com a função memmove da biblioteca C padrão. Para usar o Mathomatic com um compilador C que utiliza um módulo LLVM, é necessário desabilitar todas as otimizações com "-O0" na linha de comando do compilador C. Caso contrário, os testes de regressão entrarão em um loop infinito. Este é provavelmente um problema de otimização no LLVM. Para auxiliar as tentativas de depurar esse erro de otimização, o Mathomatic falhará quando o LLVM otimizar a simplificação de (32^.5) para 4*(2^.5) e, de forma semelhante, levará para um loop infinito.

Ver também[editar]

Portal A Wikipédia possui os portais:
  • Software livre
  • Matemática
  • Maxima – um sistema algébrico computacional mais completo com funcionalidades similares, também livre.
  • Cantor (software) - um software livre de aplicações matemáticas integrante do KDE.
  • GNU Octave - uma linguagem matemática.

Ligações externas[editar]

Referências[editar]