Difference between revisions of "ApCoCoA-1:Bertini.BZCSolve"

From ApCoCoAWiki
(New page: <command> <title>Bertini.BZCSolve</title> <short_description>Solves zero dimensional Homogeneous or Non-Homogeneous polynomial system with User Configurations.</short_description> <syntax>...)
 
m (replaced <quotes> tag by real quotes)
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
<title>Bertini.BZCSolve</title>
 
<title>Bertini.BZCSolve</title>
<short_description>Solves zero dimensional Homogeneous or Non-Homogeneous polynomial system with User Configurations.</short_description>
+
<short_description>Solves a zero dimensional homogeneous or non-homogeneous polynomial system of equations using configurations provided by the user.</short_description>
 
<syntax>
 
<syntax>
Bertini.BZCSolve(M:LIST, SysTyp:STRING ,  ConfigSet:LIST)
+
Bertini.BZCSolve(P:LIST, SysTyp:STRING ,  ConfigSet:LIST):LIST
 
</syntax>
 
</syntax>
 
<description>
 
<description>
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 +
<par/>
 +
This function uses total degree homotopy to find all isolated solutions of a zero dimensional system of polynomial equations. It 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 may be homogeneous or nonhomogeneous. For homogeneous polynomial system the output will be the list of all real solutions and for nonhomogeneous system the output will be the list of all finite solutions.
  
 
<itemize>
 
<itemize>
<item>@param <em>M</em>: List of polynomials in the system.</item>
+
<item>@param <em>P</em>: List of polynomials of the given system.</item>
  
<item>@param <em>SysTyp</em>: Type of polynomials in the system. Homogeneous (<tt>hom</tt>) or nonhomogeneous (<tt>Nhom</tt>).</item>
+
<item>@param <em>SysTyp</em>: Type of polynomials in the List P. Homogeneous (<tt>"hom"</tt>) or non-homogeneous (<tt>"Nhom"</tt>).</item>
  
 +
<item>@param <em>ConfigSet</em>: 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 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 <tt>http://www.nd.edu/~sommese/bertini/BertiniUsersManual.pdf</tt></item>. 
 +
<item>@return A list of lists containing the finite (or real) solutions of the polynomial system P.</item>
  
<item>@param <em>ConfigSet</em>: List of strings representing Configurations to be used by bertini. For detials about configuraion settings see Bertini mannul <tt>http://www.nd.edu/~sommese/bertini/BertiniUsersManual.pdf</tt>.</item>
 
 
</itemize>
 
</itemize>
 
   
 
   
 
<example>
 
<example>
-- Zero dimensional Non-homogenous solving with fixed higher precision
+
-- An example of zero dimensional Non-homogenous solving with fixed higher precision.
-- We want to solve zero dimensional non-homogenous system x^2+y^2-5=0, xy-2=0, for fixed higher precision.  
+
-- We want to solve the zero dimensional non-homogenous system x^2+y^2-5=0, xy-2=0, for fixed higher precision.  
  
Use S ::= QQ[x,y];             --  Define appropriate ring
+
Use S ::= QQ[x,y];          
M := [x^2+y^2-5,xy-2];
+
P := [x^2+y^2-5,xy-2];
SysTyp := <quotes>Nhom</quotes>;
+
SysTyp := "Nhom";
ConfigSet := [<quotes>MPTYPE: 1</quotes>, <quotes>PRECISION: 128</quotes>];
+
ConfigSet := ["MPTYPE: 1", "PRECISION: 128"];
  
 
-- Then we compute the solution with
 
-- Then we compute the solution with
Bertini.BZCSolve(M,SysTyp,ConfigSet);
+
Bertini.BZCSolve(P,SysTyp,ConfigSet);
  
-- And we achieve a list of lists containing all real finite solutions:
+
-- And we achieve a list of lists containing all finite solutions.
 
----------------------------------------
 
----------------------------------------
[[Vector(500000000000000870080079571456753631209/500000000000000000000000000000000000000,  
+
[
 +
[
 +
Vector(500000000000000870080079571456753631209/500000000000000000000000000000000000000,  
 
41243336046164965623860294533917  3594181/200000000000000000000000000000000000000000000000000000),
 
41243336046164965623860294533917  3594181/200000000000000000000000000000000000000000000000000000),
 
  Vector(199999999999999920289038441185562687901/100000000000000000000000000000000000000,
 
  Vector(199999999999999920289038441185562687901/100000000000000000000000000000000000000,
  -4918613303067726249865351347506841944303/5000000000000000000000000000000000000000000000000000000)],
+
  -4918613303067726249865351347506841944303/5000000000000000000000000000000000000000000000000000000)
[Vector(999999999999996907691691548150283767063/500000000000000000000000000000000000000,  
+
],
 +
[
 +
Vector(999999999999996907691691548150283767063/500000000000000000000000000000000000000,  
 
4026821783991733021565024336088959292491/1000000000000000000000000000000000000000000000000000000),
 
4026821783991733021565024336088959292491/1000000000000000000000000000000000000000000000000000000),
 
  Vector(1000000000000008119524837615406734621127/1000000000000000000000000000000000000000,
 
  Vector(1000000000000008119524837615406734621127/1000000000000000000000000000000000000000,
  -9202828375000265851232972557923998357683/1000000000000000000000000000000000000000000000000000000)],
+
  -9202828375000265851232972557923998357683/1000000000000000000000000000000000000000000000000000000)
[Vector(-1999999999999981470621955122058645854307/1000000000000000000000000000000000000000,  
+
],
 +
[
 +
Vector(-1999999999999981470621955122058645854307/1000000000000000000000000000000000000000,  
 
  -2219296880596437220953595963738223862847/100000000000000000000000000000000000000000000000000000),  
 
  -2219296880596437220953595963738223862847/100000000000000000000000000000000000000000000000000000),  
 
Vector(-1000000000000016429280952166817619195409/1000000000000000000000000000000000000000,
 
Vector(-1000000000000016429280952166817619195409/1000000000000000000000000000000000000000,
  2246895233251384601549113345810086172711/100000000000000000000000000000000000000000000000000000)],
+
  2246895233251384601549113345810086172711/100000000000000000000000000000000000000000000000000000)
[Vector(-9999999999999986714415752390569533003343/10000000000000000000000000000000000000000,
+
],
 +
[
 +
Vector(-9999999999999986714415752390569533003343/10000000000000000000000000000000000000000,
 
  2376331150450927561422763997224327498341/1000000000000000000000000000000000000000000000000000000),  
 
  2376331150450927561422763997224327498341/1000000000000000000000000000000000000000000000000000000),  
 
Vector(-200000000000000126515279556718539177417/100000000000000000000000000000000000000,
 
Vector(-200000000000000126515279556718539177417/100000000000000000000000000000000000000,
  -409661331378413177493500945204322606473/250000000000000000000000000000000000000000000000000000)]]
+
  -409661331378413177493500945204322606473/250000000000000000000000000000000000000000000000000000)
 +
]
 +
]
 +
 
 +
--The elements of lists are vectors. Each vector represents a complex number. For example Vector(5000/1000,-4150/1000)
 +
--represents the complex number 5000/1000-4150/1000i.
 +
--For Bertini output files please refer to ApCoCoA directory/Bertini.
 +
</example>
 +
 
 +
<example>
 +
-- An example of regeneration
 +
-- Regeneration is an equation-by-equation method for finding the non-singular isolated solutions.
 +
 
 +
Use S ::= QQ[x,y,z];             
 +
P := [
 +
(x^2-y)(x^2+y^2+z^2-1)(x-1/2),
 +
(x^3-z)(x^2+y^2+z^2-1)(y-1/2),
 +
(x^2-y)(x^3-z)(x^2+y^2+z^2-1)(z-1/2)
 +
];
 +
SysTyp := "Nhom";
 +
ConfigSet := ["USEREGENERATION: 1"];
 +
 
 +
-- Then we compute the solution with
 +
Bertini.BZCSolve(P,SysTyp,ConfigSet);
 +
 
 +
-- And we achieve a list of lists containing all finite solutions.
 +
----------------------------------------
 +
[
 +
[
 +
Vector(1/2, -1400610179539509/5000000000000000000000000000000),
 +
Vector(5000000000000001/10000000000000000, -7779179774559159/10000000000000000000000000000000),
 +
Vector(1/2, -4045284236617077/10000000000000000000000000000000)
 +
]
 +
]
 +
 
 +
--For Bertini output files please refer to ApCoCoA directory/Bertini.
 
</example>
 
</example>
 +
 +
<example>
 +
-- An example of zero dimensional homogenous solving with fixed higher precision
 +
-- We want to solve the zero dimensional homogenous system x^2-z^2=0, xy-z^2=0, for fixed higher precision.
 +
 +
Use S ::= QQ[x,y];         
 +
P := [x^2-z^2, xy-z^2];
 +
SysTyp := "hom";
 +
ConfigSet := ["MPTYPE: 1", "PRECISION: 128"];
 +
 +
-- Then we compute the solution with
 +
Bertini.BZCSolve(P,SysTyp,ConfigSet);
 +
 +
-- And we achieve a list of lists containing all real solutions.
 +
----------------------------------------
 +
[
 +
[-1121226775607053112950715616047234987919/100000000000000000000000000000000000000000,
 +
-1121226775607053112950715616047234987919/100000000000000000000000000000000000000000,
 +
-1121226775607053112950715616047234987919/100000000000000000000000000000000000000000
 +
],
 +
[
 +
-666269356331265789905402745641735631587/1250000000000000000000000000000000000000,
 +
-666269356331265789905402745641735631587/1250000000000000000000000000000000000000,
 +
666269356331265789905402745641735631587/1250000000000000000000000000000000000000
 +
],
 +
[
 +
-1961395985465574251430275441821775811231/20000000000000000000000000000000000000000000000000000,
 +
1604689603443950100804972123829819895459/2500000000000000000000000000000000000000,
 +
-9839275092234527567507618459170114455473/100000000000000000000000000000000000000000000000000000
 +
],
 +
[
 +
-1197970328164235882805480928545099670003/10000000000000000000000000000000000000000000000000000,
 +
3209379206887735502321156763919697536571/5000000000000000000000000000000000000000,
 +
-4210800092649494941547012623104854361/31250000000000000000000000000000000000000000000000
 +
]
 +
]
 +
 +
--For Bertini output files please refer to ApCoCoA directory/Bertini.
 +
</example>
 +
 +
<example>
 +
-- An example of zero dimensional Non-homogenous solving.
 +
-- We want to solve the zero dimensional homogenous system x^2-1=0, xy-1=0.
 +
-- In addition we want Bertini to solve the polynomial system using secure path tracking (SECURITYLEVEL: 1), tighter tracking
 +
-- tolerances all along the paths ( TRACKTOLBEFOREEG: 1e-7 and TRACKTOLDURINGEG: 1e-7 ), tighter convergence tolearance for the
 +
-- endgame ( FINALTOL: 1e-12 ), and sets the adaptive precision settings appropriately for the system
 +
-- (COEFFBOUND: 2 and DEGREEBOUND:  2). Bertini now computes the solutions at infinity using the settings requested.
 +
 +
Use S ::= QQ[x,y];         
 +
P := [x^2-1, xy-1];
 +
SysTyp := "Nhom";
 +
ConfigSet := ["SECURITYLEVEL: 1", "TRACKTOLBEFOREEG: 1e-7" , "TRACKTOLDURINGEG: 1e-7", "FINALTOL: 1e-12", "COEFFBOUND: 2" ,
 +
"DEGREEBOUND: 2"];
 +
 +
-- Then we compute the solution with
 +
Bertini.BZCSolve(P,SysTyp,ConfigSet);
 +
 +
-- And we achieve a list of lists containing all finite solutions.
 +
----------------------------------------
 +
[
 +
[Vector(1, 0), Vector(1, 0)],
 +
[Vector(-1, 0), Vector(-1, 0)]
 +
]
 +
 +
--For Bertini output files please refer to ApCoCoA directory/Bertini.
 +
</example>
 +
 +
 +
  
 
</description>
 
</description>
Line 56: Line 172:
  
 
<seealso>
 
<seealso>
  <see>Introduction to CoCoAServer</see>
+
  <see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see>
  <see>Bertini.BCMSolve</see>
+
  <see>ApCoCoA-1:Bertini.BPCSolve|Bertini.BPCSolve</see>
  <see>Bertini.BMSolve</see>
+
  <see>ApCoCoA-1:Bertini.BZCSolve|Bertini.BZCSolve</see>
  <see>Bertini.BSolve</see>
+
  <see>ApCoCoA-1:Bertini.BMSolve|Bertini.BMSolve</see>
  <see>Bertini.BUHSolve</see>
+
  <see>ApCoCoA-1:Bertini.BUHSolve|Bertini.BUHSolve</see>
 
</seealso>
 
</seealso>
  
<key>bertini.bcsolve</key>
+
<key>bzcsolve</key>
<key>bcsolve</key>
+
<key>bertini.bzcsolve</key>
<key>solve zero and Positive dimensional polynomial system</key>
+
<key>solve zero dimensional polynomial system</key>
<wiki-category>Package_bertini</wiki-category>
+
<wiki-category>ApCoCoA-1:Package_bertini</wiki-category>
 
</command>
 
</command>

Latest revision as of 13:28, 29 October 2020

This article is about a function from ApCoCoA-1.

Bertini.BZCSolve

Solves a zero dimensional homogeneous or non-homogeneous polynomial system of equations using configurations provided by the user.

Syntax

Bertini.BZCSolve(P:LIST, SysTyp:STRING ,  ConfigSet:LIST):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 uses total degree homotopy to find all isolated solutions of a zero dimensional system of polynomial equations. It 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 may be homogeneous or nonhomogeneous. For homogeneous polynomial system the output will be the list of all real solutions and for nonhomogeneous system the output will be the list of all finite solutions.

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

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

  • @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 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

  • .

  • @return A list of lists containing the finite (or real) solutions of the polynomial system P.


Example

-- An example of zero dimensional Non-homogenous solving with fixed higher precision.
-- We want to solve the zero dimensional non-homogenous system x^2+y^2-5=0, xy-2=0, for fixed higher precision. 

Use S ::= QQ[x,y];           
P := [x^2+y^2-5,xy-2];
SysTyp := "Nhom";
ConfigSet := ["MPTYPE: 1", "PRECISION: 128"];

-- Then we compute the solution with
Bertini.BZCSolve(P,SysTyp,ConfigSet);

-- And we achieve a list of lists containing all finite solutions.
----------------------------------------
[
[
Vector(500000000000000870080079571456753631209/500000000000000000000000000000000000000, 
41243336046164965623860294533917  3594181/200000000000000000000000000000000000000000000000000000),
 Vector(199999999999999920289038441185562687901/100000000000000000000000000000000000000,
 -4918613303067726249865351347506841944303/5000000000000000000000000000000000000000000000000000000)
],
[
Vector(999999999999996907691691548150283767063/500000000000000000000000000000000000000, 
4026821783991733021565024336088959292491/1000000000000000000000000000000000000000000000000000000),
 Vector(1000000000000008119524837615406734621127/1000000000000000000000000000000000000000,
 -9202828375000265851232972557923998357683/1000000000000000000000000000000000000000000000000000000)
],
[
Vector(-1999999999999981470621955122058645854307/1000000000000000000000000000000000000000, 
 -2219296880596437220953595963738223862847/100000000000000000000000000000000000000000000000000000), 
Vector(-1000000000000016429280952166817619195409/1000000000000000000000000000000000000000,
 2246895233251384601549113345810086172711/100000000000000000000000000000000000000000000000000000)
],
[
Vector(-9999999999999986714415752390569533003343/10000000000000000000000000000000000000000,
 2376331150450927561422763997224327498341/1000000000000000000000000000000000000000000000000000000), 
Vector(-200000000000000126515279556718539177417/100000000000000000000000000000000000000,
 -409661331378413177493500945204322606473/250000000000000000000000000000000000000000000000000000)
]
]

--The elements of lists are vectors. Each vector represents a complex number. For example Vector(5000/1000,-4150/1000)
--represents the complex number 5000/1000-4150/1000i.
--For Bertini output files please refer to ApCoCoA directory/Bertini.

Example

-- An example of regeneration 
-- Regeneration is an equation-by-equation method for finding the non-singular isolated solutions. 

Use S ::= QQ[x,y,z];              
P := [
(x^2-y)(x^2+y^2+z^2-1)(x-1/2),
(x^3-z)(x^2+y^2+z^2-1)(y-1/2),
(x^2-y)(x^3-z)(x^2+y^2+z^2-1)(z-1/2)
];
SysTyp := "Nhom";
ConfigSet := ["USEREGENERATION: 1"];

-- Then we compute the solution with
Bertini.BZCSolve(P,SysTyp,ConfigSet);

-- And we achieve a list of lists containing all finite solutions.
----------------------------------------
[
[
 Vector(1/2, -1400610179539509/5000000000000000000000000000000), 
 Vector(5000000000000001/10000000000000000, -7779179774559159/10000000000000000000000000000000), 
 Vector(1/2, -4045284236617077/10000000000000000000000000000000)
]
]

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

Example

-- An example of zero dimensional homogenous solving with fixed higher precision
-- We want to solve the zero dimensional homogenous system x^2-z^2=0, xy-z^2=0, for fixed higher precision. 

Use S ::= QQ[x,y];           
P := [x^2-z^2, xy-z^2];
SysTyp := "hom";
ConfigSet := ["MPTYPE: 1", "PRECISION: 128"];

-- Then we compute the solution with
Bertini.BZCSolve(P,SysTyp,ConfigSet);

-- And we achieve a list of lists containing all real solutions.
----------------------------------------
[
[-1121226775607053112950715616047234987919/100000000000000000000000000000000000000000,
 -1121226775607053112950715616047234987919/100000000000000000000000000000000000000000,
 -1121226775607053112950715616047234987919/100000000000000000000000000000000000000000
],
[
-666269356331265789905402745641735631587/1250000000000000000000000000000000000000,
 -666269356331265789905402745641735631587/1250000000000000000000000000000000000000,
 666269356331265789905402745641735631587/1250000000000000000000000000000000000000
],
[
-1961395985465574251430275441821775811231/20000000000000000000000000000000000000000000000000000,
 1604689603443950100804972123829819895459/2500000000000000000000000000000000000000,
 -9839275092234527567507618459170114455473/100000000000000000000000000000000000000000000000000000
],
[
-1197970328164235882805480928545099670003/10000000000000000000000000000000000000000000000000000,
 3209379206887735502321156763919697536571/5000000000000000000000000000000000000000,
 -4210800092649494941547012623104854361/31250000000000000000000000000000000000000000000000
]
]

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

Example

-- An example of zero dimensional Non-homogenous solving.
-- We want to solve the zero dimensional homogenous system x^2-1=0, xy-1=0. 
-- In addition we want Bertini to solve the polynomial system using secure path tracking (SECURITYLEVEL: 1), tighter tracking
-- tolerances all along the paths ( TRACKTOLBEFOREEG: 1e-7 and TRACKTOLDURINGEG: 1e-7 ), tighter convergence tolearance for the 
-- endgame ( FINALTOL: 1e-12 ), and sets the adaptive precision settings appropriately for the system 
-- (COEFFBOUND: 2 and DEGREEBOUND:  2). Bertini now computes the solutions at infinity using the settings requested.

Use S ::= QQ[x,y];           
P := [x^2-1, xy-1];
SysTyp := "Nhom";
ConfigSet := ["SECURITYLEVEL: 1", "TRACKTOLBEFOREEG: 1e-7" , "TRACKTOLDURINGEG: 1e-7", "FINALTOL: 1e-12", "COEFFBOUND: 2" ,
 "DEGREEBOUND: 2"];

-- Then we compute the solution with
Bertini.BZCSolve(P,SysTyp,ConfigSet);

-- And we achieve a list of lists containing all finite solutions.
----------------------------------------
[
[Vector(1, 0), Vector(1, 0)],
[Vector(-1, 0), Vector(-1, 0)]
]

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




See also

Introduction to CoCoAServer

Bertini.BPCSolve

Bertini.BZCSolve

Bertini.BMSolve

Bertini.BUHSolve