ApCoCoA-1:Bertini.BPMCSolve

From ApCoCoAWiki
This article is about a function from ApCoCoA-1.

Bertini.BPMCSolve

Membership testing for a positive dimensional homogeneous or non-homogeneous polynomial system.

Syntax

Bertini.BPMCSolve(P:LIST, SysTyp:STRING , MPoints:LIST, ConfigSet:LIST):Output in ApCoCoAServer

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.

Please note: You need to write (or generate by using the function Bertini.BPCSolve) the witness data file. Then save this file with the name "witness_data" in the Bertini directory within the ApCoCoA directory. Otherwise you will get an error message. It is highly recommended to read about membership testing before using this function. The best and comprehensive reference for this is chapter 15 of the book "The Numerical Solution of Systems of Polynomials" by A. J. Sommese and C. W. Wampler.

In numerical algebraic geometry an affine algebraic set Z is the solution set of some system of polynomials. By membership testing we mean the following: Given a witness superset W, for an affine algebraic set Z. Find the decomposition of W into a numerical irreducible decomposition for Z.

For membership, Bertini reads in information about the witness set corresponding to the target system in the input file from the witness_data file. It then reads in member points, all points that the user would like to test. Bertini moves the appropriate slices around and reports to the screen whether any of the points lie on the algebraic set (and, if so, on which component they reside).

  • @param P: List of polynomials of the given system.

  • @param SysTyp: Type of polynomials in the system. Homogeneous ("hom") or non-homogeneous ("Nhom").

  • @param MPoints: List of lists containing member points.

  • @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 set ConfigSet := ["TRACKTYPE: 3"]. If you want to provide specific configurations then simply add them to ConfigSet. Please note that ConfigSet must contain "TRACKTYPE: 3". The use of configuration settings is little tricky but very useful. You can switch from one kind of solving to the other just by changing or adding some configurations. For details about configuration settings see Bertini manual http://www.nd.edu/~sommese/bertini/BertiniUsersManual.pdf.

Example

-- An example of Membership testing using default configurations.
-- We want to test membership for the points [ [ [1.0, 0.0], [0.0, 0.0], [0.0, 0.0 ]  ], [ [1.3650269, -0.31430820],
-- [1.7645087, -0.85807828], [2.1389007, -1.7258994] ] ], where the polynomial system is
--  x^2+y^2+z^2-1=0, x^3+y^2+z^3-1=0, (y-x^2)*(z-x^3)(z-5)=0.

Use S ::= QQ[x,y,z];            
P := [x^2+y^2+z^2-1,x^3+y^2+z^3-1,(y-x^2)*(z-x^3)(z-5)];
SysTyp := "Nhom";
MPoints :=[ [ ["1.0", "0.0"], ["0.0", "0.0"], ["0.0", "0.0" ] ],  [ ["1.3650269", "-0.31430820"],
          ["1.7645087", "-0.85807828"], ["2.1389007", "-1.7258994"] ] ];
ConfigSet := ["TRACKTYPE: 3"];
-- Save the file named witness_data in ApCoCoA directory/Bertini. In this example we can use the following file.

4
3
1
2
52
5.565526640875543e-01 3.486877417858003e-01
3.500659632917004e-01 -6.132734154671150e-01
-5.721270410075433e-01 2.012168578122028e-03
6.863472388783394e-01 5.972202311132409e-01
52
5.565526640873006e-01 3.486877417858785e-01
3.500659632926851e-01 -6.132734154660159e-01
-5.721270410085784e-01 2.012168576850362e-03
6.863472388783461e-01 5.972202311130588e-01
1.000000000000000e+00
0
3.319220103162024e-03
0.000000000000000e+00
10
1
0
0
52
5.036510877340633e-01 1.454616573815811e-01
-5.531197782767149e-01 1.264217225328824e-01
4.692782265207243e-01 -7.716455726951312e-01
8.298040333939428e-01 6.089446696116878e-01
52
5.036510877340730e-01 1.454616573815189e-01
-5.531197782770511e-01 1.264217225329790e-01
4.692782265211026e-01 -7.716455726952207e-01
8.298040333939808e-01 6.089446696117080e-01
1.000000000000000e+00
0
1.494343809475570e-03
0.000000000000000e+00
10
1
0
0
2
6
52
1.777791036661873e+00 -5.879389926987107e-01
8.371810169339621e-01 -5.381722763592328e-01
3.596166136115721e-01 -3.879323179323894e-01
1.337065929459078e-01 -2.473259991477609e-01
52
1.777791036661789e+00 -5.879389926985648e-01
8.371810169340158e-01 -5.381722763590965e-01
3.596166136114090e-01 -3.879323179324481e-01
1.337065929459972e-01 -2.473259991477353e-01
9.239465819894503e+00
0
2.311369308586180e-02
0.000000000000000e+00
10
1
3
0
52
2.801078874321721e-01 5.815307461738819e-01
3.602184484724343e-01 -6.856646564513529e-01
-9.183171422752723e-01 1.429861040336559e-01
7.942652024873893e-01 7.828205287876466e-01
52
2.801078874345398e-01 5.815307461783135e-01
3.602184484733199e-01 -6.856646564552420e-01
-9.183171422767007e-01 1.429861040419545e-01
7.942652024894031e-01 7.828205287870957e-01
9.903193701737050e+01
0
6.113734060564361e-04
0.000000000000000e+00
10
1
3
0
52
7.794026532326790e-01 6.438486770366723e-01
-5.511209013756149e-01 -4.552697655906182e-01
3.897013266163394e-01 3.219243385183361e-01
1.054343379801123e+00 5.809168127219385e-01
52
7.794026532326920e-01 6.438486770366824e-01
-5.511209013756679e-01 -4.552697655905938e-01
3.897013266164013e-01 3.219243385183344e-01
1.054343379801143e+00 5.809168127219345e-01
4.374295962959485e+00
0
2.286082168348384e-01
0.000000000000000e+00
10
1
0
0
52
2.480644358066108e-01 2.812814217076330e-01
-5.317945942111184e-01 1.336818293531960e-01
1.829122341866813e-01 -7.805728420468510e-01
8.915030044886882e-01 7.610652719830333e-01
52
2.480644358050654e-01 2.812814217073318e-01
-5.317945942103757e-01 1.336818293522557e-01
1.829122341846779e-01 -7.805728420469515e-01
8.915030044881618e-01 7.610652719839810e-01
6.015239676438355e+02
0
5.166904527784629e-05
0.000000000000000e+00
10
1
3
0
52
1.429155740109253e+00 -5.743679627312509e-01
7.145778700546264e-01 -2.871839813656256e-01
2.279525891501262e-01 -7.528357666690323e-01
1.786444675136565e-01 -7.179599534140634e-02
52
1.429155740109399e+00 -5.743679627313251e-01
7.145778700546536e-01 -2.871839813657727e-01
2.279525891502284e-01 -7.528357666688903e-01
1.786444675135966e-01 -7.179599534147321e-02
1.651321081771953e+01
0
8.707915499833527e-03
0.000000000000000e+00
10
1
1
0
52
7.185714193516700e-01 -2.226007471289887e+00
5.081067233904082e-01 -1.574024977920998e+00
3.592857096758350e-01 -1.113003735644943e+00
-9.638142491390969e-01 5.075337374339561e-01
52
7.185714193515241e-01 -2.226007471290154e+00
5.081067233903571e-01 -1.574024977921150e+00
3.592857096758574e-01 -1.113003735645067e+00
-9.638142491392726e-01 5.075337374340601e-01
3.841442764800970e+01
0
2.603188596646477e-02
0.000000000000000e+00
10
1
2
0
3
1
52
1.299580404330397e+00 -6.044565403080021e-01
6.497902021651987e-01 -3.022282701540011e-01
6.497902021651987e-01 -3.022282701540011e-01
6.497902021651987e-01 -3.022282701540011e-01
52
1.299580404330128e+00 -6.044565403085679e-01
6.497902021653607e-01 -3.022282701541981e-01
6.497902021650848e-01 -3.022282701542752e-01
6.497902021649185e-01 -3.022282701538901e-01
6.896280458897404e+00
0
4.394857579432204e-03
0.000000000000000e+00
10
1
0
0
-1

2
1 2
108723397967774785/1152921504606846976 -1276921637840786251/73786976294838206464
-1830867849111980429/36893488147419103232 -4584732275555858575/4611686018427387904

2
3
4
1 0
0 0
0 0
0 0

0 0
2 4
367776963113838806789/20000000000000000 8578223665279742151/100000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000  

4
4028259749117460225/18446744073709551616 -4330798452886879565/36893488147419103232
11914445949293424397/73786976294838206464 10011862545781538653/18446744073709551616
2033170931026697119/18446744073709551616 4595823280080588459/9223372036854775808
10271323522064441169/18446744073709551616 -16068244986954793375/73786976294838206464

2 1
-5527276071396270107/73786976294838206464 6119401794520521373/18446744073709551616
5101220359790769903/36893488147419103232 -8579339317661386167/9223372036854775808

3
1
4
1 0
0 0
0 0
0 0

0 0
1 4
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000
-3156090912479527573/100000000000000000 4338464515047412657/2000000000000000000000

4
4028259749117460225/18446744073709551616 -4330798452886879565/36893488147419103232
11914445949293424397/73786976294838206464 10011862545781538653/18446744073709551616
2033170931026697119/18446744073709551616 4595823280080588459/9223372036854775808
10271323522064441169/18446744073709551616 -16068244986954793375/73786976294838206464

3 0

4
1 0
0 0
0 0
0 0

0 0
0 4

4
4028259749117460225/18446744073709551616 -4330798452886879565/36893488147419103232
11914445949293424397/73786976294838206464 10011862545781538653/18446744073709551616
2033170931026697119/18446744073709551616 4595823280080588459/9223372036854775808
10271323522064441169/18446744073709551616 -16068244986954793375/73786976294838206464


-- Then we test membership with
Bertini.BPMCSolve(P,SysTyp,MPoints,ConfigSet);

-- And we can see the related information in ApCoCoAServer. Please note that
-- you will get only the following message in ApCoCoA GUI.
----------------------------------------
Please refer to ApCoCoAServer for results of computation.

--For Bertini output files please refer to ApCoCoA directory/Bertini.


Example

-- An example of Membership testing using user configurations.
-- We want to test membership for the points [ [ [1.0, 0.0], [0.0, 0.0], [0.0, 0.0 ]  ], [ [1.3650269, -0.31430820],
-- [1.7645087, -0.85807828], [2.1389007, -1.7258994] ] ], where the polynomial system is
--  x^2+y^2+z^2-1=0, x^3+y^2+z^3-1=0, (y-x^2)*(z-x^3)(z-5)=0.

Use S ::= QQ[x,y,z];            
P := [x^2+y^2+z^2-1,x^3+y^2+z^3-1,(y-x^2)*(z-x^3)(z-5)];
SysTyp := "Nhom";
MPoints :=[ [ ["1.0", "0.0"], ["0.0", "0.0"], ["0.0", "0.0" ] ],  [ ["1.3650269", "-0.31430820"],
          ["1.7645087", "-0.85807828"], ["2.1389007", "-1.7258994"] ] ];
ConfigSet := ["TRACKTYPE: 3", "MPTYPE: 0"];
-- Save the file named witness_data in ApCoCoA directory/Bertini. Use the file of previous example.

-- Then we test membership with
Bertini.BPMCSolve(P,SysTyp,MPoints,ConfigSet);

-- And we can see the related information in ApCoCoAServer. Please note that
-- you will get only the following message in ApCoCoA GUI.
----------------------------------------
Please refer to ApCoCoAServer for results of computation.

--For Bertini output files please refer to ApCoCoA directory/Bertini.




See also

Introduction to CoCoAServer

Bertini.BSolve

Bertini.BPCSolve