Re: Differentiation w.r.t. elements of lists
- To: mathgroup at smc.vnet.net
- Subject: [mg79785] Re: Differentiation w.r.t. elements of lists
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sat, 4 Aug 2007 05:56:55 -0400 (EDT)
- References: <f8pi48$1l4$1@smc.vnet.net> <f8s3e2$38u$1@smc.vnet.net> <f8v1i1$dic$1@smc.vnet.net>
Hi,
you misunderstand the meaning of Part[] or x[[i]].
Part[] always reference an element of a List[] that
must exist, i.e., x[[2]] gives an error if x is a
symbol. You wish to interpret the index i as a function
argument and you have to write x[i].
Second, Sum[] is a build-in function that try to evaluate
it's argument to find a closed expression and because
Sum[f[i]+g[i],{i,0,Infinity}] may be convergent while
neither Sum[f[i],{i,0,Infintity}] nor Sum[g[i],{i,0,Infintity}]
is convergent, Mathematica will not split the Sum[] or do anything
else with it.
So it is wise not to use Sum[] for formal sums that
can't be evaluated.
The better way is to define sum[] and to setup the rule
sum /: D[sum[a_, {i_, i1_, i2_}], f_[k_]] :=
KroneckerDelta[i, k]*D[a, f[i]]
Regards
Jens
Daniel Hornung wrote:
> Jens-Peer Kuska wrote:
>
>> Hi,
>>
>> and you are shure that
>>
>> > Another, even shorter test case would be
>> >
>> > D[x[[i]], x[[j]]]
>> >
>> > which "should", IMHO, return KroneckerDelta[i,j].
>>
>> ??
>>
>> Than
>> D[x[[1]],x[[2]]]
>>
>> should be zero ? right ?? but what is
>>
>> with
>>
>> x = {Sin[y], y}
>>
>> D[x[[1]], x[[2]]]
>>
>> the result is not 0 ..
>>
>> may be that you are wrong.
>>
>> Regards
>> Jens
>>
>
> OK, I think I had thought wrongly there. But sadly that still doesn't
> answer my main question:
> Why does the second line result in 0, and what could I do better?
>
>>> h[x_]:=Sum[x[[j]]^2,{j,1,Length[x]}]
>>> D[h[x],x[[i]]]
>
> --
> Daniel Hornung
> Max Planck Institute for Dynamics and Self-Organization
> G=C3=B6ttingen, Germany
>