MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Assisting FullSimplify (last time to bother you with this topic)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56179] Re: Assisting FullSimplify (last time to bother you with this topic)
  • From: Peter Pein <petsie at arcor.de>
  • Date: Mon, 18 Apr 2005 03:08:38 -0400 (EDT)
  • References: <d3qht2$oi2$1@smc.vnet.net> <d3t3b8$8k8$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Peter Pein wrote:
> Hugh Goyder wrote:
> 
>>I started with the expression e1 below. FullSimplify does not make any
>>progress in making it simpler. By a mixture of working on parts of the
>>expression, luck and physical reasoning I worked out that the expression is
>>the same as that given in e2. (For example I knew the expression should be
>>real). Is there anyway that I could have directed FullSimplify to get from
>>e1 to e2, by for example setting options?
>>
>>(Cutting and pasting the code below into a notebook will make it readable.
>>It may then be evaluated.)
>>
>>Thanks
>>
>>Hugh Goyder
>>
>>
>>
>>e1 = (4*I*
>>E^(I*(a + b)*k)*(-E^(2*I*a*k) +
>>E^(2*I*(1 + ar)*k)))/(E^(2*I*(1 + a + ar)*k)*(-2 + Sr) +
>>E^(2*I*(a + b)*k)*(-2 + Sr) - E^(4*I*a*k)*Sr + E^(2*I*(1 + ar)*k)*Sr +
>>E^(2*I*(2*a + b)*k)*Sr - E^(2*I*(1 + ar + b)*k)*Sr -
>>E^(2*I*a*k)*(2 + Sr) - E^(2*I*(1 + a + ar + b)*k)*(2 + Sr))
>>
>>
>>
>>e2 = -(Sin[(1 - a + ar)*k]/((-Cos[(1 + ar)*k])*Cos[b*k] +
>>Sr*Cos[a*k]*Sin[(1 - a + ar)*k]*Sin[b*k]))
>>
>>FullSimplify[e1]
>>
>>FullSimplify[e1 == e2]
>>
>>LeafCount[e1]
>>
>>LeafCount[e2]
>>
>>
> 
> In[6]:=
>    e3a = FullSimplify[ComplexExpand[Re[e1],
>            TargetFunctions -> {Re, Im}]];
>    e3  = FullSimplify[Numerator[e3a]/
>          Collect[TrigExpand[ExpandAll[Denominator[e3a]]],
>            Cos[#1*k]& /@ {a, b}, FullSimplify]]]
> Out[6]=
>   Sin[(1 - a + ar)*k] /
>     ( Cos[(1 + ar)*k]*Cos[b*k] +
>       Sr*Cos[a*k]*Sin[(-1 + a - ar)*k]*Sin[b*k] ) }
>   Simplify[e2 == e3]
>   LeafCount /@ {e1, e2, e3}
> Out[7]=
>   True
> Out[8]=
>   {148, 45, 43}
> 
Even shorter (and 70 times faster) is:

e4 = FullSimplify@
  Map[Collect[#, Cos[(a | b) k], TrigFactor] &,
    Together@TrigExpand@ExpandAll@ExpToTrig@
       (e1 /. ar -> br - 1), {2}
   ] /. br -> ar + 1

which results in

  -1/(Cos[(ar + 1)*k]*Cos[b*k]*Csc[(a - ar - 1)*k] +
       Sr*Cos[a*k]*Sin[b*k]))

-- 
Peter Pein
Berlin


  • Prev by Date: Re: Typesetting Mathematica code
  • Next by Date: Bug in UI?
  • Previous by thread: Re: Integrate is driving me crazy, please help!
  • Next by thread: Bug in UI?