O programa insere-se em diversas áreas da engenharia, biologia, química, processamento de imagens, finanças, estatística, matemática, além de outras, e também serve como um ambiente para desenvolvimento rápido de programas.
As versões mais recentes permitem a troca de informação com programas em Java, C++, entre outros, usando bibliotecas para comunicação entre aplicações - assim possibilitando que um programa do Mathematica, por exemplo, acesse a porta serial ou receba informações de um equipamento (hardware) externo. Pode também ser usado para a digitação de documentos com formatação matemática complexa
O Mathematica roda nas plataformas Windows, Linux, Solaris e Mac OS X. O nome do programa foi sugerido a Stephen Wolfram por Steve Jobs em meados da década de 1980, e apesar de Wolfram ter recusado o nome no começo, decidiu adota-lo.[2]
Diversas empresas brasileiras utilizam o Mathematica em suas atividades, como Petrobrás, Banco Santander, Furnas, Transpetro, CENPES, Inpe e Embraer.[3] Várias universidades do país também têm adquirido licenças do Mathematica para o uso de seus alunos, professores e demais funcionários.[4][5]
Formato de Arquivo
O Mathematica cria, edita e salva arquivos no formato chamado de notebook (ou caderno, em tradução livre para o Português). Este formato é expressado pela extensão .nb, formato reconhecido por todas as versões do Mathematica e pelos players lançados pela Wolfram research, o Mathematica Player e sua versão mais atual o CDF Player.
Ferramentas de manipulação de matrizes e dados incluindo suporte a matrizes esparsas
Suporte a números complexos, precisão arbitrária, aritmética de intervalos e computação simbólica
Visualização de funções e dados em 2D e 3D, e ferramentas de animação
Solucionadores de sistemas de equações, equações de diophantine, ODEs, PDEs, DAEs, DDEs e relações de retorno
Ferramentas numéricas e simbólicas para cálculo contínuo e discreto
Bibliotecas multivariadas de estatística incluindo ajuste, teste de hipóteses, e cálculos de probabilidade e expectativa em mais de 100 distribuições
Otimização local e global, restrita e irrestrita
Linguagem de programação que suporta construções procedural, funcional e orientada a objetos
Kit de ferramentas para adicionar interfaces de usuário a cálculos e aplicações
Ferramentas para processamento de imagens e processamento de imagens morfológico incluindo reconhecimento de imagens
Ferramentas para visualizar e analisar grafos
Ferramentas para problemas combinatórios
Ferramentas para prospecção de textos incluindo análise de expressões regulares e análises semânticas
Ferramentas de prospecção de dados como análise de cluster, alinhamento de sequências e correspondência de padrões
Biblioteca de funções de teoria dos números
Ferramentas para cálculos financeiros incluindo fundos, anuidades, derivativos, opções, etc.
Funções da teoria dos grupos
Bibliotecas para análise de sons, imagens e dados de wavelets
Bibliotecas de sistemas de controle
Transformadas integrais contínuas e discretas
Filtros de importação e exportação de dados, imagens, vídeos, sons, CAD, GIS, documentos e formatos biomédicos
Coleção de base de dados para acesso a dados e computações do WolframAlpha em áreas como matemática, científica, e informações socioeconômicas
Processamento de palavras técnicas como edição de fórmulas e geração automática de relatórios
Ferramentas para conectar DLLs. Sistemas com base em SQL, Java, .NET, C++, FORTRAN, CUDA, OpenCL e http
Ferramentas para programação em paralelo
Possibilidade de uso de entradas linguísticas de forma livre (uma interface de usuário em linguagem natural) e linguagem do Mathematica em um notebook quando existir conexão a internet
Interface
O Mathematica é composto de duas partes, a interface gráfica (também conhecida como front end) e o kernel. O kernel é a parte que interpreta as expressões e código do Mathematica e retorna os resultados. Já a interface gráfica, é onde o usuário trabalha com opções gráficas mais estéticas e com possíveis edições. Alguns dos recursos mais conhecidos da front end do Mathematica são a possível alternância entre notação matemática e notação padrão do Mathematica, a criação de relatórios e artigos científicos, apresentações, etc.
O principal responsável pela front end do Mathematica é Theodore Gray, co-fundador da Wolfram Research e atual diretor do setor de interface de usuário da empresa. A partir do trabalho que Theodore desenvolveu para a interface do usuário do Mathematica surgiu uma empresa de nome TouchPress que utiliza tecnologias do Mathematica para a criação de ebooks dinâmicos.[7] Outras aplicações derivadas da interface do usuário desenvolvida para o Mathematica são o Mathematica Player e o CDF Player. O Mathematica Player é uma versão anterior de plugin para navegadores de internet para execução de arquivos do Mathematica. A versão mais recente deste player é o CDF Player, introduzido em conjunto com o Formato de Documento Computável (do inglês Computable Document Format, CDF). O CDF Player é o atual programa utilizado para distribuição gratuita de arquivos criados pelo Mathematica.
Os documentos do Mathematica podem ser estruturados através da utilização de uma hierarquia de células, que permite destacar e dividir o trabalho em seções, que suporta criação automática de número de seções. Os documentos podem ser apresentados em um ambiente no formato de apresentação de slides, no caso de apresentações. Os notebooks e seus conteúdos podem ser expressados como expressões do Mathematica que podem ser criadas, modificadas e analisadas por programas do Mathematica. Isso permite a conversão entre o formato padrão do Mathematica e outros formatos como TeX ou XML.
O front-end inclui ferramentas de desenvolvimento como um depurador, conclusão de entrada e coloração automática de sintaxe.
Entre os front-ends alternativos está o Wolfram Workbench, um IDE baseado no Eclipse, lançado em 2006. Ele fornece ferramentas de desenvolvimento de código baseadas em projetos para o Mathematica, incluindo gestão de revisão, depuração, perfis e testes.[8] O Mathematica Kernel também inclui um front-end de linha de comando.[9] Entre outras interfaces está ainda o JMath,[10] baseado no GNU readline, e o MASH,[11] que executa programas do Mathematica independentes a partir da linha de comando UNIX.
Dados Computáveis
Um gráfico de fluxo a partir de dados meteorológicos em tempo real
O Mathematica inclui coleções de dados processados de maneira consistente para computação imediata. Os dados podem ser acessados de maneira programática para informar ou testar modelos e são atualizados automaticamente a partir de um servidor de dados da Wolfram Research.[12] Alguns dados como preços de ações e dados meteorológicos são fornecidos em tempo real. Atualmente os conjuntos de dados incluem:
Dados astronômicos: 99 propriedades de 155.000 corpos astronômicos
Dados químicos: 111 propriedades de 34.000 compostos químicos, 86 propriedades de 118 elementos químicos e 35 propriedades de 1000 partículas subatômicas
Dados geopolíticos: 225 propriedades de 237 países e 14 propriedades de 160.000 cidades ao redor do mundo
Dados financeiros: 71 propriedades históricas e em tempo real de 186.000 ações e instrumentos financeiros
Dados matemáticos: 89 propriedades de 187 poliedros, 258 propriedades de 3000 gráficos, 63 propriedades de 6 nós, 37 propriedades de 21 estruturas de rede, 32 propriedades de 52 esquemas geodésicos
Dados linguísticos: 37 propriedades de 149.000 palavras em inglês. 26 dicionários de línguas adicionais
Dados biomédicos: 41 propriedades de todos os 40.000 genes humanos, 30 propriedades de 27.000 proteínas
Dados meteorológicos: medidas históricas e em tempo real de 43 propriedades de 17.000 estações meteorológicas ao redor do mundo
Dados do Wolfram|Alpha: trilhões de pontos de dados do WolframAlpha
Áreas de aplicação
O Mathematica é um dos programas de computação mais poderosos que existem, e para atingir tal patamar estendeu a aplicação do programa às mais diversas áreas do conhecimento. O que inicialmente era um programa mais focado para matemática, levou a uma restrição do conceito por causa do nome. Stephen Wolfram comenta que o Mathematica de hoje em dia é muito mais do que era há mais de duas décadas quando foi lançado, e sente que o nome limita o entendimento das pessoas com relação a capacidade do programa.[13]
A versão 8 do Mathematica inclui diversas novas áreas do conhecimento, como análise de wavelets, computação em paralelo, programação em GPU, processamento e análise de imagens, sistemas de controle, engenharia financeira e biologia computacional. Como pode se ver pelos exemplos citados, o software é capaz de trabalhar com as mais diversas áreas sem a necessidade de compra de pacotes adicionais, todas as áreas podem ser operadas com a licença original. A tabela a seguir mostra algumas das áreas em que o Mathematica é capaz de operar.[14]
Engenharia
- Engenharia Química
- Ciências dos Materiais
- Engenharia Mecânica
- Engenharia Elétrica
- Engenharia do Petróleo
Ciências Biológicas
- Bioinformática - banco de dados
- Genoma humano
- Proteína: todas as proteínas humanas
- Estruturas Químicas
- Medicina - processamento de imagens
- Análise de crédito e risco
- Econometria: banco de dados de índices
- Engenharia financeira e Economia
Ensino de Matemática
- Nível superior: Cálculo
- Ensino a distância: matemática interativa
- Centros de Aprendizagem
Outras Áreas
- Música
- Artes
- Design de Jogos
- Edição de Artigos Científicos
Conexão com outras aplicações
A comunicação com outras aplicações ocorre através de um protocolo chamado MathLink. Ele permite a comunicação entre o kernel do Mathematica e o front-end, e também fornece uma interface geral entre o kernel e outras aplicações. A Wolfram Research distribui gratuitamente um kit de desenvolvimento para a ligação de aplicativos escritos na linguagem de programação C com o kernel do Mathematica através do MathLink.[15] Usando J/Link.,[16] um programa Java pode solicitar do Mathematica que execute cálculos; por sua vez, um programa Mathematica pode carregar classes Java, manipular objetos Java e realizar chamadas de método. Funcionalidade semelhante é conseguida com .NET /Link,[17] mas com programas . NET em vez de programas Java. Entre outras linguagens que se conectam ao Mathematica estão Haskell,[18]AppleScript,[19]Racket,[20]Visual Basic,[21]Python[22][23] e Clojure.[24]
A comunicação com bancos de dados SQL é realizada através de um suporte embutido para JDBC.[35] O programa também pode instalar serviços da web a partir de uma descrição WSDL.[36][37]
Mathematica pode capturar dados em tempo real através de um link para o LabVIEW,[38] a partir de feeds de dados financeiros[39] e diretamente de dispositivos de hardware via GPIB (IEEE 488),[40]USB[41] e interfaces seriais.[42] Ele ainda automaticamente reconhece e lê a partir de dispositivos HID.
Licenciamento e Plataformas
Mathematica é um software proprietário licenciado a uma variedade de preços, a depender da finalidade do uso: comercial, educacional, para a administração pública, entre outros.[43]