Ohjelmointi ja numeeriset menetelmät, kevät 2006

Harjoitus 3

Ratkaisut palautettava viimeistään luennolla 15.2

1. Oletetaan, että on määritelty taulukot a(10), b(20). Kirjoita lauseet, joilla suoritetaan seuraavat toimenpiteet:

- taulukkoon a poimitaan b:n alkiot 1, 3, 5, ..., 19,

- taulukkoon a poimitaan b:n alkiot 1, 2, 3, 4, 5, 10, 11, 13, 17, 20.

- taulukon a negatiiviset alkiot korvataan neliöllään.

Käytä taulukko-operaatioita, ei silmukoita, mikäli mahdollista.

2. Ohjelmassa on määritelty kaksiulotteinen taulukko a. Kirjoita lauseet, jotka vaihtavat taulukon a suurimman ja pienimmän alkion keskenään. Käytä varusfunktioita tarvittavien indeksien selvittämiseen.

3. Luennolla esitettiin ohjelma, joka ratkaisee yhtälön f(x)=0 Newtonin menetelmällä. Kokeile ohjelmaa yhtälöön x-\ln(x)-2=0. Luonnollisen logaritmin saat Fortranin funktiolla log. Ratkaisu on noin 0.16. Kokeile joitakin eri alkuarvoja, jotka ovat sekä nollakohdan vasemmalla että oikealla puolella. Mitä tapahtuu? Selitys? (Mahdollisen ongelman selvittämiseksi aliohjelmaan solve voi lisätä tulostuslauseen, jolla tulostetaan kullakin iteraatiokierroksella saadut tulokset.)

4.Kirjoita ohjelma, joka ratkaisee Keplerin yhtälön sekanttimenetelmällä. Testaa ohjelmaa ainakin muutamille eri alkuarvoilla.