Re: If and Piecewise don't quite do what I need
- To: mathgroup at smc.vnet.net
- Subject: [mg113457] Re: If and Piecewise don't quite do what I need
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 29 Oct 2010 06:29:35 -0400 (EDT)
You get a wrong result that way because the special case of (n = 0) is not handled by Sum Clear[d] d[0] = 1; d[n_] = Integrate[a^2 Cos[n a], {a, -Pi, Pi}]; Sum[d[n], {n, 0, Infinity}] Pi^3/3 % // N 10.3354 Handling the first term separately, 1 + Sum[d[n], {n, 1, Infinity}] 1 - Pi^3/3 % // N -9.33543 Bob Hanlon ---- Bill Rowe <readnews at sbcglobal.net> wrote: ============= On 10/27/10 at 5:15 AM, sam.takoy at yahoo.com (Sam Takoy) wrote: >I have found that If doesn't do winside it like I would want it to >do. Piecewise does do it, but then it doesn't work the way I would >want it. Is there a solution that does both? >Example: >c[n_] := Piecewise[{{1, {n, 0}}}, >Integrate[a^2 Cos[n a], {a, -Pi, Pi}]] >c[n] (* Calculates the Integral *) >Sum[c[n], {n, 0, Infinity}] (* But fails to Sum *) >d[n_] := If[n == 0, 1, Integrate[a^2 Cos[n a], {a, -Pi, Pi}]] >(* Fails to calculate the integral *) >d[n] (* But does sum OK *) >Sum[d[n], {n, 0, Infinity}] >I want it to evaluate the integral and to sum properly. Instead of using either Piecewise or If why not do: In[5]:= d[0] = 1; d[n_] = Integrate[a^2 Cos[n a], {a, -Pi, Pi}]; In[7]:= Sum[d[n], {n, 0, \[Infinity]}] Out[7]= Pi^3/3 Note, I use Set (=) not SetDelayed (:=) when defining d. This avoids any need to re-compute the integral when doing the summation.