Numeeriset menetelmät TIEA381. Luento 14. Kirsi Valjus. Jyväskylän yliopisto. Luento 14 () Numeeriset menetelmät / 55

Samankaltaiset tiedostot
Numeeriset menetelmät

Numeeriset menetelmät

Nopeat Fourier-muunnokset

Numeeriset menetelmät TIEA381. Luento 13. Kirsi Valjus. Jyväskylän yliopisto. Luento 13 () Numeeriset menetelmät / 42

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Numeeriset menetelmät

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33

Numeeriset menetelmät

Numeeriset menetelmät

Numeeriset menetelmät

Numeeriset menetelmät

Numeeriset menetelmät TIEA381. Luento 11. Kirsi Valjus. Jyväskylän yliopisto. Luento 11 () Numeeriset menetelmät / 37

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45

(0 desimaalia, 2 merkitsevää numeroa).

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

Numeeriset menetelmät TIEA381. Luento 7. Kirsi Valjus. Jyväskylän yliopisto. Luento 7 () Numeeriset menetelmät / 43

Numeerinen integrointi ja derivointi

Numeeriset menetelmät

Numeeriset menetelmät

Ratkaisuehdotukset LH 7 / vko 47

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Numeeriset menetelmät

Numeeriset menetelmät TIEA381. Luento 4. Kirsi Valjus. Jyväskylän yliopisto. Luento 4 () Numeeriset menetelmät / 44

Funktioiden approksimointi ja interpolointi

Inversio-ongelmien laskennallinen peruskurssi Luento 3

MS-C1340 Lineaarialgebra ja

Matriisilaskenta Luento 8: LU-hajotelma

MS-C1420 Fourier-analyysi Esimerkkejä, perusteluja, osa I

Mat / Mat Matematiikan peruskurssi C3-I / KP3-I Harjoitus 5 / vko 42, loppuviikko, syksy 2008

MS-C1420 Fourier-analyysi Esimerkkejä, perusteluja, osa I

Numeeriset menetelmät

MS-C1420 Fourier-analyysi osa I

Juuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

MS-C1340 Lineaarialgebra ja

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Luento 9: Yhtälörajoitukset optimoinnissa

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Numeeriset menetelmät

MS-C1420 Fourier-analyysi osa I

BM20A1501 Numeeriset menetelmät 1 - AIMO

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Käänteismatriisin ominaisuuksia

Insinöörimatematiikka D

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Algoritmit C++ Kauko Kolehmainen

1 Lineaariavaruus eli Vektoriavaruus

Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

1 Ominaisarvot ja ominaisvektorit

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Insinöörimatematiikka D

MS-C1350 Osittaisdifferentiaaliyhtälöt Harjoitukset 5, syksy Mallivastaukset

Pienimmän neliösumman menetelmä

Johdatus tekoälyn taustalla olevaan matematiikkaan

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

MS-C1420 Fourier-analyysi osa I

5 Ominaisarvot ja ominaisvektorit

Algoritmit 2. Luento 8 To Timo Männikkö

Kevät Kirsi Valjus. Jyväskylän yliopisto Tietotekniikan laitos

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

13. Taylorin polynomi; funktioiden approksimoinnista. Muodosta viidennen asteen Taylorin polynomi kehityskeskuksena origo funktiolle

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1

Konjugaattigradienttimenetelmä

Algoritmit 1. Luento 11 Ti Timo Männikkö

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

MS-C1340 Lineaarialgebra ja

805324A (805679S) Aikasarja-analyysi Harjoitus 5 (2016)

k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu

Likimääräisratkaisut ja regularisaatio

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Opetusperiodi:I, suunnattu hakukohteille:

811120P Diskreetit rakenteet

Numeerinen integrointi

Spektri- ja signaalianalysaattorit

802320A LINEAARIALGEBRA OSA I

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

Fourier-analyysi, I/19-20, Mallivastaukset, Laskuharjoitus 7

Juuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö

Ominaisarvoon 4 liittyvät ominaisvektorit ovat yhtälön Ax = 4x eli yhtälöryhmän x 1 + 2x 2 + x 3 = 4x 1 3x 2 + x 3 = 4x 2 5x 2 x 3 = 4x 3.

Insinöörimatematiikka D

Avaruuden R n aliavaruus

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Matriisilaskenta Luento 16: Matriisin ominaisarvot ja ominaisvektorit

Algoritmit 1. Luento 12 Ti Timo Männikkö

Lineaarikuvauksen R n R m matriisi

Opetusperiodi:I, suunnattu hakukohteille: Teknillinen fysiikka ja matematiikka

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

jakokulmassa x 4 x 8 x 3x

Transkriptio:

Numeeriset menetelmät TIEA381 Luento 14 Kirsi Valjus Jyväskylän yliopisto Luento 14 () Numeeriset menetelmät 15.5.2013 1 / 55

Luennon 14 sisältö Nopeat Fourier-muunnokset (FFT) Yleinen algoritmi 2-kantainen algoritmi 2-kantaisen algoritmin tietokonetoteutus Luento 14 () Numeeriset menetelmät 15.5.2013 2 / 55

2 Diskreetti Fourier-muunnos Diskreetti Fourier-muunnos (vaativuus) ˆf k = 1 N 1 f j w kj, k = 0, 1,..., N 1. N j=0 N + 1 kertolaskua, N 1 yhteenlaskua (seka w kj :n laskemiset) Pisteitä N kappaletta N 2 + N kertolaskua, N 2 N yhteenlaskua Diskreetin Fourier-muunnoksen laskennallinen vaativuus määritelmästä laskettuna on O(N 2 ) Luento 14 () Numeeriset menetelmät 15.5.2013 3 / 55

Esimerkki 2.1 2 Diskreetti Fourier-muunnos Esimerkki 2.1 Reaaliarvoinen signaali f (t) = sin(2π20t) + sin(2π35t) + sin(2π50t) Näytteenottoväli δt = 0.001 Näytteiden lukumäärä N = 256 Näytteet f j = f (t j ) ajanhetkillä t j = jδt, j = 0, 1,..., N 1 Mutta: mitattu signaali sisältää aina myös kohinaa Luento 14 () Numeeriset menetelmät 15.5.2013 4 / 55

Esimerkki jatkuu 2 Diskreetti Fourier-muunnos Esimerkki 2.1 4 3 2 1 0-1 -2-3 -4 0 50 100 150 200 250 AIKA (MS) Kuva: Alkuperäinen signaali Luento 14 () Numeeriset menetelmät 15.5.2013 5 / 55

Esimerkki jatkuu 2 Diskreetti Fourier-muunnos Esimerkki 2.1 4 3 2 1 0-1 -2-3 -4 0 50 100 150 200 250 AIKA (MS) Kuva: Häiriöinen signaali Luento 14 () Numeeriset menetelmät 15.5.2013 6 / 55

2 Diskreetti Fourier-muunnos Esimerkki 2.1 Esimerkki jatkuu Koetetaan päästä kohinasta eroon Fourier-muunnoksen avulla: Pisteistön f j diskreetti Fourier-muunnos ˆf k Signaalin diskreetti tehospektri ˆf k 2 /N Esitetään tehospektri taajuuden ϕ k = k/(nδt) funktiona Suuret piikit alkuperäisen signaalin taajuuksia Pienet piikit kohinan aiheuttamia Luento 14 () Numeeriset menetelmät 15.5.2013 7 / 55

Esimerkki jatkuu 2 Diskreetti Fourier-muunnos Esimerkki 2.1 60 50 40 30 20 10 0 0 50 100 150 200 250 300 350 400 450 500 TAAJUUS (HZ) Kuva: Tehospektri Luento 14 () Numeeriset menetelmät 15.5.2013 8 / 55

2 Diskreetti Fourier-muunnos Esimerkki 2.1 Esimerkki jatkuu Kohinan suodatus: Poistetaan kohinaa vastaavat taajuudet Asetetaan pisteistöstä ˆf k nolliksi ne komponentit, jotka vastaavat yli 100 Hz taajuuksia Suodatetun pisteistön ˆf k diskreetti Fourier-käänteismuunnos f j Verrataan alkuperäiseen signaaliin Luento 14 () Numeeriset menetelmät 15.5.2013 9 / 55

Esimerkki jatkuu 2 Diskreetti Fourier-muunnos Esimerkki 2.1 4 3 2 1 0-1 -2-3 -4 0 50 100 150 200 250 AIKA (MS) Kuva: Suodatettu signaali Luento 14 () Numeeriset menetelmät 15.5.2013 10 / 55

3 Nopeat Fourier-muunnokset 3.1 Johdanto Nopeat Fourier-muunnokset Diskreetin Fourier-muunnoksen laskeminen määritelmästä O(N 2 ) nopeilla Fourier-muunnoksilla O(N log N) N N 2 N log N 128 16 384 896 1024 1 048 576 10 240 Fast Fourier Transforms, FFT Luento 14 () Numeeriset menetelmät 15.5.2013 11 / 55

Yleinen algoritmi 3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Diskreetti Fourier-muunnos Olkoon N = N 1 N 2 ˆf k = 1 N 1 f j w kj N, w N = e i2π/n N j=0 Määritellään j ja k uudelleen missä j 1, k 1 = 0, 1,..., N 1 1 ja j 2, k 2 = 0, 1,..., N 2 1 j = N 1 j 2 + j 1, k = N 2 k 1 + k 2 Luento 14 () Numeeriset menetelmät 15.5.2013 12 / 55

3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Yleinen algoritmi ˆf N2 k 1 +k 2 = 1 N 1 1 N j 1 =0 = 1 N 1 1 N j 1 =0 N 2 1 j 2 =0 N 2 1 j 2 =0 f N1 j 2 +j 1 w (N 2k 1 +k 2 )(N 1 j 2 +j 1 ) N f N1 j 2 +j 1 w N 2N 1 k 1 j 2 N }{{} w N 2k 1 j 1 N }{{} w N 1k 2 j 2 N }{{} w k 2j 1 N w N 1N 2 N = 1 w N 2 N = w N 1 w N 1 N = w N 2 Luento 14 () Numeeriset menetelmät 15.5.2013 13 / 55

Yleinen algoritmi 3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi kiertokerroin ( ˆf N2 k 1 +k 2 = 1 N 1 1 {}}{ N w k 2j 1 1 2 1 N f N1 j 2 +j 1 w k 2j 2 N1 N2 j 1 =0 j 2 =0 N 2 ) }{{} N 2 :n pisteen diskr. Fourier-muunnos w k 1j 1 N 1 } {{ } N 1 :n pisteen diskr. Fourier-muunnos Luento 14 () Numeeriset menetelmät 15.5.2013 14 / 55

Yleinen algoritmi (1) 3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Merkitään g j2 = f N1 j 2 +j 1, j 2 = 0, 1,..., N 2 1 Kullakin j 1 saadaan eri pisteistö g j2 = g j1,j 2 Lasketaan N 2 :n pisteen muunnokset Erikseen kullakin j 1 ĝ k2 = 1 N2 N 2 1 j 2 =0 g j2 w k 2j 2 N 2 N 1 kappaletta N 2 :n pisteen muunnoksia ĝ k2 = ĝ j1,k 2 Luento 14 () Numeeriset menetelmät 15.5.2013 15 / 55

Yleinen algoritmi (2) 3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Merkitään h j1 = w k 2j 1 N ĝ j1,k 2, j 1 = 0, 1,..., N 1 1 Toisin sanoen kerrotaan pisteistöjen ĝ j1,k 2 alkiot kiertokertoimilla w k 2j 1 N Kullakin k 2 saadaan eri pisteistö h j1 = h k2,j 1 Luento 14 () Numeeriset menetelmät 15.5.2013 16 / 55

Yleinen algoritmi (3) 3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Lasketaan N 1 :n pisteen muunnokset Erikseen kullakin k 2 ĥ k1 = 1 N1 N 1 1 j 1 =0 h j1 w k 1j 1 N 1 N 2 kpl N 1 :n pisteen muunnoksia ĥk 1 = ĥk 2,k 1 ˆf k = ĥ k2,k 1 Luento 14 () Numeeriset menetelmät 15.5.2013 17 / 55

3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Yleinen algoritmi (vaativuus) Muunnos suoraan N:n pisteen muunnoksena: N 2 + N = N 1 N 2 (N 1 N 2 + 1) kertolaskua Edellisellä algoritmilla: N 1 kertaa N 2 :n pisteen muunnos kerrotaan N 1 N 2 kertaa kiertokertoimilla N 2 kertaa N 1 :n pisteen muunnos N 1 (N2 2 + N 2 ) + N 1 N 2 + N 2 (N1 2 + N 1 ) = N 1 N 2 (N 1 + N 2 + 3) < N 1 N 2 (N 1 N 2 + 1) kertolaskua Luento 14 () Numeeriset menetelmät 15.5.2013 18 / 55

3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Yleinen algoritmi Laskut voidaan tehdä myös toisessa järjestyksessä: kerrotaan N 2 N 1 kertaa kiertokertoimilla N 2 kertaa N 1 :n pisteen muunnos N 1 kertaa N 2 :n pisteen muunnos (Ei käsitellä) Luento 14 () Numeeriset menetelmät 15.5.2013 19 / 55

3 Nopeat Fourier-muunnokset 3.2 Yleinen algoritmi Yleinen algoritmi (rekursio) Olkoot luvut N 1 ja N 2 muotoa N 1 = N 1,1 N 1,2 ja N 2 = N 2,1 N 2,2 Sovelletaan edellistä algoritmia N 1 :n ja N 2 :n pisteen muunnosten laskemiseen FFT rekursiivisesti N = 2 n Cooley Tukey-algoritmit Luento 14 () Numeeriset menetelmät 15.5.2013 20 / 55

Kaksikantainen algoritmi 3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi ˆf N2 k 1 +k 2 = 1 N1 N 1 1 j 1 =0 Olkoon N = 2 n jollain n w k 2j 1 N ( N 1 2 1 N2 j 2 =0 Asetetaan N 1 = 2 ja N 2 = N/2 = 2 n 1 = M Siis pisteistö f j jaetaan kahteen osaan: Parilliset f 2j ja parittomat f 2j+1 omiin ryhmiinsä ) f N1 j 2 +j 1 w k 2j 2 N 2 w k 1j 1 N 1 Luento 14 () Numeeriset menetelmät 15.5.2013 21 / 55

3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Kaksikantainen algoritmi ˆf Mk1 +k 2 = 1 2 1 j 1 =0 w k 2j 1 N ( M 1 1 M j 2 =0 f 2j2 +j 1 w k 2j 2 M ) w k 1j 1 2 missä k 1 = 0, 1 ja k 2 = 0, 1,..., M 1. w k 1 2 = { e 0 = 1, k 1 = 0 e iπ = 1, k 1 = 1 Luento 14 () Numeeriset menetelmät 15.5.2013 22 / 55

Kaksikantainen algoritmi 3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Tapaus k 1 = 0: [( ) ˆf k = 1 M 1 1 f 2j w kj M 2 M j=0 + w k N ( M 1 1 M j=0 f 2j+1 w kj M )] Tapaus k 1 = 1: [( ) ˆf M+k = 1 M 1 1 f 2j w kj M 2 M j=0 w k N ( M 1 1 M j=0 f 2j+1 w kj M molemmissa k = 0, 1,..., M 1 (Merkitty k = k 2 ja j = j 2 ) )] Luento 14 () Numeeriset menetelmät 15.5.2013 23 / 55

3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Kaksikantainen algoritmi Aikaharvennus (decimation in time): Kaksi N/2:n pisteen muunnosta Kerrotaan N/2 kertaa kiertokertoimilla Suoritetaan N yhteenlaskua Kerrotaan N kertaa vakiolla 1/ 2 pisteiden f j skaalaus Luento 14 () Numeeriset menetelmät 15.5.2013 24 / 55

3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Kaksikantainen algoritmi Sama molemmille N/2:n pisteen muunnoksille: Neljä N/4:n pisteen muunnosta Kerrotaan 2 N/4 = N/2 kertaa kiertokertoimilla Suoritetaan 2 N/2 = N yhteenlaskua Yleisesti rekursiotasolla m: 2 m kpl 2 n m :n pisteen muunnosta N/2 kertolaskua N yhteenlaskua Luento 14 () Numeeriset menetelmät 15.5.2013 25 / 55

3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Kaksikantainen algoritmi Viimeisellä tasolla m = n = log 2 N : N kpl yhden pisteen muunnoksia (triviaaleja) N/2 kertolaskua N yhteenlaskua Yhteensä: (N/2) log 2 N kertolaskua N log 2 N yhteenlaskua (Lisäksi skaalaukset: N kertolaskua) O(N log N) Luento 14 () Numeeriset menetelmät 15.5.2013 26 / 55

3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Kaksikantainen algoritmi Toinen muoto: Asetetaan N 1 = N/2 = 2 n 1 = M ja N 2 = 2 Siis pisteistö f j jaetaan kahteen osaan: Alkuosa f j ja loppuosa f M+j omiin ryhmiinsä... Taajuusharvennus (decimation in frequency):... Suoritetaan N yhteenlaskua Kerrotaan N/2 kertaa kiertokertoimilla Kaksi N/2:n pisteen muunnosta Luento 14 () Numeeriset menetelmät 15.5.2013 27 / 55

Kaksikantainen algoritmi 3 Nopeat Fourier-muunnokset 3.3 Kaksikantainen algoritmi Triviaalit kertolaskut: Kerrotaan vakiolla +1, 1, +i, i Ensimmäisellä tasolla kiertokertoimet ovat w k 2 = e kiπ = ( 1) k Toisella tasolla kiertokertoimet ovat w k 4 = e kiπ/2 = ( i) k Jne. Yhteensä triviaaleja kertolaskuja 3N/2 2 kpl Luento 14 () Numeeriset menetelmät 15.5.2013 28 / 55

3 Nopeat Fourier-muunnokset 3.4 Korkeampikantaiset algoritmit Korkeampikantaiset algoritmit Nelikantainen algoritmi: Oletetaan, että N = 4 n/2 parillisella n Asetetaan N 1 = 4 ja N 2 = N/4 = 4 n/2 1 Vastaavasti 8- ja 16-kantaiset algoritmit Vaihtuvakantaiset algoritmit: Esimerkiksi, jos N = 32 = 4 2 2 Kaksi askelta nelikantaisella, yksi askel kaksikantaisella Luento 14 () Numeeriset menetelmät 15.5.2013 29 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Rekursiotaso m = 0, 1,..., n (n = log 2 N) Taso m = 0: Alustusaskel, jolla suoritetaan triviaalit yhden pisteen muunnokset ˆf 0 = f 0 Taso m = n: Lopetustaso, jolla muodostetaan lopullinen muunnos ˆf k, k = 0, 1,..., N 1 Kullakin tasolla: N 2 m ja M 2 m 1 w k N w k 2 m = e ki2π/2m = w kn/2m (missä w on alkuperäinen w = w N ) Luento 14 () Numeeriset menetelmät 15.5.2013 30 / 55

Tietokonetoteutus 3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tasolla m laskettavat osamuunnokset missä Skaalaus j = 0, 1,..., 2 n m 1 osamuunnoksen järjestysnumero ˆf [m] j,k, k = 0, 1,..., 2 m 1 pisteen järjestysnumero muunnoksessa Joko: Aluksi f j skaalataan vakiolla 1/ N Tai: Lopuksi ˆf k skaalataan vakiolla 1/ N Luento 14 () Numeeriset menetelmät 15.5.2013 31 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus (algoritmi) 1 (Alustus) Asetetaan ˆf [0] j,0 = f j, missä j = 0, 1,..., N 1. 2 Arvoilla m = 1, 2,..., n lasketaan ˆf [m] j,k = ˆf [m 1] j,k [m 1] + w kn/2mˆf 2 n m +j,k ˆf [m] [m 1] = ˆf j,2 m 1 +k j,k w kn/2mˆf [m 1] 2 n m +j,k missä j = 0, 1,..., 2 n m 1 ja k = 0, 1,..., 2 m 1 1 3 (Lopetus) Asetetaan ˆf k = [n] ˆf 0,k, missä k = 0, 1,..., N 1 Luento 14 () Numeeriset menetelmät 15.5.2013 32 / 55

Tietokonetoteutus 3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tasolla m: Lasketaan N kpl pisteitä ˆf [m] j,k Käytetään vain edellisen tason m 1 pisteitä Riittää yksi työtilavektori: Lasketaan työtilavektoriin ˆf [m] j,k Siirretään ne varsinaiseen tallennusvektoriin vanhojen tilalle ˆf [m 1] j,k Luento 14 () Numeeriset menetelmät 15.5.2013 33 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Tallennus vektoriin kuvauksen l avulla: ˆf [m] j,k tallennetaan indeksillä l(m, j, k) Kuvaukselta l vaaditaan: l(m, j, k) käy läpi {0, 1,..., N 1}, kun j = 0, 1,..., 2 n m 1 ja k = 0, 1,..., 2 m 1 Lisäksi olisi hyvä, jos Alkupisteistö f j oikeassa järjestyksessä l(0, j, 0) = j, kaikilla j = 0, 1,..., N 1 Loppupisteistö ˆf k oikeassa järjestyksessä l(n, 0, k) = k, kaikilla k = 0, 1,..., N 1. Luento 14 () Numeeriset menetelmät 15.5.2013 34 / 55

Tietokonetoteutus 3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Yksinkertaisin kuvaus, joka toteuttaa edellä mainitut ehdot: l(m, j, k) = j2 m + k Mutta: Tällöin tasolla m tarvitaan välttämättä N:n pituinen työtilavektori Kuvaus l voidaan määritellä siten, että tasolla m tarvitaan työtilaa vain kahdelle pisteelle: Lasketaan pisteet ˆf [m] j,k ja ˆf [m] j,2 m 1 +k Sijoitetaan arvot heti vanhojen pisteiden ˆf [m 1] j,k ja ˆf [m 1] 2 n m +j,k tilalle Luento 14 () Numeeriset menetelmät 15.5.2013 35 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Halutaan siis, että l(m, j, k) = l(m 1, j, k), l(m, j, 2 m 1 + k) = l(m 1, 2 n m + j, k) kun j = 0, 1,..., 2 n m 1 ja k = 0, 1,..., 2 m 1 1 Mutta: Tällöin molemmat ehdot l(0, j, 0) = j, kaikilla j = 0, 1,..., N 1 l(n, 0, k) = k, kaikilla k = 0, 1,..., N 1 eivät voi olla voimassa samanaikaisesti Luento 14 () Numeeriset menetelmät 15.5.2013 36 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Valitaan: Alkupisteistö f j oikeassa järjestyksessä l(0, j, 0) = j, kaikilla j = 0, 1,..., N 1 Merkitään: k = m 1 i=0 k i2 i, missä k i {0, 1} (k i :t ovat indeksin k bitit sen binääriesityksessä) Määritellään: b m (k) = m 1 i=0 k m i 12 i (b m kääntää indeksin k bitit päinvastaiseen järjestykseen) Luento 14 () Numeeriset menetelmät 15.5.2013 37 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Tämä oli siis, mitä halutaan: l(m, j, k) = l(m 1, j, k), l(m, j, 2 m 1 + k) = l(m 1, 2 n m + j, k) kun j = 0, 1,..., 2 n m 1 ja k = 0, 1,..., 2 m 1 1 Yllä oleva saadaan nyt muotoon l(m, j, k) = l(m 1, j + k m 1 2 n m, m 2 i=0 k i2 i ) missä j = 0, 1,..., 2 n m 1 ja k = 0, 1,..., 2 m 1 Luento 14 () Numeeriset menetelmät 15.5.2013 38 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Käytetään tätä rekursiivisesti, jolloin saadaan l(m, j, k) = l(m 1, j + k m 1 2 n m, m 2 i=0 k i2 i ) = l(m 2, j + k m 1 2 n m + k m 2 2 n m+1, m 3 i=0 k i2 i ) = = l(0, j + k m 1 2 n m + + k 0 2 n 1, 0) = l(0, j + 2 n m m 1 i=0 k m i 12 i, 0) = l(0, j + 2 n m b m (k), 0) = j + 2 n m b m (k) [koska l(0, j, 0) = j j] Luento 14 () Numeeriset menetelmät 15.5.2013 39 / 55

Tietokonetoteutus 3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Edellä saatiin mistä seuraa l(m, j, k) = j + 2 n m b m (k) l(n, 0, k) = b n (k) kaikilla k = 0, 1,..., N 1 Jos alkupisteistö f j on oikeassa järjestyksessä, loppupisteistö ˆf k saadaan bittikäänteisessä järjestyksessä (bit-reversed order) Luento 14 () Numeeriset menetelmät 15.5.2013 40 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus Edellä saatiin mistä saadaan l(m, j, k) = j + 2 n m b m (k) l(m 1, j, k) = j + 2 n m+1 b m 1 (k) l(m 1, 2 n m + j, k) = 2 n m + j + 2 n m+1 b m 1 (k) Lisäksi: algoritmissa k voidaan korvata b m 1 (k):lla (samantekevää, missä järjestyksessä indeksit käydään läpi) Luento 14 () Numeeriset menetelmät 15.5.2013 41 / 55

Algoritmi (versio 1) 3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta do j = 0, N 1 A(j) := f j / N end do do m = 1, n do k = 0, 2 m 1 1 α := w b m 1(k)N/2 m do j = 0, 2 n m 1 u := A(j + 2 n m+1 k) v := αa(2 n m + j + 2 n m+1 k) A(j + 2 n m+1 k) := u + v A(2 n m + j + 2 n m+1 k) := u v end do end do end do do k = 0, N 1 ˆf k := A ( b n (k) ) end do Luento 14 () Numeeriset menetelmät 15.5.2013 42 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Tietokonetoteutus (toinen muoto) Valitaan: Loppupisteistö ˆf k oikeassa järjestyksessä l(n, 0, k) = k kaikilla k = 0, 1,..., N 1... Saadaan ja erityisesti l(m 1, j, k) = k + 2 m 1 b n m+1 (j) l(0, j, 0) = b n (j) j = 0, 1,..., N 1 Jos alkupisteistö f j on bittikäänteisessä järjestyksessä, loppupisteistö ˆf k saadaan oikeassa järjestyksessä Luento 14 () Numeeriset menetelmät 15.5.2013 43 / 55

Algoritmi (versio 2) 3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta do j = 0, N 1 A ( b n (j) ) := f j end do do m = 1, n do k = 0, 2 m 1 1 α := w kn/2m do j = 0, 2 n m 1 u := A(k + 2 m j) v := αa(2 m 1 + k + 2 m j) A(k + 2 m j) := u + v A(2 m 1 + k + 2 m j) := u v end do end do end do do k = 0, N 1 ˆf k := A(k)/ N end do Luento 14 () Numeeriset menetelmät 15.5.2013 44 / 55

3 Nopeat Fourier-muunnokset 3.5 Tietokonetoteutuksesta Algoritmit Versio 1: Kiertokerrointa laskettaessa tehdään bitinkääntö Versio 2: Rekursiosilmukassa ei bitinkääntöä Luento 14 () Numeeriset menetelmät 15.5.2013 45 / 55

Tenttitärpit Tenttitärpit Tenttikysymysten aiheet tullaan suurella todennäköisyydellä poimimaan seuraavasta listasta. Kysymysten tarkka sanamuoto ei kuitenkaan välttämättä ole juuri listan mukainen ja tehtävissä esiintyvät kertoimet, vakiot, funktiot jne tulevat myös muuttumaan. Kohtuutonta laskentaa tai kaavamonstereiden muistamista tentissä ei vaadita. Tentissä on 5 tehtävää (6 pist/teht), joihin jokaiseen vastataan. Luento 14 () Numeeriset menetelmät 15.5.2013 46 / 55

Tenttitärpit Tenttitärpit Luku 1 Selitä lyhyesti - hyvin/huonosti asetettu matemaattinen ongelma - matemaattisen ongelman häiriöalttius - numeerinen stabiilisuus Tulee ymmärtää ja osata käyttää seuraavia: Absoluuttinen ja suhteellinen virhe, oikeat desimaalit ja merkitsevät numerot Demo 1.1 (num. epästab. lausekkeita, muuta stab. muotoon) Luento 14 () Numeeriset menetelmät 15.5.2013 47 / 55

Tenttitärpit Tenttitärpit Luku 2 Muotoile kolme eri numeerista menetelmää yhtälön 2x cos(x) = 0 ratkaisemiseksi. Miten lasketaan annetun luvun kuutiojuuri Newtonin menetelmää käyttäen? Polynomit ja Hornerin menetelmä (perusideat) Luento 14 () Numeeriset menetelmät 15.5.2013 48 / 55

Tenttitärpit Tenttitärpit Luku 3 Selitä, mitä tarkoittaa matriisin häiriöalttius (ehtoluku). Kerro periaate, miten LU tai Choleskyn hajotelmaa käytetään lineaarisen yhtälöryhmän ratkaisemisessa. LU- ja Choleskyn hajotelman johtaminen yhtälöstä A = LU tai L = L T Miten suorat ja iteratiiviset menetelmät eroavat toisistaan? Demo 2.2, 2.3, 2.5 Luento 14 () Numeeriset menetelmät 15.5.2013 49 / 55

Tenttitärpit Tenttitärpit Luku 4 Ominaisarvot ja -vektorit (mitä ne on, perusideat) Selitä lyhyesti potenssiinkorotusmenetelmä tehtävälle Ax = λx QR-menetelmän perusidea Demo 4.1 Luento 14 () Numeeriset menetelmät 15.5.2013 50 / 55

Tenttitärpit Tenttitärpit Luku 5 Lagrangen ja Newtonin interpolaatiopolynomien muodostaminen. Demo 4.3, 4.4. Selitä kuutiosplinin perusominaisuudet. Demo 5.1. Pienimmän neliön ja pienimmän neliösumman approksimointi (perusideat). Luento 14 () Numeeriset menetelmät 15.5.2013 51 / 55

Tenttitärpit Tenttitärpit Luku 6 Yksinkertaisten integrointikaavojen soveltaminen (esim. puolisuunnikassääntö, Simpsonin sääntö, Gauss-Legendre) Selitä, mitä tarkoitetaan automaattisella tai adaptiivisella integroinnilla. Numeerisen derivoinnin peruskaavojen soveltaminen (etenevä-, takeneva- ja keskeisdifferenssi, Richardsonin ekstrapolaatio) Selitä numeerisen derivoinnin mahdollisia ongelmia Demo 6.1, 6.2, 6.3, 6.6, 7.2 Luento 14 () Numeeriset menetelmät 15.5.2013 52 / 55

Tenttitärpit Tenttitärpit Luku 7 Selitä lyhyesti - eksplisiittinen vs. implisiittinen menetelmä - yksiaskel vs. moniaskelmenetelmät - ennustus-korjaus-menetelmän perusidea Eulerin menetelmän soveltaminen alkuarvotehtävän ratkaisemiseen Demo 7.3, 7.5 Luento 14 () Numeeriset menetelmät 15.5.2013 53 / 55

Tenttitärpit Tenttitärpit FFT Diskreetti Fourier-muunnos Lineaarisuus ja normin säilyminen (Lauseiden 2.2 ja 2.3 tod) Nopeat Fourier-muunnokset, yleinen algoritmi (perusidea) Luento 14 () Numeeriset menetelmät 15.5.2013 54 / 55

Tenttitärpit Onnea tenttiin! Luento 14 () Numeeriset menetelmät 15.5.2013 55 / 55