Re: Defining a total derivative
- To: mathgroup at smc.vnet.net
- Subject: [mg127802] Re: Defining a total derivative
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Thu, 23 Aug 2012 02:55:03 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <k0nh82$avi$1@smc.vnet.net> <k11tv8$t7e$1@smc.vnet.net> <20120822091921.18F18684C@smc.vnet.net>
For the benefit of the O.P., in case of discomfort with using pure functions here=85 one can use ordinary explicit function definitions as well: g[fn_] := D[fn, x] + D[fn, y] g[x + y] f[x, y] := Sin[x y] g[g[f[x,y]] Nest[g, f[x,y], 2] gi[k_][fn_]:= Nest[g, fn, k] gi[3][f[x, y]] On the other hand, if one wanted to get fancier, he could provide additional arguments that specify the names of the variables with respect to which the derivatives are taken. I leave this as an exercise. On Aug 22, 2012, at 5:19 AM, Dr. Wolfgang Hintze <weh at snafu.de> wrote: > On 22 Aug., 08:24, S16 <sowna... at gmail.com> wrote: >> On Saturday, August 18, 2012 8:46:10 AM UTC+1, S16 wrote: >>> Hi, >> >>> I am very new to Mathematica, so need a bit of help! >> >>> I want to define a function (called say G) that is defined as >> >>> G = =E2=88=82/=E2=88=82x - = ((=E2=88=82F/=E2=88=82x)/(=E2=88=82F/=E2=88=82= >> >>> y))*=E2=88=82/=E2=88=82y >> >>> Where F is some other function which will be defined. >> >>> So as you can see, G is a differenital operator. Want to define it so that I can just do G[ some function ] rather than repeatedly write out the whole thing. >> >>> Any help at all would be awesome! >> >>> -S16 >> >> Sorry, my message came out formatted all wrong. I have actually managed to solve this issue- but have a different question. >> >> Say I have defined an operator G, which involves partial derivatives in x and y >> >> and I want to find expressions for G[G[ ]] , G[G[G[ ]]] - applying the operator multiple times. is there a way to define this on Mathematica (I want to put this in a package). >> >> > > Let's take an example. > > Define the operator g as > > In[7]:= g = D[#1, x] + D[#1, y] & > > Out[7]= D[#1, x] + D[#1, y] & > > Test it > > In[8]:= g[x + y] > > Out[8]= 2 > > Chose a non trivial funcion > > In[20]:= f = Sin[x*y] > > Out[20]= Sin[x*y] > > Now iterate g and apply it immediately to f > > In[22]:= g[g[f]] > > Out[22]= 2*Cos[x*y] - x^2*Sin[x*y] - 2*x*y*Sin[x*y] - y^2*Sin[x*y] > > But this can be achieved more generally using Nest > > In[23]:= Nest[g, f, 2] > > Out[23]= 2*Cos[x*y] - x^2*Sin[x*y] - 2*x*y*Sin[x*y] - y^2*Sin[x*y] > > Now the step you wanted. Definiting the interation of g without > applying it immediately. > > In[27]:= gi[k_] := Nest[g, #1, k] & > > Test it > > In[28]:= gi[2][f] > > Out[28]= 2*Cos[x*y] - x^2*Sin[x*y] - 2*x*y*Sin[x*y] - y^2*Sin[x*y] > > Now the third iteration > > In[29]:= gi[3][f] > > Out[29]= (-x^3)*Cos[x*y] - 3*x^2*y*Cos[x*y] - 3*x*y^2*Cos[x*y] - > y^3*Cos[x*y] - 6*x*Sin[x*y] - 6*y*Sin[x*y] > > Best regards, > Wolfgang --- Murray Eisenberg = murray at math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305
- References:
- Re: Defining a total derivative
- From: "Dr. Wolfgang Hintze" <weh@snafu.de>
- Re: Defining a total derivative