Re: Re: question 1
- To: mathgroup at smc.vnet.net
- Subject: [mg75919] Re: [mg75873] Re: [mg75810] question 1
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 13 May 2007 05:50:31 -0400 (EDT)
- References: <200705110924.FAA05900@smc.vnet.net> <A52D6750-3017-4EF6-82F7-DFE4CB83812F@mimuw.edu.pl> <CB1CAE8E-3B30-4645-9279-14C936512446@mimuw.edu.pl> <3201069.1178958084224.JavaMail.root@m35> <op.tr8whmu1qu6oor@monster.ma.dl.cox.net>
This is of course the right approach when you know you have a "power
sum" and want to find a suitbale representation. However, if you
wanted to use this as a posssible transofrmation for Simplify it
would not be much use since, while:
powerSum[Expand[(x - 2)^4 + (y + 3)^5], {x, y}]
y + 3)^5 + (x - 2)^4
works nicely,
powerSum[Expand[(x - 2)^4 + (y + 3)^5] + 11, {x, y}]
is a disaster.
Note that with:
transf[f_, {e_, o_}] :=
With[{a = Integrate[D[f, e], e], b = Integrate[D[f, o], o]},
FullSimplify[Simplify[a] + Simplify[b] + Simplify[(f - (a + b))],
ExcludedForms -> {(e + c_)^n_, (o + d_)^m_}]]
we get
transf[Expand[(x - 2)^4 + (y + 3)^5] - 11, {x, y}]
(y + 3)^5 + (x - 2)^4 - 11
and even when we have cross terms, the answer returned is often
better than that returend by FullSimplify:
a = transf[Expand[(x - 2)^4 + (y + 3)^5] + x*y, {x, y}]
(y + 3)^5 + x*(x*((x - 8)*x + 24) + y - 32) + 16
b = FullSimplify[Expand[(x - 2)^4 + (y + 3)^5] + x*y]
x^4 - 8*x^3 + 24*x^2 + (y - 32)*x + y*(y*(y*(y*(y + 15) + 90) + 270)
+ 405) + 259
LeafCount /@ {a, b}
{21, 37}
My own intention was not so much to find a way of expressing a given
expression as a sum of powers when we know that it cna be so
expressed as to find a transformation that might be added to the
transformations used by Simplify and that would help it to find such
representations when they existed and would return something
reasonably simple (better than FullSimplify does by default) in other
cases.
Of course I don't really think this project is practical because of
the high complexity any such transformation would probably have to have.
Andrzej Kozlowski
On 13 May 2007, at 12:11, DrMajorBob wrote:
> Clear[powerSum, test]
> powerSum[polynomial_, vars_List] /; PolynomialQ[polynomial, vars] :=
> Module[{powers, coefficients, roots, soln},
> powers = Exponent[polynomial, #] & /@ vars;
> coefficients = Table[Unique[c], {Length@vars}];
> roots = Table[Unique[r], {Length@vars}];
> soln = SolveAlways[coefficients.(vars - roots)^powers ==
> polynomial,
> vars][[1]];
> {roots, coefficients} = {roots, coefficients} /. soln;
> coefficients.(vars - roots)^powers
> ]
- References:
- question 1
- From: dimitris <dimmechan@yahoo.com>
- question 1