|
[Date Index]
[Thread Index]
[Author Index]
Re: Defining derivatives
- To: mathgroup at smc.vnet.net
- Subject: [mg87879] Re: Defining derivatives
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Sat, 19 Apr 2008 03:34:40 -0400 (EDT)
- Organization: University of Bergen
- References: <fu9vnl$igu$1@smc.vnet.net>
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.
Try
f'[x_] := g[2 x]
SubValues[f]
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
documented.)
I hope this helps,
Szabolcs
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
|