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.35021e-44, 2.35024e-44, 2.35055e-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.4489e-18*ii, -1.25333e-18-4.44721e-18*ii), (-1.25333e-18-4.44946e-18*ii, 6.14381e-19+4.77049e-18*ii, -1.25333e-18-4.4489e-18*ii), (-1.25333e-18-4.44664e-18*ii, -1.25333e-18-4.4489e-18*ii, 6.14381e-19+4.77049e-18*ii), (-6.43745e-20-1.35525e-20*ii, -6.43745e-20-1.35525e-20*ii, -6.09864e-20-2.71051e-20*ii), (1.807e-19+1.807e-19*ii, 7.90564e-21-7.34095e-21*ii, 3.38813e-21-5.92923e-21*ii), (5.78806e-21-5.36454e-21*ii, 5.78806e-21-5.36454e-21*ii, 1.807e-19+7.58942e-19*ii), (5.92923e-21-5.0822e-21*ii, 1.807e-19+7.58942e-19*ii, 5.36454e-21-3.10579e-21*ii), (-3.95282e-21+1.41172e-22*ii, -1.25587e-18+3.97541e-19*ii, -3.95282e-21+1.41172e-22*ii), (-4.23516e-21-1.41172e-22*ii, -3.10579e-21+2.5411e-21*ii, -6.77626e-19+3.97541e-19*ii), (-1.25587e-18+3.61401e-19*ii, -1.69407e-21+2.39993e-21*ii, -1.12938e-21+2.39993e-21*ii), (-6.43745e-20+5.75982e-20*ii, -1.35525e-20+6.09864e-20*ii, -9.48677e-20+6.77626e-20*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.61328e-24,3.61328e-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.13491e-30,1.13491e-30] + [-1,-1]*ii [-1.13491e-30,1.13491e-30] + [-1,-1]*ii [-1,-1] + [-9.77718e-31,9.77718e-31]*ii |, |  [-1.13492e-30,1.13492e-30] + [-1,-1]*ii [-1,-1] + [-9.77738e-31,9.77738e-31]*ii [-1.13492e-30,1.13492e-30] + [-1,-1]*ii |, |  [-1,-1] + [-9.77809e-31,9.77809e-31]*ii [-1.135e-30,1.135e-30] + [-1,-1]*ii [-1.13499e-30,1.13499e-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.4489e-18*ii, -1.25333e-18-4.44721e-18*ii), (-1.25333e-18-4.44946e-18*ii, 6.14381e-19+4.77049e-18*ii, -1.25333e-18-4.4489e-18*ii), (-1.25333e-18-4.44664e-18*ii, -1.25333e-18-4.4489e-18*ii, 6.14381e-19+4.77049e-18*ii), (-6.43745e-20-1.35525e-20*ii, -6.43745e-20-1.35525e-20*ii, -6.09864e-20-2.71051e-20*ii), (1.807e-19+1.807e-19*ii, 7.90564e-21-7.34095e-21*ii, 3.38813e-21-5.92923e-21*ii), (5.78806e-21-5.36454e-21*ii, 5.78806e-21-5.36454e-21*ii, 1.807e-19+7.58942e-19*ii), (5.92923e-21-5.0822e-21*ii, 1.807e-19+7.58942e-19*ii, 5.36454e-21-3.10579e-21*ii), (-3.95282e-21+1.41172e-22*ii, -1.25587e-18+3.97541e-19*ii, -3.95282e-21+1.41172e-22*ii), (-4.23516e-21-1.41172e-22*ii, -3.10579e-21+2.5411e-21*ii, -6.77626e-19+3.97541e-19*ii), (-1.25587e-18+3.61401e-19*ii, -1.69407e-21+2.39993e-21*ii, -1.12938e-21+2.39993e-21*ii), (-6.43745e-20+5.75982e-20*ii, -1.35525e-20+6.09864e-20*ii, -9.48677e-20+6.77626e-20*ii)}
                      nonCertifiedSolutions => {}

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.