Re: Defining derivatives

*To*: mathgroup at smc.vnet.net*Subject*: [mg84499] Re: Defining derivatives*From*: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>*Date*: Sat, 29 Dec 2007 20:02:23 -0500 (EST)*References*: <fl4uhv$9jb$1@smc.vnet.net>

Hi, if x is symbolic, Abs[x]>1.0 can't not evaluated and you should define: QuarticSpline[x_?NumericQ] := Module[{r}, r = Abs[x]; If[r > 1.0, 0.0, 1 + r^2 (-6 + r (8 - 3 r)) ] ] QuarticSplineD1[x_?NumericQ] := Module[{r}, r = Abs[x]; If[r > 1.0, 0.0, Sign[x]*r (-12 + (24 r - 12)) ] ] Derivative[1][QuarticSpline][x_] := QuarticSplineD1[x] Regards Jens KF wrote: > (I am sorry if this or similar question was already answered. I did > archive search, but didn't find anything.) > > I have a function: > > QuarticSpline[x_] := > Module[ > { r }, > r = Abs[x]; > If [r > 1.0, > 0.0, > 1 + r r (-6 + r (8 - 3 r)) > ] > ] > > It's first derivative should be (at least for my purposes :o) : > > QuarticSplineD1 [x_] := > Module[ > { r }, > r = Abs [x]; > If [r > 1.0, > 0.0, > Sign[x] * r (-12 + (24 r - 12)) > ] > ] > > but D[QuarticSpline[x], x] returns > > If[Abs[x] > 1., 0, 0] > > Now, Mathematica Tutorial, in chapter Defining Derivatives, says > > "You can define the derivative in Mathematica of a function f of one > argument simply by an assignment like f'[x_]=fp[x]." > > But if I try to write > > QuarticSpline'[x_] = QuarticSplineD1[x] > > I got > > Set::write: "Tag Function in (If[Abs[#1]>1.,0,0]&)[x_] is Protected." > > Is it possible to define QuarticSpline' to "return" QuarticSplineD1 ? > > Regards, > > K. Fresl > > >