Table of Contents
$f(x)=x^2$を周期的に拡張した関数のフーリエ係数
Problem
$f(x) = x^2 \ \ (-\pi\leq x < \pi)$を$f(x + 2\pi) = f(x)$と周期的に拡張した関数を$\tilde f(x)$としたとき, その拡張した関数のフーリエ係数を求めよ
解答
$\tilde f(x)$は偶関数なのでフーリエ余弦展開のみで十分であるので
\[\begin{align*} a_0 &= \frac{1}{\pi}\int_{-\pi}^\pi x^2\ dx\\[3pt] &= \frac{2}{\pi}\int_{0}^\pi x^2\ dx\\[3pt] &= \frac{2\pi^2}{3}\\ \\ a_n &= \frac{1}{\pi}\int_{-\pi}^\pi x^2\cos nx\ dx\\[3pt] &= \frac{2}{\pi}\int_{0}^\pi x^2\cos nx\ dx\\[3pt] &= 4\frac{(-1)^n}{n^2} \end{align*}\]従って,
\[\tilde f(x) \sim \frac{\pi^2}{3} + 4\sum_{n=1}^\infty \frac{(-1)^n}{n^2}\cos nx\]バーゼル問題とフーリエ展開
バーゼル問題
平方数の逆数和は$\displaystyle \frac{\pi^2}{6}$ に収束する. つまり,
\[\sum_{n=1}^\infty\frac{1}{n^2} = \frac{\pi^2}{6}\]この収束は上でもとめたフーリエ級数展開から理解することができます
\[\tilde f(x) \sim \frac{\pi^2}{3} + 4\sum_{n=1}^\infty \frac{(-1)^n}{n^2}\cos nx\]に対し, $x = \pi$を代入すると
\[\pi^2 = \frac{\pi^2}{3} + \sum_{n=1}^\infty \frac{4}{n^2}\]これを整理すると
\[\begin{align*} \frac{2}{3}\pi^2 &= \sum_{n=1}^\infty \frac{4}{n^2}\\[3pt] \Rightarrow \frac{\pi^2}{6} &= \sum_{n=1}^\infty \frac{1}{n^2} \end{align*}\]従って, バーゼル問題の級数を得ることが出来ました.
Appendix: フーリエ級数展開plot用Pythonプログラム
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import plotly.express as px
import numpy as np
## LaTex記述用
from IPython.display import display, HTML
import plotly
plotly.offline.init_notebook_mode()
display(HTML(
'<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG"></script>'
))
## 級数展開
def fourier(x, max_n):
y = np.pi ** 2 / 3
term = 1
while max_n + 1 > term:
y += 4 * ((-1) ** term) * np.cos(term * x) / np.power(term, 2)
term += 1
return y
## True Function
def f_x(x):
if x >= -np.pi and x < np.pi:
return x ** 2
elif x < -np.pi:
return f_x(x+2*np.pi)
else:
return f_x(x-2*np.pi)
## Plot
x = np.linspace(-3*np.pi*1.1, 3*np.pi*1.1, 1000)
y, y2, y3 = fourier(x, max_n=1), fourier(x, max_n=2), fourier(x, max_n=100)
y4 = np.vectorize(f_x)(x)
fig = px.line(x=x, y=[y, y2, y3, y4],
render_mode='SVG',
title='フーリエ級数展開例<br><sup>opacity=.6 , n = 1, 2, 100</sup>',
)
newnames = {'wide_variable_0':'n=1',
'wide_variable_1':'n=2',
'wide_variable_2':'n=3',
'wide_variable_3':'true'}
fig.update_traces(opacity=.8)
fig.for_each_trace(lambda t: t.update(name = newnames[t.name],
legendgroup = newnames[t.name],
hovertemplate = t.hovertemplate.replace(t.name, newnames[t.name])
)
)
fig.update_xaxes(tickangle=0,
tickmode = 'array',
tickvals = [-3*np.pi, -2*np.pi, -3/2*np.pi, -np.pi, -1/2*np.pi,
0, 1/2*np.pi, np.pi, 3/2*np.pi, 2*np.pi, 3*np.pi],
ticktext=['$-3\pi$', '$-2\pi$', '', '$-\pi$', '', '0', '', '$\pi$', '', '$2\pi$', '$3\pi$'])
fig.show()
fig.write_html('test.html')
統計
Python
math
Linux
Ubuntu 20.04 LTS
Shell
English
git
方法論
Ubuntu 22.04 LTS
統計検定
競技プログラミング
フーリエ解析
前処理
SQL
coding
コミュニケーション
Network
ssh
将棋
Data visualization
Docker
Econometrics
VSCode
statistical inference
GitHub Pages
apt
development
システム管理
Coffee
cloud
数値計算
素数
Book
Font
Metrics
Poetry
Ubuntu 24.04 LTS
architecture
aws
shell
systemctl
テンプレート
データ構造
ポワソン分布
会計分析
文字コード
環境構築
論文
App
Bayesian
Dynamic Programming
Keyboard
Processing
R
Steam
filesystem
quarto
regex
(注意:GitHub Accountが必要となります)