Ask Your Question
1

Find specific linear combination in multivariate polynomial ring

asked 2012-03-25 08:53:55 +0100

Martin Brandenburg gravatar image

updated 2012-03-25 09:56:39 +0100

DSM gravatar image

Assume that I have given a sequence of polynomials $f_1,\dotsc,f_s$ in a multivariate polynomial ring (over $\mathbb{Z}$, if that matters) and want to decide whether a given polynomial $g$ can be written as $g = \lambda_1 f_1 + \dotsc + \lambda_s f_s$. Then in Sage I just let

I = Ideal([f_1,...,f_s])

and test with

g in I

If this returns True, how can I get Sage to display some possible $\lambda_1,\dotsc,\lambda_s$?

As for my specific problem, I have already tried it by hand, but this is hard: My polynomial ring has $15$ indeterminates and there are $s = 250$ polynomials.

edit retag flag offensive close merge delete

Comments

There is a related question http://ask.sagemath.org/question/1064/explicit-representation-of-element-of-ideal which answers my question if the base ring was a field.

Martin Brandenburg gravatar imageMartin Brandenburg ( 2012-03-25 08:59:30 +0100 )edit

I could solve my problem by feeding sage with base fields such as $\mathbb{Q}$ and $\mathbb{F}_2$ and experimental comparing of the results, to get a correct linear combination over the base ring $\mathbb{Z}$. But I think it is interesting whether there is a general method implemented.

Martin Brandenburg gravatar imageMartin Brandenburg ( 2012-03-25 12:01:23 +0100 )edit

Hi! Have you found the general method implemented now?

jane gravatar imagejane ( 2022-10-19 18:12:32 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2012-03-25 18:28:22 +0100

AFAIK, Singular can handle this case but the Sage wrappers restrict the coefficient domain to a field. You can work around this with the magical Singular function interface. Using the example from the previous question linked above:

sage: R.<x,y,z,t> = ZZ[]
sage: C1= 17*x^2 + 7*y^2 - 26*y*z + 7*z^2
sage: C2= 13*y^2 - 7*y*z + 13*z^2 - 51*t^2
sage: I = (C1, C2)*R
sage: f in I
False
sage: 221*f in I
True
sage: lift = sage.libs.singular.ff.lift
sage: lift(I, 221*f)
[         13*x^2 + 17*y*z - 21*t^2]
[-7*x^2 + 17*y^2 + 17*z^2 + 78*t^2]
sage: (13*x^2 + 17*y*z - 21*t^2)*C1 + (-7*x^2 + 17*y^2 + 17*z^2 + 78*t^2)*C2
221*x^4 + 221*y^4 + 221*z^4 - 3978*t^4
sage: f
x^4 + y^4 + z^4 - 18*t^4
edit flag offensive delete link more

Comments

Thanks!

Martin Brandenburg gravatar imageMartin Brandenburg ( 2012-03-27 09:52:37 +0100 )edit

Your Answer

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

Add Answer

Question Tools

Stats

Asked: 2012-03-25 08:53:55 +0100

Seen: 1,445 times

Last updated: Mar 25 '12