=================== フーリエ級数1 =================== 周期関数を三角関数の足し合わせで表すものを,フーリエ級数 (級数とは数列の和.単に級数といった場合,無限級数を表すことが多い.フーリエ級数も無限級数)といいます. 三角関数とは $\cos$ 関数や $\sin$ 関数のことです. これらは周期 $2\pi$ の周期関数で,下図のような形をしています. |fig1| sin関数 |fig2| cos関数 これは高校の数学で習いますね. フーリエ級数でできること --------------------------- この一見単純な関数を足し合わせる(重ね合わせる)ことで,周期関数であればどんな形の関数でも表せる, というのがフーリエ級数です.本当でしょうか. 足し合わせてみる ^^^^^^^^^^^^^^^^^^^^^^ フーリエ級数をちょっと試してみましょう.つくりたい周期関数は |fig3| というものです.周期は $2\pi$ です.これは式で表すと f(x) = \begin{cases}-1 & (-\pi となります.この式と周期を元にどういうふうに三角関数を足せばいいか (すなわちフーリエ級数)がわかるのですが,その計算はまた後ほど.とりあえずフーリエ級数は f(x) &= \frac{4}{\pi}\left(\sin x + \frac{1}{3}\sin 3x + \frac{1}{5}\sin 5x + \frac{1}{7}\sin 7x + \cdots \right)\\ & = \frac{4}{\pi}\sum_{n=1}^{\infty}\frac{\sin\{(2n-1)x\}}{2n-1} であると分かったものとします.これをグラフにしていきましょう. |fig4| $n=1$ |fig5| $n=2$ |fig6| $n=3$ ここで $n$ とは,足し合わせる三角関数の数です. うーん,近づいてはいますがまだまだ足さないといけないようです. gnuplotで直接グラフを書くのはしんどいので,つぎのCプログラムを使います. :: #include #include #define N 10 /* この値を変更 */ double term(int n, double x){ return sin((2*n-1)*x)/(2*n-1); } int main(void){ int i; double x, y=0; FILE *fp; fp = fopen("fourier.dat", "w"); for (x=-M_PI; x