Re: Defining derivatives

*To*: mathgroup at smc.vnet.net*Subject*: [mg87958] Re: Defining derivatives*From*: dh <dh at metrohm.ch>*Date*: Mon, 21 Apr 2008 03:26:12 -0400 (EDT)*References*: <fu9vnl$igu$1@smc.vnet.net> <fueeme$b6g$1@smc.vnet.net>

Hi Jean-Marc, is this a typo?: f'[x] ^:= f2[x] this would only worj for the variable x. Daniel Jean-Marc Gulliet wrote: > 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]; > > <snip> > > Daniel, > > You should use *up values*. You can define them thanks to *UpSet[]* or > *UpSetDelayed[]*. For instance, > > In[1]:= Remove[f] > f[x_] := f1[x] > f'[x] ^:= f2[x] > f'[x] > > Out[4]= f2[x] > > Best regards, > -- Jean-Marc >