|
|
Subscribe / Log in / New account

Symbolic mathematics on Linux

January 4, 2017

This article was contributed by Lee Phillips

This article is an introduction to the world of free and open-source applications for symbolic mathematics. These are programs that assist the researcher or student through their ability to manipulate mathematical expressions, rather than just make numerical calculations. I'll give an overview of two large computer algebra packages available for Linux, and a briefer sampling of some of the more specialized tools aimed at particular branches of mathematics.

This category of software is traditionally called a "computer algebra system", but that description can be misleading. These systems can find analytic solutions to algebraic and differential equations; solve integrals; sum infinite series; and generally carry out nearly any kind of mathematical manipulation that can be imagined. At the least, symbolic mathematics software can replace the bulky handbooks of mathematical information that have been lugged by generations of graduate students.

Over decades, mathematicians have honed these programs, encoding within them the accumulated mathematical knowledge of centuries: information about special functions, for example, that's so difficult (for some of us) to remember. They have learned to reduce such things as algebraic simplification and calculating derivatives to patterns of symbol manipulation ripe for automation. The earliest of these systems, developed in the 1960s, were based on Lisp, the obvious choice at the time, but development of later systems used a variety of languages.

Fortunately, most of the best of this software is free and open source, which allows us to look under the hood and examine or alter the algorithms employed.

Maxima

The ancestor of all symbolic mathematics systems is Macsyma [PDF]. It began as an academic project at MIT in the 1960s, but it was eventually licensed to Symbolics (a company founded by former MIT people), which sold it throughout the 1980s. A fork of an earlier version became Maxima, which remains the predominant free-software symbolic mathematics solution. Maxima is actively developed, and has attained a high degree of sophistication and completeness; source is licensed under the GNU GPLv2.

On Ubuntu, at least, the packaged version is quite close to the latest development version; if your distribution lags, you can build it from the sources in the Git repository on SourceForge. If you intend to do any real work with the program you should also install the "maxima-share" package (after installing Maxima itself). This will install a large number of extra mathematical libraries that are used transparently by Maxima and make it far more capable.

The traditional way to use Maxima is in a terminal. Just type "maxima", and you will be presented with an interactive command prompt. You can enter mathematical expressions in the customary computerized dialect (x^2 for x squared, etc.), followed by a semicolon, and Maxima will respond with a simplified or "solved" version of the expression. If Maxima can't do anything with the expression, it usually just repeats it: tell it "foo" and it will respond with "foo". Readline support allows you to recall previous inputs and edit them, which is particularly convenient for the type of exploration that Maxima seems to inspire, at least for this user.

But if you tell it:

    integrate(%e^(-x^2), x);

Maxima will respond with something that looks like:

    sqrt(%pi) erf(x)
    ----------------
           2

This example is here to illustrate three things: First, special numbers such as π and e are represented, in input and output, as %pi and %e. If you say, for example, %e, Maxima will just say %e back; to see the numerical value of the constant, say float(%e).

Second, mathematical expressions in the output are, by default, rendered in an ASCII approximation of mathematical notation, making their structure easier to grasp than the computerese that we are obliged to use for the input. You can enter tex(%) to get the result in a form ready for pasting directly into a TeX or LaTeX document. (The symbol % refers to the immediately preceding output; each input and output is numbered, and can be referred to directly, as %o6 for output number six, %i6 for input number six, etc.)

Third, there is a wealth of mathematical knowledge baked in to Maxima. Notice the erf in the numerator of the answer: this refers to the error function, well known to statisticians. Maxima will provide the results of integrals and the solutions of differential equations in terms of the special functions that it knows about, when appropriate.

[Maxima plot]

If you'd like to know what that error function looks like, you just need to say:

    plot2d(%, [x, -2, 2]);
That will pop up a plot like the one at the right.

Remember, the % notation refers to the last result returned. The three terms in square brackets are the variable on the horizontal axis and its range. Maxima uses gnuplot for its plotting. If you're familiar with gnuplot, you can add options to the plot command to tweak the plot's appearance, or set global options that will apply to every plot in the session. If you have a high-resolution screen you may want to apply these global options to make the plots easier to see:

    set_plot_option(
        [gnuplot_preamble, "set termoption font 'courier,24';
         set termoption lw 4"]);

In fact, these options were used for the example plots in this article.

Maxima also provides an interface to gnuplot's 3D plotting commands. Here's a simple example of a surface plot:

    plot3d(sin(x)*cos(y), [x, 0, 2*%pi], [y, 0, 2*%pi]);
[Maxima 3D plot]

By setting the gnuplot preamble, either globally or per plot, you can access contour, parametric, or any of gnuplot's other plotting modes. The plots use the x11 gnuplot terminal. When you interact with them, you are interacting directly with the gnuplot subsystem, so you can use the mouse to zoom 2D and 3D plots and rotate 3D surfaces.

Using Maxima at the terminal is convenient because it starts instantly, is responsive, and there is nothing extra to install. However, the console interface has some disadvantages: the ASCII output is not easy on the eyes, especially after a long session; there is only one plot window, which gets reused for each plot; and there is no convenient record of your session.

There are a handful of alternative interfaces that solve one or more of these problems. None of them are ideal, nor as capable as the solution that we'll see in the next section; but I'll briefly describe them here, to provide an idea of what's available, and in case any one of them hits a sweet spot for the reader.

Two slightly more graphical interfaces to Maxima are Xmaxima and wxMaxima. The first of these is based on Tk and the second on wxWidgets. They both allow plots to be embedded with the input and output, and allow for various options to save the session, which is useful for creating notebooks or documents from Maxima explorations. Neither one seems to provide true typeset output, although wxMaxima can use the jsMath fonts to make the results somewhat more attractive. wxMaxima can serve as a gentler introduction to Maxima for those who prefer to get started without frequent trips to the manual, as it bristles with menus and dialogs that expose some, but far from all, of the program's options.

As we saw above, Maxima knows how to create TeX versions of its output. Therefore it should be possible to simply run TeX behind the scenes and display math that looks like real math. There are at least two interfaces that follow this strategy. The WYSIWYG editing platform TeXmacs can interface with Maxima and display typeset output, but this is probably mainly of interest to those who are already using TeXmacs. Perhaps of more general interest, especially to Emacs users, is the imaxima mode of that editor, where you can embed plots and fully typeset output directly into the editing buffer. A readline-like functionality is simulated by typing M-p instead of up-arrow.

Installation of imaxima can be an adventure. Several files need to be placed in the correct places, and variables set in the .emacs configuration file. In Ubuntu this can all be done automatically by installing the maxima-emacs package. The downside here is that this package will install large chunks of TeX Live. As the typical user of Maxima is likely to already have installed a more up-to-date version of TeX Live than most Linux distributions' package managers provide, this will create some redundancy — but it does save time. Some alternatives for those who already have TeX installed are to download the Maxima source, which includes the most critical required files, or to try to find recent versions of the imaxima mode files on the web. Either way, smooth operation is likely to require some customization in your .emacs file, some of which can be set through the Emacs user options interface, which exposes some imaxima settings; see the imaxima link above to get started.

[Emacs imaxima]

The next figure shows part of a Maxima session in emacs using the imaxima interface. The regular plot commands can be used as in the terminal, and separate gnuplot windows will pop up. To get embedded graphs, use the wxplot2d() and wxplot3d() analogues. With the use of comments, for which Maxima uses C-style syntax, the Emacs buffer can become a notebook in the Jupyter style (in fact there is also a Maxima kernel for Jupyter). The notebook can be converted into HTML or LaTeX with the Emacs commands imaxima-to-html and imaxima-latex, respectively, making it a convenient way to generate lecture notes or parts of papers. The HTML export is serviceable out of the box, but the current state of LaTeX export fails to create correct graphics insertion commands, requiring some extra ad hoc post-processing steps.

The Emacs session depicted also illustrates a few additional Maxima features, such as the use of infinity, sums, and defining functions.

In the space available, I can't even scratch the surface of all the math that Maxima can do. It has grown by accretion over the decades, and continues to grow, as mathematicians take advantage of its extensible nature to teach it the secrets of their discipline's sundry specialties. Maxima is especially congenial to the Lisp programmer, who can drop into its Lisp subsystem at the interactive prompt and make contact with the internal representation of its mathematical expressions.

Sage

In 2006 a single developer, Ondrej Certik, started a project called SymPy, which is a symbolic mathematics program, like Maxima, written entirely in Python. It grew quickly, and is now a mature project with scores of contributors. SymPy can be used from a specially wrapped IPython, providing an experience similar to Maxima in the terminal, or as a library. It would deserve its own section in this article were it not easier to discuss it in the context of Sage.

Sage is an enormous system for symbolic and numerical mathematics. It is unique in presenting a unified interface to 90 distinct components. Behind the scenes, Sage will automatically use the appropriate component to perform the calculation or manipulation that the user desires; or, when there is more than one way to do something, Sage can be directed to use a particular library or algorithm.

Because of this, Sage can handle optimization problems, astronomical calculations, elliptic curves, number theory, interval arithmetic, networks, cryptography, statistics, Rubik's cubes, ray tracing, and much else that I don't understand. It can display 2D and interactive 3D graphics, including visualizations of molecular structures. It includes embedded versions of Python (with NumPy and many other Python libraries), R, SciPy, SymPy, Maxima, and many other subsystems. Sage even claims to be able to outsource computations to the Wolfram Alpha computational engine, but in my testing this did not work.

Naturally, Sage is a big download. The usual way to install it is to download a 1GB archive from headquarters and expand that to a 3GB directory tree. Start it by typing ./sage in a terminal from the SageMath directory. This approach is convenient, but may result in some redundant installations on your system. On Ubuntu, at least, there is also a PPA that will allow installation through its package manager.

Sage is based on Python rather than Lisp. It has two interfaces, each of which presents a version of Python with superpowers. After typing the sage command you will be faced with a wrapped IPython prompt, as when using SymPy. You can interact with Python normally, but you will find a few alterations in syntax; for example, ^ is used for exponentiation rather than **. You can perform symbolic math manipulations (and numerical calculations) from the prompt just as with Maxima, but with a somewhat different syntax (no semicolons required). There is no need to import any libraries, as everything has been set up within the special IPython environment. You can plot your results, but rather than gnuplot Sage uses matplotlib for 2D graphics and the Jmol Java molecular viewer to put 3D graphs in a window where you can interact with them.

[Sage notebook]

Where Sage really shines is in its notebook interface. If you type notebook() at the IPython prompt, Sage starts a web server and connects it to a new tab in your browser. Here you can talk to Sage just as in the IPython interface, but the responses will be typeset by jsMath, which uses an embedded JavaScript version of the TeX mathematical typesetting algorithms. Thanks to AJAX and other JavaScript magic, interaction using the notebook is smooth; there are keyboard shortcuts for evaluation and for manipulating the "cells" into which the notebook is organized. Graphics are embedded into the page, and you can interact with 3D plots directly, zooming and spinning with the mouse. With a single click, the notebook can be converted into a neat HTML version suitable for printing or for use as a web page. You can even share the live notebook online.

The figure shows an extract from a Sage notebook in Firefox, while playing with the included graph theory packages. It gives some idea of the appearance, but cannot convey the fun of using Sage. This project has succeeded in gathering a carefully curated set of components and presenting them with a unified interface that is powerful and enjoyable to use.

Specialized packages

Maxima and Sage, powerful and wide-ranging as they are, are the general practitioners of the symbolic math world. Sometimes one needs to consult a specialist. Here I survey a few of the more narrowly focused mathematics systems, some of which are research projects, such as a system for symbolic computations in general relativity.

A related project is Cadabra, designed to help with the tensor manipulations and other math used in field theory. Cadabra is unusual in that the input language as well as the output are a subset of TeX. It's available as a reasonably up-to-date Ubuntu package.

While on the subject of physics, the FORM project is popular with particle theorists. Interaction is through text files that define the computation to be performed, and which can be processed in a multi-threaded, multi-processor, or sequential style.

Fermat, the personal project of Robert H. Lewis of Fordham University, specializes in polynomial and matrix algebra over the rational numbers and finite fields. It's the best in class for the specialized set of algebraic problems that it's designed for.

The CoCoA (Computations in Commutative Algebra) System specializes in polynomial systems and commutative algebra. It can employ Gröbner basis computations, unlike Fermat. It can also do map coloring and logic problems.

Macaulay2 concentrates on algebraic geometry and commutative algebra. It's been supported by the National Science Foundation since 1992. You communicate with Macaulay2 through a its own specialized, interpreted language.

TRIP specializes in perturbation series computations, specially adapted to celestial mechanics. In development since 1988, TRIP does both numerical and symbolic work, and is integrated with gnuplot.

I hope this incomplete roundup of a handful of specialized mathematics packages in this section provides a general impression of the range of activity in this field. For anyone with even a nascent interest in mathematics, systems like Sage, in particular, can make exploration of this world a great deal of fun.


Index entries for this article
GuestArticlesPhillips, Lee


to post comments

Symbolic mathematics on Linux

Posted Jan 5, 2017 9:38 UTC (Thu) by samlh (subscriber, #56788) [Link]

This a very useful overview, thank you! My mathematical skills often fall short of my ambitions, so I've tried both tools before, but the notebook version of Sage is new to me and sounds very useful.

Symbolic mathematics on Linux

Posted Jan 5, 2017 10:41 UTC (Thu) by verbovet (guest, #46457) [Link] (3 responses)

Why only Maxima and Sage? REDUCE http://reduce-algebra.sourceforge.net is not less powerful.

Symbolic mathematics on Linux

Posted Jan 5, 2017 11:43 UTC (Thu) by leephillips (subscriber, #100450) [Link] (2 responses)

You are right, REDUCE should have been mentioned as well. Since it was proprietary until 2008, I might have been unaware that it has since been open-sourced. But the omission was entirely my fault.

Symbolic mathematics on Linux

Posted Jan 6, 2017 17:04 UTC (Fri) by tbenst (guest, #113388) [Link] (1 responses)

Would you consider proof assistants / progamming languages like Coq, Agda and Idris to be in this same category?

Symbolic mathematics on Linux

Posted Jan 6, 2017 18:54 UTC (Fri) by leephillips (subscriber, #100450) [Link]

No, that's a whole different kettle of fish, one I know very little about.

Symbolic mathematics on Linux

Posted Jan 5, 2017 13:29 UTC (Thu) by fghorow (subscriber, #5229) [Link] (3 responses)

At the risk of invoking the ire of people saying "That's Not Linux"™, it's worth mentioning SageMathCloud. That's the way that the primary author of Sage -- who resigned from a tenured academic position to pursue this -- is funding further development.

Symbolic mathematics on Linux

Posted Jan 6, 2017 2:52 UTC (Fri) by williamstein (guest, #107564) [Link] (2 responses)

SageMathCloud entirely runs on Linux, provides a free Linux command shell in the cloud, and I think *everything* mentioned in this article is already pre-installed there -- so it seems pretty relevant! You can also very easily install a Docker image of SageMathCloud and run it on your own computer. I'm on 100% leave from my tenured academic position, since the department convinced me not to resign just yet. They have very recently been extremely supportive regarding intellectual property and other dicy issues. (Disclaimer: I'm the founder of SageMath.)

Symbolic mathematics on Linux

Posted Jan 6, 2017 4:20 UTC (Fri) by pabs (subscriber, #43278) [Link]

Could you disable blocking Tor in your Cloudflare config?

Symbolic mathematics on Linux

Posted Jan 6, 2017 16:16 UTC (Fri) by infinity0 (guest, #113387) [Link]

The article mentions a PPA for SageMath; in fact we recently (re)packaged SageMath for official Debian, here:

https://packages.debian.org/sid/sagemath

If all goes well it will be in the next Debian stable. Please help test it! It has ~180 build-dependencies, possibly the most of any Debian package.

Symbolic mathematics on Linux

Posted Jan 5, 2017 16:16 UTC (Thu) by NightMonkey (subscriber, #23051) [Link]

A wonderful, well-written article about a subject I knew nothing about. Viva LWN.

Symbolic mathematics on Linux

Posted Jan 5, 2017 16:47 UTC (Thu) by ianmcc (subscriber, #88379) [Link]

Awesome, I didn't know about any of these before.

Symbolic mathematics on Linux

Posted Jan 6, 2017 21:22 UTC (Fri) by pontus (guest, #3701) [Link] (2 responses)

YACAS deserves a mention http://www.yacas.org/

Symbolic mathematics on Linux

Posted Jan 7, 2017 7:27 UTC (Sat) by parisse (guest, #113390) [Link]

Giac/Xcas is also a standalone GPL symbolic math software. It is fast, used by Geogebra and the HP Prime calculator : homepage, test online version

Symbolic mathematics on Linux

Posted Jan 8, 2017 12:35 UTC (Sun) by ballombe (subscriber, #9523) [Link]

Lots of many large, free, mathematical software have been omitted.

Symbolic mathematics on Linux

Posted Jan 8, 2017 10:50 UTC (Sun) by Sesse (subscriber, #53779) [Link] (1 responses)

Since this is about “symbolic mathematics on Linux” and not “free symbolic mathematics”, where are Maple and Mathematica?

Symbolic mathematics on Linux

Posted Jan 9, 2017 13:46 UTC (Mon) by leephillips (subscriber, #100450) [Link]

Although Maple and Mathematica are excellent products, as explained in the first sentence, the article is about free and open-source software.

Symbolic mathematics on Linux

Posted Jan 9, 2017 13:11 UTC (Mon) by marcel.oliver (subscriber, #5441) [Link] (2 responses)

As a professional mathematician, this is a topic close to my heart and I really appreciate it being covered, even though not a lot was fundamentally new to me.

For the better or worse, I have had precisely two commercial software packages on my (Linux) machine for the last decade or so. One is Mathematica, the other one is for doing my taxes. And I have some hope that at least the former can be replaced by free software most of the time...

Learning any symbolic math software well is a long-time investment. I happened to grow into using Mathematica as a graduate student, so that is my point of reference and in my opinion also represents pretty much the state of the art. When comparing, there are a number of factors to consider:

  • Raw capabilities (e.g. special functions, symbolic integration, algebraic structures implemented, etc.)
  • Coherence of the system, quality and quantity of documentation
  • Expressiveness of the language
  • Integration with non-symbolic programming
I tend to shy away from single-purpose languages, even though for a particular problem, they could be just fine or even the best possible solution. So that leaves mostly Sage and Sympy as serious competitors (Sage being able to call upon a large host of additional software transparently).

Raw capabilities are difficult to compare because they depend heavily on how far out of the trivial any one particular project pushes the software. Needless to say that Mathematica's capabilities are uniformly very strong, Sage's list of capabilities is also impressive and as I hear at least from some number theory colleagues in some areas the best. My own record is mixed - the last time I seriously pushed things was when I was checking a limit of a parametric integral a graduate student had been computing by hand: Mathematica got it wrong by a factor of 2 (since fixed at least according to an email they sent me recently), Sage did not terminate the computation and Sympy gave up...

Regarding documentation and consistency, Mathematica sets a standard that is hard to come close, for the others it's a mixed bag (but not hopeless).

What I am personally unsure about is the expressiveness of Python for symbolic programming. I understand the Mathematica (or Wolfram) language reasonably well, with everything (program and data alike) being part of a tree structure, and powerful pattern matching and transformation capabilities. This also brings a certain baggage, as undefined objects are simply carried along symbolically whether that makes sense or not, and the difficulty to have intrinsically typed objects. For example, even (Euclidean) vector calculus seems to map poorly into the transformational rules of Mathematica.

Python appears to provide a rather different paradigm where typed objects and operator overloading are very natural. I have the impression that this is potentially very powerful, yet different, but I am much less certain how far it carries.

Unfortunately there are (at least) two competing Python-based systems, with Sympy seemingly cleaner, yet more limited, and Sage trying to integrate large chunks of the available third-party symbolic systems. For simple things, both have similar capabilities with again similar, but annoyingly different details. For more complicated things, Sage by design should be a superset of Sympy, but I am not sure if the underlying programming concept is equally flexible, or is constrained by the need to pass symbolic expressions to an external symbolic computation instance. Unfortunately, the documentation of neither package is sufficiently clear on advanced programming concepts, one probably needs to invest into working on some nontrivial project in both to find out.

It also bothers me that Sage has a modified front-end that does not behave like true Python. I can certainly see the point of doing it and I know it's possible to switch off. Yet, I think it makes things unnecessarily brittle and impedes the mixing of "standard" Python programs with symbolic computation.

So, in short, I am looking at both Python-based symbolic packages with great interest and think they have a lot of potential. I would feel much more comfortable with an approach where the base system is pure Python (possibly with C-extensions where necessary or beneficial for speed) and where all the other interfaces could be loaded on top where needed. So some kind of convergence of the Sympy and Sage into a unified framework. But I have no idea if this is architecturally possible.

Symbolic mathematics on Linux

Posted Jan 12, 2017 9:45 UTC (Thu) by parisse (guest, #113390) [Link] (1 responses)

Giacpy is a Cython interface to Giac for python that might interest you because it can be used inside a normal python interpreter and the computing kernel is fast (compiled C++ library instead of interpreted python). Under linux, install the giac package then from your python interpreter
from giacpy import *
x=giac('x')
int(1/(x**4+1),x,0,inf)
a=ranm(10,10) // random integer matrix
b=inv(a)
maxnorm(a*b-idn(a)) // check

Symbolic mathematics on Linux

Posted Jan 12, 2017 13:29 UTC (Thu) by leephillips (subscriber, #100450) [Link]

Interesting program/library. Thanks for bringing it up.

Proprietary packagings

Posted Jan 10, 2017 14:05 UTC (Tue) by ncm (guest, #165) [Link] (4 responses)

For the packages noted as being available on Ubuntu, I find that they are also packaged in the upstream distribution, Debian, whence I presume Ubuntu got them. I would rather see Debian cited as the source of Debian features, over a proprietary offshoot.

It mystifies me why anyone uses Ubuntu at all. It has been a long time since Ubuntu provided a better experience than stock Debian "unstable".

Proprietary packagings

Posted Jan 12, 2017 1:06 UTC (Thu) by leephillips (subscriber, #100450) [Link]

You may have a point. Since my laptop runs Ubuntu, it's simple for me to check what's available through the package manager, and I assume people understand that this means likely availability in other Debian-derived distros as well. Although I use Debian on servers, I haven't tried to run it on a laptop, thinking, perhaps erroneously, that Ubuntu brings some conveniences. On the other hand, I either run no desktop or Xubuntu.

Proprietary packagings

Posted Jan 13, 2017 20:15 UTC (Fri) by rvern (guest, #109143) [Link]

Agreed, though Fedora packages all the software mentioned except for Cadabra, and packages SageMath and all its dependencies, which includes SymPy, Maxima, Jupyter...

Proprietary packagings

Posted Jan 17, 2017 18:18 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

> I would rather see Debian cited as the source of Debian features, over a proprietary offshoot.

What is proprietary about it?

Proprietary packagings

Posted Jan 18, 2017 3:21 UTC (Wed) by pabs (subscriber, #43278) [Link]

Symbolic mathematics on Linux

Posted Jan 12, 2017 8:29 UTC (Thu) by ssmith32 (subscriber, #72404) [Link] (1 responses)

A little googling revealed octave has a symbolic manipulation add-on:

https://octave.sourceforge.io/symbolic/

Can't speak to it's effectiveness vs the alternatives. Just fyi.

Symbolic mathematics on Linux

Posted Jan 12, 2017 13:33 UTC (Thu) by leephillips (subscriber, #100450) [Link]

This seems to be another interface to SymPy - and may be convenient for those already using Octave who require some computer-assisted symbolic math.

Symbolic mathematics on Linux

Posted Jan 14, 2017 3:35 UTC (Sat) by jondo (guest, #69852) [Link] (2 responses)

For teaching first semester math at my university, I evaluated switching from Mathematica to free/libre math software. I concentrated on wxMaxima, SymPy and Sage. Many areas worked fine in all three systems, but for the moment we stayed with Mathematica. Some observations:

SageMath calls Maxima to solve inequalities, but both systems have no easy way to fully simplify the solutions:
The code
> sage: maxima_calculus("domain: real")
> solve(abs((2*x-2)/(x-5)) <= 2/3, x)
gives
> [[x == -1], [x == 2], [x == 1], [1 < x, x < 2], [-1 < x, x < 1]]
instead of
> [[-1 <= x, x <= 2]] .
(Of course I could just hand out a self-written simplification function, but only for SageMath - my Lisp-fu has rusted since the 90s.)

SymPy deals well with this inequality (https://github.com/sympy/sympy/issues/9565), but the used 'solveset' function is still in the works.

Teaching Python would be a nice side effect, but Sage is huge and unwieldy to distribute, and I don't want to offer it as "SAASS", while SymPy alone cannot compute some typical integrals (e.g. of exp(x)*sqrt(1+exp(2*x))), because the necessary Risch algorithm is only partially implemented there.

Also I saw some problems with easy differential equations, but I didn't have a closer look.

Hmm ...
Now I tested the inequality and the integral in GeoGebra (with the embedded Giac system), and both worked!
See https://ggbm.at/xS6RDn4N for the web version, but beware of a massive Javascript attack.
Maybe that's the way to go ...

Symbolic mathematics on Linux

Posted Jan 14, 2017 20:51 UTC (Sat) by leephillips (subscriber, #100450) [Link]

Interesting information. It's clear that there is no one perfect CAS. By the way, maxima seems to handle your integral, as well.

Symbolic mathematics on Linux

Posted Jan 23, 2019 13:34 UTC (Wed) by jondo (guest, #69852) [Link]

However, GeoGebra concedes that it might not be free software:

> Please note that GeoGebra as a complete software program would
> probably not be considered "free" software according to the
> definition of that term which is used by the Free Software
> Foundation. This is because the restrictions on commercial use that
> apply to the GeoGebra installers, web services and language files
> add-ons might be seen to be a restriction on the software as a whole
> (thus making it "non-free"), even though the GeoGebra source code is
> made available under the GNU General Public License without
> restriction.
(source: https://www.geogebra.org/license)

It will get interesting in case anyone ever tried to fork GeoGebra. I found one case of someone announcing a modified redistribution, but I don't think they succeeded: https://github.com/geogebra/geogebra/pull/5 .


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds