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.08934e-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.35029e-44, 2.35056e-44, 2.35077e-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.44212e-18*ii), (-1.25841e-18-4.44241e-18*ii, 7.58942e-19+4.80663e-18*ii, -1.25841e-18-4.44212e-18*ii), (-1.25389e-18-4.44212e-18*ii, -1.25389e-18-4.44212e-18*ii, 7.58942e-19+4.77049e-18*ii), (-6.09864e-20-4.06576e-20*ii, -6.43745e-20-4.06576e-20*ii, -6.09864e-20-4.06576e-20*ii), (1.4456e-19+7.58942e-19*ii, 5.0822e-21-5.0822e-21*ii, 4.79985e-21-5.92923e-21*ii), (5.36454e-21-5.36454e-21*ii, 5.36454e-21-5.36454e-21*ii, 1.4456e-19+7.58942e-19*ii), (9.8821e-22-7.6233e-21*ii, 1.4456e-19+7.58942e-19*ii, 5.22337e-21-5.36454e-21*ii), (-5.64689e-22+4.65868e-21*ii, -1.04806e-18+4.33681e-19*ii, -5.92923e-21+4.79985e-21*ii), (-3.38813e-21+4.65868e-21*ii, -4.51751e-21+2.39993e-21*ii, -1.04806e-18-1.4456e-19*ii), (-1.04806e-18+4.33681e-19*ii, -5.64689e-21+4.94103e-21*ii, -3.38813e-21+2.68227e-21*ii), (-3.72694e-20+5.75982e-20*ii, -9.14796e-20+1.35525e-20*ii, -4.06576e-20+5.75982e-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.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.13493e-30,1.13493e-30] + [-1,-1]*ii [-1.13492e-30,1.13492e-30] + [-1,-1]*ii [-1,-1] + [-9.77731e-31,9.77731e-31]*ii |, |  [-1.13501e-30,1.13501e-30] + [-1,-1]*ii [-1,-1] + [-9.77817e-31,9.77817e-31]*ii [-1.135e-30,1.135e-30] + [-1,-1]*ii |, |  [-1,-1] + [-9.77862e-31,9.77862e-31]*ii [-1.13506e-30,1.13506e-30] + [-1,-1]*ii [-1.13505e-30,1.13505e-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.44212e-18*ii), (-1.25841e-18-4.44241e-18*ii, 7.58942e-19+4.80663e-18*ii, -1.25841e-18-4.44212e-18*ii), (-1.25389e-18-4.44212e-18*ii, -1.25389e-18-4.44212e-18*ii, 7.58942e-19+4.77049e-18*ii), (-6.09864e-20-4.06576e-20*ii, -6.43745e-20-4.06576e-20*ii, -6.09864e-20-4.06576e-20*ii), (1.4456e-19+7.58942e-19*ii, 5.0822e-21-5.0822e-21*ii, 4.79985e-21-5.92923e-21*ii), (5.36454e-21-5.36454e-21*ii, 5.36454e-21-5.36454e-21*ii, 1.4456e-19+7.58942e-19*ii), (9.8821e-22-7.6233e-21*ii, 1.4456e-19+7.58942e-19*ii, 5.22337e-21-5.36454e-21*ii), (-5.64689e-22+4.65868e-21*ii, -1.04806e-18+4.33681e-19*ii, -5.92923e-21+4.79985e-21*ii), (-3.38813e-21+4.65868e-21*ii, -4.51751e-21+2.39993e-21*ii, -1.04806e-18-1.4456e-19*ii), (-1.04806e-18+4.33681e-19*ii, -5.64689e-21+4.94103e-21*ii, -3.38813e-21+2.68227e-21*ii), (-3.72694e-20+5.75982e-20*ii, -9.14796e-20+1.35525e-20*ii, -4.06576e-20+5.75982e-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.