Introduction
PolynomialTestSystems.jl is a collection of systems of polynomials for benchmarking, testing etc. Most of the polynomial systems are obtained from the database of polynomial systems created by Jan Verschelde and available under http://homepages.math.uic.edu/~jan/.
Format
PolynomialTestSystems.TestSystem
— Type.TestSystem(equations;
multi_bezout_number=nothing,
mixed_volume=nothing,
nsolutions=nothing,
nreal_solutions=nothing)
Create a TestSystem
.
PolynomialTestSystems.equations
— Function.equations(::TestSystem)
Get the the polynomial system.
PolynomialTestSystems.nvariables
— Function.nvariables(::TestSystem)
Obtain the number of variables of the test system.
PolynomialTestSystems.mixed_volume
— Function.mixed_volume(system)::Union{Nothing, Int}
Returns the number mixed volume of the system if known.
PolynomialTestSystems.nsolutions
— Function.nsolutions(system)::Union{Nothing, Int}
Returns the number of (complex) solutions of the system if known.
PolynomialTestSystems.nreal_solutions
— Function.nreal_solutions(system)::Union{Nothing, Int}
Returns the number of real solutions of the system if known.
PolynomialTestSystems.bezout_number
— Function.bezout_number(system)
Returns the bezout number of the system.
PolynomialTestSystems.multi_bezout_number
— Function.multi_bezout_number(system)::Union{Nothing, Tuple{Int, Vector{Vector{PolyVar{true}}}}}
Returns a tuple containing the multi-homogeneous bezout number as well as the corresponding grouping of the variables if known.
Systems
PolynomialTestSystems.chandra
— Function.chandra(n)
The Chandrasekhar H-Equation for n
.
References
Laureano Gonzalez-Vega: "Some examples on problem solving by using the symbolic viewpoint when dealing with polynomial systems of equations". in: "Computer Algebra in Science and Engineering", Editors: J. Fleischer, J. Grabmeier, F.W. Hehl and W. Kuechlin. Pages 102-116 World Scientific Publishing, 1995.
S. Chandrasekhar: "Radiative Transfer", Dover, NY, 1960.
C.T. Kelley: "Solution of the Chandrasekhar H-equation by Newton's method". J. Math. Phys., 21 (1980), pp. 1625-1628.
Jorge J. More': "A collection of nonlinear model problems" in: "Computational Solution of Nonlinear Systems of Equations", Editors: Eugene L. Allgower and Kurt Georg. Pages 723-762. Lectures in Applied Mathematics, Volume 26, AMS, 1990.
NOTE : the parameter c equals 0.51234. In general c can be any number in the interval (0,1]
PolynomialTestSystems.cyclic
— Function.cyclic(n)
The cyclic n-roots problems.
References
Göran Björck and Ralf Fröberg: `A faster way to count the solutions of inhomogeneous systems of algebraic equations, with applications to cyclic n-roots', in J. Symbolic Computation (1991) 12, pp 329–336.
PolynomialTestSystems.katsura
— Function.katsura(n)
A problem of magnetism in physics.
References
From the PoSSo test suite.
Shigetoshi Katsura: "Users posing problems to PoSSO", in the PoSSo Newsletter, no. 2, July 1994, edited by L. Gonzalez-Vega and T. Recio. Available at http://janet.dm.unipi.it/
S. Katsura, W. Fukuda, S. Inawashiro, N.M. Fujiki and R. Gebauer, Cell Biophysics, Vol 11, pages 309–319, 1987.
W. Boege, R. Gebauer, and H. Kredel: "Some examples for solving systems of algebraic equations by calculating Groebner bases", J. Symbolic Computation, 2:83-98, 1986.
Shigetoshi Katsura: "Spin Glass Problem by the Method of Integral Equation of the Effective Field". In "New Trends in Magnetism", edited by Mauricio D. Coutinho-Filho and Sergio M. Resende, pages 110-121, World Scientific, 1990.
PolynomialTestSystems.fourbar
— Function.fourbar()
A four-bar design problem, so-called 5-point problem.
References
See Morgan, A.P. and Wampler, C.W. : `Solving a planar four-bar design problem using continuation' in Transaction of the ASME, J. of Mechanical Design, Vol. 112 pages 544-550, 1990.
For the coefficients, see Table 2, a = (1,0). This is the start system, with five random precision points, that has been used to solve twenty other test systems.
PolynomialTestSystems.rps10
— Function.rps10()
RPS Serial Chains for 10 positions on a circular hyperboloid
References
Hai-Jun Su and J. Micheal McCarthy: "Kinematics Synthesis of RPS Serial Chains", In Proceedings of the ASME Design Engineering Technical Conferences (CDROM). Paper DETC03/DAC-48813. Chicago, IL, Sept.02-06, 2003.
PolynomialTestSystems.ipp
— Function.ipp()
The six-revolute-joint problem of mechanics.
References
A. Morgan and A. Sommese `Computing all solutions to polynomial systems using homotopy continuation', Appl. Math. Comput., Vol. 24, pp 115-138, 1987.
PolynomialTestSystems.ipp2
— Function.ipp2()
The 6R inverse position problem.
References
This system occurs as Example 3.3 in a paper by Charles Wampler: `Bezout Number Calculations for Multi-Homogeneous Polynomial Systems', Appl. Math. Comput. vol. 51 No. 2–3, pp. 143–157.
For the original formulation of the problem, see Charles Wampler and Alexander Morgan: `Solving the 6R inverse position problem using a generic-case solution methodology', Mech. Mach. Theory, Vol. 26, No. 1, pp. 91-106, 1991.
PolynomialTestSystems.boon
— Function.boon()
Neurofysiology, posted by Sjirk Boon. Note that the system
References
The system has been posted to the newsgroup sci.math.num-analysis by Sjirk Boon.
P. Van Hentenryck, D. McAllester and D. Kapur: `Solving Polynomial Systems Using a Branch and Prune Approach' SIAM J. Numerical Analysis, Vol. 34, No. 2, pp 797-827, 1997.
PolynomialTestSystems.heart
— Function.heart()
The heart-dipole problem.
References
Nelsen, C.V. and Hodgkin, B.C.: `Determination of magnitudes, directions, and locations of two independent dipoles in a circular conducting region from boundary potential measurements' IEEE Trans. Biomed. Engrg. Vol. BME-28, No. 12, pages 817-823, 1981.
Morgan, A.P. and Sommese, A.J.: `Coefficient-Parameter Polynomial Continuation' Appl. Math. Comput. Vol. 29, No. 2, pages 123-160, 1989. Errata: Appl. Math. Comput. 51:207 (1992)
Morgan, A.P. and Sommese, A. and Watson, L.T.: `Mathematical reduction of a heart dipole model' J. Comput. Appl. Math. Vol. 27, pages 407-410, 1989.
PolynomialTestSystems.d1
— Function.d1()
A a sparse system, known as benchmark D1.
References
H. Hong and V. Stahl: `Safe Starting Regions by Fixed Points and Tightening', Computing 53(3-4): 322-335, 1995.
PolynomialTestSystems.bacillus_subtilis
— Function.bacillus_subtilis()
The system comes from biochemical reactions (Published here https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005267). Basically it models how the bacteris B. subtilis produces a stress response protein, sigmaB, in response to some stress input. This input to the system is the concentration of a phosphatase (a kind of protein). In this system I call that variable phos
PolynomialTestSystems.griewank_osborne
— Function.griewank_osborne()
This is an illustration of a system for which Newton's method fails near an isolated root. No matter how close one starts to the multiplicity-three isolated root at the origin, (x,y) = (0,0), Newton's method diverges.
Reference: Griewank & Osborne, 1983
PolynomialTestSystems.tritangents
— Function.tritangents()
See https://www.juliahomotopycontinuation.org/examples/tritangents/.
PolynomialTestSystems.cyclooctane
— Function.cyclooctane(c::Float64=2.0)
This is a system that describes the confirmation space of cyclooctane, where the squared distance between neighboring carbon atoms is c
. See
juliahomotopycontinuation.org/examples/cyclooctane/
for a detailed description.