{"id":710,"date":"2010-02-22T07:33:13","date_gmt":"2010-02-22T07:33:13","guid":{"rendered":"http:\/\/mathscitech.org\/articles\/?p=710"},"modified":"2024-07-25T08:11:58","modified_gmt":"2024-07-25T07:11:58","slug":"maxima","status":"publish","type":"post","link":"https:\/\/mathscitech.org\/articles\/maxima","title":{"rendered":"Maxima (Computer Algebra)"},"content":{"rendered":"<p><!--Using Maxima: wordpress article AKE 11:43 PM 2\/21\/2010--><\/p>\n<p><em>If you haven&#8217;t done so already, you may want to start by reading the Preface to the Computing Series: <a href=\"https:\/\/mathscitech.org\/articles\/computing-toolkits\" rel=\"noopener\" target=\"_blank\">Software as a Force Multiplier<\/a>, Sections 1-3.<\/em><\/p>\n<h1>Maxima: a Computer Algebra System (CAS) for symbolic computation<\/h1>\n<p><em>Last updated: Feb 19, 2023 (fixed links).  Nov 11, 2022 (added omega-math&#8217;s excellent web interface, and generating function calculation of the partition of integers problem).<\/em><\/p>\n<p><strong>Maxima<\/strong> is a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_algebra_system\" rel=\"noopener\" target=\"_blank\">computer algebra system (CAS)<\/a> for symbolic computation that is free, open source, runs on multiple operating systems (Win,Mac,Linux), and covers a wide range of mathematical capabilities and graphical capabilities.  These include algebraic simplification, polynomials, methods from calculus, matrix equations, differential equations, number theory, combinatorics, hypergeometric functions, tensors, gravitational physics, PDEs, nonlinear systems, plus including 2-D\/3-D plotting and animation.\u00a0 With a large and responsive user community, there is plenty of help to get up the learning curve, and with its active developer base, Maxima and its ecosystem continue to gain capability, including a fantastic <a href=\"http:\/\/www.omega-math.com\/nhome\/index.jsp\" rel=\"noopener\" target=\"_blank\">web interface<\/a> by Omega-Math\/Vroom-Labs (see the screenshot below, r0*0).  The result is a free, versatile, powerful mathematical computing package for engineers, scientists, mathematicians, programmers, and students.  This article will help you get started with Maxima and set you up with resources to flatten the learning curve.<\/p>\n<p><div id=\"attachment_8092\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-8092\" loading=\"lazy\" src=\"https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349-800x477.png\" alt=\"\" width=\"640\" height=\"382\" class=\"size-large wp-image-8092\" srcset=\"https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349-800x477.png 800w, https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349-300x179.png 300w, https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349-768x458.png 768w, https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349-150x90.png 150w, https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349-400x239.png 400w, https:\/\/mathscitech.org\/articles\/wp-content\/uploads\/2022\/11\/screenshot.2349.png 910w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-8092\" class=\"wp-caption-text\">Omega-Math&#8217;s web interface to Maxima.  Used here to calculate the first 10 elements of p(n), the number of ways to partition integer n, using a generating function comprising a truncated series of polynomials up to degree n=10<\/p><\/div><br \/>\n<!--more--><\/p>\n<hr \/>\n<h3>Maxima and the Alternatives<\/h3>\n<p><a href=\"https:\/\/maxima.sourceforge.io\/index.html\" rel=\"noopener\" target=\"_blank\">Maxima<\/a> is a free\/open-source <a href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_algebra_system\" rel=\"noopener\" target=\"_blank\">computer algebra system (CAS)<\/a> with functionality covering a large part of mathematics and analytical engineering, originating in 1982 as the open-source alternative to MIT&#8217;s Macsyma system.  It is readily available with a <a href=\"http:\/\/www.omega-math.com\/nhome\/index.jsp\" rel=\"noopener\" target=\"_blank\">fantastic web front end<\/a> by Omega-Math\/Vroom-Labs, and easily installed desktop versions for all three major operating systems.  A free\/open-source alternative is <a href=\"https:\/\/www.sagemath.org\/\" rel=\"noopener\" target=\"_blank\">SageMath<\/a> however running this <a href=\"https:\/\/doc.sagemath.org\/html\/en\/installation\/index.html\" rel=\"noopener\" target=\"_blank\">on Windows<\/a> requires installing <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/install\" rel=\"noopener\" target=\"_blank\">Windows Subsystem for Linux (WSL)<\/a> (easy, one command, make sure you have 16GB RAM machine, running Windows 10 or 11).  SageMath has launched <a href=\"https:\/\/cocalc.com\/\" rel=\"noopener\" target=\"_blank\">CoCalc which is effectively Sage in the Cloud<\/a>, under <a href=\"https:\/\/en.wikipedia.org\/wiki\/CoCalc\" rel=\"noopener\" target=\"_blank\">CEO William Stein, based in Seattle<\/a> (founded 2013).  2023 marks a big increase in the power of CoCalc: it is now integrated with ChatGPT 3.5 (free) and ChatGPT 4 (cents per query), Machine Learning, Neural Networks, with capabilities in Statistics, Big Data Analytics, production of Dashboards, LaTeX, a number of dynamic programming languages built in as different evaluation kernels, and more!  Commercial alternatives are <a href=\"https:\/\/www.wolfram.com\/mathematica\/\" rel=\"noopener\" target=\"_blank\">Mathematica<\/a>, <a href=\"https:\/\/www.maplesoft.com\/products\/Maple\/\" rel=\"noopener\" target=\"_blank\">Maple<\/a> and <a href=\"http:\/\/magma.maths.usyd.edu.au\/magma\/\" rel=\"noopener\" target=\"_blank\">Magma<\/a>, but the licensing fees are not cheap (you might find trial or student versions).  Mobile apps have also been released, e.g. Maple&#8217;s <a href=\"https:\/\/www.maplesoft.com\/products\/Maplecalculator\/\" rel=\"noopener\" target=\"_blank\">Maple Calculator<\/a>.  If you&#8217;ve used alternatives and find them much better than Maxima, feel free to leave your views on the comparison in the comments at the end of this article.<\/p>\n<p><a id=\"installing\"><\/a><\/p>\n<h3>Installing &#038; Using Maxima<\/h3>\n<p>The fastest way to get up and running with Maxima is to use the <a href=\"http:\/\/www.omega-math.com\/nhome\/index.jsp\" rel=\"noopener\" target=\"_blank\">fantastic web front end<\/a> by Omega-Math\/Vroom-Labs.  This presents a simple user interface, with a calculator like layout, and allows you to just get going without installation, learning specialized syntax, etc.  It has all the bells and whistles for those who already know Maxima, so that advanced users will have that power to hand.<\/p>\n<p>To run Maxima, from your desktop computer, you can download the<br \/>\n<a href=\"http:\/\/sourceforge.net\/projects\/maxima\/files\/\" rel=\"noopener\" target=\"_blank\">latest installer for Windows and other OS&#8217;s<\/a> from the <a href=\"http:\/\/maxima.sourceforge.net\/download.html\" rel=\"noopener\" target=\"_blank\">Maxima project page<\/a>.  This will look something like maxima-clisp-sbcl-5.41.0-win64.exe which (as of Oct 2017) included in it both the computational engine (Maxima) and the graphical user interface (wxMaxima).  (<a href=\"http:\/\/www.hippasus.com\/resources\/symmath\/maximainstall.html\" rel=\"noopener\" target=\"_blank\">Installation pre-requisites<\/a>)<\/p>\n<p>Installation on Windows is straight-forward: <\/p>\n<ol>\n<li> Run the installer, accepting defaults (but feel free to install to any preferred directory).\n<li> Firewall exception for wxMaxima: when you first run wxMaxima, if your firewall software complains that a socket is being opened, allow always. This is a local socket that wxMaxima (the user-friendly graphical front end) uses to communicate with Maxima (the computation engine). <a href=\"http:\/\/arachnoid.com\/maxima\/installing_testing.html\" rel=\"noopener\" target=\"_blank\">Ref: detailed installation walkthrough<\/a>.  This also explains how to get Greek fonts to display properly in your Maxima session.\n<li> run a 2D plot to test your installation:<br \/>\n<code><br \/>\n     f(x):= 3*x+3$<br \/>\n     plot2d(f(x), [x,-50,50])$<br \/>\n<\/code><br \/>\nIf you get a <a href=\"https:\/\/themaximalist.org\/2017\/01\/11\/an-odd-gnuplot-error-and-a-work-around-using-maxima_tempdir\/\" rel=\"noopener noreferrer\" target=\"_blank\">strange error<\/a> such as &#8216;temp directory not found&#8217;, create a usable temp directory using the command:<br \/>\n<code><br \/>\n     maxima_tempdir : \"C:\/totalprogs\/Maxima\/temp\"$<br \/>\n<\/code><\/p>\n<li> a few basics to get the flavor:<br \/>\n<code><br \/>\nExample 1: polynomial expansion: telescoping series<br \/>\n   expand((1+x+x^2+x^3+x^4)*(1-x));<br \/>\nResult: 1-x^5<br \/>\nRemarks: ending statement with ; shows output, ending with $ suppresses output<br \/>\n<\/code><\/p>\n<li> to see details of your current Maxima\/wxMaxima installation, run:<br \/>\n<code><br \/>\n     wxbuild_info()$;<br \/>\n<\/code>\n<\/ol>\n<p>The following resources will help you up the learning ramp.<\/p>\n<h4>Cheat Sheets \/ Ready Reference Sheets<\/h4>\n<ol>\n<li><a href=\"http:\/\/www.hippasus.com\/resources\/symmath\/maximasym.html\" rel=\"noopener\" target=\"_blank\">A Maxima CheatSheet \/ Ready Reference Sheet<\/a> &#8211; Start with this succinct cheat sheat \/ command reference table by Ruben Puentedura.  It will give you the basic commands you can work through to get a feel for the language.\n<li><a href=\"https:\/\/legacy-www.math.harvard.edu\/computing\/maxima\/index.html\" rel=\"noopener\" target=\"_blank\">Mathematica \/ Maxima Syntax Conversion Chart<\/a>: Harvard University, Department of Mathematics &#8211; If you are already familiar with Mathematica, this syntax conversion chart help you get you going quickly.\n<\/ol>\n<p>For more detailed guides, see <a href=\"#basic\">&#8220;Building Proficiency&#8221;<\/a> below.<\/p>\n<h4>Application Examples<\/h4>\n<p>Over the past 10 years (updated in 2023), I&#8217;ve used Maxima in a variety of discrete maths research problem.  Below are some useful examples and code illustrating a few areas that may be of interest to others.<\/p>\n<ol>\n<li><strong>Theory of Polynomial Roots<\/strong><br \/>\nConsider a monic polynomial of degree 3 with rational coefficients p(x).<br \/>\nBy the Fundamental Theorem of Algebra (Gauss), p(x) will have exactly 3 (possibly complex) roots a1,a2,a3.<br \/>\nSo we can write the polynomial in terms of the roots as follows:<br \/>\n<code><br \/>\n(x-a1)*(x-a2)*(x-a3)<br \/>\nexpand(%)<br \/>\nratsimp(%)<br \/>\n<\/code><br \/>\nResult: you see the polynomial written as a function of the three roots a1, a2, a3<br \/>\nYou see the form of the coefficients in terms of sum of product combinations of the roots by size of the term:  trace = a1 + a2 + a3, determinant = a1*a2*a3, and the other combinations in between.<\/p>\n<li><strong>Combinations &#038; Permutations<\/strong>, useful definitions:<br \/>\n<code>c(n,k):=binomial(n,k);<br \/>\np(n,k):=c(n,k)*k!;<\/code><\/p>\n<li><strong>Discrete Mathematics<\/strong>: verification &#038; validation of recurrence relation using binomial coefficients: Finite Summation by Recurrence Relations, <a href=\"finite-summations-1\" rel=\"noopener\" target=\"_blank\">Part 1<\/a> and <a href=\"finite-summations-2\" rel=\"noopener\" target=\"_blank\">Part 2<\/a>.\n<li><strong>Linear Algebra\/Matrix Manipulation<\/strong>: <a href=\"finite-summations-3\" rel=\"noopener\" target=\"_blank\">Finite Summation by Recurrence Relations, Part 3<\/a>.\n<li>Example Maxima script: iterative solution to finite sums recurrence relation <a href=\"https:\/\/mathscitech.org\/code\/sumkp_recurrence.mac\" rel=\"noopener\" target=\"_blank\">sumkp_recurrence.mac<\/a>\n<li><strong>Combinatorics &#8211; Generating Functions:<\/strong><br \/>\nConsider an illustrative problem of cataloguing fruit baskets that can be made from 2 Apples, 3 Bananas, or 4 Cantaloupes.  Apples are $1, Bananas are $2, Cantaloupes $4.  The generating function below lists the 60 (=3x4x5) possible fruit baskets that can be made, including the empty fruit basket (no fruit).<br \/>\n<code><br \/>\nAll combinations of a fruit basket:<br \/>\nexpand((1+A+A^2)*(1+B+B^2+B^3)*(1+C+C^2+C^3+C^4));<br \/>\n<\/code><br \/>\nWhat are the sizes, sizes\/costs, and costs\/compositions (i.e. which fruits to put in) of the fruit baskets?  The power of the generating function approach is that you can read off details of the choices from the coefficients of the relevant expanded series.<br \/>\n<code><br \/>\nShowing size (x) of baskets:<br \/>\nexpand((1+x+x^2)*(1+x+x^2+x^3)*(1+x+x^2+x^3+x^4));<br \/>\nShowing size (x) and cost (y) of baskets:<br \/>\nexpand((1+y*x+y^2*x^2)*(1+y^2*x+y^4*x^2+y^6*x^3)*(1+y^4*x+y^8*x^2+y^12*x^3+y^16*x^4));<br \/>\nShowing cost (y) and composition (A,B,C) of baskets:<br \/>\nexpand((1+y*A+y^2*A^2)*(1+y^2*B+y^4*B^2+y^6*B^3)*(1+y^4*C+y^8*C^2+y^12*C^3+y^16*C^4));<br \/>\n<\/code><\/p>\n<p>From the above, it is easy to see that the most expensive fruit basket is the full fruit basket of 9 fruits at $24.  Less obvious: 1) there are 22 choices of fruit baskets with either 5 or 4 fruits, of which the most expensive is $18 [4 cantaloupes &#038; 1 banana] and 2) the least expensive is $6 [2 apples &#038; 2 bananas].  Less obvious problem with many more combinations possible can be handled with the same approach.<\/p>\n<li><strong>Combinatorics &#8211; Partition function<\/strong>:<br \/>\nHere&#8217;s an example of a truncated generating function that correctly gives the coefficients p(n) up to n=10 for the partition problem up to integer n.<br \/>\n<code><br \/>\nexpr:<br \/>\n(1+x+x^2+x^3+x^4+x^5+x^6+x^7+x^8+x^9+x^10)*<br \/>\n(1+x^2+x^4+x^6+x^8+x^10)*<br \/>\n(1+x^3+x^6+x^9)*<br \/>\n(1+x^4+x^8)*<br \/>\n(1+x^5+x^10)*<br \/>\n(1+x^6)*<br \/>\n(1+x^7)*<br \/>\n(1+x^8)*<br \/>\n(1+x^9)*<br \/>\n(1+x^10);<br \/>\npowerdisp:true;<br \/>\nexpand(expr);<br \/>\n<\/code><br \/>\nHere&#8217;s the two-variable generating function that gives p(n,k) as the coefficients, i.e. number of ways to partition n into k parts.<br \/>\n<code><br \/>\nexpr:<br \/>\n(1+k*x+k^2*x^2+k^3*x^3+k^4*x^4+k^5*x^5+k^6*x^6+k^7*x^7+k^8*x^8+k^9*x^9+k^10*x^10)*<br \/>\n(1+k*x^2+k^2*x^4+k^3*x^6+k^4*x^8+k^5*x^10)*<br \/>\n(1+k^1*x^3+k^2*x^6+k^3*x^9)*<br \/>\n(1+k*x^4+k^2*x^8)*<br \/>\n(1+k^1*x^5+k^2*x^10)*<br \/>\n(1+k*x^6)*<br \/>\n(1+k*x^7)*<br \/>\n(1+k*x^8)*<br \/>\n(1+k*x^9)*<br \/>\n(1+k*x^10);<br \/>\npowerdisp:true;<br \/>\nexpand(expr);<br \/>\n<\/code><br \/>\n<a id=\"nonlinear\"><\/a><\/p>\n<li><strong>Solving Algebraic (Nonlinear) Systems of Equations<\/strong><br \/>\nA American colleague of mine recently asked to check a solution to a curious system of 4 nonlinear algebraic equations.<br \/>\nWithout much more information, I threw it into Maxima (wxMaxima v17.0) and got three numerical solutions.<br \/>\nTotal elapsed time? 2 minutes.  Another example of Maxima&#8217;s value as an symbolic calculator.<br \/>\n<code><br \/>\nalgsys(<br \/>\n    [<br \/>\n         (x+y+z)*t=1,<br \/>\n         (2*x+y+z)*(t-2)=1,<br \/>\n         (x+3*y+z)*(t-3)=1,<br \/>\n         (x+y+4*z)*(t-4)=1<br \/>\n    ], [x,y,z,t]);<br \/>\n<\/code><\/p>\n<p>Three numerical solutions:<br \/>\n<code><br \/>\n[x=1.859008365639665,y=-1.098952690501986,z=-0.3503503503503503,t=2.44077834179357],<br \/>\n[x=0.3619915308610291,y=0.7611952791495773,z=-0.8418458781362007,t=3.554406288787753],<br \/>\n[x=0.04370603203113307,y=0.03955473900356641,z=0.04432037496553626,t=7.838148667601683]<br \/>\n<\/code><\/p>\n<p>Rounding to 3 places:<br \/>\n<code><br \/>\n[x=1.859, y=-1.099,z=-0.350,t=2.441],<br \/>\n[x=0.362, y=0.761, z=-0.842,t=3.554],<br \/>\n[x=0.0437,y=0.0396,z=0.0443,t=7.838]<br \/>\n<\/code><\/p>\n<\/ol>\n<h3>Learning through Applications<\/h3>\n<p>Maxima makes it easy to work through hairy symbolic computations accurately leaving more time for applications and research.  Below are examples.  <\/p>\n<p><a name=\"topics\"><\/a><\/p>\n<h4>Topics by Example<\/h4>\n<ol>\n<li><strong>Engineering Problems:<\/strong> Javed Alam&#8217;s <a href=\"http:\/\/web.archive.org\/web\/20160416165055\/http:\/\/www.eng.ysu.edu\/~jalam\/engr6924s07\/\" rel=\"noopener\" target=\"_blank\">22 sessions of Maxima for solving real-world Engineering problems<\/a>\n<li><strong>Differential Equations &#038; Fourier Analysis<\/strong>: Paul Lutus&#8217;s <a href=\"http:\/\/arachnoid.com\/maxima\/differential_equations.html\" rel=\"noopener\" target=\"_blank\">differential equations and circuit theory<\/a> and <a href=\"http:\/\/arachnoid.com\/maxima\/fourier_analysis.html rel=\"noopener\" target=\"_blank\"\">Fourier (Spectral) Analysis<\/a>.\n<li><strong>Differential Equations (First Order ODEs)<\/strong>: Gregory Astley&#8217;s <a href=\"http:\/\/www.walkingrandomly.com\/?p=2079\" rel=\"noopener\" target=\"_blank\">Using Maxima for Plotting Direction Fields of First Order ODEs<\/a>\n<li><strong>Tensors<\/strong>: <a href=\"http:\/\/spinor.info\/weblog\/?page_id=99\" rel=\"noopener\" target=\"_blank\">Tensor Algebra in Maxima<\/a>\n<li><strong>Calculus 1 &#038; 2<\/strong>: Zak Hannan&#8217;s <a href=\"https:\/\/wxmaximafor.wordpress.com\/\" rel=\"noopener\" target=\"_blank\">wxMaxima for Calculus<\/a>.  Two open-texts for wxMaxima that can be used as lab manuals for first-year calculus or \u201cby-example\u201d references for students learning wxMaxima independently.\n<li><strong>Calculus<\/strong>: Leon Brin&#8217;s <a href=\"http:\/\/web.archive.org\/web\/20110720044811\/http:\/\/southernct.edu\/~brin\/papers\/maxima_and_calculus.pdf\" rel=\"noopener\" target=\"_blank\">Maxima and the Calculus<\/a>\n<\/ol>\n<h3>Building Proficiency &#8216;from the Ground Up&#8217;<\/h3>\n<p>The following resources will help you up the learning ramp.<\/p>\n<h4>Cheat Sheets \/ Ready Reference Sheets<\/h4>\n<ol>\n<li><a href=\"http:\/\/www.hippasus.com\/resources\/symmath\/maximasym.html\" rel=\"noopener\" target=\"_blank\">A Maxima CheatSheet \/ Ready Reference Sheet<\/a> &#8211; Start with this succinct cheat sheat \/ command reference table by Ruben Puentedura.  It will give you the basic commands you can work through to get a feel for the language.\n<li><a href=\"https:\/\/legacy-www.math.harvard.edu\/computing\/maxima\/index.html\" rel=\"noopener\" target=\"_blank\">Mathematica \/ Maxima Syntax Conversion Chart<\/a>: Harvard University, Department of Mathematics &#8211; If you are already familiar with Mathematica, this syntax conversion chart help you get you going quickly.\n<\/ol>\n<p><a id=\"basic\"><\/a><\/p>\n<h4>Basic Guides<\/h4>\n<ol>\n<li>Antonio Cangiano&#8217;s <a href=\"https:\/\/mathblog.com\/a-10-minute-tutorial-for-solving-math-problems-with-maxima\/\" rel=\"noopener\" target=\"_blank\">10-minute Tutorial for Solving Math Problems with Maxima<\/a> is a good next step.\n<li>Richard Rand&#8217;s <a href=\"http:\/\/www.mathscitech.org\/papers\/maxima-intromax-RichardRand.pdf\">Introduction to Maxima (PDF)<\/a>, is a more advanced (but still whirlwind) tour of maxima, including a discussion of writing <strong>subroutines\/scripts\/programs<\/strong>.\n<li><a href=\"http:\/\/arachnoid.com\/maxima\/\" rel=\"noopener\" target=\"_blank\">Paul Lutus&#8217; Symbolic Mathematics Using Maxima<\/a>: A Leisurely Tutorial in 9 parts.\n<\/ol>\n<p><a name=\"advanced\"><\/a><\/p>\n<h4>Advanced Guides<\/h4>\n<ol>\n<li><a href=\"http:\/\/www.mathscitech.org\/papers\/maxima-minimal-RobertDodier.pdf\">Robert Dodier&#8217;s Minimal Maxima (PDF)<\/a> breaks down the syntactical, evaluation, and data structures underlying Maxima. A good understanding of this is essential when you are trying to go beyond using Maxima as a powerful calculator, or when writing your own functions\/subroutines in Maxima.\n<li><a href=\"http:\/\/maxima.sourceforge.net\/maximalist.html\" rel=\"noopener\" target=\"_blank\">Maxima mailing list<\/a> is a responsive, expert community that can not only help you in a jam, but also raise the level of your proficiency and your familiarity with idiomatic Maxima (that intangible called Maxima style).\n<\/ol>\n<p><a name=\"book\"><\/a><\/p>\n<h4>&#8220;Book-Style&#8221; Tutorials (PDF or HTML)<\/h4>\n<ol>\n<li><a href=\"http:\/\/web.archive.org\/web\/20171118051313\/http:\/\/math.stanford.edu:80\/~paquin\/MaximaBook.pdf\" rel=\"noopener\" target=\"_blank\">Gilberto Urroz&#8217;s Maxima Book (Science &#038; Engineering Applications)<\/a>: Comprehensive, each chapter organized by mathematical area.\n<li><a href=\"http:\/\/www.mathscitech.org\/papers\/maxima_book_DeSouza_2003.pdf\">The Maxima Book (2003)<\/a>, P. de Souza, R. Fateman, J. Moses, C. Yapp: Comprehensive, well-written, well-organized. Not the most up-to-date, but the organization, comprehensiveness, and quality of the material makes this a valuable reference.\n<li>Edwin Woollet&#8217;s 15 chapter <a href=\"https:\/\/home.csulb.edu\/~woollett\/mbe.html\" rel=\"noopener\" target=\"_blank\">Maxima By Example<\/a>: a leisurely description of Maxima&#8217;s capabilities.\n<\/ol>\n<h4>System Documentation<\/h4>\n<ol>\n<li><a href=\"http:\/\/www.mathscitech.org\/papers\/maxima-manual_5_24.pdf\">Maxima Manual<\/a>: 1000+ page (5MB) comprehensive manual and listing of all mathematical functions and capabilities built into Maxima.\n<li><a href=\"http:\/\/maxima.sourceforge.net\/\" rel=\"noopener\" target=\"_blank\">Maxima Homepage<\/a>: 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.\n<li><a href=\"https:\/\/wxmaxima-developers.github.io\/wxmaxima\/\" rel=\"noopener\" target=\"_blank\">wxMaxima Homepage<\/a>: A Windows GUI for Maxima\n<\/ol>\n<h4>Getting Help<\/h4>\n<p>The <a href=\"http:\/\/maxima.sourceforge.net\/maximalist.html\" rel=\"noopener\" target=\"_blank\">Maxima mailing list<\/a> is a responsive, expert community that can not only help you out of a jam, but also raise the level of your proficiency and your familiarity with &#8220;natural&#8221; Maxima programming style.<\/p>\n<hr \/>\n<h4>Contribute!<\/h4>\n<p>Feel free to leave a comment if you have a super application, find a great user resource, or just want to share what you&#8217;ve been doing with Maxima!<\/p>\n","protected":false},"excerpt":{"rendered":"<\/p>\n<p>If you haven&#8217;t done so already, you may want to start by reading the Preface to the Computing Series: Software as a Force Multiplier, Sections 1-3.<\/p>\n<p> Maxima: a Computer Algebra System (CAS) for symbolic computation <\/p>\n<p>Last updated: Feb 19, 2023 (fixed links). Nov 11, 2022 (added omega-math&#8217;s excellent web interface, and generating function calculation [Read More&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[9],"tags":[37,23,124,20,22],"coauthors":[112],"class_list":["post-710","post","type-post","status-publish","format-standard","hentry","category-mathtools","tag-linux","tag-maxima","tag-technology","tag-toolset","tag-windows","odd"],"views":70723,"_links":{"self":[{"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/posts\/710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/comments?post=710"}],"version-history":[{"count":114,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/posts\/710\/revisions"}],"predecessor-version":[{"id":11980,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/posts\/710\/revisions\/11980"}],"wp:attachment":[{"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/media?parent=710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/categories?post=710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/tags?post=710"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/mathscitech.org\/articles\/wp-json\/wp\/v2\/coauthors?post=710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}