(no subject)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

(no subject)

Fabio S.-2

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)

Thanks

Fabio

_______________________________________________
Axiom-math mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/axiom-math
Reply | Threaded
Open this post in threaded view
|

Re: (no subject)

William Sit-2
Thanks, Ralf, for the clarification. So the difference
between Axiom and Maple and Mathematica (2Ms) is that the
source of a parameter is only available at compile time
(or interpreter time) for Axiom, while for 2Ms, it is
available at run time. Axiom checks the type (signature)
of the parameter and makes sure it is categorically
correct, while 2Ms do not, and leave it to the calling
function to perform the check. Potentially, this more
powerful setting in 2Ms allows also modification of the
behavior of the parameter (on a local copy of its source)
at run time, or let its behavior control the flow of the
calling function. This is available at the cost of
code-time and run-time  verification---of course a "dirty"
coder don't have to check as long as it is assumed that
the parameters are passed correctly.

Sometimes (well, long ago) I wished that the signature
(not the source) of a (function) parameter is available to
the calling function. Then it would not be necessary to
include as additional parameters the domains involved in
the signature of this (function) parameter. Thus
GB==GroebnerBasis(I:Ideal(R:PolynomialRingCategory)) would
be enough to start a packge GB, and the details of R and I
can be "fished out" by built-in functions like
CoefficientDomain(R), Variables(R), Generators(I), etc.
Built-in functions of this nature can in principle be
provided in Axiom with a table look-up, as the compiler
and interpreter already must do (the identifiers I gave
are just arbitrarily made up).

This does not go far enough like expression trees, but I
don't think the full source (based on FullForm in
Mathematica) is useful except in very special situations
and in those cases, it may be more efficient at code time
to just look up the source rather than to test for all
possible ways the (function) parameter, like the function
defining the coefficients of a power series, can be coded
and proceed according to what is found. Moreover, while
one may be able to in principle recursively go down the
expression tree by iterative calls to FullForm, and modify
and compute according to what is found, that is hardly the
normal way to write programs.

For Fabio's whether it is possible in Axiom to turn a
symmetric expression in variables (a,b) into an equivalent
expression using the corresponding symmetric elementary
functions in (a,b). The answer is yes, for such an
algorithm can be implemented without explicitly knowing
the expression tree of the given polynomial by using, for
example, a double induction on number of variables and on
degree (see the proof of the fundamental theorem of
symmetric polynomials:
http://en.wikipedia.org/wiki/Elementary_symmetric_polynomial#The_fundamental_theorem_of_symmetric_polynomials 
).  The presence of (u,v) in Fabio's example has nothing
to do with rewriting (a,b) (they behave as coefficients,
like y), unless because the example is also symmetric in
(u,v), they too can be rewritten in terms of their
elementary symmetric functions.
Since the representation in terms of elementary symmetric
polynomials is unique for any symmetric polynomial, the
answer is independent of the algorithm chosen.

In short, Fabio's problem need not, and most likely should
not, be implemented by examining the expression tree of
the input symmetric polynomial.

William


On Thu, 23 Oct 2014 13:45:19 +0200 (CEST)
  "Fabio S." <[hidden email]> 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)
>
> Thanks
>
>Fabio
>
> _______________________________________________
> Axiom-math mailing list
> [hidden email]
> https://lists.nongnu.org/mailman/listinfo/axiom-math

William Sit, Professor Emeritus
Mathematics, City College of New York
Office: R6/291D Tel: 212-650-5179
Home Page: http://scisun.sci.ccny.cuny.edu/~wyscc/

_______________________________________________
Axiom-math mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/axiom-math
Reply | Threaded
Open this post in threaded view
|

Symmetric Functions

Ralf Hemmecke-4
In reply to this post by Fabio S.-2
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))


_______________________________________________
Axiom-math mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/axiom-math
Reply | Threaded
Open this post in threaded view
|

Re: Symmetric Functions

Raymond Rogers-3

On 10/23/2014 10:08 AM, Ralf Hemmecke wrote:
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))


_______________________________________________
Axiom-math mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/axiom-math
Good show!!!!!
The above summarizes and succinctly presents the "masters-thesis"
http://mattpap.github.io/masters-thesis/html/src/groebner.html
subsection:  Algebraic relations in invariant theory

It has a more itemized detailed approach but once the ideas are present the
above (Ralf) lays it out plainly; which, IMHO, the mattpap fails to do.

Ray



_______________________________________________
Axiom-math mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/axiom-math
Reply | Threaded
Open this post in threaded view
|

Re: Symmetric Functions

Fabio S.-2
In reply to this post by Ralf Hemmecke-4
> 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, you are right of course. Maybe I didn't explain well what I looked
for.
I want the result to be expressed in term of the elementary symmetric
polynomials in {a,b}, nothing else: even if what we have is symmetric
also in the {u,v} and hence it can be expressed also in the elementary
symmetric polynomials in {u,v}, I am not interested in this last
expression.
I am interested in trasforming an expression in
Z[a,b][u,v][y]
which is symmetric in a and b in an expression in
Z[s,t][u,v][y]

Anyway, your answer is great (and perfectly satisfactory): thanks a lot!

Fabio



_______________________________________________
Axiom-math mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/axiom-math