MPSolve

Last updated
MPSolve
Original author(s) Dario Bini, Giuseppe Fiorentino, and Leonardo Robol
Stable release
Version 3.1.5 / April 2017
Written in C
Operating system Linux, Windows, Mac OS X
Platform PC
Available inEnglish
Type Mathematical software
License GPLv3
Website numpi.dm.unipi.it/software/mpsolve

MPSolve (Multiprecision Polynomial Solver) is a package for the approximation of the roots of a univariate polynomial. It uses the Aberth method, [1] combined with a careful use of multiprecision. [2]

Contents

"Mpsolve takes advantage of sparsity, and has special hooks for polynomials that can be evaluated efficiently by straight-line programs" [3]

Implementation

The program is written mostly in ANSI C and makes use of the GNU Multi-Precision Library. It uses a command-line interface (CLI) and, starting from version 3.1.0 has also a GUI and interfaces for MATLAB and GNU/Octave.

Usage

The executable program of the package is called mpsolve. It can be run from command line in console. The executable file for the graphical user interface is called xmpsolve, and the MATLAB and Octave functions are called mps_roots. They behave similarly to the function roots that is already included in these software packages.

Output

Typically output will be on the screen. It may also be saved as a text file (with res extension) and plotted in gnuplot. Direct plotting in gnuplot is also supported on Unix systems.

Mcenter10.jpg

See also

Related Research Articles

<span class="mw-page-title-main">MATLAB</span> Numerical computing environment and programming language

MATLAB is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.

gnuplot Command-line and GUI plotting program

gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems . Originally released in 1986, its listed authors are Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo "and many others." Despite its name, this software is not part of the GNU Project.

<span class="mw-page-title-main">GNU Octave</span> Numerical analysis programming language

GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language. As part of the GNU Project, it is free software under the terms of the GNU General Public License.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

<span class="mw-page-title-main">Scilab</span>

Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling, simulation of explicit and implicit dynamical systems and symbolic manipulations.

<span class="mw-page-title-main">GNU TeXmacs</span> Open-source word processor

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 maintained by Joris van der Hoeven and a group of developers. The program produces structured documents with a WYSIWYG user interface. New document styles can be created by the user. The editor provides high-quality typesetting algorithms and TeX and other fonts for publishing professional looking documents.

<span class="mw-page-title-main">Curve fitting</span> Process of constructing a curve that has the best fit to a series of data points

Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data is required, or smoothing, in which a "smooth" function is constructed that approximately fits the data. A related topic is regression analysis, which focuses more on questions of statistical inference such as how much uncertainty is present in a curve that is fit to data observed with random errors. Fitted curves can be used as an aid for data visualization, to infer values of a function where no data are available, and to summarize the relationships among two or more variables. Extrapolation refers to the use of a fitted curve beyond the range of the observed data, and is subject to a degree of uncertainty since it may reflect the method used to construct the curve as much as it reflects the observed data.

Perl Data Language is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, machine learning, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations are supported.

gretl

gretl is an open-source statistical package, mainly for econometrics. The name is an acronym for GnuRegression, Econometrics and Time-seriesLibrary.

<span class="mw-page-title-main">Macaulay2</span> Computer algebra system

Macaulay2 is a free computer algebra system created by Daniel Grayson and Michael Stillman for computation in commutative algebra and algebraic geometry.

<span class="mw-page-title-main">Mathomatic</span> Computer algebra system

Mathomatic is a free, portable, general-purpose computer algebra system (CAS) that can symbolically solve, simplify, combine, and compare algebraic equations, and can perform complex number, modular, and polynomial arithmetic, along with standard arithmetic. It does some symbolic calculus (derivative, extrema, Taylor series, and polynomial integration and Laplace transforms), numerical integration, and handles all elementary algebra except logarithms. Trigonometric functions can be entered and manipulated using complex exponentials, with the GNU m4 preprocessor. Not currently implemented are general functions like f(x), arbitrary-precision and interval arithmetic, and matrices.

<span class="mw-page-title-main">Euler (software)</span>

Euler is a free and open-source numerical software package. It contains a matrix language, a graphical notebook style interface, and a plot window. Euler is designed for higher level math such as calculus, optimization, and statistics.

<span class="mw-page-title-main">FreeMat</span>

FreeMat is a free open-source numerical computing environment and programming language, similar to MATLAB and GNU Octave. In addition to supporting many MATLAB functions and some IDL functionality, it features a codeless interface to external C, C++, and Fortran code, further parallel distributed algorithm development, and has plotting and 3D visualization capabilities. Community support takes place in moderated Google Groups.

Quantian OS was a remastering of Knoppix/Debian for computational sciences. The environment was self-configuring and directly bootable CD/DVD that turns any PC or laptop into a Linux workstation. Quantian also incorporated clusterKnoppix and added support for openMosix, including remote booting of light clients in an openMosix terminal server context permitting rapid setup of a SMP cluster computer.

Genius is a free open-source numerical computing environment and programming language, similar in some aspects to MATLAB, GNU Octave, Mathematica and Maple. Genius is aimed at mathematical experimentation rather than computationally intensive tasks. It is also very useful as just a calculator. The programming language is called GEL and aims to have a mathematically friendly syntax. The software comes with a command-line interface and a GUI, which uses the GTK+ libraries. The graphical version supports both 2D and 3D plotting. The graphical version includes a set of tutorials originally aimed at in class demonstrations.

Chebfun is a free/open-source software system written in MATLAB for numerical computation with functions of a real variable. It is based on the idea of overloading MATLAB's commands for vectors and matrices to analogous commands for functions and operators. Thus, for example, whereas the SUM command in MATLAB adds up the elements of a vector, the SUM command in Chebfun evaluates a definite integral. Similarly the backslash command in MATLAB becomes a Chebfun command for solving differential equations.

References

  1. "Design, Analysis, and Implementation of a Multiprecision Polynomial Rootfinder" by D. A. Bini and G. Fiorentino published in Numerical Algorithms, Volume 23 (2000), pages 127-173
  2. "Solving secular and polynomial equations: A multiprecision algorithm" by D. A. Bini and L. Robol published in Journal of Computational and Applied Mathematics, Volume 272 (2015)
  3. "Comparison of performance of MPSolve and Eigensolve by Steven Fortune". Archived from the original on 2007-08-15. Retrieved 2008-04-05.