Hledání extrémů funkcí Budeme se zabývat téměř výhradně hledáním minima. Přes nost nalezeného extrému Obecně není hledání extrému tak přesné jako řešení rovnic. Demonstrovat to můžeme na příkladu hledání minima, kdy rozvineme funkci v okolí minima do Taylorovy řady f x = f x m f ' x m x x m 1 f '' x m x x m. Pokud vezmeme v úvahu, že f ' x m =0 a vyjádříme relativní vzdálenost x od minima x m (tedy relativní chybu), dostaneme r = x x m x m = f x f x m = f x f x f x m m. Pokud jsou tedy f '' x m f x m x m f '' x m hodnoty funkce počítány s přesností, pak je relativní odchylka nalezeného minima x od skutečného minima x m r ~. Pokud je také f x m x m f '' x 1, je při jednoduché m přesnosti chyba určení extrému r 10 4, při dvojné přsnosti pak r 10 8. Hledání extrémů funkce jedné proměnné Opět extrém ohraničíme nějakým intervalem, a pak ho budeme hledat buď s použitím derivace, nebo bez. Ohraničení minima je třeba znát hodnoty ve třech bodech a, b, c. Nechť b a, c a platí f a f b f c, pak v intervalu a,c má funkce f minimum. Ke zůžení ohraničení minima je potřeba zvolit další (čtvrtý) bod d. K jeho volbě existují různé metody, ale jako nejvýhodnější se ukazuje metoda Zlatého řezu (Golden Mean). f(x) 0 W W+Z 1 a b d c Metoda Zlatého řezu Na začátku máme interval a, c, zvolíme jeho vnitřní bod b a platí f a f b f c, tedy v intervalu a,c se vyskytuje minimum. Pro volbu bodu b uvnitř intervalu a,c existují samozřejmě různé možnosti (nabízí se volba např. v polovině nebo třetině intervalu). My ale máme na volbu polohy bodu b a poté i bodu d (pomocí kterého budeme zmenšovat interval další požadavky). Nový zmenšený interval bude : interval a, d pokud bude platit f a f b f d interval b, c pokud bude platit f b f d f c Požadujeme tedy, aby intervaly a, d i b,c byly stejně dlouhé, tedy W Z =1 W, kde
W = b a d b a Z=. Tento požadavek vlastně jen říká, že chceme body b a d volit v c a c a intervalu a, c symetricky. Protože máme dva stupně volnosti (volíme dva body), nejsou bod b a d určeny jednoznačně. Máme tedy ještě jeden požadavek, který říká, že bod, který zůstane uvnitř nového intervalu budeme chtít rovnou využít v dalším zmenšování intervalu. Jinými slovy pokud bude nový interval např. interval b, c, budeme chtít, aby bod d uvnitř tohoto intervalu v následujícím kroku figuroval jako jeden z bodů b, d v kroku předchozím. Chceme tedy, aby bod Z dělil interval W,1 stejně, jako bod W dělil inteval 1,0. Matematicky Z tedy 1 W = W 1 0. Z těchto dvou požadavků dostáváme hodnotu W =3 5 0.38197. O rychlosti konvergence metody platí, že = 1 W i, jde tedy o metodu lineární. Parabolická interpolace Příklad v PASCALU GOLDEN.PAS. Minimum je ohraničené, máme tři body, pro které platí a b c a f a f b f c. Předpokládáme, že interval a,c je dost malý. Funkce f musí do bodu b nejprve klesat a pak musí opět růst do bodu c. Funkci f chceme na intervalu a, c opět nahradit nějakou její jednoduchou aproximací a nejjednodušší nahrazení f na intervalu a,c, které připadá v úvahu je tedy nahrazení parabolou. Označme x=x b vzdálenost minima x od vnitřního bodu intervalu b. Pak nahrazení funkce f na intervalu a,c zapíšeme jako f x x x. Pro derivaci v minimu má platit 0= df x odkud dx plyne x=. Koeficienty a lze určit nahrazením funkce f na intervalu a, c Lagrangeovým polynomem druhého řádu a položením L x = x x. x b x c x a x c x a x b L x = f a f b f c, s použitím x pak a b a c b a b c c a c b x x b c x b a x b c x x b a L x = f a f b f c a tedy a b a c b a b c c a c b x x b c x b a x b c x x b a f a f b f c a b a c b a b c c a c b = x x Z posledního vztahu lze odvodit vztahy pro koeficienty, (jsou ve slidech) a s jejich použitím vyjádřit x. Z definice x pak pro odhad polohy minima dostaneme konečný vztah x=b 1 b a [ f b f c ] b c [ f b f a ]. b a [ f b f c ] b c [ f b f a ] Pokud není doprovázeno kontrolou ohraničení minima, může selhat, nemusí konvergovat, případně může nalézt maximum. Je to metoda kvadratická, může být neefektivní daleko od minima. Používá se přepínání mezi touto metodou a metodou Zlatého řezu. Příklad v PASCALU MNBRAK.PAS.
Hledání extrémů funkce jedné proměnné s užitím derivace Existují metody vysokého řádu, urychlení však přináší dodatečné problémy. Často se používá Brentova metoda (půlení intervalu v kombinaci s regula falsi) pro hledání kořenu derivace. Hledání extrémů funkce více proměnných Nepřevádíme na řešení systému rovnic pro hledání kořenu derivace systém lineárních rovnic. Hledání extrému přímo je jednodušší. =0, pokud nedostaneme Simplexová metoda amoeba (není totéž jako u lineární optimalizace) Je to obdoba zmenšování intervalu ohraničujícího minimum ve více rozměrech. Využívá N 1 simplex v N rozměrném prostoru (např. trojúhleník ve D), který je tvořen body P 0,, P N. V simplexové metodě se se simplexem provádí následující úpravy: Další informace v Numerical Recipies, nebo např. http://www.research.ibm.com/infoecon/paps/html/amec99_bundle/node8.html. Příklad v PASCALU AMOEBAN.PAS.
Metoda konjugovaných směrů Následující metody spočívají v tom, že se problém hledání minima ve více rozměrech převede na hledání minima v jednom rozměru v daném směru. Nový bod P = P i r volíme jako tak, že k předchozímu přičteme násobek směru r (hledáme tedy, aby f P bylo minimální). Směry r můžeme v principu volit různými způsoby, jako nejvýhodnější se však ukazuje volba taková, abychom hledáním minima v novém směru nepoškodily již nalezené minimum ve směru předchozím takové volbě směrů se říká konjugované směry. Funkci f rozvineme v okolí bodu P do Taylorovy řady ( x= x P ). f x = f P x i 1 f x i i, j x j, první derivace označíme b a druhé A i, j j (prvky Hessovy matice). Z tohoto vztahu pro gradient plyne f x = A x b a pro změnu gradientu f = A x. Aby minimalizace v následujícím směru u neporušila předchozí minimalizace ve směrech v, požadujeme, aby se v tomto směru gradient neměnil, tedy u T f =0 u T A v=0. Vektory u a v jsou pak konjugované směry. Metodu v roce 1964 navrhl Powell. Další informace v NR nebo ve slidech. Metoda je kvadraticky konvergentní. Vektory se na počátku volí jako vektory standardní báze. Metoda konjugovaných gradientů Příklady v PASCALU ZKSMERY.PAS, ZKPOW.PAS. Gradient je směr největšího růstu funkce. Proto je vhodné počítat minima ve směrech záporných gradientů. Pokud najdeme ve směru jednoho gradientu minimum, je další gradient k tomuto směru kolmý. Minimalizace ve směru gradientů metoda největšího spádu, problémy s pomalou konvergencí v dlouhých údolích. Proto se volí konjugované gradienty. Funkci opět rozvineme do Taylorovy řady f x c b T x 1 x T A x. Minimalizací ve směru f P i najdeme nový bod P. Platí pak, že f P i f P. Opět jako v T předchozím chceme nový směr tak, aby u A u i =0. Pokud je A symetrická a pozitivně definitní v okolí minima, pak platí, že pokud 1 = i a h = 1 h i, i = g j =0 a h i A h j =0., i = 1 A h i h i, pak platí Koeficienty i a i se dají vyjádřit i bez znalosti matice A jako i = 1 1 = g g 1 i, = g i h i. První vztah pro se nazývá Fletcher h i Reevesova metoda, druhý Polak Ribierova metoda (je obecně výhodnější). označuje záporně vzaté gradienty funkce f, h i směry hledání minima. Postup:
počáteční odhad P 0, g 0 = f P 0, h 0 = g 0 minimalizace f ve směru h 0 bod P 1 g 1 = f P 1 0 = g 1 g 0 g 1 g 0 g 0 h 1 = g 1 0 h 0 opakování od začátku Příklady v PASCALU ZKGRADM.PAS, ZKCONGRAM.PAS, ZKCONGR1M.PAS. Gauss Newtonova metoda V Taylorově rozvoji f x = f P x i 1 f x i i, j x j j položíme první derivace rovny 0 (což v minimu platí). Dostaneme systém lineárních rovnic A x= f. Tato metoda je kvadratická a může mít problémy daleko od minima. Levenberg Marquardtova metoda Obdoba Gauss Newtonovy metody v kombinaci s metodou největšího spádu. Matice A z Gauss Newtonovy metody se nahradí maticí A' tak, že A'= a' =a 1 jj jj. a ' ij =a ij i j Pro =0 jde o Gauss Newtonovu metodu, pro velká o metodu největšího spádu. Na začátku např. volba =0.001 a vypočte se nový bod. Pokud se funkční hodnota zvětší, krok se neprovede a zvolí se =10. Jinak se krok provede a zvolí se =0.1. Příklad ve FORTRANU FMNFIT.FOR.