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 |
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 |
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 |
On 10/23/2014 10:08 AM, Ralf Hemmecke
wrote:
Good show!!!!!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 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 |
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 |
Free forum by Nabble | Edit this page |