フーリエ級数展開 三角関数、正弦、加法定理、倍角
Pythonで学ぶフーリエ解析と信号処理 (神永 正博)(著)、コロナ社)の第2章(フーリエ級数展開)、章末問題2-15の解答を求めてみる。
のとき、
また、
のとき、
また、
よって、
コード(Python)
#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt
print('2-15.')
t = np.linspace(-np.pi, np.pi, 10000)
def f(t):
if t < 0:
return np.sin(0)
return np.sin(t)
def partialsum(t, n):
return 1 / np.pi + \
1 / np.pi * sum(((-1) ** (k - 1) - 1) / (k ** 2 - 1) * np.cos(k * t)
for k in range(2, n + 1)) + \
np.sin(t) / 2
xs = np.vectorize(f)(t)
for n in range(10):
plt.plot(t, xs)
plt.plot(t, partialsum(t, n))
plt.legend(['x(t)', f'n = {n}'])
plt.savefig(f'sample5_{n}')
plt.show()
入出力結果
% ./sample5.py
2-15.
%