Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
Ask Your Question
1

Factoring bivariate polynomials w.r.t. a single variable

asked 13 years ago

Harry gravatar image

updated 10 years ago

FrédéricC gravatar image

the function factor() works in this fashion:

sage: x, y = PolynomialRing(GF(17), 2, ['x','y']).gens()

sage: f =  9*y^6 - 9*x^2*y^5 - 18*x^3*y^4 - 9*x^5*y^4 + 9*x^6*y^2 + 9*x^7*y^3 + 18*x^8*y^2 - 9*x^11

sage: f.factor()

(-9) * (x^5 - y^2) * (x^6 - 2*x^3*y^2 - x^2*y^3 + y^4)

Is there a possibility to factorize a bivariate polynomial in x,y with respect to a single variable only (e.g. y) and get the answer in the form of (y - f(x)) as factors?

Preview: (hide)

Comments

1

Surely there is no essential difference between the factorization in F[x,y] which you see and the one in F(x)[y] which you want, by Gauss's Lemma? The fact that none of the displayed factors is linear in y just means that f has no roots in F(x) when you consider it as a polynomial in F(x)[y]. To get roots (and hence linear factors) you would need to enlarge F(x) to its algebraic closure.

John Cremona gravatar imageJohn Cremona ( 13 years ago )

2 Answers

Sort by » oldest newest most voted
1

answered 13 years ago

radokirov gravatar image

This should do it

R = PolynomialRing(GF(17), 'x')
x = R.gens()[0]
y = PolynomialRing(R, 'y').gens()[0]
f =  9*y^6 - 9*x^2*y^5 - 18*x^3*y^4 - 9*x^5*y^4 + 9*x^6*y^2 + 9*x^7*y^3 + 18*x^8*y^2 - 9*x^11
f.factor()

Unfortunately, it seems that the functionality to factor over a generic polynomial ring is not implemented.

Preview: (hide)
link
1

answered 10 years ago

MvG gravatar image

Try this:

sage: g = f.polynomial(y)
sage: g.change_ring(g.base_ring().fraction_field()).factor()
(9) * (y^2 + 16*x^5) * (y^4 + 16*x^2*y^3 + 15*x^3*y^2 + x^6)

I'm not sure whether that's any better than your original

sage: f.factor()
(-8) * (-x^5 + y^2) * (x^6 - 2*x^3*y^2 - x^2*y^3 + y^4)

since as John already indicated, there is no fundamental difference.

Preview: (hide)
link

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: 13 years ago

Seen: 1,098 times

Last updated: Jan 12 '15