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

MathGroup Archive 2007

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

Search the Archive

"Transparency" with respect to differentiation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73846] "Transparency" with respect to differentiation
  • From: Martin Schoenecker <ms_usenet at gmx.de>
  • Date: Fri, 2 Mar 2007 06:23:26 -0500 (EST)
  • Organization: Technische Universitaet Darmstadt

I would like to use a dummy object, that has the only task to mark its 
argument function.  So I could use a previously undefined symbol for 
that pupose:

In[1]:= quat[f[x]+g[x]]
Out[1]= quat[f[x]+g[x]]

Now I would like this flag to distribute over Plus:  each element in the 
argument sum has the property of being "quat":

In[2]:=
quat[a_+b_]:=quat[a]+quat[b]
quat[f[x]+g[x]+h[x]]
DownValues[quat]

Out[3]= quat[f[x]]+quat[g[x]]+quat[h[x]]
Out[4]= {HoldPattern[quat[a_+b_]]\[RuleDelayed]quat[a]+quat[b]}

So this property is stored as DownValue of quat.  Then, I would like the 
quat to be transparent with respect to differentiation, and I thought it 
would be a good idea to store this property as an UpValue for quat 
rather than changing the (Protected!) D:

In[6]:= quat/:D[quat[fun_],var__]:=quat[D[fun,var]]
D[quat[f[x]],x]

Out[7]= quat[f'[x]]

which seems to work alright. However, a combination requiring both 
properties does not work easily, the derivative of quat w.r.t. its 
argument is produced:

In[8]:=
D[quat[f[x] + g[x]], x]
(D[#1, x] &)/@quat[f[x] + g[x]]

Out[8]= f'[x] quat'[f[x]] + g'[x] quat'[g[x]]
Out[9]= quat[f'[x]] + quat[g'[x]]

So how could I define an object, distributing over Plus and transparent 
w.r.t. differentiation more conveniently?

And, additionaly, how could I define a standard form of this object, 
that returns a 'nicer' version (however maybe a bit less unambiguous), 
like the integrate sign appearing when asking for Integrate?  My 
attempts to understand TagBox and InterpretationBox (if these constructs 
would help) were fruitless until now.

Regards, Martin


  • Prev by Date: Re: Beginner--Problem with FilledPlot
  • Next by Date: Re: deleting a title or subtitle in a notebook
  • Previous by thread: Re: Hilbert Transform problems
  • Next by thread: Re: "Transparency" with respect to differentiation