VBA フーリエ級数のユーザー定義関数

 $f(x)$ を $f(x+2\pi)=f(x)$ となるように周期拡張したフーリエ級数展開の Function Macro (ユーザー定義関数) を載せてあります。

$y=x$ のフーリエ級数 XF関数

 $f(x)=x$ のフーリエ級数展開
\[f(x)=2\sum_{n=1}^{k}\frac{(-1)^{n+1}}{n}\sin nx\]を返す XF関数です。

 'XF関数

 Function XF(x As Double, k As Integer) As Double

 Dim n As Integer
 Dim s As Double, p As Double

 p = 4 * Atn(1)

 s = 0

 For n = 1 To k
  s = s + 2 * (-1) ^ (n + 1) * Sin(n * x) / n
 Next n

 XF = s

 End Function

 この関数を使用するときは

=XF(x,k)

と入力します。k には正の整数を指定してください。k は和の上限値であり、大きな値を指定するほど高い精度の値が得られます。
 

$y=x^2$ のフーリエ級数 X2F関数

 $f(x)=x^2$ のフーリエ級数
\[f(x)=\frac{\pi^2}{3}+\sum_{n=1}^{k}\frac{4(-1)^n}{n^2}\cos nx\]を返す X2F関数です。

 'X2F関数

 Function X2F(x As Double, k As Integer) As Double

 Dim n As Integer
 Dim s As Double, p As Double

 p = 4 * Atn(1)

 s = p ^ 2 / 3

 For n = 1 To k
  s = s + 4 * (-1) ^ n * Cos(n * x) / n ^ 2
 Next n

 X2F = s

 End Function

 この関数を使用するときは

=X2F(x,k)

と入力します。k には正の整数を指定してください。k は和の上限値であり、大きな値を指定するほど高い精度の値が得られます。 ≫ VBA 数学マクロ

スポンサーリンク
スポンサーリンク
末尾広告
末尾広告

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください