Numeeriset menetelmät, kevät 2006

Ylimääräisiä tehtäviä

1. Kirjoita funktio, joka ratkaisee yhtälön välinpuolitusmenetelmällä. Ratkaise sen avulla yhtälö x - cos x = 0.

2. Kirjoita ohjelma, joka ratkaisee sekanttimenetelmällä rajoitetun kolmen kappaleen probleeman Lagrangen pisteen L1 (primäärien välissä). Pisteen paikka x primäärien mukana pyörivässä koordinaatistossa saadaan yhtälöstä

x - (1-\mu)/(x+\mu)**2 + \mu / (x-(1-\mu))**2 = 0,

missä -\mu < x < 1-\mu. Varaudu ohjelmassa myös siihen, että iterointi saattaa ruveta hajaantumaan.

3. Tee funktiot, jotka laskevat normaalijakauman kertymäfunktion ja sen käänteisfunktion arvot. Jälkimmäinen siis ratkaisee x:n yhtälöstä\nl P(x)=a, missä 0 P(x) = 1 - exp(-x**2/2)/\sqrt(2\pi) (0.4361836 t - 0.1201676 t**2 + 0.9372980 t**3),

missä t=1/(1 + 0.33267 x).

4. Tee ohjelma, joka sovittaa tiedostosta luettavaan pistejoukkoon n-asteisen polynomin. Kertoimien virheitä ei tarvitse laskea.

5. Laske integraali

\int01 \int01 exy dx dy

Gaussin viiden pisteen menetelmällä.

6. Tee funktio, joka laskee eksponenttifunktion exp(M), missä M on kompleksiarvoinen neliömatriisi. Eksponenttifunktio määritellään Taylorin sarjan avulla

exp(M) = I + M + (1/2)M**2 + (1/3!) M**3 + ...

missä I on yksikkömatriisi. (Tämä on siis eri asia kuin varusfunktio exp(M)}, joka kohdistuu erikseen jokaiseen matriisin alkioon). Katkaise sarja, kun seuraavan termin normi on annettua rajaa pienempi tai jos normit alkavat kasvaa. Testaa funktiota spin-matriiseilla

  | 0  1 |       | 0  -i |       | 1   0 |
  | 1  0 |       | i   0 |       | 0  -1 |

7. Tuota Fortranin omalla satunnaislukugeneraattorilla n kappaletta satunnaislukuja. Laske lukusarjan autokorrelaatiofunktio viiveille 0, ..., n/2. Näyttääkö luvuissa esiintyvän jaksollisuutta?

8. Tee funktio, joka määrittää Lagrangen interpolointipolynomin kertoimet neljän pisteen joukolle ja laskee polynomin arvon annetussa pisteessä.

9. Tee aliohjelmat, joilla ekvatoriaalisista koordinaateista lasketaan ekliptikaaliset ja päinvastoin.

10. Tee aliohjelma, joka laskee planeetan paikan ratatasoon liittyvässä koordinaatistossa (xy-taso on radan tasossa ja x-akseli osoittaa perihelin suuntaan). Lähtötietoina ovat rataelementit ja ajanhetki (esimerkiksi juliaaninen päivämäärä).