Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

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
>


  • Prev by Date: Re: Baffled By Underscore Pattern Matching
  • Next by Date: Re: MathML Namespace + Mathematica
  • Previous by thread: Simple Differentiation?
  • Next by thread: Re: Simple Differentiation?