数値多次元フーリエ級数の計算方法

Aug 22 2020

ここでのフーリエ級数チュートリアルでは、フーリエ級数とその係数を数値的に見つけるためのさまざまなコマンドについて説明します。ただし、これらは1次元のフーリエ級数でのみ機能するようです。多次元フーリエ級数を含む拡張はありますか?具体的には、2次元のフーリエ級数係数を数値的に計算できることに興味があります。

例として、のフーリエ係数を見つけます

$$ \ln(4(\cos(\theta)-\cos(\phi))^{2}+(\sin(\theta)-\sin(\phi))^{2}) $$

長方形の上 $0<\theta,\phi<2\pi$

助けてくれてありがとう。

回答

2 Roman Aug 24 2020 at 14:50

元の例でTrigToExpは、必要なことを実行します。

4 (Cos[θ] - Cos[φ])^2 + (Sin[θ] - Sin[φ])^2 // TrigToExp

(*    5 + 3/4 E^(-2 I θ) + 3/4 E^(2 I θ) - 3/2 E^(-I θ - I φ) -
      5/2 E^(I θ - I φ) - 5/2 E^(-I θ + I φ) - 3/2 E^(I θ + I φ) +
      3/4 E^(-2 I φ) + 3/4 E^(2 I φ)                                  *)

明示的な指数構造のないより複雑な関数の場合、フーリエ積分を明示的に評価できます。

f[θ_, φ_] = Log[4 (Cos[θ] - Cos[φ])^2 + (Sin[θ] - Sin[φ])^2 + 1];

F[a_?NumericQ, b_?NumericQ] := 1/(2 π)^2 * NIntegrate[
    f[θ, φ] * E^(-I*{a, b}.{θ, φ}), {θ, 0, 2 π}, {φ, 0, 2 π}]

たとえば、次数2までのすべてのフーリエ成分を合計します。

g[θ_, φ_] = Sum[F[a, b]*E^(I*{a, b}.{θ, φ}), {a, -2, 2}, {b, -2, 2}] // Chop

(*    1.48242 +
      0.0545782 E^(-2 I θ) +
      0.0545782 E^(2 I θ) - 
      0.0291498 E^(I (-2 θ - 2 φ)) - 
      0.136866 E^(I (2 θ - 2 φ)) - 
      0.224188 E^(I (-θ - φ)) - 
      0.517258 E^(I (θ - φ)) +
      0.0545782 E^(-2 I φ) + 
      0.0545782 E^(2 I φ) -
      0.517258 E^(I (-θ + φ)) - 
      0.224188 E^(I (θ + φ)) - 
      0.136866 E^(I (-2 θ + 2 φ)) - 
      0.0291498 E^(I (2 θ + 2 φ))    *)

Plot3D[{f[θ, φ], Re[g[θ, φ]]}, {θ, 0, 2 π}, {φ, 0, 2 π}]