Re: How to factor a rational
- To: mathgroup at smc.vnet.net
- Subject: [mg78826] Re: [mg78813] How to factor a rational
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Wed, 11 Jul 2007 05:56:36 -0400 (EDT)
- References: <200707101031.GAA26987@smc.vnet.net>
On 10 Jul 2007, at 19:31, Steven Siew wrote:
> I'm trying to factor a rational constant (4/3) L in equation 1 so
> that it looks like equation 2
>
> But I was unable to do so. What would be the correct transformation to
> do so?
>
> $ cat file6.out
> Mathematica 5.2 for Students: Microsoft Windows Version
> Copyright 1988-2005 Wolfram Research, Inc.
>
> In[1]:=
> Out[1]= {stdout}
>
> In[2]:= (* Write your mathematica code below *)
>
> In[3]:= eq1 = (4/3)*L*A - (4/3)*L*B == a*k*t
>
> 4 A L 4 B L
> Out[3]= ----- - ----- == a k t
> 3 3
>
> In[4]:= FullForm[eq1]
>
> Out[4]//FullForm=
>
>> Equal[Plus[Times[Rational[4, 3], A, L], Times[Rational[-4, 3],
>> B, L]],
>
>> Times[a, k, t]]
>
> In[5]:= eq2 = (4/3)*L*(A - B) == a*k*t
>
> 4 (A - B) L
> Out[5]= ----------- == a k t
> 3
>
> In[6]:= FullForm[eq2]
>
> Out[6]//FullForm=
>
>> Equal[Times[Rational[4, 3], Plus[A, Times[-1, B]], L], Times[a,
>> k, t]]
>
> In[7]:= eq3 = eq1 /. Rational[n_, d_]*(a_)*(b___) + Rational[-n,
> d]*(c_)*b -> Ra
> tional[n, d]*(a - c)*b
>
> 4 A L 4 B L
> Out[7]= ----- - ----- == a k t
> 3 3
>
> In[8]:= (* End of mathematica code *)
>
> In[9]:= Quit[];
>
>
The simplest way to do this is:
eq1 = (4/3)*L*A - (4/3)*L*B == a*k*t
(4*A*L)/3 - (4*B*L)/3 == a*k*t
Factor /@ eq1
(4/3)*(A - B)*L == a*k*t
If you want to do this by means of pattern matching (far too much
typing for my taste) then you need to use something like this:
eq1 /. HoldPattern[Rational[n_, m_]*(x_)*(y_) + Rational[p_, m_]*(x_)*
(z_) /; n == -p] :> Rational[n, m]*x*(y - z)
(4/3)*(A - B)*L == a*k*t
Andrzej Kozlowski
- References:
- How to factor a rational
- From: Steven Siew <siewsk@bp.com>
- How to factor a rational