Re: Symbolic Derivative of Piecewise Contin Fcn
- To: mathgroup at smc.vnet.net
- Subject: [mg15508] Re: Symbolic Derivative of Piecewise Contin Fcn
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Mon, 18 Jan 1999 23:47:11 -0500
- References: <77v3jp$kn3@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Steve Sullivan wrote in message <77v3jp$kn3 at smc.vnet.net>... >How can I get a symbolic derivative on a region of a piecewise >continuous function using Mathematica? Two simple examples, extracted >from long Modules are below. > >Alternatively, is there some magic functional M that, given a piecewise >contin function, would return a piece of it? For example, let: f[x_] >:= If[ x < 0, x^2, x^5] Is there a M such that: M[ f, {x < 0}] would >return: x^2 > >Many thanks for any help ... >Steve > > >The following examples of the failure of D[] are extracted from much >more complicated functions. They were run using Mathematica 3.0. > >htest[ uval_ ] := Module [ > {res}, > If[ uval < 0, res = uval^2, res = uval^5]; > res >] > >D[ htest[ uval], uval] >==> returns: 0 > > > >tstb[ pow_Integer, uval_ ] := Module [ > {res}, (* local vars *) > If[ pow == 0, > If[ uval < 0, res = 0, res = uval^2], > res = uval^5 * tstb[ pow-1, uval] > ]; > res (* return *) >] > >D[ tstb[ 0, uval], uval] >==> returns: 0 > >D[ tstb[ 1, uval], uval] >==> returns: 5 res$4 uval^4 (?? what is res$4 ?) > Steve: htest[ uval_ ] := If[ uval < 0, uval^2, uval^5] D[ htest[ uval], uval] If[uval < 0, 2*uval, 5*uval^4] tstb[ pow_Integer, uval_ ] := pow==0, If[ uval < 0, 0,uval^2], uval^5 * tstb[ pow-1, uval] ] D[ tstb[ 0, uval], uval] If[uval<0,0,2 uval] D[ tstb[ 1, uval], uval] uval^5*If[uval < 0, 0, 2*uval] + 5*uval^4*If[uval < 0, 0, uval^2] Module is not necessary, Mathematica is functional. res$4 is a local variable generated by Module Allan --------------------- Allan Hayes Mathematica Training and Consulting www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565