MASARYKOVA UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA Hledání minima funkce jedné proměnné BAKALÁŘSKÁ PRÁCE Jaroslav Urbánek Brno, jaro 2006
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, jež jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně, 23.5.2006 Jaroslav Urbánek Vedoucí práce: Prof. RNDr. Ivana Horová, CSc. ii
Poděkování Rád bych na tomto místě poděkoval vedoucímu této práce, prof. RNDr. Ivaně Horové, CSc., za věnovaný čas, rady a připomínky, které mi pomohly k jejímu vypracování. iii
Shrnutí Práce představuje a rozebírá pět základních numerických metod pro hledání minima funkce jedné proměnné. Vedle hlavní myšlenky prezentuje každouzmetodnastejnémpříkladupromožnostsrovnání.důrazjekladenna představení metod a jejich použití v praxi. Celkové zhodnocení kladů a záporůjednotlivýchmetodjeuvedenovsekcizávěr.součástíprácejecds programy demonstrujícími jednotlivé metody na konkrétních příkladech. iv
Klíčová slova minimum, funkce, zlatý řez, kvadratická interpolace, bisekce, Bolzanova metoda, Newtonova metoda, metoda tečen, regula falsi, optimalizace v
Obsah 1 Úvod 2 2 Pojmy a předpoklady 3 3 Přímé metody 5 3.1 Zlatýřez............ 5 3.2 Kvadratickáinterpolace... 9 4 Diferenciální metody 14 4.1 Bolzanovametoda...... 14 4.2 Newtonovametoda...... 17 4.3 Metodaregulafalsi...... 20 5 Závěr 23 1
1 Úvod Hledání minima funkce je často řešený problém optimalizace, oboru zabývajícího se určením nejlepšího řešení určitého matematicky popsatelného problému. I když v některých případech chceme znát maximum funkce, vztah max(f(x)) = min( f(x)) ukazuje, že jsou tyto pojmy spolu provázané. Nezáleží na tom, jestli potřebujeme znát maximum, nebo minimum, jedno můžeme určit z druhého. Optimalizační úlohy se vyskytují všude tam, kde je možné vybírat si z více možných rozhodnutí, a přitom kvalitu jednotlivých rozhodnutí ohodnotit nějakým reálným číslem. Konkrétní oblasti využití jsou: Matematika (teorie aproximace, optimalizace numerických procesů,...), Geometrie(geodézie, minimální křivky a plochy, optimální oblasti a tvary,...), Ekonomické a politologické teorie(využívání zdrojů a zásob, optimální skladba výroby, tvorba cen, rozložení rizika, strategické hry, teorie eskalace konfliktu,...), Fyzika(mechanika, geometrická optika, teorie pružnosti, hydrodynamika, teorie relativity,...), Přírodní vědy(modely fyzikálních, chemických a biologických procesů,...), Teorie řízení(optimální řízení, optimální systémy, hierarchické řízení, koordinační strategie,...), Teorie konstruování(optimalizace konstrukcí, optimalizace tvarů, optimální odhad neznámých parametrů, optimalizace dynamických vlastností mechanických systému, optimalizace spolehlivosti a rizika konstrukcí,...) a další jako například v dopravě, logistice a kdekoliv jinde, kde se nám podaří matematicky zformulovat optimalizační úlohu. Není vždy možné určit minimum přesně, nebo je to někdy příliš pracné, námpřitomstačí přibližná hodnota,protohledámeminimálníhodnoty funkcí numericky. My se omezíme pouze na funkce jedné proměnné. Vtextujsouuvedenatvrzeníavěty,kterévméprácinejsoudokázány.Důvodem je skutečnost, že tato tvrzení jsou všeobecně známá(tudíž snáze uvěřitelná),případněbyjejichdokazování zbytečněnatahovalo text,vmnohých případech vedlo k definicím nových pojmů a uvádění tvrzení s nimi spjatých, což by změnilo podstatu textu, v některých případech zřejmě i odradilo nejednoho čtenáře. U každého tvrzení(a věty) jsou uváděny odkazy na příslušnou literaturu, v níž si zájemci mohou jednotlivé důkazy dohledat. 2
2 Pojmy a předpoklady Definice 1.Ofunkci f řekneme,žemávbodě x=plokálníminimum, jestližeexistujeotevřenýinterval Iobsahujícíbod ptakový,že f(p) f(x) provšechna x I.Jestliženavíc f(p) < f(x)provšechna x I,paktomuto lokálnímu minimu říkáme ostré. Definice2.Nechťjefunkce fdefinovánanaintervalu I. (i)jestližeprokaždédvabody x, y Itakové,že x < y,platí f(x) < f(y), nazýváse frostoucínaintervalu I. (ii)jestližeprokaždédvabody x, y Itakové,že x < y,platí f(x) > f(y), nazývá se f klesající na intervalu I. Definice3.Funkce fsenazýváunimodálnínaintervalu I,jestližemána tomto intervalu právě jeden lokální extrém. Zadanou funkci, jejíž minimum hledáme, budeme označovat jako účelovou. V celé práci předpokládáme, že účelová funkce je na zadaném intervalu spojitá a unimodální, přičemž nabývá (ostrého) lokálního minima v jeho vnitřním bodě, čili má na daném intervalu tvar přibližně odpovídající obrázku 2.1. Obr. 2.1: Unimodální funkce 3
Jestližefunkce f nabývásvéminimálníhodnotyvbodě pamytuto hodnotu hledáme na intervalu[a, b], pak podle výše uvedených předpokládů, jefunkce fnaintervalu[a, p]klesajícíanaintervalu[p, b]rostoucí. Věta1.Nechťfunkce fmávbodě plokálníminimumanechťexistujederivace f (p).pak f (p)=0.[3,str.187] Body, v nichž derivace funkce nabývá nulové hodnoty, označujeme jako stacionární. Stacionární bod nemusí být vždy lokálním extrémem(minimem nebo maximem), vzhledem k našim předpokladům však stacionární bod bude vždy dokonce lokálním minimem funkce f na intervalu[a, b]. Numerické metody hledání minima funkce jedné proměnné rozdělujeme na přímé(bez dalších požadavků) a metody diferenciální(derivační), v nichž převádíme problém hledání minima funkce na problém nalezení kořene derivace účelové funkce, čímž tedy navíc požadujeme existenci derivace na zadaném intervalu. Věta2.Předpokládejme,žefunkce fjespojitánaintervalu I=[a, b]aje na něm diferencovatelná. (i)jestliže f (x) >0provšechna x I,pak fjerostoucína I. (ii)jestliže f (x) <0provšechna x I,pak fjeklesajícína I.[3,str.183] V závěrečném srovnání metod pro nás bude užitečná definice řádu metody,tedy míry rychlostijejíkonvergence.metody,kterézdeuvedeme,jsou vícekrokové. V každém kroku(iteraci) výpočtu je přitom spočítána aproximace hledaného řešení. Pro jednoduchost budou všechny funkce funkcemi proměnné x,aproximaciminimavk-témkrokubudemeznačit x k,přesné řešenípak x.uveďmedále,ževněkterýchliteraturách(jakonapř.v[1])je k-táaproximaceznačena x k. Definice4.Chybu e k k-téiteracedefinujemevztahem e k = x k x. Předpokládejmenyní,žemetodajekonvergentní,tzn.lim k x k = x. Existuje-lireálnéčíslo p 1tak,žeplatí lim k e k+1 e p k = C 0, řekneme, že daná iterační metoda je řádu p. Konstanta C se nazývá asymptotickou konstantou chyby. 4
3 Přímé metody 3.1 Zlatý řez Metoda zlatého řezu patří mezi postupné(adaptivní) komparativní metody hledání minima libovolné spojité unimodální funkce. Postupné komparativnímetodyspočívajívutvořenítakovéposloupnostiintervalů[a k, b k ], x I k =[a k, b k ],kde x jehledanéminimum,kterávyhovujevztahu: I k I k 1 I k 2 I 2 I 1 I=[a, b] Na počátku je zadán interval[a, b]. Každý následující interval je subintervalempředcházejícího,aprotoposloupnost {I k }konverguje.metodazlatého řezu spočívá v rozdělení každého intervalu tak, aby poměr větší části k menší byl roven poměru celého děleného intervalu k větší části. Vyznačmesizlatýřeznaúsečce a=ab: Obr. 3.1: Zlatý řez Za předpokladu, že délka úsečky a je rovna 1, odvodíme: r a r = a r r 1 r = 1 r r 2 + r 1=0 Kladný kořen značí délku úsečky r(přibližně 0,618). 5
Interval[a, b],vněmžminimumhledáme,rozdělímedvěmabody c, dtak, aby platilo: c=a+(1 r)(b a) a d=a+r(b a) Jestliže f(c) f(d),pakseminimumnacházívsubintervalu[a, d], snímžprovedemenásledujícíiteracivýpočtu,tedy[a 1, b 1 ]=[a, d]. Vpřípadě,že f(c) > f(d),minimumsenacházívsubintervalu[c, b], tedy[a 1, b 1 ]=[c, b],vizschematickéobrázky3.2a3.3.vybarvenáčástplochy pod grafem funkce f značí výběr intervalu pro další výpočet. Obr.3.2: f(c) f(d) Obr.3.3: f(c) > f(d) Vprůběhuvýpočtusezadanýinterval I=[a, b]zmenšuje.označmejeho velikost l. Pak platí: [a, b] = l = b a [a 1, b 1 ] = l 1 = b 1 a 1 = r (b a) [a 2, b 2 ] = l 2 = b 2 a 2 = r 2 (b a). [a k, b k ] = l k = b k a k = r k (b a) Proodchylku(téžchybu)výpočtuplatí ε 1 2 l n,kde l n jevelikost intervalu po poslední provedené iteraci. 6
Z předchozích vztahů odvodíme počet kroků výpočtu: ε 1 l 2 n= 1 2 rn (b a) r n 2ε b a. log( b a 2ε ) n log( 1 r ) Pro dosažení přesnosti ε musíme provést aspoň N kroků výpočtu, kde N log( b a 2ε ) log r. Výsledekvýpočtu(značíme x )zapíšemespomocíbodu x n,cožjestředintervalu[a n, b n ]: x = x n ± 1 2 l n (případně x = x n ± ε) Příklad: Nalezněteminimumfunkce f(x)=x+ 3 x 2 spřesností ε=0,05,víte-li,žesenalézávintervalu[0.5,3]. Řešení: Nejdříve zjistíme počet kroků iterace nutných k zajištění přesnosti ε: N log( b a 2ε ) log r = log(2,5 0,1 ) log r. =6,69 N=7 Když víme, že 7 iterací stačí k dosažení požadované přesnosti, nezbývá, než je provést a určit přibližné řešení. 1.krok: I=[0.500000,3.000000], c=1,454915, d=2,045085, f(c)=2,872163, f(d)=2,762381 f(c) > f(d) I 1 =[1.454915,3.000000] 7
2.krok: I 1 =[1.454915,3.0000000], c=2,045085, d=2,409830, f(c)=2,762381, f(d)=2,962423 f(c) f(d) I 2 =[1.454915,2.409830] 3.krok: I 2 =[1.454915,2.409830], c=1,819660, d=2,045085, f(c)=2,725686, f(d)=2,762381 f(c) f(d) I 3 =[1.454915,2.045085] 4.krok: I 3 =[1.454915,2.045085], c=1,680340, d=1,819660, f(c)=2,742835, f(d)=2,725686 f(c) > f(d) I 4 =[1.680340,2.045085] 5.krok: I 4 =[1.680340,2.045085], c=1,819660, d=1,905765, f(c)=2,725686, f(d)=2,731770 f(c) f(d) I 5 =[1.680340,1.905765] 6.krok: I 5 =[1.680340,1.905765], c=1,766445, d=1,819660, f(c)=2,727882, f(d)=2,725686 f(c) > f(d) I 6 =[1.766445,1.905765] 7.krok: I 6 =[1.766445,1.905765], c=1,819660, d=1,825549, f(c)=2,725686, f(d)=2,726691 f(c) f(d) I 7 =[1.766445,1.852549] I 7 =[1.766445,1.852549] x 7 =1,809497 Přibližnéřešení: x =1,809497 ±0,043052 Zápisvýsledkuspožadovanoupřesností: x =1,81 ±0,05 Přesnéřešení: x = 3 6. =1,817120 Na obrázku 3.4 je graficky znázorněn předchozí výpočet. Zmenšující se křivky pod grafem účelové funkce(jež kopírují) udávají prohledávaný interval v jednotlivých iteracích. 8
Obr.3.4:Metodazlatéhořezupro f(x)=x+ 3 x 2. 3.2 Kvadratická interpolace Metoda kvadratické interpolace spočívá v aproximaci účelové funkce na daném intervalu parabolou. K proložení funkce parabolou na daném intervalu potřebujeme znát funkční hodnoty ve třech bodech, které ji určí jednoznačně. Označmeje r, s, t.body ratbudouokrajovébodydanéhointervalu,bod s budeležetmezinimi,přitommusíplatit: f(r) > f(s) < f(t). Parabolu, jíž aproximujeme zadanou funkci, vyjádřeme Lagrangeovým polynomem. Q(x)= f(r)(x s)(x t) + f(s)(x r)(x t) + f(t)(x r)(x s) (r s)(r t) (s r)(s t) (t r)(t s) Parabola Q(x)máminimumvbodě x,pronějž Q (x)=0. Q (x)= f(r)(2x s t) + f(s)(2x r t) + f(t)(2x r s) (r s)(r t) (s r)(s t) (t r)(t s) 9
Označme minimum paraboly m. Pak platí: m= 1 2 f(r)(t2 s 2 )+f(s)(r 2 t 2 )+f(t)(s 2 r 2 ) f(r)(t s)+f(s)(r t)+f(t)(s r) Grafické provedení předchozího postupu: Obr. 3.5: Kvadratická interpolace Předcházející postup může mít 3 různé výsledky(závisející na volbě bodů r, s, t)lišícíchsepolohoubodu m: 1) m < s: Pokud f(m) < f(s),pakseminimumnacházívintervalu[r, s],tudížbody r, sbudounovéokrajovébodyintervalu r, t,bod sbudespočítanýbod m. Pokud f(m) > f(s),pakseminimumnacházívintervalu[m, t],tudížbody m, tbudounovéokrajovébodyintervalu r, t,bod s zůstanenamístě. 2) m=s: Algoritmusnás dovedlkekonci (tzn.lepšíaproximacitímtopostupemse stejnými počátečními hodnotami nezískáme), bod s je minimem paraboly. Buď jsme jej zvolili tak nešťastně, že i když je minimem kvadratické funkce proložené body r,s,t, není minimem účelové funkce(zjistíme například zkoumáním funkčních hodnot v ε-okolí bodu s). Pak nám nezbývá, než zvolit jiný bod s a algoritmus opakovat. V opačném případě je minimum účelové funkce shodné s minimem paraboly, tudíž výpočet ukončíme, jelikož jsme našli přesnou hodnotu minima. 10
3) m > s: Pokud f(m) < f(s),pakseminimumnacházívintervalu[s, t],tudížbody s, tbudounovéokrajovébodyintervalu r, t,bod sbudespočítanýbod m. Pokud f(m) > f(s),pakseminimumnacházívintervalu[r, m],tudížbody r, mbudounovéokrajovébodyintervalu r, t,bod s zůstanenamístě. U metody kvadratické interpolace neurčujeme počet kroků nutných k dosaženíurčitéchyby(přesnosti).výpočetkončívechvíli,kdy x k x k 1 ε, kde x n jeminimum mparaboly Q(x)vn-témkrokuvýpočtu. Výsledek zapíšemevetvaru x x k. Příklad: Nalezněteminimumfunkce f(x)=x+ 3 x 2 spřesností ε=0,05,víte-li,žesenalézávintervalu[0.5,3]. Řešení: 1.krok:[a, b] =[0.500000, 3.000000], r=0.500000, s=1.500000, t=3.000000, x 0 =1.750000 f(r)=12.500000, f(s)=2.833333, f(t)=3.333333 m=2.208333, f(m)=2.823499 (s < m) (f(m) < f(s)) r=1.500000, s=2.208333, t=3.000000 x 1 =2.208333, x 1 x 0 =0.458333 2.krok:[a, b] =[1.500000, 3.000000], r=1.500000, s=2.208333, t=3.000000, x 1 =2.208333 f(r)=2.833333, f(s)=2.823499, f(t)=3.333333 m=1.869995, f(m)=2.727902 (m < s) (f(m) < f(s)) r=1.500000, s=1.869995, t=2.208333 x 2 =1.869995, x 2 x 1 =0.338339 11
3.krok:[a, b] =[1.500000, 2.208333], r=1.500000, s=1.869995, t=2.208333, x 2 =1.869995 f(r)=2.833333, f(s)=2.727902, f(t)=2.823499 m=1.862831, f(m)=2.727350 (m < s) (f(m) < f(s)) r=1.500000, s=1.862831, t=1.869995 x 3 =1.862831, x 3 x 2 =0.007163 Přibližnéřešení: x 1,862831 Zápisvýsledkuspožadovanoupřesností: x =1,86 ±0,05 Přesnéřešení: x = 3 6. =1,817120 Na obrázku 3.6 je graficky znázorněn předchozí výpočet. Jednotlivé aproximacejsouznázorněnypostupněsezvětšujícími čárkami protínajícími grafúčelovéfunkce,minimumjeznázorněnonejdelší čárkou. Obr.3.6:Metodakvadratickéinterpolacepro f(x)=x+ 3 x 2. 12
Jakvidímezvýpočtuizobrázku,metodanemusídávatpřesné(tzn. pravdivé) řešení. V našem případě je přesnost ε zvolena vhodně, tudíž zápis výsledku s požadovanou přesností je pravdivý. Uvážíme-li však například přesnost ε = 0,01,výpočetbudestejný,ovšemzápisvýsledkuspožadovanou přesností nebude pravdivý. Na vině je podmínka ukončení výpočtu, v níž požadujeme, aby rozdíl dvou následujících aproximací byl menší než danáchyba.toovšemnezaručuje,žejsmetéž dostatečněblízko skutečného minima účelové funkce. K zaručení skutečné přesnosti (pravdivosti) výsledku je třeba brát přesnost jako interval[r, t], který se postupně zmenšuje a kde máme jistotu, že obsahuje skutečné minimum účelové funkce. To však vede k podstatně delšímu výpočtu(v našem případě by to znamenalo 27 iterací). Později uvidíme, že můžeme k odhadu chyby navíc použít i jiné vztahy, vzhledem k našim předpokladům(kdy nepožadujeme existenci derivaceúčelovéfunkce)znichmůžemevyužítpouze x k+1 x k x k < ε,kterýstejně pravdivostvýsledkunemusízaručit(viz.nášpříkladaε=0,01). Závěrem dodejme, že existuje více implementací metody kvadratické interpolace, které se liší především volbou vnitřního bodu s intervalu[r, t]. Známá je pak především implementace s tzv. ekvidistantními body, kde bod s je vždy středem intervalu[r, t]. To dovoluje jednodušší výpočet hodnoty minima m paraboly Q(x), k dosažení stejné přesnosti je však potřeba více krokůvýpočtu.navícsemusízajistit,abynenastalasituace f(r)=f(t),pak bytotižvnásledujícíiteracibod ssplynulsbodem m. 13
4 Diferenciální metody Druhou skupinou metod k hledání minima funkce jedné proměnné jsou metody derivační, nebo-li diferenciální. Doposud jsme po zadané účelové funkcipožadovali pouze,abynadanémintervalubylaunimodálníaměla tvar odpovídající obrázku 2.1. V derivačních metodách budeme navíc požadovat, aby funkce byla na zadaném intervalu diferencovatelná, tedy aby byla její derivace definovaná v každém bodě tohoto intervalu. 4.1 Bolzanova metoda Nejjednodušší iterační metodou pro hledání minima je Bolzanova metoda, též známá jako metoda bisekce čili půlení intervalů. Jak název napovídá, prohledávaný interval se s každým krokem výpočtu zmenší na polovinu v závislosti na hodnotě derivace funkce, jejíž minimum hledáme. Na schematickém obrázku 4.1 je znázorněna obecná funkce f na intervalu[a, b] spolu se svojí derivací(dole) na tomtéž intervalu. Dále je na obrázku naznačeno půlení zadaného intervalu v prvních třech krocích. Jestližeoznačíme pbod,vněmžfunkce fnabývásvéhominimanaintervalu[a, b],pakje f(jakjižbylozmíněnovoddílu2)klesajícínaintervalu [a, p]arostoucínaintervalu[p, b].podlevěty2jetedy x [a, p]:f (x) <0, x [p, b]:f (x) >0apodlevěty1vbodě pje f (x)=0. Položme a 0 = a, b 0 = b, x 0 = 1 2 (a 0+ b 0 ). Pro k = 0, 1, 2,... opakujeme následující postup, dokud nedocílíme požadované přesnosti: (i) f (x k ) <0 p>x k a k+1 = x k, b k+1 = b k, x k+1 = 1 2 (a k+1+ b k+1 ) (ii) f (x k ) >0 p<x k a k+1 = a k, b k+1 = x k, x k+1 = 1 2 (a k+1+ b k+1 ) (iii)f (x k )=0 x k jeminimum Jestližeoznačíme l k = [a k, b k ],pakprochybuvýpočtuplatí: ε 1 2 l k. Po N-témkrokuvýpočtu: x = x N ± 1 2 l N,kde l N =2 N (b a). Nutnýpočetiteracíkdosaženípřesnosti ε: N log b a 2ε log2. 14
Obr. 4.1: Bolzanova metoda Příklad: Nalezněteminimumfunkce f(x)=x+ 3 x 2 spřesností ε=0,05,víte-li,žesenalézávintervalu[0.5,3]. Řešení: Nejdříve zjistíme počet kroků iterace nutných k zajištění přesnosti ε: N b a log 2ε = log(2,5 0,1 ) log2 log2. =4,64 N=5 f (x)=1 6 x 3 Víme, že 5 kroků výpočtu stačí k zajištění přesnosti ε, víme, jak určit funkční hodnoty derivace funkce f, nic nám nebrání aplikovat výše uvedený postup. 1.krok: I=[0.500000,3.000000], a 0 =0.500000, b 0 =3.000000, x 0 =1.750000, f (x 0 )= 0.119534 <0 I 1 =[1.750000,3.000000] 15
2.krok: I 1 =[1.750000,3.000000], a 1 =1.750000, b 1 =3.000000, x 1 =2.375000, f (x 1 )=0.552121 >0 I 2 =[1.750000,2.375000] 3.krok: I 2 =[1.750000,2.375000], a 2 =1.750000, b 2 =2.375000, x 2 =2.062500, f (x 2 )=0.316137 >0 I 3 =[1.750000,2.062500] 4.krok: I 3 =[1.750000,2.062500], a 3 =1.750000, b 3 =2.062500, x 3 =1.906250, f (x 3 )=0.133813 >0 I 4 =[1.750000,1.906250] 5.krok: I 4 =[1.750000,1.906250], a 4 =1.750000, b 4 =1.906250, x 4 =1.828125, f (x 4 )=0.017950 >0 I 5 =[1.750000,1.828125] Přibližnéřešení: x = x 5 ±0,039063=1,789063 ±0,039063 Zápisvýsledkuspožadovanoupřesností: x =1,79 ±0,05 Přesnéřešení: x = 3 6. =1,817120 Na obrázku 4.2 je graficky znázorněn předchozí výpočet. Zmenšující se křivky pod grafem účelové funkce(jež kopírují) udávají prohledávaný interval v jednotlivých iteracích. Obr.4.2:Bolzanovametodapro f(x)=x+ 3 x 2. 16
4.2 Newtonova metoda Další iterační metodou, která hledá kořen funkce(v našem případě kořen derivace), je Newtonova metoda(též Newton-Raphsonova metoda, či metoda tečen). Metoda využívá navíc i druhé derivace, tudíž musíme zvýšit naše požadavky na účelovou funkci o existenci její druhé derivace v každém bodě zadaného intervalu[a, b]. Jeden z názvů napovídá, že metoda využívá k nalezení kořenu tečen, jak je mimo jiné vidět i z geometrické interpretace naznačené na obrázku 4.3. Vyznačenajeopětobecnáfunkce fapodníjejíderivacenazadanémintervalu[a, b],navícjsounaobrázkuviděttřiposobějdoucíiteracevgrafickém provedení. Obr. 4.3: Newtonova metoda 17
Křivkuvokolíkořenenahrazujemetečnouvbodě[x i, f(x i )].Průsečík tečnysosou xjenováaproximace x i+1.vycházímeztoho,žezhodnoty první derivace funkce v určitém bodě se dá určit rovnice tečny procházející tímto bodem([3, str. 159]). V našem případě pak odvodíme následující vztah: f (x k ) x k+1 x k = f (x k ) x k+1 = x k f (x k ) f (x k ) U metody tečen neurčujeme počet kroků výpočtu. Výpočet končí ve chvíli,kdy x k+1 x k ε,kde εjepožadovanápřesnost.značnounevýhodou metody je fakt, že nekonverguje vždy. Postačující podmínky konvergence([5],[1, str. 44]): (i) f (a)f (b) <0 (ii) x [a, b]:sgn(f (x))=konst( 0) (iii) x [a, b]:sgn(f (x))=konst( 0) Započátečníaproximacijevhodnévolitbod x 0 tak,že:f (x 0 )f (x 0 ) >0. Při nevhodné volbě počátečního bodu může další aproximace ležet mimo interval[a, b], či blíže k předcházející aproximaci než je požadovaná přesnost, avšak dostatečně dalekoodkořene(nato,abychomdostališpatnývýsledek). Konvergence Newtonovy metody je tím rychlejší, čím více se účelová funkce blíží kvadratické parabole, pro niž dostaneme přesné řešení po jednom kroku. Příklad: Nalezněteminimumfunkce f(x)=x+ 3 x 2 spřesností ε=0,05,víte-li,žesenalézávintervalu[0.5,3]. Řešení: f (x)=1 6, f (x)= 18 x 3 x 4 Zvolme x 0 =1.750000(1.aproximacezmetodybisekce) 1.krok: x 0 =1,750000, f (x 0 )= 0,119534, f (x 0 )= 1,919200 x 1 =1,812283, x 1 x 0 =0,062283 2.krok: x 1 =1,812283, f (x 1 )= 0,008029, f (x 1 )=1,668662 x 2 =1,817095, x 2 x 1 =0,004812 18
Přibližnéřešení: x 1,817095 Zápisvýsledkuspožadovanoupřesností: x =1,82 ±0,05 Přesnéřešení: x = 3 6. =1,817120 Na obrázku 4.4 je graficky znázorněn předchozí výpočet. Jednotlivé aproximacejsouznázorněnypostupněsezvětšujícími čárkami protínajícími grafúčelovéfunkce,minimumjeznázorněnonejdelší čárkou. Obr.4.4:Newtonovametodapro f(x)=x+ 3 x 2. Podobně jako u metody kvadratické interpolace nemáme ani zde zaručenu požadovanou přesnost výpočtu, jelikož výpočet opět končí ve chvíli, kdyjsousi dostatečně blízkédvěnásledujícíaproximace.možnýchchyb semůžemevyvarovatnapříkladstanovenímvětšípřesnosti,či dostatečně blízkou aproximací skutečnému minimu. Zisk počáteční aproximace(počátečních aproximací) se zpravidla provádí metodou bisekce, vzhledem k rychlosti konvergence(více v sekci Závěr) Newtonovy metody nemá zvětšení přesnosti velkývlivnadélkuvýpočtu.dálejemožnéproodhadchybypoužítivztahy x k+1 x k x k < ε, f (x k ) < ε. 19
4.3 Metoda regula falsi V předchozí metodě potřebujeme v každém kroku spočítat jak první, tak druhou derivaci funkce v daném bodě. Jelikož výpočet derivace funkce nemusí být vždy snadný, nahradíme derivaci aproximací: f (x k ) f(x k) f(x k 1 ) x k x k 1 V našem případě však potřebujeme znát kromě první derivace i druhou, tudížstejnouaproximaciprovedeme až prodruhouderivaci,prvníbude zastávatroli původní funkcevevýšeuvedenéaproximaci.dostanemetedy: f (x k ) f (x k ) f (x k 1 ) x k x k 1 Nahradíme-li v iteračním vzorci Newtonovy metody druhou derivaci uvedenou aproximací, dostáváme: x k+1 = x k x k x k 1 f (x k ) f (x k 1 ) f (x k ) Právě uvedený vzorec reprezentuje tzv. metodu sečen. Z názvu plyne její geometrický význam. Podobně jako Newtonova metoda není metoda sečen vždy konvergentní([1, str. 49]). Chceme-li zajistit konvergenci metody pro libovolné počáteční aproximace(všimněme si, že narozdíl od Newtonovy metody nyní potřebujeme znát dvě předchozí aproximace k výpočtu té následující),jetřeba,abyplatilo: f (x k )f (x k 1 ) <0.Potémetodaspředpisem x k+1 = x k x k x s f (x k ) f (x s) f (x k ), kde s=s(k)jenejvětšíindextakový,že f (x k )f (x s ) <0,jekonvergentní x [a, b],přičemžpředpokládáme,žepočátečníaproximace x 0, x 1 jsouvybránytak,že f (x 0 )f (x 1 ) <0(tj.např. x 0 = a, x 1 = b).[1,str.51] Uvedená metoda se nazývá metoda regula falsi. Její geometrický významjevelmipodobnýmetoděsečen.aproximaci x k+1 získámejakoprůsečík přímkyvedenébody[x k, f (x k )],[x s, f (x s )]sosou x.narozdílodmetody sečenaplikujemedalšípostupnatenzintervalů[x k, x k+1 ],[x s, x k+1 ],vjehož 20
koncovýchbodechmáfunkce f opačnáznaménka(pokud f (x k+1 )=0, x k+1 je hledané minimum funkce f). Na obrázku 4.5 je schematicky zobrazen popsaný postup. Obr. 4.5: Metoda regula falsi Podobně jako u Newtonovy metody výpočet ukončíme ve chvíli, kdy x k+1 x k ε,kde εjepožadovanápřesnost.dodejme,žeproodhadchyby sepoužívajíivztahy x k+1 x k x k < ε, f (x k ) < ε. Příklad: Nalezněteminimumfunkce f(x)=x+ 3 x 2 spřesností ε=0,05,víte-li,žesenalézávintervalu[0.5,3]. Řešení: Pro nalezení prvních dvou iterací můžeme použít např. metodu bisekce. Tedy: x 0 =1,750000, x 1 =2,375000.Ověříme,že f (x 0 )f (x 1 ) <0. f (x 0 )=f (1,750000)= 0,119534, f (x 1 )=f (2,375000)=0,552121 f (x 0 )f (x 1 ) <0. 1.krok: x 2 = x 1 x 1 x 0 f (x 1 ) f (x 0 ) f (x 1 )=1,861230, x 2 x 1 =0,062283 f (x 0 )=f (1,750000)= 0,119534, f (x 2 )=f (1,861230)=0,069426 f (x 0 )f (x 2 ) <0. 2.krok: x 3 = x 1 x 2 x 0 f (x 2 ) f (x 0 ) f (x 2 )=1,820363, x 3 x 2 =0,040867, f (x 3 )=0,005334 21
Přibližnéřešení: x 1,820363 Zápisvýsledkuspožadovanoupřesností: x =1,82 ±0,05 Přesnéřešení: x = 3 6. =1,817120 Na obrázku 4.6 je graficky znázorněn předchozí výpočet. Jednotlivé aproximacejsouznázorněnypostupněsezvětšujícími čárkami protínajícími grafúčelovéfunkce,minimumjeznázorněnonejdelší čárkou. Obr.4.6:Metodaregulafalsipro f(x)=x+ 3 x 2. Vnašempříkladujsmemetoduukončilivechvíli,kdy x k+1 x k ε, navícjsmeotestovali,že f (x k+1 ) < ε.jelikožmůžedojítiutétometody ktomu,žejsousiaproximace x k, x k+1 bližšínež ε,přičemžvzdálenostod skutečného minima je větší, pravidelně se užívá při testování konce výpočtu současně více vztahů uvedených před příkladem. 22
5 Závěr V práci bylo popsáno pět numerických metod pro nalezení minima funkce jedné proměnné. Při jejich porovnávání nás přirozeně budou zajímat kritéria: i) Jaké jsou požadavky na tu kterou metodu? ii) Pro která x ze zadaného intervalu[a, b] metoda konverguje ke skutečnému minimufunkce fajakrychle? Odpovědinaprvníotázkuužznáme.Vprvníkapitolejsmesiřekli,že budeme požadovat, aby účelová funkce měla daný tvar(jediný ostrý lokální extrém, a to minimum nacházející se v intervalu(a, b)). Tento požadavek byl stejný pro všechny metody. Základním rozdílem, kterým jsme metody rozdělili do dvou skupin, byl požadavek na derivaci účelové funkce. Jak víme, přímémetodykesvému chodu nepotřebovaližádnouznalostoderivaci účelové funcke, zatímco metody diferenciální ze znalosti(pochopitelně také z existence) derivace účelové funkce vycházely, u Newtonovy metody se přitom jednalo dokonce i o druhou derivaci účelové funkce. Z popsaného tedy vyplývá zřejmá výhoda prvně zmíněných(přímých) metod. Druhé kritérium ještě zcela zodpovězeno nemáme. Víme již, že metody zlatého řezu, bisekce(bolzanova metoda) a regula falsi konvergují vždy k minimu účelové funkce, přičemž u metody regula falsi musí první dvě aproximace x 0, x 1 splňovatpodmínku f (x 0 )f (x 1 ) <0,cožmůžemevždyzajistit. Na Newtonovu metodu a metodu kvadratické interpolace již musíme klást další nároky, aby konvergovaly k minimu účelové funkce. U prvně zmíněné metodysejednáozvolení dostatečně blízkéaproximacekeskutečnémuminimu, což zpravidla provádíme metodou bisekce. Konvergence metody kvadratickéinterpolacepakzávisínavolběbodů r, s, t,nejvícepaknavolběbodu s. Nebýt rychlosti konvergence jistě bychom za nejužitečnější zvolili metodu zlatého řezu, jež vždy konverguje, a přitom má nejméně požadavků, zatímco za nejméně užitečnou bychom patrně považovali Newtonovu metodu, která má nejvíce požadavků, přičemž ani nekonverguje vždy. Právě rychlost konvergence však ukazuje podstatnou výhodu Newtonovy metody, která je jako jediná z uvedených metodou druhého řádu(viz druhá kapitola, též je možné setkat se s pojmem kvadratická konvergence)[1, str. 41]. Metody zlatého řezu, bisekce a regula falsi jsou metodami prvního řádu(též lineárně konvergentní)[1, str. 51], problém konvergence metody kvadratické interpolace je dosti složitý. Z uvedeného tedy plyne, že ač má Newtonova metoda nejvíce 23
požadavků,konverguje značně rychlejinežostatnímetody. Vybrat některou z metod jako nejvhodnější pro všechny funkce jedné proměnné je nemožné. Bylo by reálné se pro jednu pevně rozhodnout na základě určitých potřeb(vždy konvergentní, rychlost výpočtu,...), celkově má však každá metoda nějaké klady a nějaké zápory. Proto bych doporučil zvolit metodu až podle předpisu funkce, jejíž minimum chceme najít, případně(a to je zřejmě nejvýhodnější) užít k nalezení minima kombinaci dvou metod jako například Bolzanovy a Newtonovy metody, či metod zlatého řezu a kvadratické interpolace apod. Na přiloženém CD jsou kromě souborů s textem práce i programy psané v Matlabu demonstrující jednotlivé metody na několika funkcích. 24
Literatura [1] Horová Ivana, Zelinka Jiří. Numerické metody. 2.vyd. Masarykova univerzita Brno, 2004. 294s. ISBN 80-210-3317-7. [2] Mathews, John H. Numerical methods for mathematics, science and engineering. 2.vyd. Englewood Cliffs: Prentice-Hall International, 1992. 646s. X.ISBN.0-13-625047-5. [3] Novák, Vítězslav. Diferenciální počet v R. 2.vyd. Masarykova univerzita Brno, 1997. 231s. ISBN 80-210-1561-6. [4] Svobodová Vařeková Radka. Optimalizace. Masarykova univerzita Brno. http://ncbr.chemi.muni.cz/ n19n/vyuka/optimalizace/ [5] Vítečková Miluše, Jedlička David. Optimalizace funkce jedné proměnné. Vysoká škola báňská- Technická univerzita Ostrava, 2003. http://www.fs.vsb.cz/books/statickaoptimalizace/2fjedne/2fjedne2.htm 25