Re: Simple Differentiation?

*To*: mathgroup at smc.vnet.net*Subject*: [mg46073] Re: [mg46014] Simple Differentiation?*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Thu, 5 Feb 2004 04:02:52 -0500 (EST)*References*: <200402021021.FAA29647@smc.vnet.net> <37C33814-5582-11D8-A5A7-00039311C1CC@mimuw.edu.pl>*Sender*: owner-wri-mathgroup at wolfram.com

On 2 Feb 2004, at 14:17, Andrzej Kozlowski wrote: > On 2 Feb 2004, at 11:21, Sunil Pinnamaneni wrote: > >> In Mathematica 5.0, if one types in: >> >> f[x_]+g[x_]^:=1 (1) >> >> and then types >> >> dx(f[x]+g[x]) >> >> we get 0. >> >> However, if we type dx(f[x]) + dx(g[x]) after typing (1), we get >> >> f'[x] + g'[x]. >> >> Mathematica doesn't recognize that f'[x]+g'[x]= >> dx(f[x]+g[x]), which equals 0. How does one get Mathematica to do >> this? >> >> I'm interested in more complicated examples, which involve more >> complex >> differential relations, but I should be able to do things in those >> situations given a nice, natural way of handling this toy case. >> Though this >> seems like a pretty simple thing, I wasn't able to find any thing in >> the >> Mathematica Book or elsewhere, which would help with this type of >> things. >> >> Thanks, >> Sunil >> > Mathematica generally performs only syntactic pattern matching what > this means is that your defintion > >> f[x_]+g[x_]^:=1 > > means that only things of the form > > f[x]+g[x] > > are to be set equal to 1 but it will not perform any transformations > that might follow from this semantically but not syntactically, e.g. > > f[x]+g[x] > > 1 > > but for example: > > > -f[x]-g[x] > > -f[x]-g[x] > > That's all you can expect form pattern matching. The same applies to > your example. > This does not mean that one can't at all hope to do do what want, but > it will take some work and will probably only work reasonably well > with polynomial expressions. You could start with something like this. > Define a function, say, F[expr,{x,y}] which computes the values of > various expressions assuming that f[x]+g[y]==1 and > D[f[x],x]+D[g[y],y]==0. (You will have to add conditions for sums of > derivatives separately). > > Here is the definition of F: > > F[expr_, {x_, y_}] := Last[PolynomialReduce[ > expr, {1 - f[x] - g[x], D[1 - f[x] - g[x], x]}]] > > Now we get: > > In[2]:= > F[g[x]+f[x],{x,y}] > > Out[2]= > 1 > > In[3]:= > F[-g[x]-f[x],{x,y}] > > Out[3]= > -1 > > In[4]:= > F[f[x]^2 + 2*f[x]*g[x] + g[x]^2, {x, y}] > > Out[4]= > 1 > > In[5]:= > F[D[f[x],x]+D[g[x],x],{x,y}] > > Out[5]= > 0 > > which seems to me not a bad start. > > Andrzej Kozlowski >

**References**:**Simple Differentiation?***From:*"Sunil Pinnamaneni" <pinnama@cims.nyu.edu>