Re: Getting the small parts right or wrong. Order and Collect
- To: mathgroup at smc.vnet.net
- Subject: [mg63621] Re: [mg63607] Getting the small parts right or wrong. Order and Collect
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sat, 7 Jan 2006 04:59:30 -0500 (EST)
- References: <dpg11e$pm4$1@smc.vnet.net> <dplhq9$em8$1@smc.vnet.net> <200601070729.CAA06924@smc.vnet.net> <6FCF3227-C4E1-418A-BAC1-F3981F969878@mimuw.edu.pl>
- Sender: owner-wri-mathgroup at wolfram.com
On 7 Jan 2006, at 18:04, Andrzej Kozlowski wrote:
>
> On 7 Jan 2006, at 16:29, Richard Fateman wrote:
>
>> This example comes from the on-line help.
>>
>> Collect[(1 + x + y)^3, x]
>>
>> is supposed to collect the terms in the expression by powers of x. I
>> expected the answer to look something like
>>
>> (.....)*x^0 + (......)*x^1 +(....)*x^2 + ..... etc.
>>
>> with some simplifications like x^0 -> 1, x^1 -> x in place, and
>> perhaps the
>> whole thing ordered in reverse.
>>
>> But the result is
>>
>> 1 + x^3 + 3*y + 3*y^2 + y^3 + x^2*(3 + 3*y) + x*(3 + 6*y + 3*y^2)
>>
>> Yes I can explain why this answer is ordered this way, but it is
>> not a
>> property of computer algebra systems that is reflected by this,
>> just a
>> property of Mathematica. This is a poke to get it right.
>>
>> I even know I can do this..
>>
>> Replace[%21, {Plus :> List}, 1, Heads -> True]
>>
>> and make a list of the terms; I can then try sorting them some
>> other way, as
>> long as I don't add them together. Oh, I can also rename the
>> variables;
>> Collect [(1+x+y)^3, y] works much better.
>>
>> RJF
>>
>>
>>
>
>
> There is one very simple thing you can do, which I think completely
> deals with your problem.
> You can convert the output to TraditionalForm.
>
> Andrzej Kozlowski
There are a couple more things that I think are also relevant. First
of all if you do not like to have your output in TraditionalForm you
can simply do this:
Collect[(1 + x + y)^3, x] // TraditionalForm // StandardForm
Alternatively you can dispense with Collect and do this (though I
prefer the above approach)
1 + Plus @@ Table[Coefficient[(1 + x + y)^3, x^i]*x^i, {i, 1, 3}]
Of course there is no way to make the powers of x ascend as you
originally seems to have wanted but then we can't have everything
even where Mathematica is concerned.
Andrzej Kozlowski
- References:
- Getting the small parts right or wrong. Order and Collect
- From: "Richard Fateman" <fateman@cs.berkeley.edu>
- Getting the small parts right or wrong. Order and Collect