MAXIMA(1) User Commands MAXIMA(1)
Maxima - Common Lisp version of MACSYMA symbolic mathematics package
released under the GNU Public License
rmaxima - A version of Maxima that supports command autocompletion
Xmaxima - A graphical version of Maxima
maxima [options]
rmaxima [options]
xmaxima [options]
Maxima is a version of the MIT-developed MACSYMA system, modified to
run under Common Lisp. It is an interactive expert system and
programming environment for symbolic and numerical mathematical
manipulation. Written in Lisp, it allows differentiation,
integration, solution of linear or polynomial equations, factoring of
polynomials, expansion of functions in Laurent or Taylor series,
computation of Poisson series, matrix and tensor manipulations, and
two- and three-dimensional graphics. Procedures may be written using
an ALGOL-like syntax, and both Lisp-like functions and pattern
matching facilities are provided. Files containing Maxima objects
may be read from and written to disk files. Pre-written Maxima
commands may be read from a file and executed, allowing batch-mode
use.
-b file, --batch=file
Process file in noninteractive mode.
--batch-lisp=file
Process Lisp file file in noninteractive mode.
--batch-string=string
Process string in noninteractive mode.
-d, --directories
Display Maxima directory information.
--disable-readline
Disable readline support.
-g, --enable-lisp-debugger
Enable Lisp debugger.
-h, --help
Display a brief usage summary.
--init=string
Load the Maxima and Lisp initialization files string.mac and
string.lisp at startup.
--init-mac=file
Load the Maxima initialization file file at startup.
--init-lisp=file
Load the Lisp initialization file file at startup.
-l lisp, --lisp=lisp
Use Lisp implementation lisp. Use --list-avail to see the list
of possible values.
--list-avail
List the available Lisp and Maxima versions.
-p lisp_file, --preload-lisp=lisp_file
Preload lisp_file.
-q, --quiet
Suppress Maxima start-up message.
-Q, --quit-on-error
Quit, and return an exit code 1, when Maxima encounters an
error.
-r string, --run-string=string
Process string in interactive mode.
-s port, --server=port
Connect Maxima to server on port. Note that this does not
create a Maxima server; Maxima is the client.
-u version, --use-version=version
Launch Maxima version version. Use --list-avail to see the
list of possible values.
--userdir=directory
Use directory for user directory (default is
%USERPROFILE%/maxima for Windows, $HOME/.maxima for others)
-v, --verbose
Print extra information from the Maxima wrapper script.
--version
Print the (default) installed version.
--very-quiet
Suppress expression labels, the Maxima start-up message,
verification of the HTML index and loading related messages.
--very-very-quiet In addition to --very-quiet, suppress most
printed output.
-X Lisp options, --lisp-options=Lisp options
Options to be given to the underlying Lisp.
--no-init, --norc
Do not load the init file(s) on startup.
--no-verify-html-index
Do not verify on startup that the set of html topics is
consistent with text topics.
--suppress-input-echo
Do not print input expressions when processing
noninteractively.
Upon initialization, maxima prints a startup message, then a command
line prompt:
(%i1)
All Maxima commands must be concluded with either:
1) a semicolon (in which case the result of the command is echoed
on a display line, prefaced by %o with an appended sequence
number), or
2) a dollar sign (which suppresses printing of a display line).
(%i1) diff(sin(x),x);
(%o1) cos(x)
(%i2) integrate(%o1,x);
(%o2) sin(x)
The user types in commands which create Maxima objects (such as
functions and system variables) and which manipulate these objects.
On UNIX it may be preferable to run Maxima under Gnu Emacs or XEmacs.
You can do this by invoking shell mode in emacs, and then invoking
maxima. Preferably, install maxima.el from the distribution and use
the command:
M-x maxima
The main advantage of working inside emacs is that it provides a
complete history of input/output. If you execute the command
display2d: false
you will be able to use your output as input, by simply killing and
yanking.
Lisp is built into Maxima. The function to_lisp() enters the Lisp
read-eval-print loop. The Lisp function (run) may be used to return
to Maxima. Alternatively, single Lisp commands may be invoked by
starting a command line with :lisp.
BUILT-IN HELP
The reference manual can be accessed from the Maxima input prompt. A
description of a given command can be obtained by typing the command
describe(command);
or, simply,
? command
The command
?? command
searches the list of functions for the string command and prints
matching functions.
Demonstration files provide complete examples of problems solved with
Maxima, and may be accessed with the command demo(command);. A
library of user-contributed command files is also provided (the share
library), directed toward a variety of problems.
The reference manual is provided in both info and html formats.
This list includes only commands which the beginner might find useful
to know about prior to studying the reference manual and other texts.
batch("myfile");
Execute the contents of file myfile, which is assumed to
contain Maxima commands.
closefile("myfile");
Close session file opened by a writefile command (see below).
demo("myfile");
Execute the contents of file myfile, which is assumed to
contain Maxima commands, one line at a time.
ev(infolists);
Print the contents of all of the available information lists.
functions;
Print a list of the names of currently defined functions.
infolists;
Print a list of the various available information lists.
kill(objectlist);
Eliminate the object(s) contained within parentheses;
kill(all) Delete all objects created by the user, restoring
Maxima to its initial state.
quit();
Leave Maxima.
reset();
Reset all Maxima control parameters to their default states.
values;
Print a list of the names of currently assigned scalar values.
writefile("myfile");
Write record of session to file myfile; only one file at a
time can be open, and the closefile command must be invoked
prior to leaving Maxima to flush the buffer.
Maxima is capable of producing 2- and 3-dimensional plots. Here is a
simple 2-dimensional example
plot2d (sin(x), [x, -2*%pi, 2*%pi]);
and a simple 3-dimensional example
plot3d (2^(-u^2 + v^2), [u, -5, 5], [v, -7, 7]);
By default plots are made by the gnuplot plotting package. Plots can
be made by other means; see "? plot_options". For more information
about plotting, see "? plot".
/usr/lib/maxima/5.48.1/binary-lisp
Compiled files for lisp implementation lisp
/usr/info primary documentation directory, containing info files
which are used for the 'describe' command, and also for
viewing under emacs or other info viewer.
/usr/share/maxima/5.48.1/doc/html
HTML version of info documentation.
/usr/share/maxima/5.48.1/demo
Maxima demo files.
/usr/share/maxima/5.48.1/emacs
Elisp files for use with Emacs or XEmacs.
/usr/share/maxima/5.48.1/share
Contributed external packages.
/usr/share/maxima/5.48.1/doc/share
Documentation for contributed external packages.
/usr/share/maxima/5.48.1/src
Complete Maxima source.
/usr/share/maxima/5.48.1/tests
Test suite.
/usr/share/maxima/5.48.1/xmaxima
Xmaxima support files.
/usr/libexec/maxima/5.48.1/
Maxima utility scripts.
MAXIMA_USERDIR
Points to a directory for user customization files. Maxima's
default search paths include MAXIMA_USERDIR. Default value:
$HOME/.maxima.
MAXIMA_PREFIX
Maxima looks for its input files in the directory configured
at compile time, /usr. Maxima can be relocated to a different
directory as long as the maxima script maintains the same
relative position with respect to the Maxima input files. If,
for some reason, the maxima script needs to be relocated
independently, MAXIMA_PREFIX needs to be set to point to the
top of the tree holding the input files.
MAXIMA_DIRECTORY
MAXIMA_DIRECTORY is equivalent to MAXIMA_PREFIX. It is
included only for backward compatibility with older versions
of Maxima.
Maxima uses several other environment variables for communication
between the maxima script and the lisp image. All such variables
start with MAXIMA_. They should not need to be modified by the user.
maximarc
maximarc is sourced by the maxima script at startup. It should
be located in $MAXIMA_USERDIR (see above). maximarc can be
used, e.g., to change the user's default lisp implementation
choice to CMUCL by including the line "MAXIMA_LISP=cmucl".
maxima-init.lisp
At startup, Maxima will load the lisp file maxima-init.lisp if
it is found in the search path. For user customization,
maxima-init.lisp should be placed in the $MAXIMA_USERDIR (see
above). Since Maxima typically has a system maxima-init.lisp
in the Maxima share directory, the user may want to copy the
contents of the system maxima-init.lisp into his/her custom
file. Alternatively, the user can load a Lisp initialization
file with another name or location by means of the --init-lisp
or --init command-line options.
maxima-init.mac
At startup, Maxima will load the file maxima-init.mac if it is
found in the search path. For user customization, maxima-
init.mac should be placed in the $MAXIMA_USERDIR (see above).
Alternatively, the user can load a Maxima initialization file
with another name or location by means of the --init-mac or
--init command-line options.
~/.xmaximarc
Here Xmaxima stores personal settings.
~/.xmaxima_history
Here Xmaxima stores the command history.
Old Reference: MACSYMA Reference Manual (volumes 1 and 2). The
Mathlab Group, Laboratory for Computer Science, MIT. Version 10.
January 1983.
Newer references: https://maxima.sourceforge.io
Maxima is a complex system. It includes both known and unknown bugs.
Use at your own risk. The Maxima bug database is available at
https://sourceforge.net/p/maxima/bugs/
New bug reports are always appreciated. Please include the output of
the Maxima function "build_info()" with the report.
MACSYMA (Project MAC's SYmbolic MAnipulation System) was developed by
the Mathlab group of the MIT Laboratory for Computer Science
(originally known as Project MAC), during the years 1969-1972. Their
work was supported by grants NSG 1323 of the National Aeronautics and
Space Administration, N00014-77-C-0641 of the Office of Naval
Research, ET-78-C-02-4687 of the U.S. Department of Energy, and
F49620-79-C-020 of the U.S. Air Force. MACSYMA was further modified
for use under the UNIX operating system (for use on DEC VAX computers
and Sun workstations), by Richard Fateman and colleagues at the
University of California at Berkeley; this version of MACSYMA is
known as VAXIMA. The present version stems from a re-working of the
public domain MIT MACSYMA for GNU Common Lisp, prepared by William
Schelter, University of Texas at Austin until his passing away in
2001. It contains numerous additions, extensions and enhancements of
the original. The original version of this manual page was written
by R. P. C. Rodgers, UCSF School of Pharmacy, San Francisco, CA 94143
(rodgers@maxwell.mmwb.ucsf.edu) in 1989. It was extensively revised
by James Amundson in 2002.
Maxima is now developed and maintained by the Maxima project at
<https://maxima.sourceforge.io>.
wxmaxima(1)
2022-07-18 MAXIMA(1)
NAME
Maxima - Common Lisp version of MACSYMA symbolic mathematics package
released under the GNU Public License
rmaxima - A version of Maxima that supports command autocompletion
Xmaxima - A graphical version of Maxima
SYNOPSIS
maxima [options]
rmaxima [options]
xmaxima [options]
DESCRIPTION
Maxima is a version of the MIT-developed MACSYMA system, modified to
run under Common Lisp. It is an interactive expert system and
programming environment for symbolic and numerical mathematical
manipulation. Written in Lisp, it allows differentiation,
integration, solution of linear or polynomial equations, factoring of
polynomials, expansion of functions in Laurent or Taylor series,
computation of Poisson series, matrix and tensor manipulations, and
two- and three-dimensional graphics. Procedures may be written using
an ALGOL-like syntax, and both Lisp-like functions and pattern
matching facilities are provided. Files containing Maxima objects
may be read from and written to disk files. Pre-written Maxima
commands may be read from a file and executed, allowing batch-mode
use.
OPTIONS
-b file, --batch=file
Process file in noninteractive mode.
--batch-lisp=file
Process Lisp file file in noninteractive mode.
--batch-string=string
Process string in noninteractive mode.
-d, --directories
Display Maxima directory information.
--disable-readline
Disable readline support.
-g, --enable-lisp-debugger
Enable Lisp debugger.
-h, --help
Display a brief usage summary.
--init=string
Load the Maxima and Lisp initialization files string.mac and
string.lisp at startup.
--init-mac=file
Load the Maxima initialization file file at startup.
--init-lisp=file
Load the Lisp initialization file file at startup.
-l lisp, --lisp=lisp
Use Lisp implementation lisp. Use --list-avail to see the list
of possible values.
--list-avail
List the available Lisp and Maxima versions.
-p lisp_file, --preload-lisp=lisp_file
Preload lisp_file.
-q, --quiet
Suppress Maxima start-up message.
-Q, --quit-on-error
Quit, and return an exit code 1, when Maxima encounters an
error.
-r string, --run-string=string
Process string in interactive mode.
-s port, --server=port
Connect Maxima to server on port. Note that this does not
create a Maxima server; Maxima is the client.
-u version, --use-version=version
Launch Maxima version version. Use --list-avail to see the
list of possible values.
--userdir=directory
Use directory for user directory (default is
%USERPROFILE%/maxima for Windows, $HOME/.maxima for others)
-v, --verbose
Print extra information from the Maxima wrapper script.
--version
Print the (default) installed version.
--very-quiet
Suppress expression labels, the Maxima start-up message,
verification of the HTML index and loading related messages.
--very-very-quiet In addition to --very-quiet, suppress most
printed output.
-X Lisp options, --lisp-options=Lisp options
Options to be given to the underlying Lisp.
--no-init, --norc
Do not load the init file(s) on startup.
--no-verify-html-index
Do not verify on startup that the set of html topics is
consistent with text topics.
--suppress-input-echo
Do not print input expressions when processing
noninteractively.
INTRODUCTORY INSTRUCTIONS
Upon initialization, maxima prints a startup message, then a command
line prompt:
(%i1)
All Maxima commands must be concluded with either:
1) a semicolon (in which case the result of the command is echoed
on a display line, prefaced by %o with an appended sequence
number), or
2) a dollar sign (which suppresses printing of a display line).
EXAMPLE
(%i1) diff(sin(x),x);
(%o1) cos(x)
(%i2) integrate(%o1,x);
(%o2) sin(x)
The user types in commands which create Maxima objects (such as
functions and system variables) and which manipulate these objects.
On UNIX it may be preferable to run Maxima under Gnu Emacs or XEmacs.
You can do this by invoking shell mode in emacs, and then invoking
maxima. Preferably, install maxima.el from the distribution and use
the command:
M-x maxima
The main advantage of working inside emacs is that it provides a
complete history of input/output. If you execute the command
display2d: false
you will be able to use your output as input, by simply killing and
yanking.
Lisp is built into Maxima. The function to_lisp() enters the Lisp
read-eval-print loop. The Lisp function (run) may be used to return
to Maxima. Alternatively, single Lisp commands may be invoked by
starting a command line with :lisp.
BUILT-IN HELP
The reference manual can be accessed from the Maxima input prompt. A
description of a given command can be obtained by typing the command
describe(command);
or, simply,
? command
The command
?? command
searches the list of functions for the string command and prints
matching functions.
Demonstration files provide complete examples of problems solved with
Maxima, and may be accessed with the command demo(command);. A
library of user-contributed command files is also provided (the share
library), directed toward a variety of problems.
OTHER DOCUMENTATION
The reference manual is provided in both info and html formats.
COMMAND PRIMER
This list includes only commands which the beginner might find useful
to know about prior to studying the reference manual and other texts.
batch("myfile");
Execute the contents of file myfile, which is assumed to
contain Maxima commands.
closefile("myfile");
Close session file opened by a writefile command (see below).
demo("myfile");
Execute the contents of file myfile, which is assumed to
contain Maxima commands, one line at a time.
ev(infolists);
Print the contents of all of the available information lists.
functions;
Print a list of the names of currently defined functions.
infolists;
Print a list of the various available information lists.
kill(objectlist);
Eliminate the object(s) contained within parentheses;
kill(all) Delete all objects created by the user, restoring
Maxima to its initial state.
quit();
Leave Maxima.
reset();
Reset all Maxima control parameters to their default states.
values;
Print a list of the names of currently assigned scalar values.
writefile("myfile");
Write record of session to file myfile; only one file at a
time can be open, and the closefile command must be invoked
prior to leaving Maxima to flush the buffer.
PLOTTING COMMANDS
Maxima is capable of producing 2- and 3-dimensional plots. Here is a
simple 2-dimensional example
plot2d (sin(x), [x, -2*%pi, 2*%pi]);
and a simple 3-dimensional example
plot3d (2^(-u^2 + v^2), [u, -5, 5], [v, -7, 7]);
By default plots are made by the gnuplot plotting package. Plots can
be made by other means; see "? plot_options". For more information
about plotting, see "? plot".
FILES
/usr/lib/maxima/5.48.1/binary-lisp
Compiled files for lisp implementation lisp
/usr/info primary documentation directory, containing info files
which are used for the 'describe' command, and also for
viewing under emacs or other info viewer.
/usr/share/maxima/5.48.1/doc/html
HTML version of info documentation.
/usr/share/maxima/5.48.1/demo
Maxima demo files.
/usr/share/maxima/5.48.1/emacs
Elisp files for use with Emacs or XEmacs.
/usr/share/maxima/5.48.1/share
Contributed external packages.
/usr/share/maxima/5.48.1/doc/share
Documentation for contributed external packages.
/usr/share/maxima/5.48.1/src
Complete Maxima source.
/usr/share/maxima/5.48.1/tests
Test suite.
/usr/share/maxima/5.48.1/xmaxima
Xmaxima support files.
/usr/libexec/maxima/5.48.1/
Maxima utility scripts.
ENVIRONMENT VARIABLES
MAXIMA_USERDIR
Points to a directory for user customization files. Maxima's
default search paths include MAXIMA_USERDIR. Default value:
$HOME/.maxima.
MAXIMA_PREFIX
Maxima looks for its input files in the directory configured
at compile time, /usr. Maxima can be relocated to a different
directory as long as the maxima script maintains the same
relative position with respect to the Maxima input files. If,
for some reason, the maxima script needs to be relocated
independently, MAXIMA_PREFIX needs to be set to point to the
top of the tree holding the input files.
MAXIMA_DIRECTORY
MAXIMA_DIRECTORY is equivalent to MAXIMA_PREFIX. It is
included only for backward compatibility with older versions
of Maxima.
Maxima uses several other environment variables for communication
between the maxima script and the lisp image. All such variables
start with MAXIMA_. They should not need to be modified by the user.
CUSTOMIZATION FILES
maximarc
maximarc is sourced by the maxima script at startup. It should
be located in $MAXIMA_USERDIR (see above). maximarc can be
used, e.g., to change the user's default lisp implementation
choice to CMUCL by including the line "MAXIMA_LISP=cmucl".
maxima-init.lisp
At startup, Maxima will load the lisp file maxima-init.lisp if
it is found in the search path. For user customization,
maxima-init.lisp should be placed in the $MAXIMA_USERDIR (see
above). Since Maxima typically has a system maxima-init.lisp
in the Maxima share directory, the user may want to copy the
contents of the system maxima-init.lisp into his/her custom
file. Alternatively, the user can load a Lisp initialization
file with another name or location by means of the --init-lisp
or --init command-line options.
maxima-init.mac
At startup, Maxima will load the file maxima-init.mac if it is
found in the search path. For user customization, maxima-
init.mac should be placed in the $MAXIMA_USERDIR (see above).
Alternatively, the user can load a Maxima initialization file
with another name or location by means of the --init-mac or
--init command-line options.
~/.xmaximarc
Here Xmaxima stores personal settings.
~/.xmaxima_history
Here Xmaxima stores the command history.
REFERENCES
Old Reference: MACSYMA Reference Manual (volumes 1 and 2). The
Mathlab Group, Laboratory for Computer Science, MIT. Version 10.
January 1983.
Newer references: https://maxima.sourceforge.io
BUGS
Maxima is a complex system. It includes both known and unknown bugs.
Use at your own risk. The Maxima bug database is available at
https://sourceforge.net/p/maxima/bugs/
New bug reports are always appreciated. Please include the output of
the Maxima function "build_info()" with the report.
AUTHORS
MACSYMA (Project MAC's SYmbolic MAnipulation System) was developed by
the Mathlab group of the MIT Laboratory for Computer Science
(originally known as Project MAC), during the years 1969-1972. Their
work was supported by grants NSG 1323 of the National Aeronautics and
Space Administration, N00014-77-C-0641 of the Office of Naval
Research, ET-78-C-02-4687 of the U.S. Department of Energy, and
F49620-79-C-020 of the U.S. Air Force. MACSYMA was further modified
for use under the UNIX operating system (for use on DEC VAX computers
and Sun workstations), by Richard Fateman and colleagues at the
University of California at Berkeley; this version of MACSYMA is
known as VAXIMA. The present version stems from a re-working of the
public domain MIT MACSYMA for GNU Common Lisp, prepared by William
Schelter, University of Texas at Austin until his passing away in
2001. It contains numerous additions, extensions and enhancements of
the original. The original version of this manual page was written
by R. P. C. Rodgers, UCSF School of Pharmacy, San Francisco, CA 94143
(rodgers@maxwell.mmwb.ucsf.edu) in 1989. It was extensively revised
by James Amundson in 2002.
Maxima is now developed and maintained by the Maxima project at
<https://maxima.sourceforge.io>.
SEE ALSO
wxmaxima(1)
2022-07-18 MAXIMA(1)