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.