Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

elementary symmetric functions

Hi, this is a continuation (though self-contained) on a previous question I luckily received an answer for;

http://ask.sagemath.org/question/26913/sfrom_polynomialf-convert-a-polynomial-to-symmetric-functions-but-with-a-parameter/

For those of you experts that know Maxima, I essentially want to do the following (to a polynomial);

elem([2,f1,f2],elem([2,e1,e2],x+y+a+b,[x,y]),[a,b])

which results in: (x+y)+(a+b) = e1 + f1, where Sage would (which is what I'm trying to do) return e[1] + f[1].

This is what I tried (among others), mostly from the above referenced link;

P.<x,y>=PolynomialRing(QQ['a','b'])
[a,b]=P.base_ring().gens()
S=SymmetricFunctions(P.base_ring())
exy=S.elementary()
f=x+y+a+b
exy._prefix='exy'
o=exy(S.from_polynomial(f))
P2.<a,b>=PolynomialRing(QQ['x','y'])
[x,y]=P2.base_ring().gens()
S2.SymmetricFunctions(P2.base_ring())
eab=S2.elementary()
eab._prefix='eab'
oo=eab(S2.from_polynomial(o)); oo

I was hoping to see: eab[1]+exy[1], but here an error is thrown saying that the polynomial is not symmetric. I've tried also (trying) to establish a base ring QQ['x','y','a','b'] and then subrings but that also doesn't seem to work for me.

I think Sage is great and I'm sure there's something equivalent to the very simple task done in Maxima. For instance, this

maxima.eval('elem:2')
oo=maxima.eval('elem([2,f1,f2],elem([2,e1,e2],x+y+a+b,[x,y]),[a,b])')

does return the proper answer, e1+f1, but I cannot use this result because I need to process it further with Sage and have not found a way to translate this Maxima type of object to a Sage polynomial - especially since the parsing seems to bring up errors for larger equations and my real equations are extremely large.

Thanks all, again!