Ask Your Question
1

Solving Groebner Basis of an ideal that includes parameters with order=lex yields non triangular equations

asked 2018-10-01 17:19:02 -0600

ksb gravatar image

From this reference, it seems that a Groebner basis with respect to lexicographic order should yield a 'triangular system': www dot scholarpedia.org/article/Groebner_basis. My system has three equations and three unknowns, which I want to transform into a series of three 1-D root finding problems.

R.<x0,x1,x2,x3,x4,x5,x6,x7,x8> = PolynomialRing(QQ)
F=R.fraction_field()
S.<x9,x10,x11> = PolynomialRing(F,order='lex');

I = S.ideal(
        -x7*x10*x9 + x8*x2*x11**2 + x3*x0*x11 - x4*x10,
        -x7*x10*x9 + x8*x2*x11**2 + 2*x5*x1*x11**2 - 2*x6*x9**2,
        2*x7*x10*x9 - 2*x8*x2*x11**2 - x3*x0*x11 + x4*x10 - 2*x5*x1*x11**2 + 2*x6*x9**2
        )

B = I.groebner_basis()
print('\n\n'.join(map(str,B)))

This yields four equations (rather than 3) which do not seem to exhibit this triangular property (first three equations mention all three variables x9,x10,x11, and the last one involves both x9 and x10).

x9^2 + ((-x4)/(2*x6))*x10 + ((-2*x1*x5)/(2*x6))*x11^2 + x0*x3/(2*x6)*x11

x9*x10 + x4/x7*x10 + ((-x2*x8)/x7)*x11^2 + ((-x0*x3)/x7)*x11

x9*x11^2 + 2*x0*x3/(2*x2*x8)*x9*x11 + ((-x4*x7)/(2*x2*x6*x8))*x10^2 + ((-2*x1*x5*x7)/(2*x2*x6*x8))*x10*x11^2 + x0*x3*x7/(2*x2*x6*x8)*x10*x11 + 2*x4^2/(2*x2*x7*x8)*x10 + ((-2*x4)/(2*x7))*x11^2 + ((-2*x0*x3*x4)/(2*x2*x7*x8))*x11

x10^3 + 2*x1*x5/x4*x10^2*x11^2 + ((-x0*x3)/x4)*x10^2*x11 + ((-2*x4*x6)/x7^2)*x10^2 + 4*x2*x6*x8/x7^2*x10*x11^2 + 4*x0*x3*x6/x7^2*x10*x11 + ((-2*x2^2*x6*x8^2)/(x4*x7^2))*x11^4 + ((-4*x0*x2*x3*x6*x8)/(x4*x7^2))*x11^3 + ((-2*x0^2*x3^2*x6)/(x4*x7^2))*x11^2

Do I have a misunderstanding about what to expect from Sage's output? Or is there a test to see if my system of equations is pathological in some way?

If I ignore the fact that variables x1...x8 are parameters, I am surprised to get a basis of three equations which is also not triangularizable with respect to x9,x10,x11.

S.<x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11> = PolynomialRing(QQ,order='lex');

I = S.ideal(
        -x7*x10*x9 + x8*x2*x11**2 + x3*x0*x11 - x4*x10,
        -x7*x10*x9 + x8*x2*x11**2 + 2*x5*x1*x11**2 - 2*x6*x9**2,
        2*x7*x10*x9 - 2*x8*x2*x11**2 - x3*x0*x11 + x4*x10 - 2*x5*x1*x11**2 + 2*x6*x9**2
        )

B = I.groebner_basis()
print('\n\n'.join(map(str,B)))

>>x0*x3*x6*x9^2 + 1/2*x0*x3*x7*x9*x10 - x1*x4*x5*x10*x11 - x1*x5*x7*x9*x10*x11 - 1/2*x2*x4*x8*x10*x11 + x2*x6*x8*x9^2*x11

x0*x3*x11 + x2*x8*x11^2 - x4*x10 - x7*x9*x10

x1*x5*x11^2 + 1/2*x2*x8*x11^2 - x6*x9^2 - 1/2*x7*x9*x10
edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted
2

answered 2018-10-02 07:38:41 -0600

updated 2018-10-02 08:18:04 -0600

My system has three equations and three unknowns, which I want to transform into a series of three 1-D root finding problems.

For this to be possible the system must have a finite number of solutions, but your system has an infinite number of solutions.

is there a test to see if my system of equations is pathological in some way?

You can compute I.dimension(). (By the way, this uses the Gröbner basis.) For 0-dimensional ideals in $\mathbb{Q}[x_1,\ldots,x_n]$ (like the Scholarpedia example) there are finitely many solutions over $\mathbb{C}$, and the output will be what you expect.

You can also call I.variety(ring=R) to solve the system of equations over R (e.g. CC or RR for approximate solutions, AA or QQbar for exact solutions), which will give an error if the ideal is not 0-dimensional.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2018-10-01 17:19:02 -0600

Seen: 42 times

Last updated: Oct 02