Multiline functions
- To: mathgroup at smc.vnet.net
- Subject: [mg112748] Multiline functions
- From: Sam Takoy <sam.takoy at yahoo.com>
- Date: Wed, 29 Sep 2010 04:13:43 -0400 (EDT)
Hi,
I'm not sure if I'm approaching functions that require several lines
properly. Here's my approach to solving Laplace's equation on the unit
circle with Dirichlet boundary conditions. (Construct partial Fourier
series, multiply each term by r^n and sum.) Something about my code
seems terribly awkward. I'm looking for comments on how to improve it.
(Just the code. I know that mathematically there may be better ways.)
Thanks in advance,
Sam
FourierCoefficients[f_, order_] := (
out = {1/(2 Pi) Integrate[f[a], {a, -Pi, Pi}]};
For[n = 1, n < order, n = n + 1,
out = Append[
out, {1/Pi Integrate[f[a] Cos[n a], {a, -Pi, Pi}],
1/Pi Integrate[f[a] Sin[n a], {a, -Pi, Pi}]}]];
out)
LaplaceOnUnitCircle[phi_, order_] := (
f[r_, alpha_] = (
fc = FourierCoefficients[phi, order];
sum = fc[[1]];
For[n = 1, n < order, n = n + 1,
sum =
sum + r^n (fc[[n + 1]][[1]] Cos[n alpha] +
fc[[n + 1]][[2]] Sin[n alpha]);
];
sum);
f
);
LaplaceOnUnitCircle[Cos, 5][r, \[Alpha]]
Answer: r Cos[\[Alpha]] - correct.