Maxima (software)
   HOME

TheInfoList



OR:

Maxima () is a software package for performing
computer algebra In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating expression (mathematics), ...
calculations in mathematics and the physical sciences. It is written in
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ''ANSI INCITS 226-1994 (S2018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperli ...
and runs on all
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
platforms such as
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
,
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
, and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, as well as under
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and Android. It is
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
released under the terms of the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL).


History

Maxima is based on a 1982 version of Macsyma, which was developed at
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
with funding from the
United States Department of Energy The United States Department of Energy (DOE) is an executive department of the U.S. federal government that oversees U.S. national energy policy and energy production, the research and development of nuclear power, the military's nuclear w ...
and other government agencies. A version of Macsyma was maintained by Bill Schelter from 1982 until his death in 2001. In 1998, Schelter obtained permission from the Department of Energy to release his version under the GPL. That version, now called Maxima, is maintained by an independent group of users and developers. Maxima does not include any of the many modifications and enhancements made to the commercial version of Macsyma during 1982–1999. Though the core functionality remains similar, code depending on these enhancements may not work on Maxima, and bugs which were fixed in Macsyma may still be present in Maxima, and vice versa. Maxima participated in Google Summer of Code in 2019 under International Neuroinformatics Coordinating Facility.


Symbolic calculations

Like most computer algebra systems, Maxima supports a variety of ways of reorganizing symbolic algebraic expressions, such as polynomial factorization,
polynomial greatest common divisor In algebra, the greatest common divisor (frequently abbreviated as GCD) of two polynomials is a polynomial, of the highest possible degree, that is a factor of both the two original polynomials. This concept is analogous to the greatest common d ...
calculation, expansion, separation into real and imaginary parts, and transformation of trigonometric functions to exponential and vice versa. It has a variety of techniques for simplifying algebraic expressions involving trigonometric functions, roots, and exponential functions. It can calculate symbolic
antiderivative In calculus, an antiderivative, inverse derivative, primitive function, primitive integral or indefinite integral of a continuous function is a differentiable function whose derivative is equal to the original function . This can be stated ...
s ("indefinite integrals"),
definite integral In mathematics, an integral is the continuous analog of a sum, which is used to calculate areas, volumes, and their generalizations. Integration, the process of computing an integral, is one of the two fundamental operations of calculus,Int ...
s, and limits. It can derive closed-form
series expansion In mathematics, a series expansion is a technique that expresses a Function (mathematics), function as an infinite sum, or Series (mathematics), series, of simpler functions. It is a method for calculating a Function (mathematics), function that ...
s as well as terms of Taylor-Maclaurin- Laurent series. It can perform matrix manipulations with symbolic entries. Maxima is a general-purpose system, and special-case calculations such as factorization of large numbers, manipulation of extremely large
polynomial In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
s, etc. are sometimes better done in specialized systems.


Numeric calculations

Maxima specializes in symbolic operations, but it also offers numerical capabilities such as arbitrary-precision
integer An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
,
rational number In mathematics, a rational number is a number that can be expressed as the quotient or fraction of two integers, a numerator and a non-zero denominator . For example, is a rational number, as is every integer (for example, The set of all ...
, and floating-point numbers, limited only by space and time constraints.


Programming

Maxima includes a complete programming language with
ALGOL ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the ...
-like syntax but
Lisp Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation. Originally specified in the late 1950s, ...
-like
semantics Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
. It is written in
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ''ANSI INCITS 226-1994 (S2018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperli ...
and can be accessed programmatically and extended, as the underlying Lisp can be called from Maxima. It uses gnuplot for drawing. For calculations using floating point and arrays heavily, Maxima has translators from the Maxima language to other programming languages (notably Fortran), which may execute more efficiently.


Interfaces

Various
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s (GUIs) are available for Maxima:
wxMaxima
is high-quality graphical front-end using the
wxWidgets wxWidgets (formerly wxWindows) is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no s ...
framework. wxMaxima provides a cell structure similar to the Mathematica notebook as shown in the figure to the right. Sessions in wxMaxima can be saved in a variety of file formats for later use. * There is a kernel for
Project Jupyter Project Jupyter (pronounced "Jupiter") is a project to develop open-source software, Open standard, open standards, and services for interactive computing across multiple Programming language, programming languages. It was spun off from IPython ...
, a flexible,
notebook A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking and more. ...
-style GUI written in Python. * Cantor, using Qt, can interface with Maxima (along with SageMath, R, and KAlgebra) * The GNU TeXmacs and
LyX LyX (styled as LYX; pronounced ) is an open-source software, open source, graphical user interface document processor based on the LaTeX typesetting system. Unlike most word processors, which follow the WYSIWYG ("what you see is what you get") ...
mathematical editor programs can be used to provide an interactive GUI for Maxima, as can SageMath. Other options include the Imaxima front end, as well as an
Emacs Emacs (), originally named EMACS (an acronym for "Editor Macros"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
and XEmacs interaction mode which is activated by Imaxima. * Climaxima, a CLIM-based front-end.


Examples of Maxima code


Basic operations


Arbitrary-precision arithmetic

bfloat(sqrt(2)), fpprec=40; 1.41421356237309504880168872420969807857 \cdot 10^0


Function

f(x):=x^3$ f(4); 64


Expand

expand((a-b)^3); -b^3+3 ab^2-3a^2b+a^3


Factor

factor(x^2-1); (x-1)(x+1)


Solving equations

x^2+a \ x + 1=0 solve(x^2 + a*x + 1, x); =-\Biggl(\frac\Biggr),x=\frac/math>


Solving equations numerically

\cos x = x find_root(cos(x) = x, x, 0, 1); 0.7390851332151607 bf_find_root(cos(x) = x, x, 0, 1), fpprec = 50; 7.3908513321516064165531208767387340401341175890076 \cdot 10^


Indefinite integral

\int x^2+\cos x\ d x integrate(x^2 + cos(x), x); \sin x + \frac


Definite integral

\int_^\frac\, dx integrate(1/(x^3 + 1), x, 0, 1), ratsimp; \frac


Numerical integral

\int_^ \sin(\sin (x)) \, dx quad_qags(sin(sin(x)), x, 0, 2) 1.247056058244003


Derivative

\cos^2 x diff(cos(x)^2, x, 3); 8 \cos\sin


Limit

\lim_ \frac limit((1+sinh(x))/exp(x), x, inf); \frac


Number theory

primes(10, 20); 1,13,17,19/math> fib(10); 55


Series

\sum_^\infty \frac sum(1/x^2, x, 1, inf), simpsum; \frac


Series expansion

taylor(sin(x), x, 0, 9); x-\frac+\frac-\frac+\frac niceindices(powerseries(cos(x), x, 0)); \sum_^\infty \frac


Special functions

bessel_j(0, 4.5); -0.3205425089851214 airy_ai(1.5); 0.07174949700810543


See also

* Comparison of computer algebra systems * SageMath, a free mathematics software which borrows many libraries from Maxima


References


Further reading

*


External links

*
wxMaxima
{{Authority control Common Lisp (programming language) software Computer algebra system software for Linux Computer algebra system software for macOS Computer algebra system software for Windows Cross-platform free software Free computer algebra systems Free educational software Free software programmed in Lisp Software that uses wxWidgets