Re: Differentiation w.r.t. elements of lists
- To: mathgroup at smc.vnet.net
- Subject: [mg79736] Re: [mg79642] Differentiation w.r.t. elements of lists
- From: Carl Woll <carlw at wolfram.com>
- Date: Fri, 3 Aug 2007 06:24:32 -0400 (EDT)
- References: <200708010854.EAA01528@smc.vnet.net>
Daniel Hornung wrote:
>Hello,
>I don't know if what I want to do is impossible to do neatly (probably not)
>or whether I simply chose the wrong way (maybe).
>
>Basically I want to do componentwise differentiation. Here's a short test
>case:
>----
>In[1] := h[x_]:=Sum[x[[j]]^2,{j,1,Length[x]}]
>
>In[2] := dh[x_,i_]=D[h[x],x[[i]]]
>>From In[2]:=
>Part::pspec: Part specification i is neither an integer nor a list of
>integers. Mehr...
>Out[2]= 0
>
>In[3]:= Assuming[i\[Element]Integers&&i>0&&i<=n,dh[x_,i_]=D[h[x],x[[i]]]]
>>From In[3]:=
>Part::pspec: Part specification i is neither an integer nor a list of
>integers. Mehr...
>Out[3]= 0
>----
>
>What I would want is a result like dh[x_,i_]=2x[[i]], of course.
>
>Another, even shorter test case would be
>
>D[x[[i]], x[[j]]]
>
>which "should", IMHO, return KroneckerDelta[i,j].
>
>Any ideas or hints how to solve these problems in a nice way?
>
>Thank you in advance,
>Daniel Hornung
>
>
I don't think you will get very far working with x as a list. Perhaps
the following idea may help:
w /: D[w[i_], w[j_], NonConstants -> {w}] := DiscreteDelta[i - j]
In[2]:= D[Sum[w[i]^2, {i, n}], w[1], NonConstants -> {w}]
Out[2]= 2 UnitStep[n - 1] w[1]
Carl Woll
Wolfram Research
- References:
- Differentiation w.r.t. elements of lists
- From: Daniel Hornung <ds.mpg.de.thispartismydomain.daniel.hornung@insertdomainhere.com>
- Differentiation w.r.t. elements of lists