Roberto Colistete Jr.

Blog sobre computação física, científica e móvel : (Micro)Python, CUDA, smartphones, Linux, etc

Computação simbólica CAS (Computer Algebra System) em smartphones e tablets

Posted by robertocolistete em 27/12/2012

CAS (Computer Algebra System) são softwares que permitem computação simbólica, i.e., com símbolos literais que não tem valores atribuídos. Essa é a forma comum de se calcular boa parte dos problemas da área de exatas no ensino superior. Um CAS pode ser usado para se calcular quase tudo o que é pedido nas disciplinas de “Cálculo” (limite, derivadas, integrais, etc), por exemplo. Porém usualmente o CAS não fornece os passos intermediários do cálculo, só o resultado final do cálculo. CAS normalmente também têm recursos de computação numéricas e gráfica.

Devido à grande evolução de hardware e sistema operacional dos celulares, smartphones (celulares inteligentes) e tablets, hoje temos diversos CAS disponíveis. Esse artigo visa então listar a maioria dos CAS para celulares, smartphones e tablets, e assim motivar o uso de tais equipamentos no ensino superior e pesquisa.

Softwares de cálculos somente numéricos e gráficos foram excluídos, bem como calculadoras científicas, gráficas, tabelas de fórmulas matemáticas, etc. Embora esses softwares sejam maioria nas “lojas” de softwares para smartphones e tablets, eles não são CAS.

CAS online (via Internet e navegador web)

Temos CAS completos ou com alguns recursos disponíveis via Internet, funcionando dependendo do navegador web do celular/tablet. Ou seja, um celular de R$100 que tenha um navegador web bom (com JavaScript habilitado, etc) pode acessar alguns dos sites abaixo !

CAS completos, permitindo comandos em sequência, uso de variáveis, etc :

  • SymPy Live : escrito totalmente em Python, SymPy é um CAS que tem se desenvolvido muito via uma comunidade bem ativa, e SymPy Live tem uma interface com vários tipos de saída, documentação acessível, exemplos, ‘Tab’ completa comandos, histórico de comandos, etc. Tem versão SymPy Live Mobile para telas pequenas de celulares. Foi citado em artigo anterior do blog;
  • Mathics : é um CAS recente e muito completo, com interface de notebook online, documentação acessível, exemplos, gráficos 2D e 3D (que giram se WebGL funcionar no navegador web), notebooks que podem ser salvos e lidos (precisa criar uma conta/login gratuito), etc. Mathics é um CAS baseado em SymPy e Sage, porém com sintaxe do Mathematica da Wolfram Research. Não funciona em qualquer navegador web pois precisa de suporte a MathJax, sendo recomendado Firefox (para Android, Maemo, MeeGo), Chrome (Android, iOS) e Safari (iOS), sendo que o navegador web do Android também funciona. Em meus testes, a melhor experiência é usando Firefox (no MeeGo Harmattan e Android).

Mais comum é encontrar funções específicas de CAS acessíveis via Internet :

  • Wolfram Alpha : é uma mistura de Google com CAS (comercial Mathematica da Wolfram Research), permitindo fazer pesquisas com texto em inglês bem como cálculos usando sintaxe “solta”. Tem ampla documentação, saída em vários formatos, etc.
  • Wolfram Mathematica Online Integrator : calcula integrais indefinidas de uma variável (x) usando o CAS comercial Mathematica da Wolfram Research, um dos mais completos e melhores CAS;
  • SymPy Gamma : faz cálculos diversos, bem simples de usar, com vários exemplos, usa o SymPy (CAS em Python). Foi citado em artigo anterior do blog;
  • Integral Calculator : calcula integrais indefinidas ou definidas de uma variável, com entrada com sintaxe “solta” e saída em MathJax (clique com o botão direito do mouse sobre o resultado e veja a expressão em TeX ou MathML, podendo copiar), exemplos, opção de simplificar o resultado, etc. Usa o CAS gratuito e de código-fonte aberto Maxima, que é um dos mais completos dentre os gratuitos;
  • Derivative Calculator : calcula derivadas de 1a até 3a ordem de uma variável, com entrada com sintaxe “solta”, saída em MathJax (clique com o botão direito do mouse sobre o resultado e veja a expressão em TeX ou MathML, podendo copiar), exemplos, opção de simplificar o resultado, opção de mostrar os passos intermediários do cálculo, etc. Usa o CAS gratuito e de código-fonte aberto Maxima, que é um dos mais completos dentre os gratuitos.

CAS instalados localmente

Para celulares não-smartphones que rodam Java (J2ME) :

  • JaSymCA 2 (gratuito e de código-fonte aberto) : é um CAS leve e com recursos razoáveis, tendo documentação, programação (com variáveis, funções, if/else, while/for, etc), cálculos númericos (à la Octave/MatLab/SciLab, de vetores e matrizes, resolução de equações, etc), cálculos simbólicos à la Maxima (derivada ordinária, integral indefinida/definida em relação a uma variável, série de Taylor de uma variável, EDO (equação diferencial ordinária) simples, etc), gráficos 2D (de uma variável, paramétricos, coloridos, logarítmicos, etc). Vide mais detalhes em artigo “Usando softwares científicos em celulares (quase) smartphones”.

Listando agora os sistemas operacionais móveis (de tablets e smartphones) :

Para Android há várias opções de CAS, inclusive algumas que apareceram em 2012 :

  • Maxima on Android (gratuito e de código-fonte aberto) : lançado em 10/2012 para Android, o CAS gratuito e de código-fonte aberto Maxima é um dos mais completos dentre os gratuitos. A versão para Android tem saída tipografada, documentação completa, gráficos 2D/3D, salvar/restaurar sessão, etc. Vide site do projeto “Maxima on Android” para maiores detalhes;
  • MathScript Scientific Calc Trial (gratuito) : usa o CAS SymPy para os cálculos, com interface de fácil uso, saída tipografada, gráficos 2D, documentação, exemplos, salvar/abrir sessão (em arquivo), etc. Versão de final de 2012 corrigiu problemas anteriores de saída tipografada. Na versão gratuita aos poucos vai aparecendo mensagens de espera importunando;
  • MathScript Scientific Calc (US$5) : idem acima, porém sem mensagens de espera;
  • MathStudio (US$9,99) : é um CAS leve com cálculos numéricos, simbólicos (integrais em relação a uma variável, etc), saída tipografada, gráficos 2D e 3D com animações, documentação, salvar/abrir sessão (em arquivo), etc. Vide site do software para documentação, exemplos de sessões, galeria de gráficos, etc. Tem versão para iOS;
  • JaSymCa 3 para Android (gratuito) : semelhante ao JaSymCA 2 citado acima para celulares nã0-smartphones, porém com interface melhorada na versão para Android;
  • Python SL4A + SymPy (gratuito e de código-fonte aberto) : no Android a instalação é manual, não tem saída tipografada nem gráficos, com uso via execução de arquivos .py. SymPy é um CAS escrito totalmente em Python;
  • Sage Math beta (gratuito e de código-fonte aberto) : versão lançada em 2012, é cliente do Sage com cálculo remoto em servidor web (logo precisa de conexão Internet), tem saída tipografada, gráficos, notebooks, etc. É versão beta com parte dos recursos do Sage para PC desktop implementados. Sage é um CAS baseado em Python / SymPy com muitos recursos avançados;
  • MathSys Calculator Shell alpha (gratuito) : lançada no 2o semestre de 2012, é uma nova interface continuando o trabalho da equipe do MathScript Scientific Calc citado acima. Tem interface touch fácil de usar, saída tipografada, gráficos 2D e 3D. Está em testes ainda (versão alfa), só funcionando em alguns tablets e smartphones Android com bom desempenho e tela de alta resolução. Internamente usa Python e os módulos SymPy, NumPy e MatPlotLib, infelizmente NumPy e MatPlotLib não são acessíveis de fora do MathSys, p.e., no Python SL4A;
  • wxMaxima e Maxima (gratuitos e de código-fonte aberto) : (wx)Maxima é a melhor interface gráfica para o CAS Maxima, ambos podem ser instalados em Linux dentro do Android (desde que se possa “rootear”), vide artigo de blog “Usando Linux dentro do Android no Asus Transformer“, onde vemos que o wxMaxima gasta 1-4 s para abrir em um tablet típico de 2 núcleos Cortex A9. Para instalar no Ubuntu (dentro do Android) é simples, via comando “$ sudo apt-get install –no-install-recommends maxima wxmaxima maxima-share”;
  • SymPy & IPython Notebook (gratuitos e de código-fonte aberto) : a maior parte do ambiente Python científico de PC funciona no Linux dentro do Android (instalável se for possível “rootear” o Android) : IPython 0.12 com interface Notebook, NumPy & MatPlotLib, SymPy, etc. Mas PyGlet e gráficos via Plot no SymPy dificilmente funcionam. Para instalar no Ubuntu (dentro do Android) basta o comando “$ sudo apt-get install –no-install-recommends python-mpmath python-sympy python-numpy python-matplotlib ipython ipython-notebook”.

Para iOS, em 2012 tivemos basicamente atualizações dos softwares já existentes de CAS :

  • MathStudio (US$9,99) : é um CAS leve com cálculos numéricos, simbólicos (integrais em relação a uma variável, etc), saída tipografada, gráficos 2D e 3D com animações, documentação, etc. Vide site do MathStudio para documentação, exemplos de sessões, galeria de gráficos, etc. Tem versão para Android;
  • iCAS (US$14,99) : versão iOS do REDUCE (CAS que começou na década de 60), bem complexo, tem saída tipografada, gráficos 2D e 3D, arquivos com comandos, etc. Vide site do iCAS para mais exemplos, documentação, etc;
  • PocketCAS Pro (US$4,99): outro CAS leve com cálculos numéricos, simbólicos, saída tipografada, gráficos 2D e 3D, teclado matemático, editor de arquivos de comandos, documentação, etc. Vide site do PocketCAS for iOS para maiores detalhes, documentação, etc.
  • PocketCAS lite (gratuito): vide PocketCAS Pro acima, porém com algumas funções desabilitadas;
  • Python Math (gratuito) : basicamente Python que inclui o CAS SymPy, não tem saída tipografada nem gráficos, tem editor de arquivos de comandos (US$0,99), teclado optimizado para Python (US$0,99), documentação, etc. Vide site do software para maiores detalhes, assim como o artigo “SymPy for smartphones & tablets” com análise detalhada desse software;
  • Python for iOS (US$2,99) : basicamente Python que inclui o CAS SymPy, não tem saída tipografada nem gráficos, tem editor de arquivos de comandos, documentação, etc. Vide site do software para maiores detalhes, bem como o artigo “SymPy for smartphones & tablets” com análise detalhada desse software;
  • Calcul (US$1,99) : CAS bem simples para computação simbólica, com saída tipografada.

Para Maemo 5 (Nokia N900, um smartphone lançado em no final de 2009 e vendidas 1-2 milhões de unidades mundo afora), há algumas opções, todas gratuitas :

  • SymPy Interactive Shell (gratuito e de código-fonte aberto) : CAS SymPy de fácil instalação e completo, incluindo IPython 0.10.2, SymPy 0.7.1/0.7.2, ícone, saída bidimensional, gráficos 2D e 3D interativos (via instalação de PyGlet), uso interativo completo do IPython 0.10.2, etc. SymPy para Maemo 5 é o mais completo dentre todos smartphones e tablets, vide análise comparativa no artigo “SymPy for smartphones & tablets”. Para mais recursos em cálculos numéricos e gráficos, temos NumPy 1.4.0 e MatPlotLib 1.0.0 também facilmente instaláveis no Maemo 5, via “$apt-get install python-numpy python-matplotlib” com repositório extras-devel habilitado. O artigo “Python científico em computadores, tablets e smartphones” mostra que o Maemo 5 é um dos dois melhores sistemas operacionais móvel para uso de Python. “SymPy Interactive Shell” foi empacotado pelo autor desse blog, desde 10/2011 até hoje (28/12/2012) tem mais de 66 mil downloads (uns 40 mil downloads únicos excluindo atualizações) para Nokia N900;
  • Integral (gratuito e de código-fonte aberto) : interface de fácil uso para calcular integrais com muitos recursos : definidas ou definidas ou numéricas (precisão arbitrária), em relação a 1 a 3 variáveis, resultados em vários formatos (simples, bidimensional, LaTeX, MathML, C, Fortran), opções de simplificação do resultado, com recurso de histórico e completar linhas de entrada, etc. Usa Python e o CAS SymPy v0.7.1/0.7.2. Vide também o tópico sobre “Integral” no fórum Talk Maemo.org. Foi criado pelo autor desse blog, desde 08/2011 até hoje (28/12/2012) tem mais de 82 mil downloads (uns 65 mil downloads únicos excluindo atualizações) para Nokia N900;
  • Derivative (gratuito e de código-fonte aberto) : interface de fácil uso para calcular derivadas ordinárias ou parciais (até 3 variavéis), gradiente, divergente, rotacional e laplaciano em 3 dimensões (coordenadas cartesianas, cilíndricas e esféricas), solução numérica com precisão arbitrária, resultados em vários formatos (simples, bidimensional, LaTeX, MathML, C, Fortran), opções de simplificação do resultado, com recurso de histórico e completar linhas de entrada, etc. Usa Python e o CAS SymPy v0.7.1/0.7.2. Vide também o tópico sobre “Derivative” no fórum Talk Maemo.org. Foi criado pelo autor desse blog, desde 10/2011 até hoje (28/12/2012) tem mais de 64 mil downloads únicos para Nokia N900;
  • Limit (gratuito e de código-fonte aberto) : interface de fácil uso para calcular limites simbólicos ou numéricos (com precisão arbitrária), resultados em vários formatos (simples, bidimensional, LaTeX, MathML, C, Fortran), opções de simplificação do resultado, com recurso de histórico e completar linhas de entrada, etc. Usa Python e o CAS SymPy v0.7.1/0.7.2. Vide também o tópico sobre “Limit” no fórum Talk Maemo.org. Foi criado pelo autor desse blog, desde 11/2011 até hoje (28/12/2012) tem mais de 57 mil downloads únicos para Nokia N900;
  • wxMaxima e Maxima (gratuitos e de código-fonte aberto) : (wx)Maxima é um dos CAS mais completos e maduros, disponível no Maemo 5 via Easy Debian. É muito fácil instalar o Easy Debian dentro do Maemo 5, i.e., um Debian ARM via chroot, permitindo instalar quase 30 mil pacotes ARM. Dentro do Easy Debian, basta habilitar o repositório sid e instalar via “$ apt-get install –no-install-recommends maxima wxmaxima maxima-share”.

SymPy rodando dentro do IPython Notebook no Nokia N9


SymPy 0.7.2 rodando dentro do IPython Notebook 0.13.1 no Nokia N9

Para MeeGo Harmattan (Nokia N9, vendidas algumas poucas milhões de unidades desde meados de 2011), além de somente um software (SymPy) CAS nativo do MeeGo Harmattan, temos softwares CAS do Debian (via chroot de imagem) que funcionam muito bem no Nokia N9, vide artigo “Easy Debian Harmattan para Nokia N9 com teclado virtual transparente“. As imagens científicas do Debian acumularam quase 7 mil downloads entre Agosto e Dezembro de 2012, atestando a popularidade e facilidade de uso do Easy Debian Harmattan (do qual o autor desse blog é mantenedor).

Para Symbian, há poucos soluções CAS :

  • JaSymCA 2 (gratuito e de código-fonte aberto) : tal como citado acima para celulares não-smartphones, funciona também no Symbian;
  • Python + SymPy (gratuito e de código-fonte aberto) : no Symbian a instalação é manual, não tem saída tipografada nem gráficos, com uso interativo bem limitado ou via execução de arquivos de comandos Python. SymPy é um CAS escrito totalmente em Python.

Os sistemas operacionais BlackBerry OS e Windows Phone não têm CAS disponíveis atualmente.

Conclusões

Sobre considerações entre vantagens x desvantagens entre computadores, tablets e smartphones, bem como opções de compras de smartphones e tablets, vide final do artigo “Python científico em computadores, tablets e smartphones”.

Enfim, minha opinião :

  • mesmo celulares não-smartphones podem rodar CAS, instalado localmente ou acessando CAS online via navegador web;
  • há várias opções de CAS online completos ou só com funções específicas, acessíveis via navegador web;
  • a maioria dos sistemas operacionais móveis (de smartphones e tablets) pode rodar CAS instalado localmente;
  • SymPy (CAS totalmente escrito em Python) está em todos os sistemas operacionais móveis que rodam CAS e em alguns CAS online, atestando a portabilidade da linguagem Python;
  • os melhores CAS gratuitos, Maxima e SymPy, ambos rodam em Android, Maemo 5 e MeeGo Harmattan, tendo bom desempenho e boa funcionalidade;
  • o Nokia N9 com MeeGo Harmattan é o melhor smartphone atual para rodar CAS, pois tem versões de 2012 dos melhores CAS gratuitos : SymPy 0.7.2 + IPython Notebook 0.13.1 com gráficos embutidos e wxMaxima/Maxima (via Easy Debian Harmattan);
  • Android atualmente é o sistema operacional móvel que tem a maior variedade de hardware (i.e, smartphones, tablets e Mini-PC’s de diversos tamanhos, formatos, preços e fabricantes) combinada com um bom leque de softwares CAS.

(Atualização em 12/02/2013) : adicionada citações a SymPy 0.7.2 para Maemo 5/MeeGo Harmattan (07/01/2013), IPython 0.13.1 terminal, Notebook e Qt console para MeeGo Harmattan (22/01/2013), MatPlotLib 1.2.0 para MeeGo Harmattan (09/02/2013) e NumPy 1.7.0 para MeeGo Harmattan (11/02/2013).

(Atualização em 13/02/2013) : adicionadas screenshots do SymPy 0.7.2 rodando no IPython Notebook 0.13.1 no Nokia N9.

4 Respostas to “Computação simbólica CAS (Computer Algebra System) em smartphones e tablets”

  1. […] Computação simbólica CAS (Computer Algebra System) em smartphones e tablets […]

  2. DMR2 said

    Roberto como sempre vc tem boas nao otimas materias sobre programação… ” ahh”
    Para um novo programado em Python (usando o n9 MeeGo) o que vc recomenda?

    • Olá DMR2,
      Python no Nokia N9 é bem parecido com o PC pois o MeeGo Harmattan tem mais de 200 pacotes Python disponíveis atualmente :
      http://wiki.maemo.org/Python/Harmattan
      http://talk.maemo.org/showthread.php?t=80609
      A diferença maior é que as interfaces gráficas para o usuário (GUI) devem ser feitas somente em Qt/QML, enquanto que em PC temos Gtk, QtWidgets, Tk, WxWidgets, etc.
      Para te recomendar algo mais específico, eu precisaria saber o que você quer programar em Python :
      – scripts e programas sem interface gráfica ?
      – programas com interface gráfica ?
      – para você mesmo ou para publicar na Nokia Store ou repositórios da comunidade ?
      Na minha lista de artigos de blog a publicar tenho na fila algo como “Programando em Python e Qt/QML para smartphones”.
      Legal que todo o conhecimento de programar em Python e Qt/QML serve para MeeGo Harmattan, Maemo 5, Mer/Nemo Mobile/Plasma Active, BlackBerry 10 OS, Sailfish OS, Ubuntu Phone OS (provavelmente), etc.

      • DMR2 said

        Obg. Por sua rápida resposta Professor, sempre estou acompanhado sua matérias sobre programação, e as do pessoal de talk maemo, (poderia se ‘talk MeeGo’ mas o maemo também é legal, nõkîã N900, “Ah meu primeiro sonho, aquele N900, era um sonha na época, e hoje item de colecionado”) sim continuando primeiro tenho de me apresentar:

        Meu nome e Ramon seu estudante do curso de “superior” de Irrigação e Drenagem do IFCE, e também sou estudante do curso TI também do IFCE, mas não e superior.
        Meus orientadores e um topógrafo (ai ele ” http://lattes.cnpq.br/4451348789476110 “) e o outro é um louco Matemático (srrsrs) e mais é um mostro em VB e Fortran (mais em Fortran, aqui o kara “ http://lattes.cnpq.br/2806335139286200 ”),

        “Agora posso chamar-lo de professor.”

        ““Para te recomendar algo mais específico, eu precisaria saber o que você quer programar em Python :
        – scripts e programas sem interface gráfica ?
        – programas com interface gráfica?
        – para você mesmo ou para publicar na Nokia Store ou repositórios da comunidade ? ””

        É muito difícil responde esta pergunta direto!

        Meu objetivo e aprender a linguagem das três (3) formas básicas (básico, médio, avançado) e só depois parti para ambiente gráfico (“Falando a verdade eu penso em coisa, tipo como, ‘DOMINAÇÃO TOTAL DO MUNDO’ só isso usado o MeeGo ou é MER” rsrsrs). (eu) Já com o N9, inicialmente queria aprende Qt, mas depois de vê uma palestra sobre Python (pensei é fácil, é poderosa, é ‘boa’) e encontrei seu blog (foi sorte, muita sorte) falando que dava para programar em python direto no MeeGo, então gostaria de sua ajuda em qualquer duvida, bug, ou outra coisa do tipo (já e uma duvida) teclado o nõkîã SU-8W e bom para o Fácil Debian (em português mesmo).

        Obrigado mais uma vez.

Deixe um comentário