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 Macsyma (; "Project MAC's SYmbolic MAnipulator") is one of the oldest general-purpose computer algebra systems still in wide use. It was originally developed from 1968 to 1982 at MIT's Project MAC. In 1982, Macsyma was licensed to Symbolics and ...
, 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 William Frederick Schelter (1947 – July 30, 2001) was a professor of mathematics at The University of Texas at Austin and a Lisp developer and programmer. Schelter is credited with the development of the GNU Common Lisp (GCL) implementation ...
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 The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
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 In mathematics and computer algebra, factorization of polynomials or polynomial factorization expresses a polynomial with coefficients in a given field or in the integers as the product of irreducible factors with coefficients in the same doma ...
,
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 Limit or Limits may refer to: Arts and media * ''Limit'' (manga), a manga by Keiko Suenobu * ''Limit'' (film), a South Korean film * Limit (music), a way to characterize harmony * "Limit" (song), a 2016 single by Luna Sea * "Limits", a 2009 ...
. 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 Laurent may refer to: *Laurent (name), a French masculine given name and a surname **Saint Laurence (aka: Saint ''Laurent''), the martyr Laurent **Pierre Alphonse Laurent, mathematician **Joseph Jean Pierre Laurent, amateur astronomer, discoverer ...
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 In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base. Numbers of this form ...
, 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 Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
. *
Cantor A cantor or chanter is a person who leads people in singing or sometimes in prayer. Cantor as a profession generally refers to those leading a Jewish congregation, although it also applies to the lead singer or choir director in Christian contexts. ...
, using Qt, can interface with Maxima (along with
SageMath SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, group theory, differentia ...
, R, and
KAlgebra KAlgebra is a mathematical graph calculator included in the KDE education package. While it is based on the MathML content markup language, knowledge of MathML is not required for use. The calculator includes numerical, logical, symbolic, and ...
) * The
GNU TeXmacs GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as a variant of GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maint ...
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 XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify ...
interaction mode which is activated by Imaxima. * Climaxima, a
CLIM The Common Lisp Interface Manager (CLIM) is a Common Lisp-based programming interface for creating user interfaces, i.e., graphical user interfaces (GUIs). It provides an application programming interface (API) to user interface facilities for the ...
-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 SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, group theory, differentia ...
, 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