402
9. Me lody Fouriera
składnikami. Dalszy podział prowadzi do ośmiu analiz Fouriera z 21-3 składnika^' w każdej itd. Liczba operacji potrzebnych do obliczenia {cj\, gdy są już znane ciągi -W ; \\ i {|r(/,)], wynosi co najwyżej 2-2* (dodatkowe oszczędności można uzyskać zapamij. tując wcześniej potęgi parametru w. a później oszukując je tylko w pamięci).
Niech pk oznacza łączną liczbę operacji potrzebnych do obliczenia współczynników dla N=2k. Rozumując jak wyżej otrzymujemy oszacowanie
p4<2pł.ł + 2-2k (k=l ,2, ...).
Ponieważ /?„ = 0, więc indukcyjnie dowodzi się, że pk^2k •2i = 2A,log2,V.
Tak w ęc, jeśli N jest potęgą dwóch, to szybkie przekształcenie Fouriera rozwiązuje zadanie za pomocą 2N\og,N operacji.
9.3.2. Przypadek ogólny
Przypuśćmy, że i przyjmijmy, że
Wtedy
Algorytm wykorzystuje dwie reprezentacje liczb całkowitych, uogólniające rozwinięcia
pozycyjne (§ 2.3.1):
I. Każda liczba całkowita j (O^j^N-l) ma jedyną reprezentację postaci (9.3.3) j=zlNl+x2N2 + ...+ap-1Np-l+<x, (0<af^rf-i).
Tf. Dla każdej liczby całkowitej fi (O^fi^N—l) iloraz fi/N ma jedyną reprezentację postaci
p
n
i-c+l
(9.3.4)
Niech będzie (9J.5)
k, k2 k.
+-F- + ...+ '
N Nn Nt
A
Jako ćwiczenie czytelnik może sprawdzić, że współczynniki w tych reprezentacjach wot& wyznaczać rekurencyjnie za pomocą następujących algorytmów:
1. /„ = /, 2,- jest ilorazem, a j, resztą z dzielenia/,. ,/jV,.
2. jest resztą, a fit ilorazem z dzielenia fil.l/r,.
Ponieważ Nt dzieli się przez Nv dla iśv, więc z wzorów (9.3.3) - (9.3.5) wynika,
^ =liczba całkowita* £ ( £ atiSj)=
N L— 0 j * u l»l+ 1
„ V liczba całkowita.
«•» o bf9