Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

Re: Getting the Derivative of an HoldForm Expression

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127895] Re: Getting the Derivative of an HoldForm Expression
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Thu, 30 Aug 2012 04:10:47 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <k16jfv$bep$1@smc.vnet.net> <k1a28l$icg$1@smc.vnet.net> <k1i0nc$4n5$1@smc.vnet.net>

On 28/08/2012 09:49, nitgun at gmail.com wrote:
> Thank you for your reply.
> Unfortunately I made my example a bit confusing. Because actually I need the replacement the other way round. I want to replace common subexpressions.  Some occur after some fancy calculations and others I can avoid by substituting right at the beginning (as my given example). That's why I want to include the terms for the replacement in the notebook as well so that others can understand the calculations. Otherwise nobody would know what a[t] stands for, unless he finds the replacement in the end. But maybe it works when I put it into such a replacement list.
>
Replacing common subexpressions will work too. For example:

In[4]:= a[2 t] + b[t] + c[2 t] + d[ t] /. c[x_] + a[x_] -> g[x]

Out[4]= b[t] + d[t] + g[2 t]

Some cases are trickier

In[5]:= (a + b)/Sqrt[c + d] /. Sqrt[c + d] -> g[c, d]

Out[5]= (a + b)/Sqrt[c + d]

You sometimes need to know a bit about how expressions are represented 
internally in Mathematica:

In[6]:= (a + b)/Sqrt[c + d] /. (c + d)^p_. -> g[c, d]^(2 p)

Out[6]= (a + b)/g[c, d]

Note that Mathematica is automatically aware that additions and 
subtractions can be shuffled into any order (likewise for 
multiplications), and that divisions and roots are expressed internally 
in power notation.

Assignments are far more useful inside pieces of actual code, but they 
can be quite dangerous in hand explorations of equations, because a left 
over assignment (say m=1) messes up expressions like (m c^2), and in a 
large expression that might not be instantly obvious!

Replacement rules are extremely powerful, and it is well worth exploring 
them in depth.

David Bailey
http://www.dbaileyconsultancy.co.uk



  • Prev by Date: What is this shorthand notation?
  • Next by Date: Re: Luke's list of mathematica questions
  • Previous by thread: Re: Getting the Derivative of an HoldForm Expression
  • Next by thread: Re: Getting the Derivative of an HoldForm Expression