Re: Mathematica Collect function
- To: mathgroup at smc.vnet.net
- Subject: [mg110728] Re: Mathematica Collect function
- From: "David Park" <djmpark at comcast.net>
- Date: Sat, 3 Jul 2010 08:19:56 -0400 (EDT)
One of the experts may give you a regular Mathematica method for doing this,
but I would do it with the Presentations package MapLevelParts routine. This
allows us to pick out a list of sub-terms in a sum to operate on, in this
case to factor.
expr0 = ((1 + Sqrt[2]) i - 1)/4*(P10 - P11) - (1 + Sqrt[2] + i)/
4*(P20 - P21);
expr1 = Expand[expr0];
Needs["Presentations`Master`"]
Simplify[expr1]
% // MapLevelParts[Factor, {2, {1, 2}}]
% // MapLevelParts[Factor, {2, 1, 1, {2, 3}}]
Distribute[%]
% === expr0
giving:
1/4 ((-1 + i + Sqrt[2] i) P10 - (-1 + i + Sqrt[2] i) P11 - (1 + Sqrt[
2] + i) (P20 - P21))
1/4 ((-1 + i + Sqrt[2] i) (P10 - P11) - (1 + Sqrt[2] + i) (P20 - P21))
1/4 ((-1 + (1 + Sqrt[2]) i) (P10 - P11) - (1 + Sqrt[2] + i) (P20 -
P21))
1/4 (-1 + (1 + Sqrt[2]) i) (P10 - P11) -
1/4 (1 + Sqrt[2] + i) (P20 - P21)
True
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/
From: Minh [mailto:dminhle at gmail.com]
Given that:
Expand[((1 + Sqrt[2]) i - 1)/4*(P10 - P11) - (1 + Sqrt[2] + i)/
4*(P20 - P21)]
will output
-(P10/4) + (i P10)/4 + (i P10)/(2 Sqrt[2]) + P11/4 - (i P11)/4 - (
i P11)/(2 Sqrt[2]) - P20/4 - P20/(2 Sqrt[2]) - (
i P20)/4 + P21/4 + P21/(2 Sqrt[2]) + (i P21)/4
How do I get from:
-(P10/4) + (i P10)/4 + (i P10)/(2 Sqrt[2]) + P11/4 - (i P11)/4 - (
i P11)/(2 Sqrt[2]) - P20/4 - P20/(2 Sqrt[2]) - (
i P20)/4 + P21/4 + P21/(2 Sqrt[2]) + (i P21)/4
back to
((1 + Sqrt[2]) i - 1)/4*(P10 - P11) - (1 + Sqrt[2] + i)/
4*(P20 - P21)
I've tried using the Collect function as follows:
Collect[-(P10/4) + (i P10)/4 + (i P10)/(2 Sqrt[2]) + P11/4 - (i P11)/
4 - (i P11)/(2 Sqrt[2]) - P20/4 - P20/(2 Sqrt[2]) - (i P20)/4 + P21/
4 + P21/(2 Sqrt[2]) + (i P21)/4, {(P10 - P11), (P20 - P21)}]
but it doesn't seem to collect the terms {(P10 - P11), (P20 - P21)}.
Got any suggestions?