【FFTへ】MATLAB、Pythonで株価予測 その12【至る道⑩】

【FFTへ】MATLAB、Pythonで株価予測 その12【至る道⑩】株価予測
【FFTへ】MATLAB、Pythonで株価予測 その12【至る道⑩】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/stock-predict-matlabpython-backnumber/

スポンサーリンク

はじめに

前回は、FFT、IFFTの数式バリエーションの話かと思いきや、
数式自体はDFT,IDFTと同一のため話としてはほぼ省略。
しかし、FFTがDFTの高速化版ということで、
演算方式であるバタフライ演算についての話がスタート。
まずは回転因子について説明。

今回も引き続きFFT、IFFTの話。

スポンサーリンク

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

スポンサーリンク

ちょっとMATLAB、Python使ってみる。

フクさん
フクさん

バタフライ演算の話に入りたいところだが、
その前にちょっと前回の回転因子の中の計算結果があってるのかを

MATLAB、Pythonで確認してみよう。

太郎くん
太郎くん

そうだね。
そういうのあると助かるよね。
このシリーズも「MATLAB、Pythonで株価予測」ってタイトルなのに、
まだ一回もMATLAB、Pythonのコードが出てきてないもん。
(って中の人がビクついている)

フクさん
フクさん

まずは、ところどころに出てくる\(\displaystyle \frac{1}{\sqrt{2}}\)だけど、
これはおよそ0.7071になる。
MATLAB、Pythonの計算結果を見る際はこれを踏まえて見ることとなるはずだ。

太郎くん
太郎くん

あ、そうか。
計算結果として\(\displaystyle \frac{1}{\sqrt{2}}\)という出方はしないもんね。
具体的に数値として出るからその点に注意ってことか。

スポンサーリンク

\(N=8\)の各回転因子算出結果

フクさん
フクさん

じゃ、MATLAB版とPython版のコードとその結果だ。

MATLAB版

■ コード

for n=0:7
    disp(exp(-i*2*pi*n/8));
end

■ 結果

   1
   0.7071 - 0.7071i
   0.0000 - 1.0000i
  -0.7071 - 0.7071i
  -1.0000 - 0.0000i
  -0.7071 + 0.7071i
  -0.0000 + 1.0000i
   0.7071 + 0.7071i

Python版

■ コード

import numpy as np
for n in range(0,8):
    result = np.exp(-1j*2*np.pi*n/8)
    print('%.4f %+.4fj' % (result.real, result.imag) )

■ 結果

1.0000 +0.0000j
0.7071 -0.7071j
0.0000 -1.0000j
-0.7071 -0.7071j
-1.0000 -0.0000j
-0.7071 +0.7071j
-0.0000 +1.0000j
0.7071 +0.7071j
太郎くん
太郎くん

当然と言えば当然なんだろうけど、
前回の回転因子のところと同じ結果が得られたね。

太郎くん
太郎くん

ふと思ったんだけど、
MATLABはiで虚数。
Pythonでjで虚数。
になるんだね。

フクさん
フクさん

ここら辺はいろいろな文化圏があるからねー。

太郎くん
太郎くん

でも、実際の計算結果でも回転因子と一致することがわかったから
少し頭の中がスッキリしてきたかな。

フクさん
フクさん

それは良かった。

スポンサーリンク

まとめ

フクさん
フクさん

まとめだよ。

  • タイトル詐欺にならないようにMATLAB、Pythonを使って各回転因子を算出して見た。
    • 1/√2のような計算結果にはならないので1/√2=0.7071を想定した見方になる。
    • 前回の回転因子と同一の結果が得られた。
  • 虚数表現はMATLABはi、Pythonはjとなっている。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました