next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NumericalCertification :: certifySolutions

certifySolutions -- executes certification on a given system and list of points

Synopsis

Description

This function does all procedures for root certification. It takes three strategies as options which are ''alphaTheory'', ''intervalArithmetic'' and ''alphaCertified'' (see CertificationOptions). The option ''alphaTheory'' returns alpha values of solutions, a list of regular distinct solutions, a list of real solutions, a list of regular solutions, a list of certified singular solutions and a list of non-certified solutions

i1 : R = CC[x,y,z];
i2 : f = polySystem {x^3 - y*z, y^3 - x*z, z^3 - x*y};
i3 : listOfSols = solveSystem f; -- 27 solutions
i4 : c = certifySolutions(f,listOfSols);
i5 : peek c

o5 = MutableHashTable{alphaValues => {2.47454e-29, 2.47454e-29, 2.47454e-29, 3.93609e-26, 3.93609e-26, 3.93609e-26, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.35023e-44, 2.35041e-44, 2.35092e-44, 0}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           }
                      certifiedDistinct => {{-1, -1, 1}, {1, -1, -1}, {-1, 1, -1}, {ii, ii, -1}, {ii, -1, ii}, {-1, ii, ii}, {-ii, ii, 1}, {-ii, 1, ii}, {1, -ii, ii}, {ii, -ii, 1}, {ii, 1, -ii}, {1, ii, -ii}, {-ii, -ii, -1}, {-ii, -1, -ii}, {-1, -ii, -ii}, {1, 1, 1}}
                      certifiedReal => {{-1, -1, 1}, {1, -1, -1}, {-1, 1, -1}, {1, 1, 1}}
                      certifiedRegularSolutions => {{-1, -1, 1}, {1, -1, -1}, {-1, 1, -1}, {ii, ii, -1}, {ii, -1, ii}, {-1, ii, ii}, {-ii, ii, 1}, {-ii, 1, ii}, {1, -ii, ii}, {ii, -ii, 1}, {ii, 1, -ii}, {1, ii, -ii}, {-ii, -ii, -1}, {-ii, -1, -ii}, {-1, -ii, -ii}, {1, 1, 1}}
                      certifiedSingularSolutions => {(6.14381e-19+4.77049e-18*ii, -1.25333e-18-4.44692e-18*ii, -1.25333e-18-4.44721e-18*ii), (-1.25333e-18-4.44495e-18*ii, 6.14381e-19+4.77049e-18*ii, -1.25333e-18-4.45116e-18*ii), (-1.25276e-18-4.44918e-18*ii, -1.24937e-18-4.44946e-18*ii, 6.14381e-19+4.77049e-18*ii), (-1.01644e-20-1.35525e-20*ii, -6.43745e-20-1.35525e-20*ii, -6.09864e-20-2.37169e-20*ii), (7.58942e-19+1.807e-19*ii, 7.90564e-21-7.34095e-21*ii, 3.38813e-21-5.0822e-21*ii), (5.22337e-21-5.0822e-21*ii, 1.04467e-20-5.64689e-21*ii, 1.807e-19+7.58942e-19*ii), (5.92923e-21-5.0822e-21*ii, 1.807e-19+7.58942e-19*ii, 5.22337e-21-5.0822e-21*ii), (-3.95282e-21+1.41172e-22*ii, -1.25587e-18+3.97541e-19*ii, -1.69407e-21+1.41172e-22*ii), (-3.67048e-21+2.11758e-21*ii, -3.10579e-21+2.5411e-21*ii, -6.77626e-19+3.97541e-19*ii), (-1.25587e-18+3.61401e-19*ii, -5.64689e-22+2.11758e-21*ii, -2.25875e-21), (-4.06576e-20+6.09864e-20*ii, -1.35525e-20+6.09864e-20*ii, -6.77626e-20+3.3881e-21*ii)}
                      nonCertifiedSolutions => {}

The option ''intervalArithmetic'' returns a list of (refined) regular real solutions, a list of (refined) regular solutions, a list of certified singular solutions and a list of non-certified solutions

i6 : c = certifySolutions(f,listOfSols,Strategy => "intervalArithmetic");
i7 : peek c

o7 = MutableHashTable{certifiedReal => {|  [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [1,1] + [-2.14165e-23,2.14165e-23]*ii |, |  [1,1] + [-2.14167e-23,2.14167e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii |, |  [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [1,1] + [-2.14166e-23,2.14166e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii |, |  [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii |}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }
                      certifiedRegularSolutions => {|  [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [1,1] + [-2.14165e-23,2.14165e-23]*ii |, |  [1,1] + [-2.14167e-23,2.14167e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii |, |  [-1,-1] + [-1.75918e-23,1.75918e-23]*ii [1,1] + [-2.14166e-23,2.14166e-23]*ii [-1,-1] + [-1.75918e-23,1.75918e-23]*ii |, |  [-1.9129e-20,1.9129e-20] + [1,1]*ii [-1.9129e-20,1.9129e-20] + [1,1]*ii [-1,-1] + [-1.88843e-20,1.88843e-20]*ii |, |  [-1.9129e-20,1.9129e-20] + [1,1]*ii [-1,-1] + [-1.88844e-20,1.88844e-20]*ii [-1.9129e-20,1.9129e-20] + [1,1]*ii |, |  [-1,-1] + [-1.88844e-20,1.88844e-20]*ii [-1.9129e-20,1.9129e-20] + [1,1]*ii [-1.9129e-20,1.9129e-20] + [1,1]*ii |, |  [-3.61329e-24,3.61329e-24] + [-1,-1]*ii [-3.10937e-24,3.10937e-24] + [1,1]*ii [1,1] + [-3.26098e-24,3.26098e-24]*ii |, |  [-3.61329e-24,3.61329e-24] + [-1,-1]*ii [1,1] + [-3.261e-24,3.261e-24]*ii [-3.10936e-24,3.10936e-24] + [1,1]*ii |, |  [1,1] + [-3.261e-24,3.261e-24]*ii [-3.61329e-24,3.61329e-24] + [-1,-1]*ii [-3.10936e-24,3.10936e-24] + [1,1]*ii |, |  [-3.10937e-24,3.10937e-24] + [1,1]*ii [-3.61329e-24,3.61329e-24] + [-1,-1]*ii [1,1] + [-3.26098e-24,3.26098e-24]*ii |, |  [-3.10937e-24,3.10937e-24] + [1,1]*ii [1,1] + [-3.261e-24,3.261e-24]*ii [-3.61325e-24,3.61325e-24] + [-1,-1]*ii |, |  [1,1] + [-3.261e-24,3.261e-24]*ii [-3.10937e-24,3.10937e-24] + [1,1]*ii [-3.61325e-24,3.61325e-24] + [-1,-1]*ii |, |  [-1.13492e-30,1.13492e-30] + [-1,-1]*ii [-1.13492e-30,1.13492e-30] + [-1,-1]*ii [-1,-1] + [-9.77739e-31,9.77739e-31]*ii |, |  [-1.13497e-30,1.13497e-30] + [-1,-1]*ii [-1,-1] + [-9.7778e-31,9.7778e-31]*ii [-1.13496e-30,1.13496e-30] + [-1,-1]*ii |, |  [-1,-1] + [-9.77906e-31,9.77906e-31]*ii [-1.1351e-30,1.1351e-30] + [-1,-1]*ii [-1.13509e-30,1.13509e-30] + [-1,-1]*ii |, |  [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii |}
                      certifiedSingularSolutions => {(6.14381e-19+4.77049e-18*ii, -1.25333e-18-4.44692e-18*ii, -1.25333e-18-4.44721e-18*ii), (-1.25333e-18-4.44495e-18*ii, 6.14381e-19+4.77049e-18*ii, -1.25333e-18-4.45116e-18*ii), (-1.25276e-18-4.44918e-18*ii, -1.24937e-18-4.44946e-18*ii, 6.14381e-19+4.77049e-18*ii), (-1.01644e-20-1.35525e-20*ii, -6.43745e-20-1.35525e-20*ii, -6.09864e-20-2.37169e-20*ii), (7.58942e-19+1.807e-19*ii, 7.90564e-21-7.34095e-21*ii, 3.38813e-21-5.0822e-21*ii), (5.22337e-21-5.0822e-21*ii, 1.04467e-20-5.64689e-21*ii, 1.807e-19+7.58942e-19*ii), (5.92923e-21-5.0822e-21*ii, 1.807e-19+7.58942e-19*ii, 5.22337e-21-5.0822e-21*ii), (-3.95282e-21+1.41172e-22*ii, -1.25587e-18+3.97541e-19*ii, -1.69407e-21+1.41172e-22*ii), (-3.67048e-21+2.11758e-21*ii, -3.10579e-21+2.5411e-21*ii, -6.77626e-19+3.97541e-19*ii), (-4.06576e-20+6.09864e-20*ii, -1.35525e-20+6.09864e-20*ii, -6.77626e-20+3.3881e-21*ii)}
                      nonCertifiedSolutions => {(-1.25587e-18+3.61401e-19*ii, -5.64689e-22+2.11758e-21*ii, -2.25875e-21)}

The option ''alphaCertified'' can be used by certifySolutions(f,listOfSols,Strategy => "alphaCertified"). It generates output files for using the software alphaCertified. Singular solutions may not be certified.

Ways to use certifySolutions :

For the programmer

The object certifySolutions is a method function with options.