Re: D under Sum
- To: mathgroup at smc.vnet.net
- Subject: [mg128431] Re: D under Sum
- From: Daniel <dosadchy at its.jnj.com>
- Date: Fri, 19 Oct 2012 02:41:23 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
> Hello
>
> I want the derivation D to be applied under the Sum
> sign,
> I have a function HoldSum that do not evaluate but is
> similar to Sum in form
>
> In[3]:= D[HoldSum[p*i, {i, 1, n}], p]
>
> I get the output :
>
> Out[3]=i*HoldSum^(1, {0, 0, 0})[i p, {i, 1, n}]
>
> but I would want that D be applied under the Sum sign
> like done by hand here :
>
> In[5]:= HoldSum[D[p i, i], {i, 1, n}]
>
> Out[5]= HoldSum[p, {i, 1, n}]
>
> Obviously I want D to work for any expression
> containing HoldSum (even on nested HoldSum
> expression)
>
> Does anybody knows how to do that ?
>
> Best regards
>
> Nicolas
>
I don't understand why you want derivative with respect to 'p' (D[HoldSum[p*i, {i, 1, n}], p]) to be replaced by derivative with respect to 'i' (HoldSum[D[p i, i], {i, 1, n}])
Assuming you meant HoldSum[D[p i, p], {i, 1, n}], you should define a delayed upvalue:
In[1]:= D[HoldSum[s_,i_],v_] ^:= HoldSum[D[s,v],i]
In[2]:= D[HoldSum[p*i,{i,1,n}],p]
Out[2]= HoldSum[i,{i,1,n}]
In[4]:= D[HoldSum[p^i,{i,1,n}],p]
Out[4]= HoldSum[i p^(-1+i),{i,1,n}]