MathGroup Archive 2012

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

Search the Archive

Re: Getting the Derivative of an HoldForm Expression

  • To: mathgroup at
  • Subject: [mg127837] Re: Getting the Derivative of an HoldForm Expression
  • From: David Bailey <dave at>
  • Date: Sat, 25 Aug 2012 04:28:01 -0400 (EDT)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • References: <k16jfv$bep$>

On 24/08/2012 01:56, nitgun at wrote:
> Hi,
> am currently fiddling with some equations. To make it more easy I want to introduce subexpressions which should not be evaluated. For this purpose I found HoldForm. But this creates some weird results when I want to get the derivative of such a term. But let's have a look at an example:
> In1:=T=HoldForm[2*a[t]]
> Out1=2 a[t]
> In2:= a[t]=b[t]+c[t]
> Out2=b[t]+c[t]
> In3:=T
> Out3=2 a[t]<-- this is what I need HoldForm for, as I do not want 2(b[t]+c[t]) as result
> In4:=D[T,t]
> Out4=2 a'[t] HoldForm'[2(b[t]+c[t])]
> I would expect 2 a'[t] as result so the term HoldForm'[...] seems to be a bit weird to me. Can anyone explain to me how I can avoid this term?
> Thanks in advance.
The simplest answer, is not to use HoldForm for this purpose, and not to 
make assignments such as


unless you really want them to be used everywhere! Now you can take your 
derivative of T quite easily. Then, if you want to replace a[t] in the 
resultant expression, use

expr /. a[t_]->b[t]+c[t]

Note I have used a pattern here, so that an expression like a[2 k] would 
also get replaced.

I often find it is convenient to collect replacement rules in a list, 
and then just apply the whole set at various points in a calculation. 
For example:

constants={c->299792.0,em->9.1*10^-31, etc etc}


David Bailey

  • Prev by Date: Re: How Expand?
  • Next by Date: Re: ContourPlot non rectangular evaluation?
  • Previous by thread: Getting the Derivative of an HoldForm Expression
  • Next by thread: Re: Getting the Derivative of an HoldForm Expression