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: [mg127837] Re: Getting the Derivative of an HoldForm Expression
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Sat, 25 Aug 2012 04:28:01 -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>

On 24/08/2012 01:56, nitgun at gmail.com 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

a[t]=b[t]+c[t]

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}

expr=expr/.constants

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




  • 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