Re: Multiline functions
- To: mathgroup at smc.vnet.net
- Subject: [mg112784] Re: Multiline functions
- From: dr DanW <dmaxwarren at gmail.com>
- Date: Thu, 30 Sep 2010 04:52:26 -0400 (EDT)
- References: <i7uses$ram$1@smc.vnet.net>
Dude, where to even start. Perhaps it looks awkward because you typed
in code intended for a another language. Oddly, it will only work for
your test case; in LaplaceOnUnitCircle, sum is accumulated but never
used.
Neglecting the fact that Mathematica has built in capability for this
problem, here is how to code your solution in real Mathematica:
CosCoefficient[f_, n_] := (1/Pi)*Integrate[f[x]*Cos[n*x], {x, -Pi,
Pi}]
SinCoefficient[f_, 0] := 0
SinCoefficient[f_, n_] := (1/Pi)*Integrate[f[x]*Sin[n*x], {x, -Pi,
Pi}]
LaplaceOnUnitCircle2[phi_, order_] := CosCoefficient[phi, 0]/2 +
Sum[r^n*(CosCoefficient[phi, n]*Cos[n*x] + SinCoefficient[phi,
n]*Sin[n*x]),
{n, 1, order}]
Notice that I only have to use Sum[], none of that Fortrany "for" loop
nonsense.
The (or at least, one) way to do this using the full capabilities of
Mathematica is:
LaplaceOnUnitCircle3[phi_, order_] := FourierTrigSeries[phi[x], x,
order] /.
{Cos[(n_Integer)*x] :> r^n*Cos[n*x], Cos[x] -> r*Cos[x],
Sin[(n_Integer)*x] :> r^n*Sin[n*x], Sin[x] -> r*Sin[x]}
I'm helping because I'm like that. However, in the future, if you do
not wish to become a flame target, I would strongly suggest that you
make an effort to learn some aspect of a language on your own before
running to the users group for help. It may already be too late.
Daniel