高速フーリエ変換 (fast Fourier transform) 東京都立大学 理学部数学科4年 宮崎 彬 1 発表の流れ 高速フーリエ変換について全てを説明する と時間が足りなくなってしまう. 高速フーリエ変換を説明する為の概要を簡 単に述べる. 分割統治法を用いた高速フーリエ変換の 計算を詳しく説明していく. 2 高速フーリエ変換の概要 前提 • 高速フーリエ変換を述べる為に 2つのN-1次多項式の積の計算 を考える. • 「N-1次多項式はN個の異なる点における 関数値で完全に決まる」という事実を利用 して,多項式の積の計算を高速化する. 3 高速フーリエ変換を用いた 高速化した乗算の手順 • 評価:2つのN-1次多項式を2N-1個の異な る点で計算する. • 乗算:変換した値を掛け合わせる. • 補間:評価の逆変換をする,つまり評価と 同じ計算手順で求めたい2N-2次多 項式を求めることができる. (補間とは,2N-2次多項式の2N-1個の異な る点における値が与えられた時,その2N-2 次多項式の係数を求めること) 4 乗算の回数の違い 2つのN-1次多項式の乗算 • 普通に掛け合わせると,N2回の掛け算. 例)(1 x x 2 )(2 x x 2 ) 2 x x 2x x x 2x x x 2 2 3 2 3 4 2 x 2x 2 x 4 • 高速フーリエ変換を用いると 2NlgN+O(N)回の掛け算. 5 2つのN-1次多項式 P(x) Q(x) 評 価 乗算 N2回の掛け算 フーリエ変換 分割統治法を用いて 効率よくしたのが 2N-2次の多項式 R(x)=P(x)Q(x) 補 逆フーリエ変換 間 高速フーリエ変換 p(a1 ),, pa 2 N1 q(a1 ),, qa 2 N1 乗算 評価→乗算→補間 2NlgN+O(N)回の掛け算 r(x) p(x)q(x) r(a1 ),, r(a 2 N1 ) 6 評価の計算 • 今回の発表では評価・乗算・補間の流れの 中で評価について述べたいと思う. • 評価の方法 ただN-1次多項式に値αを代入して計算しても 意味がない.(αN-1の計算が必要になるから) 評価する2N-1個の点は異なる1の複素累乗根 を用いる. 評価の計算は分割統治法を用いる. 7 1の複素累乗根 一般にその数を累乗し て1となる複素数は 数多くあり,その複素 数を1の複素累乗根と いう. 実際,自然数 Nに対して, Z 1となる複素数 ZがN個ある. これらの中の1つは「 1の原始 N乗根」とよばれ, それをWN と表わすと,全ての根 は k 0,1,2,, N 1に対して, WNをk乗してえられる. N 8 2 1 ここでWN exp とする. N 例)1の8乗根 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 W ,W ,W ,W ,W ,W ,W ,W W80 1で, W81が原始8乗根である . Nが偶数の時はWN 2 は 1であるから, N W84 1となる. また1のN 乗根を 2 乗すると, 1の N / 2 乗根 が得られる. よって, (W81 )2 W41 , (W41 )2 W21 . 9 分割統治法 • N-1次多項式の1のN乗根における値を 分割統治法を用いて求める. ① N個の係数があるから,まずN/2個の係数の 2つの多項式に分割する.その際に低次の 項から順に交互にとって2つに分ける. ② 次にN/2個の係数の多項式の値を求めてか ら,N個の係数のN-1次多項式の値を求める. (統合する) N/2個の係数の多項式の値が求まらない時は, さらに2つに分けてN/4個の係数の多項式にする. 10 例)N 8の時 p(x) p0 p1x p2 x 2 p3x 3 p4 x 4 p5 x 5 p6 x 6 p7 x 7 (p0 p2 x 2 p4 x 4 p6 x 6 ) x(p1x p3x 2 p5 x 4 p7 x 6 ) pe (x 2 ) xp o (x 2 ) 上のように 2つに分割する. (p0 ,, p7 は多項式p(x)の係数) ここで, 7次多項式p(x) を1の8乗根で計算する. W8 : w80 , w18 , w82 , w83 , w84 , w85 , w86 , w87 まず, w84 1だから W8 : w80 , w18 , w82 , w83 ,w80 ,w18 ,w82 ,w83 となる.次に各項を2 乗すると W82 : w 04 , w14 , w 24 , w 34 , w 04 , w14 , w 24 , w 34 になる. 11 p(x) pe (x ) xp o (x ) に注目すると以下のよ うな次式が導かれる. 2 2 p(w80 ) pe (w 04 ) w80po (w 04 ), p(w18 ) pe (w14 ) w18po (w14 ), p(w82 ) pe (w 24 ) w82po (w 24 ), p(w83 ) pe (w34 ) w83po (w34 ), p(w84 ) pe (w 04 ) w80po (w 04 ), p(w85 ) pe (w14 ) w18po (w14 ), p(w86 ) pe (w 24 ) w82po (w 24 ), p(w87 ) pe (w34 ) w83po (w34 ), 12 実際に p(w85 ) pe (w14 ) w18po (w14 ) を計算してみる. p(w85 ) pe (w14 ) w18po (w14 ) (p0 p2 w14 p4 w 24 p6 w 34 ) w18 (p1 p3w14 p5 w 24 p7 w34 ) (p0 p4 w 24 ) w14 (p2 p6 w 24 ) w18{(p1 p5 w 24 ) w14 (p3 p7 w 24 )} (p0 p4 w12 ) w14 (p2 p6 w12 ) w18{(p1 p5 w12 ) w14 (p3 p7 w12 )} ここで、 w12 1だから (p0 p4 ) w14 (p2 p6 ) w18{(p1 p5 ) w14 (p3 p7 )} 1 12 2 1 またw (w ) (1) 2 i, 1 4 1 12 4 1 w (w ) (i) 2 i だから 1 8 (p0 p4 ) i(p2 p6 ) i{(p1 p5 ) i(p3 p7 )} 13 一般的に1のN乗根における p(x) の計算方法 pe x とpo x を1の N / 2 乗根において再帰的に 計算する. (ただし,再帰的な計 算でN / 2, N / 4,となるので Nは 2のベキ乗であると仮定 する.) 再帰はw 2x のように N 2の時に打ち切る. このとき w 1, (w ) 1 のどちらかだから p0 p1x は p0 p1 か p0 p1 を得る. あとは1つずつ上に統合して, 全体のp(x) を求める. 分割統治法を用いたこ の再帰的な 計算が高速フーリエ変 換である. 1 2 1 2 2 14 まとめ • 高速フーリエ変換を用いることで,多項式の乗算 回数をN2回から2NlgN+O(N)回に減らすことがで きる.低い次数ではたいした差が出ないが,次数 が大きくなればなる程計算時間に大きな差が出 る. • 今後の課題 評価の再帰的計算でNは2のベキ乗であると仮 定したが,2のベキ乗ではないときはどうするか を勉強していきたい. 15 • 今回は評価についてだけ述べた.多項式の積の計算 はまだ乗算と補間を行わないといけないが,今回は 時間が少ないため省略した.高速フーリエ変換につ いての今までの発表分は http://tnt.math.metro-u.ac.jp/labo/grad/2004/akira/index.html に載せてある. 16
© Copyright 2024 ExpyDoc