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 => {5.08933e-30, 5.08934e-30, 5.08933e-30, 3.81619e-26, 3.81619e-26, 3.81619e-26, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.1706e-31, 2.35051e-44, 2.35059e-44, 2.35058e-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 => {(7.58942e-19+4.77049e-18*ii, -1.25841e-18-4.44636e-18*ii, -1.25841e-18-4.44184e-18*ii), (-1.25841e-18-4.44692e-18*ii, 7.58942e-19+4.77049e-18*ii, -1.25841e-18-4.44325e-18*ii), (-1.25841e-18-4.44692e-18*ii, -1.25841e-18-4.44212e-18*ii, 7.58942e-19+4.77049e-18*ii), (-6.43745e-20-4.40457e-20*ii, -6.09864e-20-4.06576e-20*ii, -6.09864e-20-4.06576e-20*ii), (1.4456e-19+7.58942e-19*ii, 5.64689e-21-5.0822e-21*ii, 4.79985e-21-8.18799e-21*ii), (9.88205e-21-5.36454e-21*ii, 9.59971e-21-5.64689e-21*ii, 1.4456e-19+7.58942e-19*ii), (5.50571e-21-7.6233e-21*ii, 1.4456e-19+7.58942e-19*ii, 9.74088e-21-5.36454e-21*ii), (-5.64689e-22+4.65868e-21*ii, -1.04806e-18-1.4456e-19*ii, -5.92923e-21+4.94103e-21*ii), (-2.25875e-21+4.65868e-21*ii, -2.25875e-21+7.19978e-21*ii, -1.04806e-18-1.4456e-19*ii), (-1.04806e-18+4.33681e-19*ii, -5.64689e-21+4.94103e-21*ii, -3.67048e-21+2.68227e-21*ii), (-6.43745e-20+6.7763e-21*ii, -6.77626e-20+6.43745e-20*ii, -1.01644e-20+6.09864e-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.06319e-23,1.06319e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii [1,1] + [-1.32e-23,1.32e-23]*ii |, |  [1,1] + [-1.32002e-23,1.32002e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii |, |  [-1,-1] + [-1.06319e-23,1.06319e-23]*ii [1,1] + [-1.32002e-23,1.32002e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii |, |  [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii |}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                      certifiedRegularSolutions => {|  [-1,-1] + [-1.06319e-23,1.06319e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii [1,1] + [-1.32e-23,1.32e-23]*ii |, |  [1,1] + [-1.32002e-23,1.32002e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii |, |  [-1,-1] + [-1.06319e-23,1.06319e-23]*ii [1,1] + [-1.32002e-23,1.32002e-23]*ii [-1,-1] + [-1.06318e-23,1.06318e-23]*ii |, |  [-1.87777e-20,1.87777e-20] + [1,1]*ii [-1.87777e-20,1.87777e-20] + [1,1]*ii [-1,-1] + [-1.85356e-20,1.85356e-20]*ii |, |  [-1.87777e-20,1.87777e-20] + [1,1]*ii [-1,-1] + [-1.85356e-20,1.85356e-20]*ii [-1.87777e-20,1.87777e-20] + [1,1]*ii |, |  [-1,-1] + [-1.85356e-20,1.85356e-20]*ii [-1.87777e-20,1.87777e-20] + [1,1]*ii [-1.87777e-20,1.87777e-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.13499e-30,1.13499e-30] + [-1,-1]*ii [-1.13499e-30,1.13499e-30] + [-1,-1]*ii [-1,-1] + [-9.77797e-31,9.77797e-31]*ii |, |  [-1.13501e-30,1.13501e-30] + [-1,-1]*ii [-1,-1] + [-9.77814e-31,9.77814e-31]*ii [-1.135e-30,1.135e-30] + [-1,-1]*ii |, |  [-1,-1] + [-9.77823e-31,9.77823e-31]*ii [-1.13502e-30,1.13502e-30] + [-1,-1]*ii [-1.135e-30,1.135e-30] + [-1,-1]*ii |, |  [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii [1,1] + [0,-0]*ii |}
                      certifiedSingularSolutions => {(7.58942e-19+4.77049e-18*ii, -1.25841e-18-4.44636e-18*ii, -1.25841e-18-4.44184e-18*ii), (-1.25841e-18-4.44692e-18*ii, 7.58942e-19+4.77049e-18*ii, -1.25841e-18-4.44325e-18*ii), (-1.25841e-18-4.44692e-18*ii, -1.25841e-18-4.44212e-18*ii, 7.58942e-19+4.77049e-18*ii), (-6.43745e-20-4.40457e-20*ii, -6.09864e-20-4.06576e-20*ii, -6.09864e-20-4.06576e-20*ii), (1.4456e-19+7.58942e-19*ii, 5.64689e-21-5.0822e-21*ii, 4.79985e-21-8.18799e-21*ii), (9.88205e-21-5.36454e-21*ii, 9.59971e-21-5.64689e-21*ii, 1.4456e-19+7.58942e-19*ii), (5.50571e-21-7.6233e-21*ii, 1.4456e-19+7.58942e-19*ii, 9.74088e-21-5.36454e-21*ii), (-5.64689e-22+4.65868e-21*ii, -1.04806e-18-1.4456e-19*ii, -5.92923e-21+4.94103e-21*ii), (-2.25875e-21+4.65868e-21*ii, -2.25875e-21+7.19978e-21*ii, -1.04806e-18-1.4456e-19*ii), (-1.04806e-18+4.33681e-19*ii, -5.64689e-21+4.94103e-21*ii, -3.67048e-21+2.68227e-21*ii), (-6.43745e-20+6.7763e-21*ii, -6.77626e-20+6.43745e-20*ii, -1.01644e-20+6.09864e-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.