Re: Problem with using /.
- To: mathgroup at smc.vnet.net
- Subject: [mg69231] Re: Problem with using /.
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 3 Sep 2006 01:39:32 -0400 (EDT)
- References: <edadil$pd0$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Nag schrieb: > Hello: > > I am trying to compute the moments of a distribution using the moment > generating function, MGF[t,k]. Here is the relevant function for > computing the j'th moment. > > M[j_, t_, k_] := D[MGF[t, k], {t, j}] /. {u -> 0, Sum[Subscript[p, > i],{i, 0, k}] = 1}; > > After taking the j'th derivative, need to set u to 0 and the sum of > p(i)'s to 1. > > When I execute M[3, u, 5], get the following error.(converted output to > input form) > > \!\(\* > StyleBox[ > ErrorBox[\(Set:: > "\<write\>" : > "\<Tag \!\(Sum\) in \!\(\(â??\+\(i = 0\)\%5\) p\_i\) is > Protected. \!\(\*ButtonBox[\"Moreâ?¦\", > ButtonStyle->\"RefGuideLinkText\ > \", ButtonFrame->None, ButtonData:>\"General::write\"]\)\>"\)], > ShowStringCharacters->True]\) > > Of course I can explicitly set p0+p1+..+p5 = 1 after executing M[3,u,5] > but involves more effort as k increases. > Is it possible to make the substitution work for general k in the > function definition M[....]? > > Best > Nag > Hi Nag, you try to assign a value to Sum[...]; this becomes Set[Sum[...],0] -- but Sum is a Protected function. Furthermore, Set is not Rule. I guess you wanted: M[j_, t_, k_] := FullSimplify[D[MGF[t, k], {t, j}] /. u -> 0, Sum[Subscript[p, i], {i, 0, k}] == 1]; You can use Simplfy instead of FullSimplify too. Peter