Ohjelmointi ja numeeriset menetelmät, kevät 2006

Harjoitus 6

Ratkaisut palautettava viimeistään luennolla 15.3.

1. Tee aliohjelma, joka sovittaa annettuun aineistoon Fourier'n sarjan. Parametreina annetaan jakson pituus P ja sini- ja kosinitermien lumäärä n. Sovitettava funktio on siis muotoa

y(\phi) = a0 + \sum i=1n ai cos (2i \pi \phi / P) + \sum i=1n bi sin (2i \pi \phi / P)

Testiaineistona voit käyttää alla olevaa liitettä, jossa on asteroidin (16) Psyche valokäyrä; ensimmäisellä sarakkeella on aika tunteina ja toisella magnitudi. Asteroidin pyörähdysaika on 4.196 tuntia.

2. Laske integraali

\int 0\pi/2 sin x dx

puolisuunnikasmenetelmällä. Kokeile eri askelpituuksia. Mikä askelpituuden on oltava, jotta suhteellinen (globaali) virhe olisi pienempi kuin 10-5?

3. Laske edellinen integraali Gaussin viiden pisteen menetelmällä. Gaussin menetelmään tarvittavia koordinaatteja ja painoja on luennon 7 yhteydessä.

4. Muuta Simpsonin menetelmää käyttävää ohjelmaa niin, että se laskee integraalin

\int 01 \int 01 exy dx dy.

(Helpointa lienee tehdä integrointirutiinista kaksi kopiota; toinen integroi alkuperäisen funktion x:n suhteen kiinteällä y-arvolla, ja toinen kutsuu tätä integraattoria tarvittavilla y:n arvoilla.) Integraalin arvo on 1.3179, mutta sitä ei voi laskea analyyttisesti alkeismenetelmillä.


     4.6004      6.5337
     4.8779      6.5154
     4.7947      6.5064
     4.9485      6.4918
     5.0629      6.5031
     5.1760      6.4973
     5.4448      6.5037
     5.5697      6.5187
     5.7254      6.5308
     5.8613      6.5551
     5.9964      6.5689
     6.0278      6.5747
     6.0486      6.5780
     6.1224      6.5999
     6.2887      6.6168
     6.4128      6.6195
     6.5473      6.6232
     6.6086      6.6147
     6.7112      6.6051
     6.9677      6.5828
     6.9465      6.5745
     7.2555      6.5648
     7.8228      6.5588
     7.9360      6.5534
     8.0602      6.5584
     8.0501      6.5619
     8.2151      6.5598
     8.4718      6.5389
     8.5635      6.5215
     8.6147      6.5152
     8.8420      6.5191
     8.9037      6.5148
     9.0886      6.5020
     9.3050      6.4972
     9.8122      6.5168
     9.8643      6.5247
     9.9994      6.5378
    10.0627      6.5564
    10.1370      6.5860
    10.3447      6.6045
    10.4079      6.6230
    10.7261      6.5976
    10.8701      6.5892
    11.0144      6.5867
    11.1171      6.5782
    11.1989      6.5671
    11.4459      6.5573
    11.6106      6.5502
    11.6936      6.5561
    11.7863      6.5530
    11.8686      6.5496
    12.0239      6.5558
    12.1270      6.5538