MathGroup Archive 1992

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

Search the Archive

D[myFunc[g[x]]] -> myFunc[D[g[x],x]: How to do in chain rule ???

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: D[myFunc[g[x]]] -> myFunc[D[g[x],x]: How to do in chain rule ???
  • From: Simon Chandler <simonc at hpcpbla.bri.hp.com>
  • Date: Mon, 24 Aug 92 20:10:24 +0100

(* Hi mathgroup,

I hope you can help with this problem.  I want to give the function 'myFunc' 
the property of being 'transparent' to differentiation.
i.e., I want to have 

  d myFunc[g[x]]                       d g[x]
  --------------    give me    myFunc[ ------ ]                (1)
	dx                               dx

where g is an arbitrary function.  "Easy" I hear you say, just write...
*)

  myFunc/: D[myFunc[g_],x_]:=myFunc[D[g,x]]

(* so that *)
  D[myFunc[g[x]],x]
(* gives *)

  myFunc[g'[x]]

(* That's great.  But now lets try differentiating another arbitrary function, 
f, acting on myFunc.  I want the chain rule to convert 

  d f[myFunc[g[x]]]                         d myFunc[g[x]]
  ----------------- into f'[myFunc[g[x]]] * --------------     (2)
	  dx                                      dx

which would then be converted by (1) into 

				d g[x]
     f'[myFunc[g[x]]] * myFunc[ ------ ]                       (3)
				  dx

What actually happens is ... 
*)

  D[f[myFunc[g[x]]],x]


  f'[myFunc[g[x]]] g'[x] myFunc'[g[x]]

(* If you use Trace on this you will see that the intermediate step in the 
chain rule (2) does not seem to be produced so there is no opportunity for
our defined property for myFunc to act *)

  Trace[D[f[myFunc[g[x]]],x]]

  {D[f[myFunc[g[x]]], x], f'[myFunc[g[x]]] myFunc'[g[x]] g'[x], 

    {myFunc'[g[x]] g'[x], g'[x] myFunc'[g[x]]}, 

    f'[myFunc[g[x]]] g'[x] myFunc'[g[x]], 

    f'[myFunc[g[x]]] g'[x] myFunc'[g[x]]}

(* Can anyone suggest how I might define a rule/property for myFunc
so that it is transparent to differentiation even in the chain rule and
so give me the result I want ?

I look forward to your answers,

Simon Chandler
Hewlett-Packard Ltd (CPB)
Filton Road
Stoke Gifford
Bristol
BS12 6QZ

Tel: 0272 228109
Fax: 0272 236091
email: simonc at hpcpbla.bri.hp.com  *)




*)






  • Prev by Date: Re: No Subject
  • Next by Date: StringToStream error???
  • Previous by thread: Re: No Subject
  • Next by thread: StringToStream error???