[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-math] Symmetric Functions
From: |
Ralf Hemmecke |
Subject: |
[Axiom-math] Symmetric Functions |
Date: |
Thu, 23 Oct 2014 16:08:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 |
On 10/23/2014 01:45 PM, Fabio S. wrote:
>
> Consider the following polynomial
>
> G := (y-(a*u+b*v))*(y-(a*v+b*u))
>
> It is symmetric both in (a,b) and (u,v). I would like to espress it as a
> polynomial in Z[s,t,u,v,y]
> where s=a+b and t=ab are the symmetric elementary funcitions on a and b
>
> Is it possible in axiom?
>
> In other words, I am looking for a command which having G as input, returns
>
> y^2 - s*(u+v)*y + (s^2-2*t)u*v + t*(u^2+v^2)
According to
http://en.wikipedia.org/wiki/Symmetric_polynomial#Elementary_symmetric_polynomials
the expression (u^2+v^2) doesn't look like an *elementary* symmetric
polynomial in u and v.
Ralf
(1) -> Z==>Integer; Q==>Fraction Z
Type:
Void
(2) -> M==>DistributedMultivariatePolynomial([y], Q)
Type:
Void
(3) -> F==>Fraction M
Type:
Void
(4) -> P==>DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q], F)
Type:
Void
(5) -> g: P := (y-(a*u+b*v))*(y-(a*v+b*u))
2 2 2 2 2
(5) u a b + u v a + u v b - y u a - y u b + v a b - y v a - y v b + y
Type:
DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer))))
(6) -> s1: P := a+b-s; s2: P := a*b-t; s3:P := u+v-p;s4:P:=u*v-q;
Type:
DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer))))
(7) -> G := groebner [g,s1,s2,s3,s4]
(7)
2 2
[u + v - p, v - v p + q, a + b - s, b - b s + t,
2 2 2
s q - y s p + t p - 4t q + y ]
Type:
List(DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))))
(8) -> last(G)
2 2 2
(8) s q - y s p + t p - 4t q + y
Type:
DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer))))
Also check out:
(10) -> symFunc([a,b])$SymmetricFunctions(Polynomial(Integer))
(10) [1,b + a,a b]
Type:
Vector(Polynomial(Integer))