重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。ちょっと専門的なのですがフーリエ級数についてです。
まだ手をつけたばかりですが、微積分関係の知識は高卒程度までは
あります。

ある本に、フーリエ級数とは周期関数f(x)を(拡張すると周期関数でなくてもよい)三角関数で近似するということであり、式で表すと

f(x)≒g(x)=A_0/2+Σ[n=1~N]{A_n*Cos(x)+B_n*Sin(x)}
ただし(アンダーバー後の数字は添え字を表します)

となる。A_nとB_nの決定には、
∫[-π/2~π/2]{f(x)ーg(x)}^2 dx
が極小になるように選ぶ。と書いてありました。

もちろん私はA_nとB_nがどう表わされるかは知っているのですが、
普通f(x)にCos(nx)やSin(nx)を掛けて周期で積分しますよね。
この「∫[-π/2~π/2]{f(x)ーg(x)}^2 dxが極小になるように選ぶ」
とは一体どういうことなのでしょうか。
極小になるように選ぶといってもどう選ぶのですか。微分するのでしょうか。

ちょっと難しいかもしれないのですが、分かる方、計算方法等を
示していただけませんか。ずっと考えていてもやもやしていて仕方
ないのです。お願い致します。

A 回答 (3件)

siegmund と申します.


大学で物理の研究と教育をやっています.

さて,ご質問ですが,私もフーリエ級数を教えるときには質問のような
アプローチで教えています.
質問にもあるように,近似精神が明確になるからです.
でも,あんまり本には書いていないですね.

f(x) と g(x) の誤差を一番小さくすればよいというのは誰でも考えることですが,
区間が -π/2~π/2 ですから1点だけの誤差を考えても仕方がありません.
「区間中での誤差の最小値が一番小さくなるように」などとすると,
たった1点で誤差がゼロになればあとはいくら誤差が大きくてもいいということに
なってしまいます.
ここは全体を考えて誤差の和が最も小さくなるようにとすべきでしょう.
今は連続区間ですから,誤差を区間で積分したものを対象にすればいいということになります.
では,
∫[-π/2~π/2]{f(x)ーg(x)} dx
が最小になるように係数を決めればよいか.
いやいや,誤差の絶対値は大きいのに,
積分したら正負で打ち消し合って誤差が小さくなることもありますよね.
じゃあ,
∫[-π/2~π/2]{f(x)ーg(x)}^2 dx
とすれば,誤差の和(今は積分値ですが)は」常に正になるので都合がいいです.
誤差の2乗の和を最小にするというのは,ガウスの最小自乗法の思想とも符合します.

さて,
∫[-π/2~π/2]{f(x)ーg(x)}^2 dx
は係数 A_0,A_1,...,B_1,B_2,...の関数ですから.
I(A_0,A_1,...,B_1,B_) と書くことにしましょう.
各係数について I(A_0,A_1,...,B_1,B_) を最小にするのですから
∂I/∂A_0 = 0
∂I/∂A_1 = 0
・・・・・・・・
∂I/∂B_1 = 0
∂I/∂B_2 = 0
とすればOKです.

うるさいことは言わないことにして,積分と偏微分の順序を交換し,
sin,cos の積の積分の直交関係を使えばよく知られている係数の式が出てきます.
よくわからなければ,N=2 の場合などを具体的に書いて手を動かしてみて下さい.
どういう仕組みになっているかや,
誤差の2乗というのが非常にうまくできていることがすぐにわかります
違うnが絡まないのも大事で,こうなっていないとNを増やしたときに
以前の係数が全部違ってきてしまいます.

なお,書き間違いかと思いますが,質問文中の式
f(x)≒g(x)=A_0/2+Σ[n=1~N]{A_n*Cos(x)+B_n*Sin(x)}
で,Cos や Sin の中身は x ではありませんのでご注意下さい.

この回答への補足

回答ありがとうございます。
ご指摘の通りnxの間違いでした。
すみませんでした。

補足日時:2009/06/14 12:49
    • good
    • 0
この回答へのお礼

非常によくわかりました。
御丁寧にありがとうございました。

お礼日時:2009/06/14 13:27

フーリエ級数:f(x)~a[0]/2+(a[1]cosx+b[1]sinx)+(a[2]cos(2x)+b[2]sin(2x))+・・・(a[n]cos(nx)+b[n]sin(nx))+・・・・


フーリエ多項式:gn(x)=A[0]/2+Σ[n=1~N]{A[n]*cos(nx)+B[n]*sin(nx)}

平均二乗誤差En=1/2π・∫[-π,π]{f(x)-gn(x)}^2dx・・・・(1)
が最小となるものを見出す。
(f(x)は2πを周期とする周期関数として考えるから、ここでは積分区間は-π~πとしています。)

任意の係数のうち一つの係数A[m](1≦m≦N)に着目して
gn(x)-A[m]cosmx=g*n(x)
とおく。

そうすると(1)は
2En=1/π・∫[-π,π]{f(x)-g*n(x)-A[m]cosmx}^2dx
=1/π・∫[-π,π]{f(x)-g*n(x)}^2-2A[m]/π∫[-π,π]{f(x)-g*n(x)}cosmxdx
+((A[m])^2/π)・∫[-π,π]cos^2(mx)dx

ここでg*n(x)はcosmxを含まないので、∫[-π,π]g*n(x)cosmxdx=0
また1/π∫[-π,π]f(x)cosmx=2a[m]

よって
2En=1/π・∫[-π,π]{f(x)-g*n(x)}^2-4a[m]A[m]-2(A[m])^2・・・(2)
ここで(2)はA[m]の二次関数と見なせるので
2En=1/π・∫[-π,π]{f(x)-g*n(x)}^2-2(a[m])^2+2{A[m]-a[m]}^2・・・(3)
と書ける。
依ってa[m]=A[m]のときに(3)が最小となる。
同じようにして、b[m]=B[m],a[0]=A[0]が得られる。

よってフーリエ多項式は最小二乗法において近似三角多項式になっている。
    • good
    • 0
この回答へのお礼

非常によくわかりました。
御丁寧にありがとうございました。

お礼日時:2009/06/14 13:27

これは面白いアプローチですね。

私は専門ではないので正しいことは分かりかねますが、言ってることは普通のフーリエ変換と一緒です。
ただ、その「普通のフーリエ変換」を有限級数で止めた場合、それが本当にfの近似として最適なのかを検証してるんだと思います。
・ポイントとして、
1)g(x)を右辺に直してA_nもしくはB_nで微分する
2)直交成分による項の除去
で普通のフーリエ変換の式に帰着することが分かります。
    • good
    • 0
この回答へのお礼

ちょっと難しかったですが、わざわざ回答していただいて感謝します。
ありがとうございました。

お礼日時:2009/06/14 13:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!