Showing posts with label wxMaxima. Show all posts
Showing posts with label wxMaxima. Show all posts

Thursday, July 19, 2012

Some common functions in Maxima - trig, logarithms, the exponential, and square root

http://maxima.sourceforge.net/docs/manual/en/maxima_10.html#SEC47

exp(x)
log(x)
sqrt(x)
acos(x)
acosh(x)
acot(x)
acoth(x)
asin(x)
asinh(x)
asec(x)
asech(x)
acsc(x)
acsch(x)
atan(x)
atanh(x)
cos(x)
cosh(x)
cot(x)
coth(x)
sin(x)
sinh(x)
sec(x)
sech(x)
csc(x)
csch(x)
tan(x)
tanh(x)
Maxima does not have a built-in function for the base 10 logarithm or other bases. log10(x) := log(x) / log(10) is a useful definition.

Saturday, July 14, 2012

Maxima/wxMaxima - solving for the roots of a transcendental equation

Ok, so something is wrong with my Python.  I think Spyder is giving me some fits in Ubunt for somereason.  Anyways, luckily I have Maxima and Sage to fall back on.  In order to solve for the roots of a transcendental equation, I provide a following example.

The equation I want to solve is:

\[ \tan \left( \tfrac{1}{2} C d^2 \right) - \tan \left( \tfrac{1}{2} C a^2 \right) = 0 \]

where \( \deta \) is given.  I first plotted it to make sure it did in fact show trends of a root or roots for \( \delta = 0.5\).

delta:0.5;
eqn(x):= tan(0.5*x*(delta^2)) - tan(0.5*x);
plot2d(eqn, [x, 0, 20],[y, -1, 1]);

So, yup, it definitely has roots.  The first root is actually at zero, but this is trivial in my case.  So I am interesting in the second root.  It seems to be around 8.  I choose the interval for the root finder to look on as 7.8 to 8.5.

find_root(tan(0.5*x*(delta^2)) - tan(0.5*x), x, 7.8, 8.5);
8.377580409572781

So the root found is the bold number above!

Friday, July 13, 2012

Installing/updating Maxima and wxMaxima to 5.27 and 12.04, respectively

It had been awhile since I had used wxMaxima/Maxima on my desktop, and I was getting an error when I was trying to run calculations that wxMaxima was not connected to Maxima.  I began to search for a solution then decided to check the version.  A newer version had of course come out for Maxima-xMaxima as 5.27 and wxMaxima as 12.04.  I decide that upgrading would be easier and more logical than trying to fix the old version I had.

First, I removed the old version.  You can probably do this through through SPM, the terminal, or (what I did) USC.  Then add the repository from blahota on launchpad:

https://launchpad.net/~blahota/+archive/wxmaxima/

apt-add-repository ppa:blahota/wxmaxima


I already had this added from an older version upgrade.  Then run update to update the repositories:

sudo apt-get update


Then install wxMaxima and Maxima either through the terminal (not sure of the exact command; probably something like sudo apt-get install maxima or whatever the file name is), USC, or (what I did) through SPM.  I just selected what I wanted to install.


Sunday, January 29, 2012

Maxima and wxMaxima in Windows 7

I am forced to use Windows every now and then, but I have recently found out that some of my favorite software works for Windows and is relatively easy to install.  Maxima is very easy, as you just download and run the Windows installer from here:  http://www.windows7download.com/win7-maxima/kqcjkmcz.html

Installing Maxima for Windows also installs wxMaxima (and Xmaxima if wanted) and gnuplot.  Here is a screenshot.


Friday, December 30, 2011

Moving the legend location in Maxima/Gnuplot

I had a plot where the function graph intersected the legend at its default position in the upper right hand corner.  I finally found a command which will move it to the lower right instead.  I'm sure you can move it to where you like, but this is the only one I found so far.  The command is:

[gnuplot_preamble,"set key bottom"]


For example,

plot2d([legendre_p(0, x), legendre_p(1, x), legendre_p(2, x),legendre_p(3, x), legendre_p(4, x), legendre_p(5, x)], [x, 0, 2], [y, -2, 5], [legend,"P_0 (x) = 1","P_1 (x) = x","P_2 (x) = (1/2)*(3*x^2 - 1)", "P_3 (x) = (1/2)*x*(5*x^2 - 3)","P_4 (x) = (1/8)*(35*x^4 - 30*x^2 + 3)","P_5 (x) = (1/8)*x*(63*x^4 - 70*x^2 + 15)" ], [ylabel,"P_n (x)"], [gnuplot_preamble,"set key bottom"]);


Found this here: http://maxima.sourceforge.net/maxima-gnuplot.html

Editing axis and legend labels in Maxima/Gnuplot

The commands for editing the labels for the x and y axes in Maxima are:

[xlabel,"expr"]

and

[ylabel,"expr"]

where expr is the argument holder where you place your text for whatever label you are wanting.  The quotes " " are necessary.

The command for the legend label is:

[legend,"expr1","expr2"]

where expr1, expr2, etc. are the argument holders where you place your text for whatever labels you are wanting depending on the number of legend labels.

These commands go inside your overall plot command.  For example,

plot2d(func, x, [xlabel,"expr"], [ylabel,"expr"], [legend,"expr1","expr2"])

Found these commands here: http://maxima.sourceforge.net/docs/manual/en/maxima_12.html#SEC65

Monday, December 26, 2011

Differentiation in Maxima

Mathematica is a great piece of software.  You can do many things with it mathematically.  However, it is not free and not always available.  I am trying to find some replacements that are free, cross-platform, readily available, relatively easy to use.

I have been trying at Maxima using the wxMaxima interface and have been quite pleased with it.  So far I have been able to graph functions related to my research.  However, Mathematica is pretty powerful as you can do differentiation, integration, etc. with ease.  Just recently, I tried the differentiation ability of Maxima.  It is possible to do differentiation in Maxima.  So far I have only tried a simple polynomial.  The command for differentiation is:

diff(expr, x)

Here is a screen shot of some examples I did.


Now if I could figure out if and how to simplify the last expression.  If Maxima can do that, then it is a very viable option to Mathematica for several things.

I found this differentiation command at http://mathandmultimedia.com/tag/maxima-tutorial/

Update:  So as you might have noticed I got a great tip in the comments on how to simplify this fraction.  The tip comes from Mike Croucher who has a great, insightful blog http://www.walkingrandomly.com/ which I must admit I don't read often enough due to time but check it out anyways.  It is well established and post similar topics yet more advanced and involved examples.


Sunday, December 25, 2011

Legendre functions (also associated) of the first and second kind in Maxima

In order to do Legendre functions in Maxima the command is

legendre_p(n, x)

where n is the degree of the polynomial.  For example, for the Legendre polynomial of the first kind of the 5th degree simply type legendre_p(5, x).


For the Legendre function of the second kind the command is

legendre_q(n, x)


For the associated Legendre functions where there is also an order, m, in addition to the degree, n, to specify. Remember that regular Legendre functions are just associated Legendre functions of order 0.

assoc_legendre_q(n, m, x)

assoc_legendre_q(n, m, x)


Here are some links to these commands and more special functions and orthogonal functions/polynomials.

http://www.ma.utexas.edu/maxima/maxima_16.html

Although this link^ has the regular Legendre function with an order which is not needed.  It is listed as

legendre_p(n, m, x)

where it should just be like it is posted above.

Friday, December 23, 2011

Legendre polynomials of the first kind, plots of degrees n = 0, 1, 2, 3, 4, 5

\( P_0 \left( x \right) = 1 \)


\( P_1 \left( x \right) = x \)


\( P_2 \left( x \right) = \dfrac{1}{2} \left( 3 x^2 - 1 \right) \)


\( P_3 \left( x \right) = \dfrac{1}{2} x \left( 5 x^2 - 3 \right) \)


\( P_4 \left( x \right) = \dfrac{1}{8} \left( 35 x^4 - 30 x^2 + 3 \right) \)


\( P_5 \left( x \right) = \dfrac{1}{8} x \left( 63 x^4 - 70 x^2 + 15 \right) \)





\( P_0 \left( x \right), P_1 \left( x \right), P_2 \left( x \right), P_3 \left( x \right), P_4 \left( x \right), P_5 \left( x \right) \)





Code for last graph in wxMaxima:

plot2d([legendre_p(0, x), legendre_p(1, x), legendre_p(2, x),legendre_p(3, x), 
legendre_p(4, x), legendre_p(5, x)], [x, -2, 2], [y, -2, 2], 
[legend,"P_0 (x) = 1","P_1 (x) = x","P_2 (x) = (1/2)*(3*x^2 - 1)",
"P_3 (x) = (1/2)*x*(5*x^2 - 3)","P_4 (x) = (1/8)*(35*x^4 - 30*x^2 + 3)",
"P_5 (x) = (1/8)*x*(63*x^4 - 70*x^2 + 15)" ], [ylabel,"P_n (x)"], [gnuplot_preamble,"set key bottom"]);

Friday, November 25, 2011

Bessel functions of the first kind, orders 0, 1, 2

Since Lybniz only recognizes the python standard math library, I used wxMaxima to plot the Bessel functions.

\( J_0 \left( x \right) \)

Code to plot in wxMaxima:
plot2d(bessel_j (0, x), [x, 0, 20]);



\( J_1 \left( x \right) \)

Code to plot in wxMaxima:
plot2d(bessel_j (1, x), [x, 0, 20]);


\( J_2 \left( x \right) \)

Code to plot in wxMaxima:
plot2d(bessel_j (1, x), [x, 0, 20]);


\( J_0 \left( x \right), \quad J_1 \left( x \right), \quad J_2 \left( x \right) \)

Code to plot in wxMaxima:
plot2d([bessel_j (0, x), bessel_j (1, x), bessel_j (2, x)], [x, 0, 20]);


Bessel function syntax in Maxima

The commands for Bessel functions in Maxima are:

Bessel function 1st kind: \( J_n \left( x \right) \)
bessel_j (index, expr)

Bessel function 2nd kind: \( Y_n \left( x \right) \)
bessel_y (index, expr)

Modified Bessel function 1st kind: \( I_n \left( x \right) \)
bessel_i (index, expr)

Modified Bessel function 2nd kind: \( K_n \left( x \right) \)
bessel_k (index, expr)

http://maxima.sourceforge.net/docs/manual/en/maxima_15.html

Thursday, September 22, 2011

wxMaxima - 2D plots with one or more functions

Alright so let's keep this ball rolling.  Next, I would like to enter an equation as a function and then plot that function on a 2D graph in Maxima.  I would also like to gauge this function versus a couple of more so I will have three functions plotted on the same graph.

As a continuation from the previous post, I am entering in and defining a function for tangential velocities.  It is as easy as before.  I set

u_theta2(u):= %pi*(lamb_da(al_pha) + csc(u)*cot(u) - (csc(u))^2 - log(tan(u/2)));

or

\[ u_{\theta} = \pi \left( \lambda + \csc \phi \cot \phi - \csc^2 \phi - \ln \Phi \right) \]

where \( \Phi = \tan \dfrac{\phi}{2} \).

Right now I am using the variable "u" in place of \( \phi \).  I will try to change that to "phee" later.I will aslo try to make a function for "big_phee" for \( \Phi \) too.

I also create the function one_over_R_sin(u) for comparison and choose a constant \( R \) while varying \( \phi \).

one_over_R_sin(u):= 1/(0.7*sin(u));

\[ u_{\theta} = \dfrac{1}{R \sin \phi} \]

Then we can plot by

plot2d([u_theta2(u), one_over_R_sin(u)], [u, 0.00001, %pi/6], [y, 0, 20]);

So the plot2d a 2-d graph or plot.  The first argument allow you to plot more than one function as the notation of [f(x), g(x)],.  If we were to just plot one function there would be no need for the square brace [ ] but instead just the function f(x),.  The next argument allows the range for the "x" variable which in this case is u.  So I let u range from 0 to my angle \(\alpha \) of \( 30^{\circ} \) or \( \dfrac{\pi}{6} \) radians.  This must be encased in a square brace [ ].  Then, if we like, we can give a range for the "y-axis" which I ranged from 0 to 20.



wxMaxima - defining a parameter/variable and a function

Ok, so here is one of my shots at Maxima/wxMaxima.  My goal is to define a parameter/variable then use it in a function I have defined myself.

My variable is alpha, \( \alpha \), but I defined it as al_pha since Maxima doesn't like variables that are already defined and many of those are Greek variables.  I just broke it up phonetically.  I set alpha to be a constant by

al_pha: 30*%pi/180

(I think using just "pi" works too.  It does, it just leaves it in symbolic form.  See screen shots.)

The colon (:) provides the capability to define the variable  al_pha in Maxima.  I also multiplied by Pi and divided by 180 in order to get al_pha from degrees (30) into radians since I am going to be dealing with trigonometric functions.

Next, I define my function as lamb_da as

lamb_da(x):= (csc(x))^2

Note, that I used "x" even though I want the angle alpha.  We will call lamb_da for al_pha later.  So the colon (:) plus the equal sign (=) attains a function definition in Maxima.  Also note that in order to square cosecant in Maxima I had to wrap in parentheses and then square.  I also could have done

csc(x)*csc(x)

but who wants to do that for 2 or higher?!

Screen shots:



Notice the difference between using %pi and pi gives 4 and \( \csc ^2 \left( \dfrac{\pi}{6}\right) \), respectively.

I then add more to lamb_da once I know it is working properly.



I can check it with KAlgebra.



I found this very good pdf where I discovered how to define a function and parameter:

resources.eun.org/xplora/Maxima_Xplora.pdf

Also this can be found in the Maxima documentation here:

7.6 Assignment operators - http://maxima.sourceforge.net/docs/manual/en/maxima_7.html#SEC41

Monday, August 29, 2011

wxMaxima - initial calculations, first use - finding an angle by the inverse cosine

So I am beginning my endeavor into wxMaxima which I am using for a Mathematica replacement. So far not so bad, I will just have to get use to the syntax and the ways things are done in Maxima. Thus, I will be posting to my blog regularly once I have accomplished, done an example, or figured something out in Maxima even if it is as small and minute as calculation the sine or arcosine whuch is exactly what my first task has been to do.

I am taking a vector calculus course this semester and I needed to find the angle between two vectors. The formula for this is

\begin{equation} \textbf{u} \cdot \textbf{v} = |\textbf{u}||\textbf{v}| \cos \theta \end{equation}

Sunday, August 21, 2011

wxMaxima - University of Hawaii Calculus Notebooks

Some wxMaxima "notebooks" over various calculus topics and examples from the University of Hawaii.

wxMaxima

Calculus Demonstration Sessions

Updated July 5, 2011

Below are a collection of wxMaxima sessions which are saved with the file names *.wxm. By downloading these files and opening them in wxMaxima you can modify and experiment with them to learn how to use the program. In addition, for each session there is a PDF version which can viewed using the Adobe Reader.

Some of the programs use just basic operations and graphing while others are somewhat sophisticated. They use the more powerful drawing package and animation features. In either case, you need only right-click the wxm link and download the file to your computer. In IE this is the “Save target as ...” option on the right-click menu. By double clicking the downloaded fine you can view the inputs and outputs. Note that you will need to evaluate each expression in the files below by clicking the expression and then using Shift-Enter to evaluate it.

Some of the complicated animations will take a few seconds to load so be patient. Once the slides have been produced you click the graph window and use the slider on the top menu bar to view the animation.

- Basic calculations and algebra

- Basic lab graphing

- Parametric curves

- Polar plots

- Tangent lines

- Velocity vector

- Table & graphs

- Sine limit

- Discontinuous functions

- Functions & derivatives

- Sliding ladder

- Implicit functions

- Newton's method

- Max/min problem

- Riemann sums

- Area between curves

- Surface plotting and contour animation

- Direction fields and solving first order ODEs

Saturday, August 20, 2011

wxMaxima - Community Ubuntu Documentation - Installing the latest version by compiling and PPA

In order to install the latest wxMaxima (a Mathematica type software) by compiling the source code yourself follow these instructions (this is not necessary as you can use the PPA that I provide further below). The Ubuntu SC only installs 0.8.5 while the latest version as of this date is 11.8.0

wxMaxima - Community Ubuntu Documentation

Download the latest version here: http://sourceforge.net/projects/wxmaxima/files/

Uninstall the old version if you have one.

sudo apt-get remove maxima-doc wxmaxima


Then:

You will need the virtual package "build-essential" for making the package and the package "checkinstall" for building a debian package. So if you don't have it or are unsure,
sudo apt-get install build-essential checkinstall

Now its time to extract, configure, make and install your package:

tar xfvz /"locationof"/wxMaxima-"latest-version".tar.gz
sudo apt-get build-dep wxmaxima
cd /"locationof"/wxMaxima-"latest-version"/
./configure --enable-dnd --enable-printing --enable-unicode-glyphs --prefix=/usr --exec-prefix=/usr
make
sudo checkinstall


After
sudo apt-get build-dep wxmaxima
I extracted the .tar.gz file because the /"locationof"/wxMaxima-"latest-version"/ directory didn't exist until you do this. You may be able to do this (extract) earlier. Then follow the rest of the directions:

ay "yes" to create a document package and paste the description of Maxima off of the website pasted bellow:

wxMaxima is a cross platform GUI for the computer algebra system maxima based on wxWidgets.

When this is done type "0" then "ENTER" and enter your email address so that people know who you are if they use your package you@somewhere as an example

hit "ENTER" and hope for the best. Checkinstall attempts to build you a deb package which it automatically installs by default and is also included in the directory you made WxMaxima, i.e. the deb is in /"locationof"/WxMaxima-"latest-version"/. Thus if everything goes smoothly you now have the latest version of wxmaxima installed.

I have found the PPA for wxMaxima here -> Maxima and wxMaxima by István Blahota - https://launchpad.net/~blahota/+archive/wxmaxima as ppa:blahota/wxmaxima.

Thus to install via PPA:

sudo add-apt-repository ppa:blahota/wxmaxima

sudo apt-get update

Then install from USC (Ubuntu Software Center) or if an older version is already installed simply type into the terminal command line:

sudo apt-get upgrade

Links to Maxima and wxMaxima:


Maxima, a Computer Algebra System - http://maxima.sourceforge.net/

Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors. Maxima yields high precision numeric results by using exact fractions, arbitrary precision integers, and variable precision floating point numbers. Maxima can plot functions and data in two and three dimensions.

The Maxima source code can be compiled on many systems, including Windows, Linux, and MacOS X. The source code for all systems and precompiled binaries for Windows and Linux are available at the SourceForge file manager.

Maxima is a descendant of Macsyma, the legendary computer algebra system developed in the late 1960s at the Massachusetts Institute of Technology. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was revolutionary in its day, and many later systems, such as Maple and Mathematica, were inspired by it.

The Maxima branch of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under the GNU General Public License (GPL). It was his efforts and skill which have made the survival of Maxima possible, and we are very grateful to him for volunteering his time and expert knowledge to keep the original DOE Macsyma code alive and well. Since his passing a group of users and developers has formed to bring Maxima to a wider audience.

We are constantly updating Maxima, to fix bugs and improve the code and the documentation. We welcome suggestions and contributions from the community of Maxima users. Most discussion is conducted on the Maxima mailing list.

Some screen shots from the Maxima site:

Xmaxima 5.18 running on Linux (with Tk 8.5) with the Embedded plot windows option:

Xmaxima running on Windows:

Maxima running in GNU Emacs:

Maxima 5.18 running in command line mode in Linux:

Maxima running in GNU TeXmacs:

Maxima running in GNU Emacs with Imaxima mode:

Maxima Documentation - http://maxima.sourceforge.net/documentation.html


wxMaxima - http://andrejv.github.com/wxmaxima/

About

wxMaxima is a document based interface for the computer algebra system Maxima. wxMaxima uses wxWidgets and runs natively on Windows, X11 and Mac OS X. wxMaxima provides menus and dialogs for many common maxima commands, autocompletion, inline plots and simple animations. wxMaxima is distributed under the GPL license.

Some screen shots from wxMaxima:

wxMaxima on Linux:



wxMaxima on Mac OS X:

Some interesting links from the Maxima website:

Related Projects

Stand-alone user interfaces for Maxima

Imaxima and imath

Developers: Jesper Harder, Yasuaki Honda.

“Imaxima.el provides support for interacting with the computer algebra system Maxima in an Emacs buffer. Imaxima processes the output from Maxima with TeX and inserts the resulting image in the buffer.”

→ http://sites.google.com/site/imaximaimath/
Kayali

Developer: Abdulhaq Lynch.

“Kayali is a Qt based Computer Algebra System (CAS) that can also be used as an advanced replacement for KDE KCalc. It is essentially a front end GUI for Maxima (and is easily extended to other CAS back-ends) and Gnuplot.”

→ http://kayali.sourceforge.net/
LyX

There is a way to send commands to Maxima from the LyX document processor. It's somewhat different from the TeXmacs functionality, but does seem to be functional at least on a basic level.

See an example document: http://maxima.sourceforge.net/lyx+maxima.lyx.

→ http://www.lyx.org/
Symaxx2

Developer: Markus Nentwig.

“Symaxx is a graphical front end for the Maxima computer algebra system (GPL).”

→ http://symaxx.sourceforge.net/
TeXmacs

Developer: Joris van der Hoeven.

“GNU TeXmacs is a free wysiwyw (what you see is what you want) editing platform with special features for scientists. The software aims to provide a unified and user friendly framework for editing structured documents with different types of content (text, graphics, mathematics, interactive content, etc.).”

→ http://www.texmacs.org/
wxMaxima

Developers: Andrej Vodopivec et al

“wxMaxima is a cross platform GUI for the computer algebra system maxima based on wxWidgets. It provides menu and dialog based interface for maxima and a nice display of math output.”

→ http://wxmaxima.sourceforge.net/

Web interfaces running Maxima

Calc.Matthen.com

Online integrator, differentiator, graph plotter, etc.

→ http://calc.matthen.com/
Interactive Demos of Mathematical Computations

(Institute for Computational Mathematics at Kent State U)

→ http://icm.mcs.kent.edu/research/demo.html
Mathematical Assistant

Developers: Robert Marik, Miroslava Tihlarikova.

“This site contains interface to access computer algebra system Maxima and automatically solve selected typical problems from mathematical courses, including intermediate steps in the solution.”

Mathassistant project page at Sourceforge.

→ http://user.mendelu.cz/marik/maw/index.php?lang=en
Maxima-Online

Developer: Piotr Lewalski

“Maxima-Online is a web based front end to the oryginal Maxima command line program. It's task is to deliver an interface which is simple and easy to use.”

→ http://maxima-online.lewalski.pl/
MaximaPHP

Developer: Bowo Prasetyo

“A PHP program to access Maxima on the server interactively from a website.”

See also: Maxima show-case.

See also: MaximaPHP project page at SourceForge.

→ http://www.my-tool.com/mathematics/maximaphp/
WebMathematics Interactive

Developer: Zoltan Kovacs, U Szeged, Hungary.

WMI On-line demo
Documentation (including 3 short movies in English and 3 in Hungarian)
Old version
Details of development (obsolete)

→ http://wmi.math.u-szeged.hu/wmi/math.php

Systems using Maxima as a component in a larger scheme

Euler

Developer: Rene Grothmann.

“Euler is a MatLab like numerical system with a GUI frontend in notebook style ala Maple, plot features, and a numerical programming language. Euler can be used as a GUI frontend to Maxima. It can also exchange data and expressions with Maxima, helping Maxima with numerical calculations, and Euler with symbolic evaluation.”

→ http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/euler/
GeoGebraCAS

Developer: Markus Hohenwarter et al.

“GeoGebra is free and multi-platform dynamic mathematics software for all levels of education that joins geometry, algebra, tables, graphing, statistics and calculus in one easy-to-use package. GeoGebraCAS extends the Computer Algebra System (CAS) features of GeoGebra to allow students to work with fractions, equations, and formulas that include variables.”

→ http://www.geogebra.org/trac/wiki/GeoGebraCAS/Documentation
The LearningOnline Network with CAPA

Developer: Gerd Kortemeyer.

“Sharing and using online learning and assessment materials across institutions and disciplines.”

Computer Algebra System (notes about integration of Maxima with LON-CAPA).

→ http://www.lon-capa.org/
MathDrag'n

Developer: James Hart.

MathDrag'n project page at SourceForge.

“MathDrag'n is an interface designed to help you, the user, maintain almost complete control over the algebra while stopping you from making mistakes. In contrast to most computer algebra systems, MathDrag'n's philosophy is that the user interface is first, and that ease of use is what you want.”

→ http://mathdragn.squarespace.com/
Mediawiki Algebra extension

Developer: Markus Arndt.

defines a maxima session. Any line terminating with a semicolon is passed to maxima for evaluation. For all other lines the wiki syntax applies.”

→ http://meta.wikimedia.org/wiki/User:Mafs/Computer_algebra
SAGE

“Sage is a comprehensive open-source mathematics software suite that has the mission statement ‘Creating a viable free open source alternative to Magma, Maple, Mathematica, and Matlab.’”

SAGE web interface.

→ http://sagemath.org/
STACK

Developer: Chris Sangwin, U Birmingham, UK.

STACK SourceForge project page.

→ http://www.stack.bham.ac.uk/
WIMS

→ http://wims.unice.fr/wims/en_home.html

Third Party Code

There are some packages we cannot include in the official Maxima distribution due to legal restrictions or because they are not in a stable state yet.

If you know any old Macsyma code still available on the Internet or new Maxima packages that should be included in this list, please tell us about it so we can add a link or even add it to the official distribution, if its license is compatible with Maxima's.

A collection of user-contributed code
Misc code by Willy Hereman et. al.
A series of interesting Macsyma packages. Commercial use is not permitted without consent of the authors.
Pw.mac
The package pw.mac extends Maxima by enabling it to work with piecewise continuous functions.
Qinf (quantum information and entanglement package)
A quantum information package that allows the manipulation of instances of objects — operators, vectors, tensors, etc. — that appear in the theory of quantum information and quantum entanglement.
SymSAP
Symbolic matrix analysis of structures. SymSAP aims to become a powerful didactic tool to help students learn structural analysis.
rfMaxima
rfMaxima allows for symbolic derivation, as well as numerical evaluation (incl. Bode and Smith chart plotting), of 2-port network (ABCD, G, InverseABCD, H, S, Y, and Z), noise and stability parameters. Derivations are based on the solution of the set of Kirchoff current and voltage law equations representing the 2-port. Expressions can be exported to HTML or TeX. Figures can be exported to EPS or PNG.

Other Open Source Computer Algebra Systems


Axiom

“Axiom is a general purpose Computer Algebra system. It is useful for doing mathematics by computer and for research and development of mathematical algorithms. It defines a strongly typed, mathematically correct type hierarchy. It has a programming language and a built-in compiler.”

There is also an interesting Rosetta Stone which offers translations of many basic operations for several computer algebra systems, including Maxima.

→ http://axiom-developer.org/
GAP

“GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory.”

→ http://turnbull.mcs.st-and.ac.uk/~gap/
Jasymca

“Jasymca is a symbolic calculator written for mobile phones and PDAs. It solves and manipulates equations, handles basic calculus problems, and provides a few more typical functions of computer algebra systems. The syntax is loosely related to GNU-Maxima.”

→ http://webuser.hs-furtwangen.de/~dersch
REDUCE

“REDUCE is an interactive system for general algebraic computations of interest to mathematicians, scientists and engineers.”

→ http://reduce-algebra.com
SINGULAR

“SINGULAR is a Computer Algebra System for polynomial computations with special emphasis on the needs of commutative algebra, algebraic geometry, and singularity theory.”

→ http://www.singular.uni-kl.de/
Yacas

“YACAS is an easy to use, general purpose Computer Algebra System, a program for symbolic manipulation of mathematical expressions. It uses its own programming language designed for symbolic as well as arbitrary-precision numerical computations.”

→ http://yacas.sourceforge.net/

Other Open Source Mathematical Software

Oberwolfach References on Mathematical Software: http://orms.mfo.de/
Free mathematical and computational software directory: http://cadadr.org/fm/

ARIBAS

“ARIBAS is an interactive interpreter for big integer arithmetic and multi-precision floating point arithmetic with a Pascal/Modula like syntax. It has several builtin functions for algorithmic number theory like gcd, Jacobi symbol, Rabin probabilistic prime test, factorization algorithms (Pollard rho, elliptic curve, continued fraction, quadratic sieve), etc.”

→ http://www.mathematik.uni-muenchen.de/~forster/sw/aribas.html
NumPy

“The fundamental package needed for scientific computing with Python is called NumPy. This package contains a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities.”

→ http://numpy.scipy.org/
Octave

“GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.”

→ http://www.gnu.org/software/octave/
PARI/GP

“PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers etc., and a lot of transcendental functions.”

→ http://pari.math.u-bordeaux.fr/
R

“R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS.”

→ http://www.r-project.org/

Information about Computer Algebra Systems


List of computer algebra systems (Wikipedia)

Lots of links there.

→ http://en.wikipedia.org/wiki/List_of_computer_algebra_systems
SymbolicNet

A very good starting point to learn about symbolic computation and computer algebra systems.

→ http://www.symbolicnet.org/