Skip to main content
edited title
Link
user64494
  • 29.1k
  • 4
  • 29
  • 56

Exact Fourier Coefficientcoefficient from large expression

Source Link
Nils
  • 67
  • 4

Exact Fourier Coefficient from large expression

I have a relatively simple analytic expression

(-1.4676*10^-6 + 1.24345*10^-6 I) (1. + Cos[tt])^2 (-4.4958*10^6 + 
1.08256*10^6 Cos[tt] - 231135. Cos[tt]^2 + 44216.1 Cos[tt]^3 - 
7621.15 Cos[tt]^4 + 1227.17 Cos[tt]^5 - 154.92 Cos[tt]^6 + 
33.5441 Cos[tt]^7 + 0.688651 Cos[tt]^8 + 
1. Cos[tt]^9) (-1.4025264490430390469 Cos[
 0.8443926998901367188 t] + (0. + 
  1.40253 I) Sin[(0.844393 + 0. I) t]) (Cos[(2. + 0. I) (Pi + 
   pp + 0.422196 r - (0. + 0.416136 I) Cos[tt])] + (0. + 
  1. I) Sin[(2. + 0. I) (Pi + pp + 
    0.422196 r - (0. + 0.416136 I) Cos[tt])])

and I would like to get the FourierCoefficients in pp from it. If I simply apply FourierCoefficient, I get the error message:

Factor::lrgexp: Exponent is out of bounds for function Factor.

Now, through a combination of TrigToExp, Expand, and Collect, I can single out the Exp[2 I pp] and then apply FourierCoefficient. However, the resulting expression is rather lengthy, which is a problem since I need to integrate over tt afterwards (takes a long time). In practice, up to some normalization factor, I could also just set pp->0 and be done with it; while that is a rather quick solution, I also have cases, in which the expression contains more than just on non-zero Fourier coefficient. In this cases, I cannot set pp->0.

So now I am wondering, whether there is a neat trick with which I don't have to Expand the expression and collect all the respective exponentials, but still obtain an analytic expression.