Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can use the Groebner basis method that I mentioned previously:

sage: ring = PolynomialRing(RDF, 'a0,a1,a2,a3,R', order='lex')
sage: ideal = ring.ideal([
....:  -R^2 + a0^2 + 1.56835186587759*a0*a1 + 1.79444137578129*a0*a2 + a1^2 + 1.12952287573422*a1*a2 + a2^2 - 2*a0 - 1.56835186587759*a1 - 1.79444137578129*a2 + 1,
....:  -R^2 + a0^2 + 1.56835186587759*a0*a1 + 1.79444137578129*a0*a2 + a1^2 + 1.12952287573422*a1*a2 + a2^2 - 1.56835186587759*a0 - 2*a1 - 1.12952287573422*a2 + 1,
....:   -R^2 + a0^2 + 1.56835186587759*a0*a1 + 1.79444137578129*a0*a2 + a1^2 + 1.12952287573422*a1*a2 + a2^2 - 1.79444137578129*a0 - 1.12952287573422*a1 - 2*a2 + 1,
....:   a0 + a1 + a2 - 1])
sage: ideal.groebner_basis()
[a0 + 0.675726767968, a1 - 0.750109938467, a2 - 0.9256168295, R^2 - 0.257026038676]

It seems we don't have Singular's support for floating point numbers wrapped, so its not as fast or nice as it could be. But the system of equations is so simple that it doesn't really matter here.