Numeeriset menetelmät, kevät 2006

Harjoitus 10

Ratkaisut palautettava viimeistään luennolla maanantaina 12.4.

1. Toteuta haarukointimenetelmä funktiona, jolle annetaan parametreina minimoitava funktio ja välin alku- ja päätepisteet. Testaa ohjelmaa etsimällä funktion \sqrt(x)+sin(x-\sqrt(x)) välillä [5, 10] oleva minimi. Varmista, että saat saman arvon, vaikka rajoja hieman muutetaankin.

2. Muuta edellistä ohjelmaa niin, että parametrina annetaan myös kohdefunktion derivaatta. Iteraatio voidaan toteuttaa samalla tavoin, mutta keskimmäisen pisteen derivaatan avulla päätetään, kummalla puolella minimi on.

3. Polytooppihaun suorittava Nelderin-Meadin ohjelma on demohakemistossa. Testaa moduulia Rosenbrockin banaanifunktiolla

f(x,y) = 100(y-x2)2+(1-x)2.

Kokeile muutamia erilaisia alkuarvoja. (Minimi on pisteessä (1,1), mutta syvä ja kapea kaartuva laakso tekee sen löytämisen hyvin hankalaksi.)

4. Sovita polytooppiohjelmalla suora y=ax+b aineistoon (0,0), (1,1), (2,0), (3,2), (4,4), (5,5). Sovituksen kriteerinä käytetään L1-normia, eli minimoitava residuaali on

R=\sum | yi - a xi - b |.