Go to the first, previous, next, last section, table of contents.

# Introduction to MAXIMA

Start MAXIMA with the command "maxima". MAXIMA will display version information and a prompt. End each MAXIMA command with a semicolon. End the session with the command "quit();". Here's a sample session:

    sonia$ maxima
    GCL (GNU Common Lisp)  Version(2.3) Tue Mar 21 14:15:15 CST 2000
    Licensed under GNU Library General Public License
    Contains Enhancements by W. Schelter
    Maxima 5.4 Tue Mar 21 14:14:45 CST 2000 (enhancements by W. Schelter)
    Licensed under the GNU Public License (see file COPYING)
    (%i1) factor(10!);

                                       8  4  2
    (%o1)                              2  3  5  7
    (%i2) expand((x+y)^6);

               6        5       2  4       3  3       4  2      5      6
    (%o2)      y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
    (%i3) factor(x^6-1);

                                         2            2
    (%o3)               (x - 1) (x + 1) (x  - x + 1) (x  + x + 1)
    (%i4) quit();

    sonia$

MAXIMA can search the info pages. Use the `describe` command to show all the commands and variables containing a string, and optionally their documentation:

    (%i1) describe(factor);

     0: DONTFACTOR :(maxima.info)Definitions for Matrices and ..
     1: EXPANDWRT_FACTORED :Definitions for Simplification.
     2: FACTOR :Definitions for Polynomials.
     3: FACTORFLAG :Definitions for Polynomials.
     4: FACTORIAL :Definitions for Number Theory.
     5: FACTOROUT :Definitions for Polynomials.
     6: FACTORSUM :Definitions for Polynomials.
     7: GCFACTOR :Definitions for Polynomials.
     8: GFACTOR :Definitions for Polynomials.
     9: GFACTORSUM :Definitions for Polynomials.
     10: MINFACTORIAL :Definitions for Number Theory.
     11: NUMFACTOR :Definitions for Special Functions.
     12: SAVEFACTORS :Definitions for Polynomials.
     13: SCALEFACTORS :Definitions for Miscellaneous Options.
     14: SOLVEFACTORS :Definitions for Equations.
    Enter n, all, none, or multiple choices eg 1 3 : 2 8;

    Info from file /d/linux/local/lib/maxima-5.4/info/maxima.info:
     - Function: FACTOR (EXP)
         factors the expression exp, containing any number of variables or
         functions, into factors irreducible over the integers.
         FACTOR(exp, p) factors exp over the field of integers with an
         element adjoined whose minimum polynomial is p.  FACTORFLAG[FALSE]
         if FALSE suppresses the factoring of integer factors of rational
         expressions.  DONTFACTOR may be set to a list of variables with
         respect to which factoring is not to occur.  (It is initially
         empty).  Factoring also will not take place with respect to any
         variables which are less important (using the variable ordering
         assumed for CRE form) than those on the DONTFACTOR list.
         SAVEFACTORS[FALSE] if TRUE causes the factors of an expression
         which is a product of factors to be saved by certain functions in
         order to speed up later factorizations of expressions containing
         some of the same factors.  BERLEFACT[TRUE] if FALSE then the
         Kronecker factoring algorithm will be used otherwise the Berlekamp
         algorithm, which is the default, will be used.  INTFACLIM[1000] is
         the largest divisor which will be tried when factoring a bignum
         integer.  If set to FALSE (this is the case when the user calls
         FACTOR explicitly), or if the integer is a fixnum (i.e.  fits in
         one machine word), complete factorization of the integer will be
         attempted.  The user's setting of INTFACLIM is used for internal
         calls to FACTOR. Thus, INTFACLIM may be reset to prevent MACSYMA
         from taking an inordinately long time factoring large integers.
         NEWFAC[FALSE] may be set to true to use the new factoring routines.
         Do EXAMPLE(FACTOR); for examples.

     - Function: GFACTOR (EXP)
         factors the polynomial exp over the Gaussian integers (i.  e.
         with SQRT(-1) = %I adjoined).  This is like FACTOR(exp,A**2+1)
         where A is %I.
              (%i1)  GFACTOR(X**4-1);
              (%o1)        (X - 1) (X + 1) (X + %I) (X - %I)
    (%o1) 				     FALSE

To use a result in later calculations, you can assign it to a variable or refer to it by its automatically supplied label. In addition, `%` refers to the most recent calculated result:

    (%i2) u:expand((x+y)^6);

               6        5       2  4       3  3       4  2      5      6
    (%o2)     y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
    (%i3) diff(u,x);

                    5         4       2  3       3  2       4        5
    (%o3)        6 y  + 30 x y  + 60 x  y  + 60 x  y  + 30 x  y + 6 x
    (%i4) factor(%o3);

                                               5
    (%o4)                             6 (y + x)

MAXIMA knows about complex numbers and numerical constants:

    (%i6) cos(%pi);

    (%o6)                                  - 1

    (%i7) %e^(%i*%pi);

    (%o7)                                  - 1

MAXIMA can do differential and integral calculus:

    (%i8) u:expand((x+y)^6);

               6        5       2  4       3  3       4  2      5      6
    (%o8)     y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
    (%i9) diff(%,x);

                    5         4       2  3       3  2       4        5
    (%o9)        6 y  + 30 x y  + 60 x  y  + 60 x  y  + 30 x  y + 6 x
    (%i10) integrate(1/(1+x^3),x);

                                             2 x - 1
                           2            ATAN(-------)
                      LOG(x  - x + 1)        SQRT(3)    LOG(x + 1)
    (%o10)           - --------------- + ------------- + ----------
                             6             SQRT(3)          3

MAXIMA can solve linear systems and cubic equations:

    (%i11) linsolve( [ 3*x + 4*y = 7, 2*x + a*y = 13], [x,y]);

                                   7 a - 52        25
    (%o11)                     [x = --------, y = -------]
                                   3 a - 8       3 a - 8
    (%i12) solve( x^3 - 3*x^2 + 5*x = 15, x);

    (%o12)              [x = - SQRT(5) %I, x = SQRT(5) %I, x = 3]

MAXIMA can solve nonlinear sets of equations. Note that if you don't want a result printed, you can finish your command with `$` instead of `;`.

    (%i13) eq1: x^2 + 3*x*y + y^2 = 0$

    (%i14) eq2: 3*x + y = 1$

    (%i15) solve([eq1, eq2]);

                  3 SQRT(5) + 7      SQRT(5) + 3
    (%o15) [[y = - -------------, x = -----------],
                        2                 2

                                        3 SQRT(5) - 7        SQRT(5) - 3
                                   [y = -------------, x = - -----------]]
                                              2                   2

Under the X window system, MAXIMA can generate plots of one or more functions:

    (%i13) plot2d(sin(x)/x,[x,-20,20]);

    (YMIN -3.0 YMAX 3.0 0.29999999999999999)
    (%o13)                                  0
    (%i14) plot2d([atan(x), erf(x), tanh(x)], [x,-5,5]);

    (YMIN -3.0 YMAX 3.0 0.29999999999999999)
    (YMIN -3.0 YMAX 3.0 0.29999999999999999)
    (YMIN -3.0 YMAX 3.0 0.29999999999999999)
    (%o14)                                  0
    (%i15) plot3d(sin(sqrt(x^2+y^2))/sqrt(x^2+y^2),[x,-12,12],[y,-12,12]);

    (%o15)                                  0

Moving the cursor to the top left corner of the plot window will pop up a menu that will, among other things, let you generate a PostScript file of the plot. (By default, the file is placed in your home directory.) You can rotate a 3D plot.

Go to the first, previous, next, last section, table of contents.