MathGroup Archive 2008

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

Search the Archive

Re: Defining derivatives

  • To: mathgroup at
  • Subject: [mg87879] Re: Defining derivatives
  • From: Szabolcs Horvát <szhorvat at>
  • Date: Sat, 19 Apr 2008 03:34:40 -0400 (EDT)
  • Organization: University of Bergen
  • References: <fu9vnl$igu$>

dh wrote:
> Hello All,
> does anybody know how to define symbolic derivatives. E.g.:
> f[x_]:=f1[x];
> f'[x_]:=f2[x];
> this does not work because f on the lefthand side is evaluated. To 
> prevent this (do not forget to remove f before redefining it):
> f[x_]:=f1[x];
> HoldPattern[f'[x_]]:=f2[x];
> this gives no message, but f'[x] returns f1[x] instead of f2[x].
> The same thinhg happens when you change the sequence of definitions:
> f'[x_]:=f2[x];
> f[x_]:=f1[x];

Hi Daniel,

It seems that Mathematica is not prepared to accept that the derivative 
of f[x] is f2[x] unless you also tell it that f1'[x] is f2[x].

A workaround is to use

f' = f2

instead of

f'[x_] := f2[x]

This appears to work in simple cases.

> Further, where is the information about derivatives stored?

It is stored as a SubValue of Derivative.


f'[x_] := g[2 x]

or just remove the ReadProtected attrbute of Derivative and use

?? Derivative

(There are quite a few *Values functions, e.g. NValues.  Just try 
Names["*Values"].  Unfortunately these functions are not very well 

I hope this helps,

  • Prev by Date: Re: Scaling Plot inside Row
  • Next by Date: Re: Re: Abs[x] function
  • Previous by thread: Re: Defining derivatives
  • Next by thread: Re: Defining derivatives