Macaulay2 » Documentation
Packages » NumericalCertification :: certifySolutions
next | previous | forward | backward | up | index | toc

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-y)^3 - z^2, (z-x)^3 - y^2, (y-z)^3 - x^2};
i3 : listOfSols = solveSystem f;
i4 : c = certifySolutions(f,listOfSols);
i5 : peek c

o5 = MutableHashTable{alphaValues => {4.74733e-22, 1.17854e-27, 9.30148e-28, 3.31985e-27, 8.8565e-27, 2.4666e-27}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }
                      certifiedDistinct => {{-.151879*ii, -.142332+.358782*ii, .142332+.358782*ii}, {.142332-.358782*ii, .151879*ii, -.142332-.358782*ii}, {.142332+.358782*ii, -.151879*ii, -.142332+.358782*ii}, {-.142332-.358782*ii, .142332-.358782*ii, .151879*ii}, {-.142332+.358782*ii, .142332+.358782*ii, -.151879*ii}, {.151879*ii, -.142332-.358782*ii, .142332-.358782*ii}}
                      certifiedReal => {}
                      certifiedRegular => {{-.151879*ii, -.142332+.358782*ii, .142332+.358782*ii}, {.142332-.358782*ii, .151879*ii, -.142332-.358782*ii}, {.142332+.358782*ii, -.151879*ii, -.142332+.358782*ii}, {-.142332-.358782*ii, .142332-.358782*ii, .151879*ii}, {-.142332+.358782*ii, .142332+.358782*ii, -.151879*ii}, {.151879*ii, -.142332-.358782*ii, .142332-.358782*ii}}
                      certifiedSingular => {(-2.71051e-20-7.45389e-20*ii, 6.77626e-20+2.71051e-20*ii, -6.09864e-20-2.37169e-20*ii), (1.51653e-17+5.3441e-17*ii, -1.51178e-17-5.3502e-17*ii, 5.42101e-20-4.40457e-20*ii), (-2.03288e-20-1.69407e-20*ii, 6.77626e-21*ii, 1.01644e-20+6.77626e-20*ii), (-5.42101e-20, 1.50501e-17+5.33563e-17*ii, -1.51246e-17-5.34241e-17*ii), (-1.69407e-20+1.69407e-20*ii, -8.47033e-20-2.37169e-20*ii, -6.09864e-20+4.74338e-20*ii), (-1.51043e-17-5.34241e-17*ii, 7.45389e-20-7.7927e-20*ii, 1.51449e-17+5.34275e-17*ii), (3.38813e-20+1.0842e-19*ii, 3.38813e-20+1.0842e-19*ii, 3.38813e-20+1.0842e-19*ii), (-1.69407e-20-1.01644e-20*ii, -1.35525e-20-1.35525e-20*ii, -1.69407e-20-1.01644e-20*ii)}
                      nonCertified => {}

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 => {}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                      certifiedRegular => {|  [-1.06435e-17,2.99626e-18] + [-.151879,-.151879]*ii [-.142332,-.142332] + [.358782,.358782]*ii [.142332,.142332] + [.358782,.358782]*ii |, |  [.142332,.142332] + [-.358782,-.358782]*ii [-2.27913e-18,-2.26928e-18] + [.151879,.151879]*ii [-.142332,-.142332] + [-.358782,-.358782]*ii |, |  [.142332,.142332] + [.358782,.358782]*ii [-6.6173e-18,-6.60798e-18] + [-.151879,-.151879]*ii [-.142332,-.142332] + [.358782,.358782]*ii |, |  [-.142332,-.142332] + [-.358782,-.358782]*ii [.142332,.142332] + [-.358782,-.358782]*ii [-1.37706e-17,-1.37624e-17] + [.151879,.151879]*ii |, |  [-.142332,-.142332] + [.358782,.358782]*ii [.142332,.142332] + [.358782,.358782]*ii [6.95213e-18,6.95882e-18] + [-.151879,-.151879]*ii |, |  [1.05054e-17,1.05136e-17] + [.151879,.151879]*ii [-.142332,-.142332] + [-.358782,-.358782]*ii [.142332,.142332] + [-.358782,-.358782]*ii |}
                      certifiedSingular => {|  [-1.25815e-12,1.25815e-12] + [-1.54281e-12,1.54281e-12]*ii [-1.45063e-12,1.45063e-12] + [-1.23892e-12,1.23892e-12]*ii [-1.29214e-12,1.29214e-12] + [-1.08928e-12,1.08928e-12]*ii |, |  [-7.25442e-10,7.25442e-10] + [-1.03034e-9,1.03034e-9]*ii [-7.23471e-10,7.23471e-10] + [-1.03046e-9,1.03046e-9]*ii [-1.63298e-12,1.63298e-12] + [-1.62937e-12,1.62937e-12]*ii |, |  [-5.68491e-13,5.68491e-13] + [-5.68491e-13,5.68491e-13]*ii [-1.62788e-12,1.62788e-12] + [-1.13597e-12,1.13597e-12]*ii [-1.79468e-12,1.79468e-12] + [-1.78769e-12,1.78769e-12]*ii |, |  [-7.22784e-10,7.22784e-10] + [-1.02909e-9,1.02909e-9]*ii [-2.55692e-12,2.55692e-12] + [-2.55698e-12,2.55698e-12]*ii [-7.24546e-10,7.24546e-10] + [-1.02981e-9,1.02981e-9]*ii |, |  [-1.60432e-12,1.60432e-12] + [-2.14287e-12,2.14287e-12]*ii [-1.60432e-12,1.60432e-12] + [-2.14287e-12,2.14287e-12]*ii [-1.60432e-12,1.60432e-12] + [-2.14287e-12,2.14287e-12]*ii |, |  [-4.34729e-13,4.34729e-13] + [-4.21352e-13,4.21352e-13]*ii [-4.54793e-13,4.54793e-13] + [-4.54793e-13,4.54793e-13]*ii [-4.34729e-13,4.34729e-13] + [-4.21352e-13,4.21352e-13]*ii |}
                      nonCertified => {|  [-8.32912e-17,8.32506e-17] + [-6.94094e-17,6.93755e-17]*ii [-1.12265e-34,1.12265e-34] + [-2.77502e-17,2.77637e-17]*ii [-4.16253e-17,4.16456e-17] + [-2.77502e-16,2.77637e-16]*ii |, |  [-2.2211e-16,2.22002e-16] + [-3.4979e-26,3.4979e-26]*ii [-6.16332e-14,6.16633e-14] + [-2.18505e-13,2.18612e-13]*ii [-6.19687e-14,6.19384e-14] + [-2.18889e-13,2.18783e-13]*ii |}

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.