On 12/02/2014 03:08 AM, Ralf Hemmecke wrote:
Since you are maintaining Groebner information,
Oh, do I? I'm just maintaining the translation of the ++ documentation
(available in the .spad files) to a web representation.
I wanted to convert quadratics p(x)->Q(x') by finding n,m: x'=m*x+n; so
I put.
p(x)-q(x')=0
x'-m*x-n=0
and got an answer in terms f(n,m)x^2+g(n,m)*x+h(n,m)=0
so then I had to set
f(n,m)=0
g(n,m)=0
h(n,m)=0
as a separate step. Which worked fine to give me triangular output.
I am questioning the second step; not that it's wrong, but IMO it
shouldn't be necessary.
Is there a technique to avoid that?
Hmmm... in the first step you get a condition for m and n that still
involves x. You get rid of the x by requiring that each coefficient is
zero. Then you get 3 equations for m and n in the coefficients of the
original quadratic polynomials that must simultaneously equate to zero.
No you solve these equations in whatever way and express m and n in
terms of the original coefficients. If you don't do the trick with
removing the x and getting 3 equations, it would still be there. So why
do you think there is another method for solving that problem?
Ralf
Well you do seem to have a good grasp of the situation so I think
you are more than a "translator" (forgive me as I didn't "google" you).
In any case: I found the answer and posted it to mathhelpforum. I will
post it below but the core idea is to treat the polynomials in a matrix form
that separates the coefficients into different slots; then forming the
groebner input out of the resulting array of coefficient polynomials.
realize that crossposting is frowned upon but seeing you maintain
some information on groebner programs was to much to pass up.
This is part of an effort to systematize orthogonal polynomials; right now
maping a lot (all?) of finite interval types to the Gauss Hypergeometric
differential equation. Then the terms for all of that type can be written
down without further ado; and then most relationships/properties are
simple applications of combinatorial analysis and such properties.
Ray
Here is the solution I came up with. It is constructed to be built upon
for other results
without manual interference when applied.
Most of the following is probably boring to most people but since I
asked for help I feel obligated to
be explicit in the answer.
Use the matrix form of the polynomials.
C, C' the coefficient arrays: i.e. C=[c, b, a], C'=[c', b', a'] in the
Gauss Hypergeometric case of the leading coefficient C'=[0 1 -1]
X,X' the basis arrays; i.e. X=[1,x,x^2]', X'=[1, x', x'^2]
M a multiplication matrix: M = [1 0 0][0 m 0][0 0 m^2]
The polynomials we are interested in are the same but shifted and scaled
so that:
C . X=C' . X'
The transform is basically from basis X to basis X' keeping the
valuations constant.
Now a basis/ coefficient transform on coefficient arrays is equal to
P(n) Pascal's matrix P(n)=[1 0 0][n 1 0][n^2 2*n 1]
(For an explanation see Aceto references below)
Thus for x'-n=m*x we want:
P(-n) . X' =M*X or X'=P(n) . M . X
So we have
C . X = C' . P(n) . M . X
We expand X to a Vandermonde form to enable cancellation.
C = C' . P(n) . M or C- C' . P(n) . M =0 name the equation D
Then D is the array of the polynomials we want to feed to the
groebnerFactorize (Axiom) routine to
get a triangular array of equations for n, m.
The reason for groebnerFactorize is that while groebner itself generates
a lot of possible solutions; some of them
are ones we don't want. This can be resolved by more restrictions but
groebnerFactorize is more convenient because
it allows one to specify certain phrases as forbidden in the second
argument. This can be used to have the
program winnow out bad solution sets. This capability is essential in
other cases where page after page of alternatives
appear and you don't want to continuously print them out to find the one
(or more) expressions you don't want in the solution.
For instance the trivial (zero) set of solutions.
One final note is that I had to make a coefficient alteration when I
solved the equations earlier; that is C=[d*c, d*b, d*a]. I needed the extra
degree of freedom (d) in order to accommodate a sign change (if needed).
References:
Aceto: The Matrices of Pascal and Other Greats - L Aceto, D Trigiante -
American Mathematical Monthly, 2001
JSTOR: An Error Occurred Setting Your User Cookie Which unfortunately is
behind a firewall but the following is just as good for this
not.
A unified matrix approach to the representation of Appell polynomials
Lidia Acetoa, Helmuth R. Malonekb, and Gra¸ca Tomazc
http://arxiv.org/pdf/1406.1444v1.pdf
_______________________________________________
Axiom-math mailing list
Axiom-math@nongnu.org
https://lists.nongnu.org/mailman/listinfo/axiom-math