※ ChatGPTを利用し、要約された質問です(原文:フーリエ級数展開の数値計算)
フーリエ級数展開の数値計算
このQ&Aのポイント
フーリエ級数展開とは、連続関数を三角関数の無限級数で表現する手法の一つです。
フーリエ変換を用いて株価データを解析し、株価の周期性やトレンドの傾向を把握することができます。
Excelを使用してフーリエ変換を行い、株価データをフーリエ級数展開することで、株価の予測や分析が可能です。
フーリエ解析と信号処理の初歩的な入門書を少し読んで、得た知識をExcel で確認しようとしているですが、よくわからないことがあるので質問させてください。
64営業日分の株価を Excel でフーリエ変換し、以下のようなデータを得ました。
http://www.img5.net/src/up26440.jpg
k 終値 |Ck| arg Ck
0 679 43578 0
1 699 471.1925885 1.46434124
2 696 127.2789785 0.502316976
3 674 182.447214 2.142303271
4 668 72.28019696 0.337870389
5 662 119.8389676 -3.137168335
6 668 142.271173 -1.637414528
7 671 57.39334904 -1.574358665
…………………
64営業日を1周期とし、区間[0,2π]に対応させ
ω = 2π/64 = π/32
を用いて株価 f0~f63 を
f0 = f(0)
f1 = f(ω)
f2 = f(2ω)
……
f63 = f(63ω)
のように関連づけます。つまり t = kω(k = 0,1,2……63) のとき連続関数 f(t) から切り出したものが株価 f0 ~ f63 と見なします。このとき f(t) を 5 次まで求めるのが目的です。
k = 0, 1, 2, …… とし、Ck の偏角を ψk、Ck の共役を _Ck とすると
Ck = |Ck|e^(jψk)
なので f(t) は
f(t) = C0 + ∑ [k=1→∞]( Ck・e^(jkωt) + _Ck・e^(-jkωt) )
= C0 + ∑ [k=1→∞]|Ck|( e^j(kωt+ψk) + e^(-j(kωt+ψk)) )
= C0 + 2∑[k=1→∞]|Ck|cos(kωt+ψk)
したがって5次までの f(t) は
ω = π/32 = 3.141592/32 = 0.09817475
とすると
f_5(t) = C0 + 2∑[k=1→5]|Ck|cos(kωt+ψk)
= C0 + 2( |C1|cos(1ωt+ψ1)
+ |C2|cos(2ωt+ψ2)
+ |C3|cos(3ωt+ψ3)
+ |C4|cos(4ωt+ψ4)
+ |C5|cos(5ωt+ψ5) )
= 43578 + 2( 471.1925885*cos(0.09817475t + 1.46434124)
+ 127.2789785*cos(0.1963495t + 0.502316976)
+ 182.447214*cos(0.29452425t + 2.142303271)
+ 72.28019696*cos(0.392699t + 0.337870389)
+ 119.8389676*cos(0.49087375t -3.137168335) )
= 43578 + 942.385177*cos(0.09817475t + 1.46434124)
+ 254.557957*cos(0.1963495t + 0.502316976)
+ 364.894428*cos(0.29452425t + 2.142303271)
+ 144.56039392*cos(0.392699t + 0.337870389)
+ 239.6779352*cos(0.49087375t - 3.137168335)
となります。ところがこれで t = 0 のときを計算すると
f_5(t) = 43600.5848837014
になってしまいます。高々5次の近似ですので全体としては荒いグラフになると思うのですが、少なくとも t = 0では 679 なるとおもうのですが。どこがおかしいのでしょう?
それとも何か決定的な間違いを犯しているのでしょうか?
※Excel の逆変換を使えば正しく 679 に変換されます。
フーリエ係数 Ck は Excel の FFT で算出されたものですから、連続関数の f(t) の Ck とは正確には一致しないとは思いますが・・・・・・
お礼
ご回答ありがとうございます。 > 係数が収束してないので原波形と一致するはずがありません。 定数項が大きすぎることもネックになっているのではないでしょうか? もう少し考えてから改めて質問させていただきます。