MathGroup Archive 1999

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

Search the Archive

RE: Manipulating differential equations

  • To: mathgroup at
  • Subject: [mg18626] RE: [mg18552] Manipulating differential equations
  • From: "Ersek, Ted R" <ErsekTR at>
  • Date: Tue, 13 Jul 1999 01:01:41 -0400
  • Sender: owner-wri-mathgroup at

Martin Heimann wrote:
I would like to insert test functions into an expression that contains

dg1 = c''[x] + g c'[x]

I would like e.g. to replace c[x] by Exp[-a x]:

dg1/.c[x]->Exp[-a x]

but this doesn't work; one has to put substitution rules for each of the
derivatives explicitly. Is there a more elegant way to achieve this?

Back on 6 March 96, Robby Villegas answered essentially the same question in
this group.  Robby gives two methods of doing what you want (see below).

dg1=c''[x]+g c'[x];

Method 1:  Use Block to temporarily define c[x_]
Block[{c},c[x_]:=Exp[-a x];dg1]//InputForm

a^2/E^(a*x) - (a*g)/E^(a*x)

Method 2:  Change "c" to a pure function.
dg1/.c->(Exp[a#]& ) //InputForm

a^2*E^(a*x) + a*E^(a*x)*g

As Robby wrote:

Method 1 works because if the is a definition for c in effect, and you
evaluate an 
expression containing derivatives of c, the derivative will automatically
differentiate the formula for c.

Method 2 works because any derivative operator such, the Derivative[1] and
Derivative[2] that act on c will automatically act on a pure function.

So why doesn't the method Martin used work?
Below we see dg1 doesn't contain the expression c[x].
InputForm[dg1] shows how it's actually represented.




g*Derivative[1][c][x] + Derivative[2][c][x]

Ted Ersek

  • Prev by Date: Re: Problem with "Run" command on WindowsNT
  • Next by Date: Re: Re: Simplifying constants...bug?
  • Previous by thread: Re: Manipulating differential equations
  • Next by thread: Re: Manipulating differential equations