| Maple | |
|---|---|
Logotipo do Maple | |
Interface gráfica do Maple 2016 | |
| Desenvolvedores | Waterloo Maple, que usa o nome Maplesoft |
| Lançamento inicial | 1982 |
| Lançamento estável | 2026.1.1
|
| Escrito em | C, Java e Maple |
| Sistema operacional | Windows 10 e 11, de 64 bits, macOS 14, 15 e 26, em computadores com processadores Intel ou Apple Silicon, e Linux |
| Disponível em | Inglês, japonês e suporte limitado a outros idiomas |
| Tipo | Sistema algébrico computacional e computação numérica |
| Licença | Software proprietário e comercial |
| Website | www.maplesoft.com/products/maple/ |
Maple é um ambiente de computação simbólica e numérica que também oferece uma linguagem de programação multiparadigma. Seus recursos abrangem matemática simbólica, análise numérica, processamento e visualização de dados e outras áreas da computação técnica. O MapleSim, uma ferramenta complementar, acrescenta recursos para modelagem de sistemas físicos de diferentes domínios e geração de código.
Os recursos de computação simbólica do Maple permitem utilizá-lo como um sistema algébrico computacional de uso geral, capaz de manipular expressões matemáticas e encontrar soluções simbólicas para determinados problemas, como os que envolvem equações diferenciais ordinárias e parciais.
O programa é desenvolvido e comercializado pela empresa canadense Maplesoft. Seu nome faz referência à origem canadense do programa.
O usuário pode inserir expressões na notação matemática tradicional e criar interfaces personalizadas. O Maple permite fazer cálculos numéricos com precisão arbitrária, cálculos simbólicos e visualizações, como nos exemplos apresentados adiante.
A linguagem de programação do Maple tem tipagem dinâmica e permite escrever programas no estilo imperativo, com uma sintaxe semelhante à de Pascal e variáveis de escopo léxico. Há interfaces para outras linguagens, como C, C#, Fortran, Java, MATLAB e Visual Basic, e para o Microsoft Excel.
O Maple oferece suporte ao MathML 2.0, um formato do W3C para representar e interpretar expressões matemáticas, inclusive para exibi-las em páginas da internet. Também permite converter expressões escritas na notação matemática tradicional em código para o sistema de composição tipográfica LaTeX.
O Maple tem um pequeno núcleo, escrito em C, que implementa sua linguagem de programação. A maior parte dos recursos está em bibliotecas de diferentes origens. Muitas dessas bibliotecas são escritas na própria linguagem Maple, e seu código-fonte pode ser consultado. Os cálculos numéricos também utilizam as bibliotecas numéricas NAG, as bibliotecas ATLAS e a GMP.
Os diferentes recursos do programa exigem dados numéricos em formatos distintos. As expressões simbólicas são armazenadas na memória como grafos acíclicos dirigidos. A interface padrão e a interface de calculadora são escritas em Java.
A ideia do Maple surgiu em uma reunião no fim de 1980, na Universidade de Waterloo. Pesquisadores da universidade queriam adquirir um computador capaz de executar o Macsyma, um sistema algébrico computacional escrito em Lisp. Como alternativa, decidiram desenvolver um sistema próprio, que pudesse funcionar em computadores mais baratos. Para facilitar a portabilidade, começaram a escrever o Maple em linguagens da família BCPL, primeiro com um subconjunto de B e C e depois apenas em C. Uma primeira versão, ainda com recursos limitados, ficou pronta em três semanas, e versões mais completas começaram a ser utilizadas em 1982. No fim de 1983, havia cerca de 50 instalações do programa fora da universidade.
Em 1984, o grupo de pesquisa firmou um acordo com a Watcom Products Inc. para licenciar e distribuir o programa. A distribuição comercial começou em 1985, com o Maple 3.3. A Waterloo Maple Inc., que passou a usar o nome Maplesoft, foi fundada em 1988 para cuidar da distribuição do software. A empresa criou seu próprio departamento de pesquisa e desenvolvimento, onde passou a realizar a maior parte do desenvolvimento do Maple, com a participação de laboratórios universitários. Entre esses laboratórios estão o Grupo de Computação Simbólica da Universidade de Waterloo e o Centro de Pesquisa de Ontário em Álgebra Computacional, com pesquisadores da Universidade de Western Ontario.
A primeira interface gráfica do Maple foi desenvolvida em 1989 e incluída na versão 4.3 para Macintosh. As versões dessa interface para X11 e Windows vieram em 1990, com o Maple V. Em 1992, o Maple V Release 2 introduziu a folha de trabalho, chamada worksheet, que reunia texto, gráficos, comandos e resultados com formatação matemática. Em 1994, foi publicada uma edição especial do boletim MapleTech, preparado pelos desenvolvedores do programa.
O Maple 6, lançado em 2000, passou a incorporar parte das bibliotecas numéricas NAG. Em 2003, o Maple 9 introduziu a interface padrão, escrita principalmente em Java. Algumas partes, como as regras de formatação de fórmulas matemáticas, foram escritas em Maple. Essa interface recebeu críticas por sua lentidão e foi aperfeiçoada nas versões seguintes. A documentação do Maple 11 ainda recomendava a interface anterior, chamada "clássica", para computadores com memória física abaixo da quantidade recomendada, que era de 512 MB na maioria das plataformas.
Na avaliação de Gaston Gonnet, um dos criadores do programa, o Maple perdeu participação de mercado para concorrentes entre 1995 e 2005 por oferecer uma interface menos fácil de usar. O Maple 10, lançado em 2005, introduziu o "modo de documento", cuja interface foi aprimorada nas versões seguintes.
Em setembro de 2009, a empresa japonesa de distribuição de software Cybernet Systems adquiriu a Maplesoft e o Maple.
Entre os recursos do Maple estão:
O código a seguir calcula o fatorial de um número inteiro não negativo por meio de uma construção de programação imperativa:
restart;
myfac := proc(n::nonnegint)
local out, i;
out := 1;
for i from 2 to n do
out := out * i
end do;
out
end proc;
Uma função simples também pode ser definida com a notação de seta:
myfac := n -> product(i, i = 1..n);
Para calcular a integral
usa-se o comando:
restart;
int(cos(x/a), x);
O resultado é:
Para calcular o determinante de uma matriz, define-se primeiro a matriz:
restart;
M := Matrix([[1,2,3], [a,b,c], [x,y,z]]); # matriz de exemplo
O comando seguinte calcula seu determinante:
LinearAlgebra:-Determinant(M);
A expansão da tangente hiperbólica em torno de zero é obtida com:
restart;
series(tanh(x), x = 0, 15);
O código seguinte calcula numericamente as raízes reais de um polinômio de grau elevado:
restart;
f := x^53-88*x^5-3*x-5 = 0:
fsolve(f);
O programa retorna:
-1.097486315, -.5226535640, 1.099074017
O mesmo comando permite resolver sistemas de equações:
f := cos(x+y)^2 + exp(x)*y + cot(x-y) + cosh(z+x) = 0:
g := x^5 - 8*y = 2:
h := x + 3*y - 77*z = 55:
fsolve({f,g,h});
Uma solução numérica é:
{x = -2.080507182, y = -5.122547821, z = -0.9408850733}
O comando seguinte traça o gráfico de para entre −10 e 10:
restart;
plot(x*sin(x), x = -10..10);
Para traçar o gráfico de com e entre −1 e 1, usa-se:
restart;
plot3d(x^2+y^2, x = -1..1, y = -1..1);

restart;
f := 2*k^2/cosh(x*k - 4*k^3*t)^2:
plots:-animate(subs(k = 0.5, f), x = -30..30, t = -10..10,
numpoints = 200, frames = 50, color = red, thickness = 3);

restart;
plots:-animate3d(cos(t*x)*sin(3*t*y), x = -Pi..Pi, y = -Pi..Pi, t = 1..2);

restart;
M := Matrix([[400,400,200], [100,100,-400], [1,1,1]], datatype = float[8]):
plot3d(1, x = 0..2*Pi, y = 0..Pi, axes = none,
coords = spherical, viewpoint = [path = M]);

restart;
f := (1+A*t+B*t^2)*exp(c*t);
inttrans:-laplace(f, t, s);
inttrans:-invlaplace(1/(s-a), s, x);
Para calcular a transformada de Fourier da função seno, usa-se:
restart;
inttrans:-fourier(sin(x), x, w);
Para encontrar funções que satisfaçam a equação integral
usa-se o código:
restart;
eqn := f(x)-3*Int((x*y+x^2*y^2)*f(y), y = -1..1) = h(x):
intsolve(eqn, f(x));
O resultado é:
O motor de cálculo do Maple é utilizado em outros produtos da Maplesoft:
Os seguintes produtos comerciais de terceiros utilizaram o motor de cálculo do Maple e depois passaram a usar o MuPAD: