Ohjelmointi ja numeeriset menetelmät, kevät 2006

Harjoitus 4

Ratkaisut palautettava viimeistään luennolla 22.2.

Ohjelman lisäksi vastauksissa on oltava mukana ohjelmien antamat tulostukset.

Suurin osa ohjelmakoodeista on esitetty luennoilla, tosin hieman epätäydellisinä.

1.Tee aliohjelma {\tt sort2(a, n)}, joka järjestelee kaksiulotteisen taulukon {\tt a(n,n)} niin, että ensin jokaisen vaakarivin alkiot järjestetään laskevaan järjestykseen. Lopuksi vaakarivit järjestetään ensimmäisen alkion mukaan laskevaan järjestykseen. Esimerkiksi

  | 1 0 3 |     | 3 1 0 |     | 4 2 1 |
  | 2 4 1 | =>  | 4 2 1 | =>  | 3 1 0 |
  | 1 2 0 |     | 2 1 0 |     | 2 1 0 |

2. Luennolla esitettiin lineaarisen yhtälöryhmän ratkaisu Gaussin eliminoinnilla, mutta ohjelma on keskeneräinen, mm. muuttujien määrittelyt puuttuvat. Kokoa palaset ohjelmaksi, joka ratkaisee yhtälöryhmän Ax=b ja tallettaa ratkaisun taulukkoon x. Testaa ohjelmaa ratkaisemalla yhtälöryhmä

  | 1  2  3  4  |      | 20 |
  | 1  3  1  2  | x =  | 11 |
  | 2  1  1  1  |      |  6 |
  | 3  1  0  1  |      |  4 |

3. Laske edellisen tehtävän kerroinmatriisin LU-hajotelma ja determinantti.

4.Yritä ratkaista tehtävän 2 yhtälö Jacobin iteroinnilla. Mitä tapahtuu? Kokeile sitten lisätä yhtälöryhmän diagonaalidominanssia lisäämällä kerroinmatriisin lävistäjän jokaiseen alkioon luvun 10, jolloin yhtälöryhmä on siis

  |11  2  3  4  |      | 20 |
  | 1 13  1  2  | x =  | 11 |
  | 2  1 11  1  |      |  6 |
  | 3  1  0 11  |      |  4 |