ApCoCoA-1:Bertini.BCMSolve
Bertini.BCMSolve
Solves a zero dimensional non-homogeneous polynomial system of equations using multi-homogenization and user configurations.
Syntax
Bertini.BCMSolve(P:LIST, ConfigSet:LIST)
Description
Please note: The function(s) explained on this page is/are using the ApCoCoAServer. You will have to start the ApCoCoAServer in order to use it/them.
This function solves a polynomial system of equations using multihomogeneous homotopy. The system of polynomials must be square. If the system has N variables then multihomogeneous homotopy will introduce N homogeneous variables to solve the system. It uses total degree homotopy to find all isolated solutions and enables you to use all kinds of user configurations provided by Bertini. Please read about configuration settings provided in Bertini manual. The system of polynomials should be non-homogeneous. The output will be the list of all finite solutions.
@param P: List of polynomials of the given system.
@param ConfigSet: List of strings representing configurations to be used. Bertini uses multiple configuration settings. These configurations should be provided by the user. If you want to use default configurations then leave this list empty. The use of configuration settings is little tricky but very usefull. You can sifft from one kind of solving to the other just by changing of adding some configurations. For details about configuration settings see Bertini mannual http://www.nd.edu/~sommese/bertini/BertiniUsersManual.pdf.
@return A list of lists containing the finite solutions of the polynomial system P.
Example
-- We want to solve the system x^2+y^2-5=0,xy-2=0, using multi-homogenization, for adaptive precision. Use S ::= QQ[x,y]; P := [x^2+y^2-5,xy-2]; ConfigSet := [<quotes>MPTYPE: 2</quotes>]; -- Then we compute the solution with Bertini.BCMSolve(P,ConfigSet); -- And we achieve a list of lists containing finite solutions. ---------------------------------------- [ [ Vector(1000000000000017/1000000000000000, 145132717332349/15625000000000000000000000000), Vector(49999999999999/25000000000000, -3537662353156057/100000000000000000000000000000) ], [ Vector(-62500000000003/62500000000000, 4415730565392687/100000000000000000000000000000), Vector(-499999999999983/250000000000000, -66866973306543/400000000000000000000000000) ], [ Vector(999999999999983/500000000000000, -1787591178181031/50000000000000000000000000000), Vector(1000000000000013/1000000000000000, 281412486737749/25000000000000000000000000000) ], [ Vector(-499999999999999/250000000000000, -3956938527452181/1000000000000000000000000000000), Vector(-9999999999999989/10000000000000000, -596634837824491/1250000000000000000000000000000) ] ] --For Bertini output files please refer to ApCoCoA directory/Bertini.
Example
--The same examle as above but this time using regeneration --Regeneration is an equation-by-equation method for finding the non-singular isolated solutions. -- We want to solve the system x^2+y^2-5=0,xy-2=0, using multi-homogenization, for adaptive precision. Use S ::= QQ[x,y]; P := [x^2+y^2-5,xy-2]; ConfigSet := ["USEREGENERATION: 1"]; -- Then we compute the solution with Bertini.BCMSolve(P,ConfigSet); -- And we achieve a list of lists containing finite solutions. ---------------------------------------- [ [ Vector(9999999999999999/10000000000000000, -643977180168769/1250000000000000000000000000000), Vector(2, 1660674691787513/5000000000000000000000000000000) ], [ Vector(-2000000000000001/1000000000000000, 584020313856301/500000000000000000000000000000), Vector(-9999999999999999/10000000000000000, 45486167963413/125000000000000000000000000000) ], [ Vector(2, 2989952880295369/1000000000000000000000000000000), Vector(9999999999999993/10000000000000000, 732258034227497/5000000000000000000000000000000) ], [ Vector(-1, -879366755419571/5000000000000000000000000000000), Vector(-2, 4460430333228999/10000000000000000000000000000000) ] ] --For Bertini output files please refer to ApCoCoA directory/Bertini.
See also