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.

Mathomatic
Logotipo oficial Mathomatic
Captura de tela do Mathomatic sob o Gnome Terminal
Mathomatic em um emulador de terminal
Desenvolvedor George Gesslein II
Plataforma Qualquer arquitetura
Lançamento 1987 (36–37 anos)[1]
Versão estável 16.0.5
Idioma(s) Inglês
Escrito em C
Sistema operativo Multiplataforma, Sistema operacional tipo Unix
Gênero(s) Sistema algébrico computacional
Licença GNU Lesser General Public License versão 2.1
Estado do desenvolvimento Ativo
Página oficial www.mathomatic.org

Recursos

editar

O Mathomatic se destaca ao resolver, diferenciar, simplificar, calcular e visualizar álgebra elementar.[2] 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.[3] ou Android[4]. O software livre Mathomatic, disponível na página oficial[5], 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[2] 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
 
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.[6] 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[1] e 1988[7] 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"[2] 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.[8] Ele está disponível para o Mac OS X,[9][10] for iOS,[3] para o Android,[4] a para o Nintendo DS sob o DSLinux e como aplicativo autônomo.[11] Fedora Linux,[12] Slackware,[13] Debian,[14] Ubuntu,[15] Gentoo Linux,[16] e todas as principais distribuições do BSD[17][18][19] incluem o Mathomatic como um pacote automaticamente instalável. Existe um porte para JavaScript usando Emscripten, permitindo ao Mathomatic rodar em um navegador.[20] 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.[21]

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[5] 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
  • 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
  • Este artigo foi inicialmente traduzido, total ou parcialmente, do artigo da Wikipédia em inglês cujo título é «Mathomatic», especificamente desta versão.

Referências

editar
  1. a b The Software catalog: Microcomputer. sGoogle Books (6 de Fevereiro de 2007). Recuperado em 29 de Novembro de 2011.
  2. a b c George Gesslein II (29 de junho de 2012). «Mathomatic User Guide». Official Mathomatic documentation. Consultado em 13 julho de 2012 
  3. a b Mathomatic for iOS. Itunes.apple.com. Retrieved on 10 March 2012.
  4. a b Mathomatic for Android. Play.google.com. Retrieved on 13 July 2012.
  5. a b encontrada em seu website. Mathomatic.org. Retrieved on 29 November 2011.
  6. George Gesslein II (29 de Junho 2012). «Mathomatic User Guide». Official Mathomatic documentation (history). Consultado em 13 de Julho de 2012 
  7. Intelligent instruments & computer. sGoogle Books. Recuperado em 29 de Novembro de 2011.
  8. Mathomatic MS-Windows port. Mathomatic.org (4 November 2011). Retrieved on 29 November 2011.
  9. Mathomatic Mac OS X port. Mathomatic.org (4 November 2011). Retrieved on 29 November 2011.
  10. Mathomatic Mac OS X port from MacPorts
  11. Mathomatic ported to the Nintendo DS Arquivado em 28 de outubro de 2007, no Wayback Machine.. Blog.davr.org (22 February 1999). Retrieved on 29 November 2011.
  12. The Mathomatic package in Fedora Arquivado em 2012-12-20 na Archive.today. Admin.fedoraproject.org. Retrieved on 29 November 2011.
  13. Official Slackware port of Mathomatic in SlackBuilds. Slackbuilds.org. Retrieved on 29 November 2011.
  14. All Mathomatic packages in Debian. Packages.debian.org. Retrieved on 31 August 2012.
  15. All Mathomatic packages in Ubuntu Linux. Launchpad.net. Retrieved on 29 November 2011.
  16. Gentoo Packages /package/sci-mathematics/mathomatic. Packages.gentoo.org (25 November 2011). Retrieved on 29 November 2011.
  17. OpenBSD CVS tree for Mathomatic
  18. NetBSD pkgsrc CVS tree for Mathomatic
  19. FreeBSD CVS tree for Mathomatic
  20. «Cópia arquivada». Consultado em 13 de janeiro de 2014. Arquivado do original em 14 de janeiro de 2014 
  21. George Gesslein II (29 de junho de 2012). «Mathomatic User Guide». Official Mathomatic documentation (developer info). Consultado em 13 julho de 2012