Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1995
*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 1995

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

Search the Archive

Re: [Q] Up values

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg691] Re: [Q] Up values
  • From: rknapp (Robert Knapp)
  • Date: 10 Apr 1995 13:49:54 GMT

In article <3m4q7g$e47 at news0.cybernetics.net> kessler at halley.sph.unc.edu (Marc Kessler) writes:

> 
> Why isn't the following code giving 
> 
>               (1,0)      2    
> Out[6]= 4 lami     [x, y]      
> 
> as a result?
> 
> $ math
> Mathematica 2.2 for VAX/VMS
> Copyright 1988-93 Wolfram Research, Inc.
>  -- Motif graphics initialized --
> 
> In[1]:= li = lami[x,y];
> 
> In[2]:= lami/: D[lami[x,y],{x,2}] = 0;
> 
> In[3]:= lami/: D[lami[x,y],{y,2}] = 0;
> 
> In[4]:= lami/: D[lami[x,y],x,y] = 0;
> 
> In[5]:= vert = 2li^2 - li;
> 
> In[6]:= D[vert,{x,2}]
> 
>               (1,0)      2       (2,0)                          (2,0)
> Out[6]= 4 lami     [x, y]  - lami     [x, y] + 4 lami[x, y] lami     [x, y]
> 
> I have the same problem when I use 
>    lami/: D[lami[x_,y_],{x_,2}] = 0;  ... 
> 
> Thanks for the help.

The reason this doesn't work is that the function D usually ends up using the operator Derivative.  Thus, for example, the definition of D[a[x],x] (either with upcode or downcode) does not necessarily affect the value of, say, D[(a[x])^2,x], because the latter is computed in the end using Derivative.

In[1]:= a /: D[a[x],x] = 0

Out[1]= 0

In[2]:= D[a[x],x]

Out[2]= 0

In[3]:=D[(a[x])^2,x]

Out[3]=2 a[x] a'[x]

The solution is to make your definitions with respect to Derivative:

In[4]:=li = lami[x,y];

In[5]:=lami/: Derivative[2,0][lami] = 0&;

In[6]:=lami/: Derivative[0,2][lami] = 0&;

In[7]:=lami/: Derivative[1,1][lami] = 0&;

In[8]:=vert = 2li^2 - li;

In[9]:=D[vert,{x,2}]

              (1,0)      2
Out[9]= 4 lami     [x, y]

Rob Knapp
WRI



  • Prev by Date: Re: Performance of student version of Mathematica?
  • Next by Date: Re: Performance of student version of Mathematica?
  • Previous by thread: [Q] Up values
  • Next by thread: Mathematica 2.2.3 and WinNT 3.5