Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: If and Piecewise don't quite do what I need

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113433] Re: If and Piecewise don't quite do what I need
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Thu, 28 Oct 2010 04:28:07 -0400 (EDT)

Use the proper syntax for Piecewise and use Set rather than SetDelayed so that the integral is evaluated just once

c[n_] = Piecewise[{{1, n == 0}}, Integrate[a^2 Cos[n a], {a, -Pi, Pi}]];

c[n]

Piecewise[{{1, n == 0}}, 
   (4*n*Pi*Cos[n*Pi] + 2*(-2 + n^2*Pi^2)*
          Sin[n*Pi])/n^3]

Sum[c[n], {n, 0, Infinity}]

(1/3)*(3 - Pi^3)

For If, use Evaluate and Set

d[n_] = If[n == 0, 1, Evaluate[Integrate[a^2 Cos[n a], {a, -Pi, Pi}]]];

d[n]

If[n == 0, 1, (4*n*Pi*Cos[n*Pi] + 
        2*(-2 + n^2*Pi^2)*Sin[n*Pi])/n^3]

Sum[c[n], {n, 0, Infinity}]

(1/3)*(3 - Pi^3)


Bob Hanlon

---- Sam Takoy <sam.takoy at yahoo.com> wrote: 

=============
Hi,

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.


Thanks,

Sam


PS: Slightly offtopic, I found that the Limit trick for n = 0 with 
Fourier coefficients often doesn't work resulting in a 0*Infinity 
indetermination.



  • Prev by Date: Re: More Mathematica CAN'T do than CAN???
  • Next by Date: Re: Manually nested Tables faster than builtin nesting?
  • Previous by thread: Re: If and Piecewise don't quite do what I need
  • Next by thread: Re: If and Piecewise don't quite do what I need