Minimalizace kvadratické funkce s kvadratickými ... - FEI VŠB
Minimalizace kvadratické funkce s kvadratickými ... - FEI VŠB
Minimalizace kvadratické funkce s kvadratickými ... - FEI VŠB
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
VŠB – Technická univerzita Ostrava<br />
Fakulta elektrotechniky a informatiky<br />
Katedra aplikované matematiky<br />
<strong>Minimalizace</strong> kvadratické <strong>funkce</strong> s<br />
kvadratickými separovanými<br />
vazbami<br />
Bakalářská práce<br />
2008 Lukáš Pospíšil
Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně. Uvedl jsem všechny<br />
literární prameny a publikace, ze kterých jsem čerpal.<br />
V Ostravě 9. května 2008 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rád bych na tomto místě poděkoval především Prof. RNDr. Zdeňku Dostálovi, DrSc.<br />
za pomoc a vynikající vedení mé práce, jakož i Doc. RNDr. Jiřímu Bouchalovi, Ph.D. za<br />
poskytnutí potřebných materiálů.<br />
Dále děkuji mé rodině a přátelům za pomoc a podporu morální i finanční, zvláště pak<br />
mamince - díky ní jsem, vím a chci vědět.
Abstrakt<br />
Tato práce popisuje jak lze nalézt minimum obecné kvadratické <strong>funkce</strong> v prostoru vzhledem<br />
k množině definované kvadratickou separovanou rovnostní nebo nerovnostní vazbou.<br />
Z finitních metod ukazuje využití převodu na funkci o jedné proměnné, obecného<br />
algoritmu na hledání extrému pomocí stacionárních bodů a Lagranegovy <strong>funkce</strong> pro<br />
hledání vázaných extrémů. Jako iterační metoda je použita modifikovaná metoda největšího<br />
spádu implementována v Matlabu. Tato práce souvisí se škálovatelnými algoritmy pro<br />
řešení 3D kontaktních úloh s Coulombovým třením.<br />
Klíčová slova: kvadratická <strong>funkce</strong>, kvadratická separovaná vazba, metoda největšího<br />
spádu, Lagrangeova <strong>funkce</strong><br />
Abstract<br />
This work describes how to find minimum of common quadratic function in space with<br />
regard to set defined by separated quadratic equal or unequal confinement. From finite<br />
methods it shows utilisation of transfer to one-variable function, common algorythm of<br />
searching for extrems by force of stationary points and Lagrange function for finding<br />
bound extrems. As iterative method is used modificated method of greatest drop implemented<br />
in Matlab. This work relates to scalable algorythm for solving 3D contact problems<br />
with coulomb friction.<br />
Keywords: quadratic function, separated quadratic confinement, method of greatest<br />
drop, Lagrange function
1<br />
Obsah<br />
1 Úvod 4<br />
2 Úvod do problematiky 5<br />
2.1 Kvadratická <strong>funkce</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.2 Kvadratická vazba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
3 Globální extrémy 11<br />
3.1 Globální extrémy <strong>funkce</strong> jedné proměnné . . . . . . . . . . . . . . . . . . . 11<br />
3.2 Globální extrémy <strong>funkce</strong> více proměnných . . . . . . . . . . . . . . . . . . 14<br />
4 <strong>Minimalizace</strong> kvadratické <strong>funkce</strong> s rovnostní vazbou 15<br />
4.1 Převod na funkci o jedné proměnné . . . . . . . . . . . . . . . . . . . . . . 15<br />
4.2 Lagrangeova <strong>funkce</strong> a vázané extrémy . . . . . . . . . . . . . . . . . . . . . 16<br />
4.3 Metoda největšího spádu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
5 <strong>Minimalizace</strong> <strong>funkce</strong> s nerovnostní vazbou 33<br />
5.1 Globální extrémy na uzavřené oblasti . . . . . . . . . . . . . . . . . . . . . 33<br />
5.2 Modifikovaná metoda největšího spádu . . . . . . . . . . . . . . . . . . . . 35<br />
6 Závěr 40<br />
7 Reference 41<br />
Přílohy 42
2<br />
Seznam obrázků<br />
1 Průběh <strong>funkce</strong> vlastního polynomu matice . . . . . . . . . . . . . . . . . . 7<br />
2 Lokalizace spektra matice pomocí Geršgorinovy věty . . . . . . . . . . . . 7<br />
3 Geometrický obraz kvadratické rovnostní vazby . . . . . . . . . . . . . . . 8<br />
4 Geometrický obraz kvadratické nerovnostní vazby . . . . . . . . . . . . . . 8<br />
5 Explicitní substituce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
6 Polární souřadnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
7 Hledání globálních extremů . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
8 Graf <strong>funkce</strong> sinus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
9 MNS: Rěšení 1. příkladu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
10 MNS: Rěšení 2. příkladu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
11 MNS: Rěšení 3. příkladu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
12 Projekce na množinu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
13 MNS s projekcí: Rěšení 1. příkladu . . . . . . . . . . . . . . . . . . . . . . . 29<br />
14 MNS s projekcí: Rěšení 1. příkladu, detail . . . . . . . . . . . . . . . . . . . 30<br />
15 MNS s projekcí: Rěšení 1. příkladu, mapa rychlosti konvergence . . . . . . 31<br />
16 MNS s projekcí: Rěšení 2. příkladu . . . . . . . . . . . . . . . . . . . . . . . 32<br />
17 MNS s projekcí: Rěšení 2. příkladu, detail . . . . . . . . . . . . . . . . . . . 32<br />
18 Vrstevnice kvadratické <strong>funkce</strong> s vyznačením kvadratické vazby . . . . . . 34<br />
19 MNS s nerovnostní vazbou: Rěšení 1. příkladu . . . . . . . . . . . . . . . . 38<br />
20 MNS s nerovnostní vazbou: Rěšení 2. příkladu . . . . . . . . . . . . . . . . 39
3<br />
Seznam výpisů zdrojového kódu<br />
1 Algoritmus obecné metody největšího spádu . . . . . . . . . . . . . . . . . 20<br />
2 MNS: Rěšení 1. příkladu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
3 MNS: Rěšení 2. příkladu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
4 MNS: Rěšení 3. příkladu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
5 Algoritmus projekce bodu na kružnici . . . . . . . . . . . . . . . . . . . . . 26<br />
6 Algoritmus metody největšího spádu s projekcí na množinu . . . . . . . . 26<br />
7 MNS s projekcí: Rěšení 1. příkladu . . . . . . . . . . . . . . . . . . . . . . . 27<br />
8 MNS s projekcí: Rěšení 1. příkladu s počítadlem iterací . . . . . . . . . . . 28<br />
9 MNS s projekcí: Rěšení 2. příkladu . . . . . . . . . . . . . . . . . . . . . . . 28<br />
10 Algoritmus modifikované metody největšího spádu s projekcí na množinu<br />
s nerovnostní vazbou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
11 MNS s nerovnostní vazbou: Rěšení 1. příkladu . . . . . . . . . . . . . . . . 37<br />
12 MNS s nerovnostní vazbou: Rěšení 2. příkladu . . . . . . . . . . . . . . . . 39
4<br />
1 Úvod<br />
Minimalizaci kvadratické <strong>funkce</strong> s kvadratickými separovanými vazbami lze považovat<br />
za jednu z úloh pocházejících z problému řešení 3D kontaktních úloh s coulombovým<br />
třením (viz literatura [7]).<br />
V této práci se zabývám hledáním minima <strong>funkce</strong><br />
vzhledem k množině<br />
F (x) = 1 (Ax, x) − (b, x)<br />
2<br />
Ω = {x = (x, y) : x 2 + y 2 ≤ c, c ∈ R}<br />
přičemž matice A je symetrická pozitivně definitní.<br />
V první části definuji důležité pojmy nezbytné pro vyřešení této úlohy. Také uvádím<br />
několik metod na zjištění pozitivní definitnosti matice A a píši o vlastnostech množiny<br />
Ω.<br />
Nezbytnou součástí je také definice globálních extrémů a způsobů, jak je lze nalézt.<br />
Tyto věci jsou definovány v další kapitole.<br />
V následující části se pokusím vyřešit úlohu s rovnostní vazbou převodem na funkci o<br />
jedné neznámé a ukáži, že při řešení lze využít i Lagrangeovu funkci pro vázané extrémy,<br />
která finitní řešení podstatně zjednoduší. Pro iterační řešení zvolím metodu největšího<br />
spádu s projekcí na množinu.<br />
V poslední kapitole se budu věnovat hledání minima vhledem k množině s nerovnostní<br />
vazbou, pro tento účel ukáži, jak lze metodu největšího spádu modifikovat.
5<br />
2 Úvod do problematiky<br />
2.1 Kvadratická <strong>funkce</strong><br />
2.1.1 Úvodní definice<br />
Věta 2.1 Množinu všech reálných čísel R budeme považovat za jednorozměrný vektorový prostor<br />
nad reálnými čísly se všemi operacemi nad reálnými čísly (jako sčítání a násobení, opačný prvek)<br />
s neutrálním prvkem 1 a nulovým prvkem 0 (splňuje všechny požadavky vektorového prostoru -<br />
viz literatura [1], str. 53).<br />
Definice 2.1 (bilineární forma)<br />
Necht’ V je reálný vektorový prostor. Zobrazení B : V×V ↦→ R se nazývá bilineární forma,<br />
jestliže pro libovolné u, v, w ∈ V a α ∈ R platí<br />
• B(u + v, w) = B(u, w) + B(v, w)<br />
• B(αu, v) = αB(u, v)<br />
• B(u, v + w) = B(u, v) + B(u, w)<br />
• B(u, αv) = αB(u, v)<br />
Bilineární <strong>funkce</strong> je tedy při zvolené hodnotě jedné proměnné lineární funkcí druhé proměnné.<br />
Definice 2.2 (kvadratická forma)<br />
Necht’ V je vektorový prostor a necht’ B je bilineární forma na V. Zobrazení Q B definované pro<br />
libovolné x ∈ V předpisem<br />
Q B (x) = B(x, x)<br />
se nazývá kvadratická forma příslušná k bilineární formě B. Kvadratickou formu stručně<br />
nazýváme zobrazení Q definované na V, pro které existuje bilineární forma B na V tak, že Q =<br />
Q B .<br />
Definice 2.3 (pozitivně definitní kvadratická forma)<br />
Kvadratická forma Q na vektorovém prostoru V se nazývá pozitivně definitní, jestliže<br />
pro libovolné x ∈ V, x ≠ o platí Q(x) > 0. Jestliže pro libovolné x ∈ V platí Q(x) ≥ 0, pak se Q<br />
nazývá pozitivně semidefinitní.<br />
Definice 2.4 (symetrická matice)<br />
Necht’ A = [a ij ] je čtvercová matice řádu n. Pak tuto matici nazýváme symetrická, pokud<br />
∀i = 1, ..., n, ∀j = 1, ..., n : a ij = a ji<br />
Věta 2.2 (o vlastních číslech pozitivně definitní matice)<br />
Pro všechna vlastní čísla λ i každé symetrické pozitivně definitní čtvercové matice A<br />
řádu n platí<br />
∀i = 1, ..., n : λ i > 0
6<br />
Věta 2.3 (Geršgorin)<br />
Necht’ A = [a ij ] je čtvercová komplexní matice řadu n a necht’<br />
r i = |a i1 | + . . . + ̂|a ii | + . . . + |a in |, S i = {x ∈ C : |x − a ii | ≤ r i }<br />
kde stříška nad symbolem značí jeho vynechání.<br />
Pak spektrum matice A leží v množině<br />
S 1 ∪ . . . ∪ S n<br />
Věta 2.4 (Sylvester)<br />
Necht’ A = [a ij ] je čtvercová matice a necht’<br />
⎡<br />
⎤<br />
a 11 . . . a 1i<br />
⎢<br />
A i = ⎣<br />
.<br />
. ..<br />
⎥<br />
. ⎦ , i = 1, . . . , n<br />
a i1 . . . a ii<br />
Pak matice A je pozitivně definitní, právě když<br />
∀i = 1, . . . , n : detA i > 0<br />
2.1.2 Příklady ověření pozitivní definitnosti matice<br />
Příklad 2.1<br />
A =<br />
[ 2 −1<br />
−1 2<br />
]<br />
Symetrická čtvercová matice A je pozitivně definitní, protože:<br />
• její charakteristický polynom<br />
ϕ(λ) = det(A − λI) =<br />
∣ 2 − λ<br />
−1<br />
má kořeny 1 a 3.<br />
−1<br />
2 − λ<br />
∣ = (2 − λ)(2 − λ) − (−1)(−1) = λ2 − 4λ + 3<br />
• spektrum matice podle Geršgorinovy věty je obsaženo v množině<br />
Ω = {x ∈ C : |x − 2| ≤ 1}<br />
• podle Sylvestrova kritéria<br />
[ ] 2 −1<br />
detA 1 = det[2] = 2 > 0 ∧ detA 2 = det<br />
= 2.2 − (−1).(−1) = 3 > 0<br />
−1 2
7<br />
Obrázek 1: Průběh <strong>funkce</strong> vlastního polynomu matice<br />
Obrázek 2: Lokalizace spektra matice pomocí Geršgorinovy věty<br />
2.2 Kvadratická vazba<br />
2.2.1 Kvadratická rovnostní vazba<br />
Definujme množinu uspořádaných dvojic (x, y) pro konkrétní c ∈ R<br />
Ω = {(x, y) ∈ R 2 : x 2 + y 2 = c} (1)<br />
Pokud bychom tyto uspořádané dvojice považovali za body v rovině, pak geometrickým<br />
obrazem mnoˇziny (1) je kruˇznice se středem v bodě [x 0 , y 0 ] = [0, 0] a poloměrem<br />
r = √ c.
8<br />
Obrázek 3: Geometrický obraz kvadratické rovnostní vazby<br />
2.2.2 Kvadratická nerovnostní vazba<br />
Definujme množinu uspořádaných dvojic (x, y) pro konkrétní c ∈ R<br />
Ω = {(x, y) ∈ R 2 : x 2 + y 2 ≤ c} (2)<br />
Geometrickým obrazem množiny (2) je kruh se středem v bodě [x 0 , y 0 ] = [0, 0] a<br />
poloměrem r = √ c včetně jeho hranice (hranici množiny tvoří body množiny, jejichž<br />
všechna okolí obsahují body mimo množinu i body uvnitř množiny).<br />
Obrázek 4: Geometrický obraz kvadratické nerovnostní vazby<br />
2.2.3 Explicitní vyjádření<br />
Pokud bychom chtěli vyjádřit obecnou rovnici kružnice v definici množiny (1) explicitně,<br />
úpravou by sme dostali<br />
∀x, y ∈ R : x 2 + y 2 = c<br />
y 2 = c − x 2
9<br />
|y| = √ c − x 2<br />
y = ± √ c − x 2<br />
což jsou <strong>funkce</strong> dvě<br />
f 1 (x) = √ c − x 2 , f 2 (x) = − √ c − x 2 (3)<br />
Pak geometrickým obrazem těchto funkcí jsou půlkružnice. Spojením půlkružnic je<br />
kružnice celá, tedy geometrický obraz je totožný s geometrickým obrazem množiny (1).<br />
Obrázek 5: Explicitní substituce<br />
Tímto spůsobem lze provést v kvadratické funkci substituci<br />
x = x, y = ± √ c − x 2 , x ∈ 〈− √ c, √ c〉 (4)<br />
čímž vazbu v kvadratické vazbě ”zahrneme” do původní <strong>funkce</strong>.<br />
2.2.4 Polární souřadnice<br />
Poněkud efektivnějším způsobem, jak vzájemně provázat proměnné v kvadratické funkci<br />
s ohledem na kvadratickou vazbu, je využití polárních souřadnic.<br />
Definujme substituci<br />
x = √ c. cos t, y = √ c. sin t, t ∈ 〈0, 2π) (5)<br />
přičemž parametr t sice obecně může nabývat všech reálných hodnot, ale byl omezen<br />
pouze na jednu periodu 2π.
10<br />
Pak množina<br />
Ω = {(x, y) ∈ R 2 : x = √ c. cos t, y = √ c. sin t, t ∈ 〈0, 2π)} (6)<br />
má geometrický obraz totožný s geometrickým obrazem množiny (1), protože<br />
∀x, y ∈ R : x 2 + y 2 = c<br />
dosazením (5) a úpravou levé strany dostáváme<br />
( √ c. cos t) 2 + ( √ c. sin t) 2 = c. cos 2 t + c. sin 2 t = c.(cos 2 t + sin 2 t) = c<br />
Pokud by pro parametr t ∈ R neplatilo, že t ∈ 〈0, 2π), pak by geometrickým obrazem<br />
množiny (6) bylo nekonečně mnoho vzájemně se překrývajících kružnic.<br />
Obrázek 6: Polární souřadnice
11<br />
3 Globální extrémy<br />
3.1 Globální extrémy <strong>funkce</strong> jedné proměnné<br />
3.1.1 Úvodní definice<br />
Definice 3.1 (definice okolí)<br />
• Okolím bodu x 0 ∈ R rozumíme otevřený interval (x 0 − δ, x 0 + δ), kde δ je kladné reálné<br />
číslo. Značíme je O(x 0 ).<br />
Dále definujme O(x 0 , δ) jako okolí bodu x 0 ∈ R s poloměrem δ ∈ R, δ > 0<br />
• Prstencovým okolím bodu x 0 ∈ R ∗ rozumíme množinu O(x 0 ) \ {x 0 }. Značíme je<br />
P(x 0 ).<br />
Dále definujme P(x 0 , δ) jako prstencové okolí bodu x 0 ∈ R s poloměrem δ ∈ R, δ > 0<br />
Definice 3.2 (definice lokálních extrémů)<br />
• Řekneme, že <strong>funkce</strong> f má v bodě x 0 lokální minimum, resp. lokální maximum,<br />
jestliže existuje okolí O(x 0 ) bodu x 0 takové, že pro všechna x ∈ O(x 0 ) je f(x) ≥ f(x 0 ) ,<br />
resp. f(x) ≤ f(x 0 ).<br />
• Řekneme, že <strong>funkce</strong> f má v bodě x 0 ostré lokální minimum, resp. ostré lokální<br />
maximum, jestliže existuje prstencové okolí P(x 0 ) bodu x 0 takové, že pro všechna x ∈<br />
P(x 0 ) je f(x) > f(x 0 ) , resp. f(x) < f(x 0 ).<br />
Má-li <strong>funkce</strong> f v bodě x 0 lokální minimum, resp. lokalní maximum, říkáme, že f má v bodě x 0<br />
lokální extrém.<br />
Definice 3.3 (definice globálních extrémů)<br />
Necht’ M ⊂ D(f) a x 0 ∈ M.<br />
• Řekneme, že <strong>funkce</strong> f nabývá na množině M globalního maxima v bodě x 0 , jestliže<br />
pro všechna x ∈ M platí f(x) ≤ f(x 0 ).<br />
• Řekneme, že <strong>funkce</strong> f nabývá na množině M globalního minima v bodě x 0 , jestliže<br />
pro všechna x ∈ M platí f(x) ≥ f(x 0 ).<br />
Nabývá-li <strong>funkce</strong> f na množině M globalního maxima nebo minima v bodě x 0 , říkame, že <strong>funkce</strong><br />
f nabývá na množině M globalního extrému v bodě x 0 .<br />
Věta 3.1 (Weierstrass)<br />
Necht’ <strong>funkce</strong> f je spojitá na uzavřeném ohraničeném intervalu 〈a, b〉, a, b ∈ R. Pak <strong>funkce</strong> f<br />
nabývá na 〈a, b〉 globalního maxima i globalního minima.
12<br />
Věta 3.2 (kdy může nastat lokální extrém)<br />
Je-li v x 0 globalní extrém a x 0 ∈ (a, b), je v x 0 i lokalní extrém.<br />
Tedy globalní extrém může nastat<br />
• bud’ v bodě lokálního extrému v intervalu (a, b),<br />
• nebo v krajním bodě x = a, resp. x = b.<br />
3.1.2 Hledání globálních extrémů funkcí jedné proměnné<br />
Globální extrémy ”hezkých” funkcí lze nalézt tímto postupem:<br />
1. Najdeme stacionární body <strong>funkce</strong> f ležící v intervalu (a, b), tj. body, v nichž je derivace<br />
nulová. Vypočteme jejich funkční hodnoty.<br />
Najdeme body z intervalu (a, b), v nichž neexistuje derivace. Vypočteme jejich funkční<br />
hodnoty.<br />
2. Vypočteme f(a) a f(b).<br />
3. Vybereme bod, ve kterém má <strong>funkce</strong> f největší, resp. nejmenší funkční hodnotu.<br />
V tomto bodě nabývá <strong>funkce</strong> f globálního maxima resp. minima.<br />
Obrázek 7: Hledání globálních extremů<br />
3.1.3 Příklady globálních extrémů<br />
Příklad 3.1<br />
Nalezněte globální extrémy <strong>funkce</strong><br />
na intervalu 〈− 1 4π, π〉<br />
f(x) = sin x
13<br />
1. Najdeme stacionární body <strong>funkce</strong> f<br />
f ′ (x) = cos x<br />
f ′ (x) = 0 ⇔ cos x = 0<br />
x = 1 2 π + k.π, k ∈ Z<br />
a z intervalu 〈− 1 4 π, π〉 je to bod x = 1 2 π, f(1 2 π) = 1<br />
2. f(− 1 4 π) = − √<br />
2<br />
2<br />
f(π) = 0<br />
3. <strong>funkce</strong> nabývá globálního minima v bodě x = − 1 4 π, f(− 1 4 π) = − √<br />
2<br />
2<br />
<strong>funkce</strong> nabývá globálního maxima v bodě x = 1 2 π, f(1 2 π) = 1<br />
Obrázek 8: Graf <strong>funkce</strong> sinus
14<br />
3.2 Globální extrémy <strong>funkce</strong> více proměnných<br />
3.2.1 Vlastnosti extrémů <strong>funkce</strong> více proměnných<br />
Definice 3.4 (lokální extrémy více proměnných)<br />
Řekneme, že <strong>funkce</strong> f : R n → R má v bodě c ∈ R n lokální maximum (resp. ostré lokální<br />
maximum), existuje-li δ > 0 takové, že pro každé<br />
platí<br />
x ∈ P(c, δ) = {x ∈ R n : 0 < ‖x − c‖ < δ}<br />
f(x) ≤ f(c), (resp.f(x) < f(c))<br />
Nahradíme-li nerovnosti f(x) ≤ f(c) a f(x) < f(c) nerovnostmi f(x) ≥ f(c) a f(x) > f(c),<br />
dostaneme definici lokálního minima a ostrého lokálního minima.<br />
Věta 3.3 (nutná podmínka existence lokálního extrému)<br />
Necht’ <strong>funkce</strong> f : R n → R má v bodě c ∈ R n lokální extrém a necht’ existuje ∂f(c)<br />
∂u (u ∈ Rn ,<br />
‖u‖ = 1). Pak<br />
∂f(c)<br />
∂u = 0<br />
Je-li <strong>funkce</strong> f v bodě c navíc diferencovatelná, je<br />
grad f(c) = (0, 0, . . . , 0)<br />
V takovém případě říkáme, že c je stacionárním bodem <strong>funkce</strong> f.<br />
Věta 3.4 (postačující podmínky existence lokálního extrému)<br />
Necht’ <strong>funkce</strong> f : R n → R má v bodě c ∈ R n spojité všechny parciální derivace druhého řádu a<br />
necht’ c je stacionárním bodem <strong>funkce</strong> f. Pak platí<br />
• Je-li kvadratická forma ∂ 2 f c pozitivně definitní, má f v bodě c ostré lokální minimum.<br />
• Je-li kvadratická forma ∂ 2 f c negativně definitní, má f v bodě c ostré lokální maximum.<br />
• Je-li kvadratická forma ∂ 2 f c indefinitní, nemá f v bodě c lokální extrém.
15<br />
4 <strong>Minimalizace</strong> kvadratické <strong>funkce</strong> s rovnostní vazbou<br />
4.1 Převod na funkci o jedné proměnné<br />
4.1.1 Počáteční úvaha<br />
Naším úkolem je najít takové x 1 , x 2 , pro které je hodnota <strong>funkce</strong><br />
F (x) = 1 [ ]<br />
2 (Ax, x) − (b, x), x = x1<br />
x 2<br />
(7)<br />
minimální a současně platí vztah daný kvadratickou vazbou<br />
x 2 1 + x 2 2 = c, c ∈ R (8)<br />
Tedy nejjednodušším nápadem je vyjádřit jednu proměnnou z kvadratické vazby (8),<br />
dosadit ji do kvadratické <strong>funkce</strong> (7) a posléze minimalizovat funkci jako funkci o jedné<br />
proměnné. Při výpočtu také můžeme použít polární souřadnice.<br />
Při tomto postupu se ukáže, že problém může nastat při hledání stacionárních bodů<br />
v derivaci, která vede k netriviální rovnici řešitelné pouze iterační metodou.<br />
4.1.2 Substituce pomocí explicitního vyjádření<br />
Použijeme substituci (4) a dosadíme do <strong>funkce</strong> (7)<br />
F (x 1 ) = 1 2 (A [<br />
x 1<br />
± √ c − x 2 1<br />
] [<br />
,<br />
x 1<br />
± √ c − x 2 1<br />
] [<br />
) − (b,<br />
x 1<br />
± √ c − x 2 1<br />
]<br />
)<br />
čímž ve skutečnosti dostaneme <strong>funkce</strong> dvě<br />
F 1 (x 1 ) = 1 [ ] [<br />
2 (A √c<br />
x 1<br />
− x<br />
2<br />
,<br />
1<br />
F 2 (x 1 ) = 1 2 (A [<br />
x 1<br />
− √ c − x 2 1<br />
] [<br />
,<br />
[<br />
√c<br />
x 1<br />
− x<br />
2<br />
]) − (b,<br />
1<br />
x 1<br />
− √ c − x 2 1<br />
] [<br />
) − (b,<br />
x 1 √c<br />
− x<br />
2<br />
1<br />
]) (9)<br />
x 1<br />
− √ c − x 2 1<br />
]<br />
) (10)<br />
Pak tyto <strong>funkce</strong> lze minimalizovat stejným způsobem, jako reálnou funkci o jedné<br />
reálné proměnné.<br />
4.1.3 Substituce pomocí polárních souradnic<br />
Použijeme substituci (5) a dosadíme do <strong>funkce</strong> (7)<br />
F (t) = 1 [ √ ] [ √ [ √ c. cos t c. cos t<br />
c. cos t<br />
2 (A √ , √<br />
]) − (b, √<br />
])<br />
c. sin t c. sin t c. sin t<br />
Pak tuto funkci lze minimalizovat stejným způsobem, jako reálnou funkci o jedné<br />
reálné proměnné.
16<br />
4.2 Lagrangeova <strong>funkce</strong> a vázané extrémy<br />
4.2.1 Lagrangeova <strong>funkce</strong>, Lagrangeův multiplikátor<br />
Věta 4.1 (o vázaných lokálních extrémech)<br />
Necht’ f, g : R n → R jsou třídy C 1 na otevřené množině Ω ⊂ R n , n > 1, necht’ grad g(x) ≠<br />
(0, . . . , 0) pro každé x ∈ Ω a necht’ M = {x ∈ Ω : g(x) = 0}.<br />
Pak platí:<br />
1. (Nutná podmínka existence lokálního vázaného extrému)<br />
Má-li f v bodě c ∈ M lokální extrém vzhledem k M, existuje λ ∈ R takové, že c je stacionárním<br />
bodem <strong>funkce</strong> F (x) = f(x) + λg(x), x ∈ Ω.<br />
2. (Postačující podmínky existence lokálního vázaného extrému)<br />
Necht’ c ∈ M je stacionárním bodem <strong>funkce</strong> F (x) = f(x) + λg(x) pro nějaké λ ∈ R, necht’<br />
f a g mají v bodě c spojité parciální derivace druhého řádu a necht’ d 2 F c (pro příslušné λ)<br />
je positivně (resp. negativně) definitní kvadratická forma.<br />
Pak f má v bodě c ostré lokální minimum (resp. ostré lokální maximum) vzhledem k M.<br />
Číslu λ se říká Lagrangeův multiplikátor, funkci F Lagrangeova <strong>funkce</strong>.<br />
4.2.2 Příklady využití Lagrangeovy <strong>funkce</strong><br />
Příklad 4.1<br />
Nalezněte lokální minimum <strong>funkce</strong><br />
f(x) = 1 (Ax, x) − (b, x)<br />
2<br />
vzhledem k množině<br />
A =<br />
[ 2 −1<br />
−1 2<br />
] [ 1<br />
, b =<br />
1<br />
]<br />
Ω = {x = (x 1 , x 2 ) ∈ R 2 : x 2 1 + x 2 2 = 1}<br />
• Definujme funkci kvadratické vazby<br />
g(x) = x 2 1 + x 2 2 − 1, ∀x ∈ Ω : grad g(x) ≠ (0, 0)<br />
a Lagrangeovu funkci<br />
F (x) = f(x) + λ.g(x) = 1 2 (Ax, x) − (b, x) + λ.(x 1 2 + x 2 2 − 1)<br />
• Nalezněme stacionární body <strong>funkce</strong> F<br />
grad F (x) = grad f(x) + λ. grad g(x) = Ax − b + 2λx
17<br />
[ ] [ ] [ 2 −1 x1 1<br />
grad F (x) =<br />
. −<br />
−1 2 x 2 1<br />
[ ] 0<br />
grad F (x) = ⇔<br />
0<br />
a řešením této rovnice je stacionární bod<br />
] [ 2λx1<br />
+<br />
[ 2x1 (1 + λ) − x 2 − 1<br />
2x 2 (1 + λ) − x 1 − 1<br />
x 0 =<br />
[<br />
1<br />
2λ+1<br />
1<br />
2λ+1<br />
Pro stacionární bod x 0 ∈ Ω platí g(x 0 ) = 0, proto<br />
g(x 0 ) = 0 ∧ g(x 0 ) =<br />
a řešením této rovnice je<br />
] [ 2x1 (1 + λ) − x<br />
=<br />
2 − 1<br />
2λx 2 2x 2 (1 + λ) − x 1 − 1<br />
] [ ] 0<br />
=<br />
0<br />
]<br />
1<br />
(2(1 + λ) − 1) 2 + 1<br />
(2(1 + λ) − 1) 2 − 1<br />
2<br />
(2(1 + λ) − 1) 2 − 1 = 0<br />
λ = ±√ 2 − 1<br />
2<br />
dosazením do stacionárního bodu x 0 získáváme stacionární body dva<br />
x 01 =<br />
[ 1 √2<br />
]<br />
√ 1<br />
2<br />
, x 02 =<br />
[<br />
−<br />
1 √2<br />
]<br />
− √ 1<br />
2<br />
]<br />
• Definujme kvadratickou formu<br />
∂ 2 F (x) =<br />
[<br />
∂ 2 F<br />
∂x 2 1<br />
(x)<br />
∂ 2 F<br />
∂x 2 ∂x 1<br />
(x)<br />
]<br />
∂ 2 F<br />
∂x 1 ∂x 2<br />
(x)<br />
∂ 2 F<br />
=<br />
∂x 2 2<br />
(x)<br />
[ 2(1 + λ) −1<br />
−1 2(1 + λ)<br />
a zjistíme definitnost dané kvadratické formy pro stacionární body podle sylvestrova<br />
kritéria<br />
[ √ ]<br />
∂ 2 2 + 1 −1<br />
F (x 01 ) =<br />
√<br />
−1 2 + 1<br />
det∂ 2 F (x 01 ) 1 = det[ √ 2 + 1] = √ 2 + 1 > 0<br />
[ √ ]<br />
det∂ 2 2 + 1 −1<br />
F (x 01 ) 2 = det<br />
√ = ( √ 2 + 1) 2 − (−1).(−1) = 2.(1 + √ 2) > 0<br />
−1 2 + 1<br />
[ √ ]<br />
∂ 2 − 2 + 1 −1<br />
F (x 02 ) =<br />
−1 − √ 2 + 1<br />
det∂ 2 F (x 02 ) 1 = det[− √ 2 + 1] = − √ 2 + 1 < 0<br />
[ √ ]<br />
det∂ 2 − 2 + 1 −1<br />
F (x 02 ) 2 = det<br />
−1 − √ = (− √ 2+1) 2 −(−1).(−1) = 2.(1− √ 2) < 0<br />
2 + 1<br />
Kvadratická forma ∂ 2 F (x 01 ) je pozitivně definitní.<br />
]
18<br />
• Lokální minimum nabývá <strong>funkce</strong> f v bodě<br />
x 01 =<br />
[<br />
√2 1<br />
]<br />
√ 1<br />
2<br />
4.3 Metoda největšího spádu<br />
4.3.1 Obecná metoda největšího spádu<br />
Připomeňme si předpis kvadratické <strong>funkce</strong>:<br />
F (x) = 1 (Ax, x) − (b, x)<br />
2<br />
Metoda největšího spádu je iterační metoda s předpisem x k+1 = x k + α k .v k , přičemž<br />
α k , v k volíme tak, aby jsme se co nejvíce přiblížili ke konkrétnímu řešení.<br />
Označme vektor r k = b − Ax k = −grad(F (x k )) jako reziduum v bodě x k vyjadřující<br />
”velikost spádu” v daném bodě (tedy v dané iteraci).<br />
• Vytvořme funkci definující skalár α k<br />
f(α k ) = F (x k + α k .v k ) = 1 2 (A(x k + α k .v k ), x k + α k .v k ) − (b, x k + α k .v k ) =<br />
= 1 2 (Ax k + α k .Av k , x k + α k .v k ) − (b, x k ) − (b, α k .v k ) =<br />
= 1 2 (Ax k, x k )+ 1 2 (Ax k, α k .v k )+ 1 2 (α k.Av k , x k )+ 1 2 (α k.Av k , α k .v k )−(b, x k )−(b, α k .v k ) =<br />
= 1 2 (Ax k, x k ) − (b, x k ) + 1 2 (Aα k.v k , α k .v k ) + (α k Ax k , v k ) − (b, α k .v k ) =<br />
= F (x k ) + 1 2 (Aα k.v k , α k .v k ) + α k ((Ax k , v k ) − (b, v k )) =<br />
= F (x k ) + 1 2 (Aα k.v k , α k .v k ) + α k (Ax k − b, v k ) = F (x k ) + 1 2 α k 2 (Av k , v k ) + α k (r k , v k )<br />
Hledáme co nejvhodnější α k . Za tímto účelem minimalizujeme funkci f(α k ) jako<br />
funkci o jedné proměnné α k<br />
a stacionárním bodem je<br />
f ′ (α k ) = α k (Av k , v k ) + (r k , v k )<br />
f ′ (α k ) = 0 ⇔ α k = − (r k, v k )<br />
(Av k , v k )
19<br />
V průběhu <strong>funkce</strong> f(α k ) nedochází k žádným inflexím, protože<br />
f ′′ (α k ) = (Av k , v k ) > 0<br />
což plyne z pozitivní definitnosti matice A, tedy α k = − (r k,v k )<br />
(Av k ,v k )<br />
je opravdu minimum<br />
<strong>funkce</strong> f.<br />
• v k volíme tak, aby ∂F (x k)<br />
∂v k<br />
byla co nejmenší<br />
∂F (x k )<br />
∂v k<br />
= (grad(F (x k )), v k ) = cosϕ.‖r k ‖.‖v k ‖<br />
Tato hodnota bude nejmenší při volbě ϕ = π ⇔ cosϕ = −1 tedy úhel mezi vektory<br />
−r k a v k je roven π, tedy r k = v k .<br />
Po dosazení do předpisu dostáváme<br />
x k+1 = x k + α k .v k = x k − (r k, v k )<br />
(Av k , v k ) .r k = x k − (r k, r k )<br />
(Ar k , r k ) .r k<br />
4.3.2 Algoritmus obecné metody největšího spádu<br />
Vstup:<br />
- A (pozitivně definitní matice),<br />
- b (vektor pravých stran),<br />
- x 0 (počáteční aproximace),<br />
- ε (přesnost, ε > 0)<br />
Algoritmus obecně:<br />
• r 0 = b − Ax 0<br />
• α 0 = − ‖r 0‖ 2<br />
(Ar 0 ,r 0 )<br />
• x 1 = x 0 + α 0 .r 0<br />
• cyklus: pokud ‖x k+1 − x k ‖ < ε opakuj:<br />
– k = k + 1<br />
– r k = b − Ax k<br />
– α k = − ‖r k‖ 2<br />
(Ar k ,r k )<br />
– x k+1 = x k + α k .r k<br />
• x k+1 je řešení
20<br />
Algoritmus v matlabu:<br />
function [x, it ,ex] = sd(A,b,x0,e)<br />
% function [x, it ,ex] = sd(A,b,x0,e)<br />
%<br />
% <strong>funkce</strong> minimalizuje kvadratickou vazbu metodou nejvetsiho<br />
% spadu<br />
%<br />
% x ... reseni<br />
% it ... pocet iteraci<br />
% ex ... chyby v iteracich<br />
%<br />
% A ... matice soustavy<br />
% b ... vektor pravych stran<br />
% x0 ... pocatecni aproximace<br />
% e ... pozadovana presnost<br />
n = max(size(A));<br />
it = 0;<br />
x = x0;<br />
r = b − A∗x;<br />
Ar = A∗r;<br />
alfa = r ’∗ r /( r ’∗Ar);<br />
xn = x + alfa∗r;<br />
ex( it +1) = norm(xn−x,2);<br />
while (ex( it +1)>=e) & (norm(r)>0)<br />
it = it +1;<br />
x = xn;<br />
r = r − alfa∗Ar;<br />
Ar = A∗r;<br />
alfa = r ’∗ r /( r ’∗Ar);<br />
xn = x + alfa∗r;<br />
end<br />
ex( it +1) = norm(xn − x,2);<br />
x = xn;<br />
Výpis 1: Algoritmus obecné metody největšího spádu<br />
4.3.3 Příklady použití metody největšiho spádu<br />
F (x) = 1 (Ax, x) − (b, x) (11)<br />
2
21<br />
Příklad 4.2<br />
Minimalizujte kvadratickou funkci (1), pokud<br />
V matlabu zavoláme funkci (6)<br />
>> A = [2 −1; −1 2]<br />
A =<br />
2 −1<br />
−1 2<br />
>> b = [1; 1]<br />
b =<br />
1<br />
1<br />
>> e = 0.00001<br />
e =<br />
1.0000e−005<br />
A =<br />
>> nejvetsi spad(A,b,[−1;−2],e)<br />
ans =<br />
1.0000<br />
1.0000<br />
[ 2 −1<br />
−1 2<br />
] [ 1<br />
, b =<br />
1<br />
Výpis 2: MNS: Rěšení 1. příkladu<br />
V našem případě bylo potřebných 16 iterací.<br />
Příklad 4.3<br />
Minimalizujte kvadratickou funkci (1), pokud<br />
V matlabu zavoláme funkci (6)<br />
A =<br />
[ 2 1<br />
1 2<br />
>> A = [2 1; 1 2];b = [−2; 2];e = 0.00001;<br />
>> nejvetsi spad(A,b,[−1;−2],e)<br />
ans =<br />
−2.0000<br />
] [ −2<br />
, b =<br />
2<br />
]<br />
]
22<br />
Obrázek 9: MNS: Rěšení 1. příkladu<br />
2.0000<br />
Výpis 3: MNS: Rěšení 2. příkladu<br />
V našem případě bylo potřebných 16 iterací.<br />
Příklad 4.4<br />
Minimalizujte kvadratickou funkci (1), pokud<br />
A =<br />
[ 6 −1<br />
−1 3<br />
] [ 0<br />
, b =<br />
0<br />
V matlabu zavoláme funkci (6) pro různé počáteční aproximace<br />
>> A = [6 −1; −1 3];b = [0; 0];e = 0.00001;<br />
>> nejvetsi spad(A,b,[−1;−2],e)<br />
it =<br />
10<br />
]<br />
ans =
23<br />
Obrázek 10: MNS: Rěšení 2. příkladu<br />
1.0e−005 ∗<br />
0.1018<br />
−0.1758<br />
>> nejvetsi spad(A,b,[−2;1],e)<br />
it =<br />
5<br />
ans =<br />
1.0e−006 ∗<br />
−0.1327<br />
0.0664<br />
>> nejvetsi spad(A,b,[3;2],e)<br />
it =
24<br />
12<br />
ans =<br />
1.0e−005 ∗<br />
0.0235<br />
0.3121<br />
>> nejvetsi spad(A,b,[1;0],e)<br />
it =<br />
6<br />
ans =<br />
1.0e−006 ∗<br />
0.0719<br />
0.2956<br />
Výpis 4: MNS: Rěšení 3. příkladu<br />
4.3.4 Metoda největšího spádu s projekcí na množinu<br />
Metoda největšího spádu hledá lokální minimum <strong>funkce</strong>, my ale potřebujeme najít minimum<br />
<strong>funkce</strong> vzhledem ke kvadratické vazbě, která popisuje kružnici. Tedy minimum<br />
bude ležet na této kružnici, jakož i každá další aproximace v průběhu iterací. Potřebujeme<br />
nalézt předpis pro projekci bodu mimo kružnice na kružnici tak, aby byl zachován úhel,<br />
který svírají polohové vektory bodů s například x-ovou osou (chceme, aby měli polohové<br />
vektory stejný směr).<br />
Proměnné v obrázku:<br />
z = (x z , y z ) (polohový vektor původního bodu),<br />
p = (x p , y p ) (polohový vektor bodu po projekci),<br />
x = (1, 0) (polohový vektor popisující x-ovou os),<br />
Úhel který svírají polohové vektory s vektorem popisujícím x-ovou os<br />
cos ϕ z =<br />
cos ϕ p =<br />
(z,x)<br />
‖z‖.‖x‖<br />
(p,x)<br />
‖p‖.‖x‖
25<br />
Obrázek 11: MNS: Rěšení 3. příkladu<br />
Obrázek 12: Projekce na množinu
26<br />
Porovnáním uhlů lze úpravou získat předpis<br />
cos ϕ z = cos ϕ p<br />
(z, x) (p, x)<br />
=<br />
‖z‖.‖x‖ ‖p‖.‖x‖<br />
z<br />
‖z‖ = p<br />
‖p‖<br />
p = ‖p‖<br />
‖z‖ .z<br />
Velikost polohového vektoru ‖p‖ je ve skutečnosti poloměr kružnice, která je popsaná<br />
kvadratickou vazbou<br />
Tedy předpis projekce je p =<br />
Algoritmus v matlabu:<br />
Ω = {x = (x, y) : x 2 + y 2 = c, c ∈ R}<br />
√ c<br />
‖z‖ .z<br />
function [P] = na kruznici(Z,r)<br />
% function [P] = na kruznici(Z,r)<br />
%<br />
% <strong>funkce</strong> zobrazi dany bod na bod, ktery<br />
% lezi na kruznici<br />
%<br />
% P ... reseni<br />
% Z ... vstupni bod<br />
% r ... polomer kruznice<br />
%<br />
P = (sqrt(r) /norm(Z))∗Z;<br />
Algoritmus v matlabu:<br />
Výpis 5: Algoritmus projekce bodu na kružnici<br />
function [reseni] = minimum(A,b,c,bod0,e)<br />
% function [reseni] = minimum(A,b,bod0,e)<br />
%<br />
% reseni ... reseni<br />
%<br />
% A ... matice soustavy (2x2, pozitivne definitni , symetricka)<br />
% b ... vektor pravych stran<br />
% c ... kvadrat polomeru kruznice<br />
% bod0 ... pocatecni aproximace<br />
% e ... pozadovana presnost<br />
bod=na kruznici(bod0,sqrt(c)); % pocatecni aproximace nemusi lezet na kruznici<br />
zkracovac=1;<br />
gradient=(b−A∗bod);<br />
% pozn. jedna se o −grad
27<br />
while (norm(gradient)>e) % presnost reseni lze urcit podle delky gradientu (je iteracne<br />
skracovan)<br />
stare z=vrat z(bod,A,b); % hodnota <strong>funkce</strong> pro stary bod<br />
gradient=(b−A∗bod)∗zkracovac;<br />
nove z=vrat z(na kruznici(bod+gradient,sqrt(c)),A,b); % hodnota <strong>funkce</strong> pro novy bod<br />
while (nove z > stare z)<br />
zkracovac=zkracovac/2;<br />
nove z=vrat z(na kruznici(bod+gradient∗zkracovac,1),A,b);<br />
end;<br />
bod=na kruznici(bod+gradient∗zkracovac,sqrt(c));<br />
end<br />
reseni=[bod(1) bod(2) vrat z (bod,A,b)];<br />
Výpis 6: Algoritmus metody největšího spádu s projekcí na množinu<br />
4.3.5 Příklady použití metody největšiho spádu s projekcí na množinu<br />
f(x) = 1 (Ax, x) − (b, x) (12)<br />
2<br />
Ω = {(x, y) ∈ R 2 : x 2 + y 2 = c} (13)<br />
Příklad 4.5<br />
Minimalizujte kvadratickou funkci (12) vzhledem k množině (13), pokud<br />
A =<br />
V matlabu zavoláme funkci (6)<br />
>> A = [2 −1; −1 2]<br />
A =<br />
2 −1<br />
−1 2<br />
>> b = [1; 1]<br />
b =<br />
1<br />
[ 2 −1<br />
−1 2<br />
] [ 1<br />
, b =<br />
1<br />
]<br />
, c = 1
28<br />
1<br />
>> c = 1<br />
c =<br />
1<br />
>> e = 0.001<br />
e =<br />
1.0000e−003<br />
>> minimum(A,b,c,[−1;−2],e)<br />
ans =<br />
0.7071 0.7071 −0.9142<br />
Výpis 7: MNS s projekcí: Rěšení 1. příkladu<br />
Přidáním zvyšujícího se iterátoru do algoritmu lze získat počet iterací potřebných k výpočtu<br />
function [reseni] = minimum(A,b,c,bod0,e)<br />
...<br />
it =0;<br />
while (norm(gradient)>e)<br />
it = it +1;<br />
...<br />
end<br />
reseni=[bod(1) bod(2) vrat z (bod,A,b) it ];<br />
Výpis 8: MNS s projekcí: Rěšení 1. příkladu s počítadlem iterací<br />
V našem případě bylo potřebných 24 iterací. Pokud bychom zkoušeli volit různé počáteční<br />
aproximace, zjistily bychom, že pro různé počáteční aproximace je rychlost konvergence<br />
(počet iterací potřebných pro provedení algoritmu) různá. Na obrázku níže jsou naznačeny<br />
některé body, u kterých je vyznačen potřebný počet iterací.<br />
Příklad 4.6<br />
Minimalizujte kvadratickou funkci (12) vzhledem k množině (13), pokud<br />
A =<br />
V matlabu zavoláme funkci (6)<br />
[ 6 −1<br />
−1 3<br />
] [ 1<br />
, b =<br />
−2<br />
>> minimum([6 −1; −1 3],[1;−2],2,[−2;−1],0.0001)<br />
]<br />
, c = 2
29<br />
Obrázek 13: MNS s projekcí: Rěšení 1. příkladu<br />
ans =<br />
−0.0917 −1.4112 0.1524 89.0000<br />
Výpis 9: MNS s projekcí: Rěšení 2. příkladu<br />
Tedy minimum je v bodě x 0 = [−0.09; −1.41], f(x 0 ) = 0.15 a bylo potřebných 89 iterací.<br />
.
Obrázek 14: MNS s projekcí: Rěšení 1. příkladu, detail<br />
30
Obrázek 15: MNS s projekcí: Rěšení 1. příkladu, mapa rychlosti konvergence<br />
31
32<br />
Obrázek 16: MNS s projekcí: Rěšení 2. příkladu<br />
Obrázek 17: MNS s projekcí: Rěšení 2. příkladu, detail
33<br />
5 <strong>Minimalizace</strong> <strong>funkce</strong> s nerovnostní vazbou<br />
Nalezněte minimum <strong>funkce</strong><br />
vzhledem k množině<br />
5.1 Globální extrémy na uzavřené oblasti<br />
f(x) = 1 (Ax, x) − (b, x) (14)<br />
2<br />
Ω = {x = (x, y) : x 2 + y 2 ≤ c, c ∈ R} (15)<br />
Hledání minima <strong>funkce</strong> (14) na množině (15) se pokusíme realizovat stejným algoritem,<br />
jako při hledání globálních extrémů <strong>funkce</strong> více proměnných.<br />
1. Najdeme lokální minimum <strong>funkce</strong> f ležící v množině<br />
Ω 1 = {x = (x, y) : x 2 + y 2 < c}<br />
Vypočteme funkční hodnoty těchto extrémů.<br />
2. Minimalizujeme funkci f vzhledem k množině<br />
Ω 2 = {x = (x, y) : x 2 + y 2 = c}<br />
3. Globální minimum <strong>funkce</strong> f leží v množině Ω = Ω 1 ∪ Ω 2 . Vybereme bod z extrémů<br />
množin Ω 1 a Ω 2 , ve kterém má <strong>funkce</strong> f nejmenší funkční hodnotu.<br />
V tomto bodě nabývá <strong>funkce</strong> f minima vzhledem k množině Ω.<br />
Příklad 5.1<br />
Nalezněte lokální minimum <strong>funkce</strong><br />
f(x) = 1 (Ax, x) − (b, x)<br />
2<br />
vzhledem k množině<br />
A =<br />
[ 2 −1<br />
−1 2<br />
] [ 1<br />
, b =<br />
1<br />
]<br />
Ω = {x = (x 1 , x 2 ) ∈ R 2 : x 1 2 + x 2 2 ≤ 1}<br />
1. Najdeme stacionární body <strong>funkce</strong> f<br />
gradf = Ax − b =<br />
[ 2 −1<br />
−1 2<br />
] [ 1<br />
−<br />
1<br />
]
34<br />
gradf = 0 ⇔<br />
[ 2x1 − x 2 − 1<br />
2x 2 − x 1 − 1<br />
] [ 0<br />
=<br />
0<br />
]<br />
a řešením této soustavy je vektor<br />
[ 1<br />
x =<br />
1<br />
]<br />
který však není z množiny Ω 1 = {x = (x, y) : x 2 + y 2 < 1}<br />
2. Funkce f nabývá na množině Ω 2 = {x = (x, y) : x 2 + y 2 = 1} minimum v bodě<br />
x 0 =<br />
[<br />
√2 1<br />
]<br />
√ 1<br />
2<br />
(viz Příklad (4.2.2))<br />
3. Funkce f nabývá globálního minima na množině Ω = Ω 1 ∪ Ω 2 v bodě<br />
x 0 =<br />
[<br />
√2 1<br />
]<br />
√ 1<br />
2<br />
Obrázek 18: Vrstevnice kvadratické <strong>funkce</strong> s vyznačením kvadratické vazby
35<br />
5.2 Modifikovaná metoda největšího spádu<br />
5.2.1 Počáteční úvaha<br />
Mohou nastat dva případy:<br />
• min(f(x)) ∈ Ω<br />
Pak lze funkci f minimalizovat metodou nejvetšího spádu bez projekce na množinu<br />
• min(f(x)) /∈ Ω<br />
Pak minimum <strong>funkce</strong> f vzhledem k množině Ω leží na ohraničení množiny Ω -<br />
použijeme metodu největšího spádu s projekcí na množinu.<br />
Toto rozhodnutí bychom mohly učinit pokud známe umístnění minima <strong>funkce</strong> (14)<br />
vzhledem k mnoˇzině (15). Tedy řešení by mohlo být následující:<br />
1. Nalezneme minimum <strong>funkce</strong> (14) algoritmem metody největšího spádu bez projekce<br />
na množinu.<br />
2. Pokud min(f(x)) ∈ Ω<br />
Pak nalezené minimum je i minimum <strong>funkce</strong> (14) vzhledem k množině (15).<br />
3. Pokud min(f(x)) /∈ Ω<br />
Pak minimum <strong>funkce</strong> (14) vzhledem k mnoˇzině (15) nalezneme algoritmem největšího<br />
spádu s projekcí na množinu<br />
Ω h = {x = (x, y) : x 2 + y 2 = c, c ∈ R}<br />
To ale znamená, že pokud min(f(x)) /∈ Ω, pak musíme aplikovat dvě iterační metody.<br />
Pokusme se tedy modifikovat algoritmus metody největšího spádu s projekcí na množinu<br />
tak, aby byl schopen najít minimum nejen na vnější kružnici, ale na celém kruhu.<br />
5.2.2 Modifikovaná metoda největšího spádu s projekcí na množinu<br />
V každé iteraci algoritmu budeme rozlišovat zda<br />
• x i ∈ Ω<br />
Pak následující přiblížení x i+1 vypočteme jednou iterací algoritmu metody největšího<br />
spádu.<br />
• x i /∈ Ω<br />
Pak provedeme projekci na množinu a hledání x i+1 pokračujeme stejně jako při metodě<br />
největšího spádu s projekcí na množinu, přičemž nyní budeme vektor spádu<br />
zkoušet zkracovat do té doby, než bude x zkracene < x i nebo x zkracene ∈ Ω.
36<br />
function [reseni] = minimum(A,b,c,bod0,e)<br />
% function [reseni] = minimum(A,b,c,bod0,e)<br />
%<br />
% reseni ... reseni<br />
%<br />
% A ... matice soustavy (2x2, pozitivne definitni , symetricka)<br />
% b ... vektor pravych stran<br />
% c ... kvadrat polomeru kruznice<br />
% bod0 ... pocatecni aproximace<br />
% e ... pozadovana presnost<br />
%<br />
xn=bod0; % pocatecni aproximace nemusi lezet na kruznici<br />
it = 0; % pocet iteraci<br />
r = b − A∗xn; % vektor spadu pocatecni aproximace<br />
zkracovac=1; % koeficient zkraceni vektoru mimo kruznici<br />
while (norm(r,2)>=e) % presnost reseni lze urcit podle delky gradientu (je iteracne zkracovan)<br />
it = it +1;<br />
if (je z mnoziny(xn,c) == 0) % pokud predesla iterace nelezi v mnozine<br />
xn=na kruznici(xn,sqrt(c)) ; % projekce na kruznici<br />
stare z=vrat z(xn,A,b); % hodnota <strong>funkce</strong> pro stary bod<br />
r=(b−A∗xn)∗zkracovac; % zkraceni vektoru spadu<br />
nove z=vrat z(na kruznici(xn+r,sqrt(c)) ,A,b); % hodnota <strong>funkce</strong> pro novy bod<br />
while (nove z > stare z) && (je z mnoziny(xn+r∗zkracovac,c) == 0)<br />
zkracovac=zkracovac/2;<br />
nove z=vrat z(na kruznici(xn+r∗zkracovac,sqrt(c)),A,b);<br />
end;<br />
xn=xn+r∗zkracovac;<br />
else % pokud predesla iterace lezi v mnozine<br />
end;<br />
end;<br />
r = b − A∗xn;<br />
alfa = (norm(r,2)ˆ2)/(dot(A∗r,r)) ;<br />
xn = xn + alfa∗r;<br />
reseni=[xn(1) xn(2) vrat z (xn,A,b) it ]<br />
Výpis 10: Algoritmus modifikované metody největšího spádu s projekcí na množinu s<br />
nerovnostní vazbou
37<br />
5.2.3 Příklady<br />
f(x) = 1 (Ax, x) − (b, x) (16)<br />
2<br />
Ω = {(x, y) ∈ R 2 : x 2 + y 2 ≤ c} (17)<br />
Příklad 5.2<br />
Minimalizujte kvadratickou funkci (16) vzhledem k množině (17), pokud<br />
A =<br />
V matlabu zavoláme funkci (10)<br />
>> A = [2 −1; −1 2]<br />
A =<br />
2 −1<br />
−1 2<br />
>> b = [1; 1]<br />
b =<br />
1<br />
1<br />
>> c = 5<br />
c =<br />
5<br />
>> e = 0.00001<br />
e =<br />
1.0000e−005<br />
>> minimum(A,b,c,[−1;−2],e)<br />
ans =<br />
[ 2 −1<br />
−1 2<br />
1.0000 1.0000 −1.0000 6.0000<br />
] [ 1<br />
, b =<br />
1<br />
]<br />
, c = 3<br />
Výpis 11: MNS s nerovnostní vazbou: Rěšení 1. příkladu<br />
Což znamená, že x 0 = [1; 1], f(x 0 ) = −1 a bylo potřebných 6 iterací.
Obrázek 19: MNS s nerovnostní vazbou: Rěšení 1. příkladu<br />
38
39<br />
Příklad 5.3<br />
Minimalizujte kvadratickou funkci (16) vzhledem k množině (17), pokud<br />
[ ] [ ]<br />
6 −1 −2<br />
A =<br />
, b = , c = 4<br />
−1 3<br />
2<br />
V matlabu zavoláme funkci (10)<br />
>> minimum([6 −1; −1 3],[−2 ; 2],4,[−2;−2],0.00001)<br />
ans =<br />
−0.2353 0.5882 −0.8235 11.0000<br />
Výpis 12: MNS s nerovnostní vazbou: Rěšení 2. příkladu<br />
Což znamená, že x 0 = [−0.24; 0.59], f(x 0 ) = −0.82 a bylo potřebných 11 iterací.<br />
Obrázek 20: MNS s nerovnostní vazbou: Rěšení 2. příkladu
40<br />
6 Závěr<br />
Nejlepší finitní metoda hledání minima kvadratické <strong>funkce</strong> pro rovnostní vazbu se ukazuje<br />
být pouˇzití Lagrangeovy <strong>funkce</strong>. Nicméně tuto metodu lze použít pouze u ”hezkých”<br />
funkcí, u funkcí s problematickou derivací, kdy například může vzniknout finitně neřešitelný<br />
polynom, nelze ani tuto metodu použít.<br />
Zejména při řešení větších úloh je jediným způsobem řešení problému řešení iterační.<br />
Moje upravená metoda největšího spádu s projekcí na množinu pro hledání vázaného minima<br />
však nefunguje ve všech případech volby různých počátečních aproximací stejně.<br />
Proto by měla projít ještě procesem optimalizace, který by mohl odstranit většinu těchto<br />
problémů.<br />
Při hledání minima vzhledem k množině popsané nerovnostní separovanou vazbou<br />
záleží na umístnění minima <strong>funkce</strong> vzhledem k vazbě, tedy volba použití finitních řešičů<br />
záleží na této skutečnosti. Nicméně iterační metody lze upravit tak, aby fungovaly pro<br />
jakékoliv umístnění minima.
41<br />
7 Reference<br />
[1] Z. Dostál Lineární algebra, Skripta VŠB-TU Ostrava, 2000.<br />
[2] J. Bouchala, Matematika III pro bakalářské studium, Skripta VŠB-TU Ostrava, 2000.<br />
[3] J. Bouchala, Vázané extrémy, Nepublikovaný materiál k [2].<br />
[4] V. Vondrák, Numerická matematika I, Ručně psané a naskenované syllaby.<br />
[5] V. Vondrák, Numerická matematika I, Soubor matlabovskych funkcí.<br />
[6] J. Kuben, P. Šarmanová, L. Šimonová MATEMATICKÁ ANALÝZA I pro kombinované<br />
a distanční studium, Skripta VŠB-TU Ostrava, 2004.<br />
[7] Z. Dostál, D. Horák, R. Kučera, V. Vondrák, J. Haslinger, J. Dobiáš, S. Pták FETI based<br />
algorithms for contact problems: scalability, large displacements and 3D Coulomb friction,<br />
Computer Methods in Applied Mechanics and Engineering 194, 2-5 (2005) 395-409.
42<br />
Přiložené CD obsahuje tyto matlabovské <strong>funkce</strong>:<br />
• rovnost<br />
– minimum.m - minimalizace kvadratické <strong>funkce</strong> s kvadratickou rovnostní separovanou<br />
vazbou<br />
– draw_minimum.m - vykreslení průbehu minimalizace kvadratické <strong>funkce</strong> s<br />
kvadratickou rovnostní separovanou vazbou<br />
• nerovnost<br />
• jiné<br />
– minimum.m - minimalizace kvadratické <strong>funkce</strong> s kvadratickou nerovnostní<br />
separovanou vazbou<br />
– draw_minimum.m - vykreslení průbehu minimalizace kvadratické <strong>funkce</strong> s<br />
kvadratickou nerovnostní separovanou vazbou<br />
– nejvetsi_spad.m - algoritmus obecné metody největšího spádu<br />
– draw_nejvetsi_spad.m - vykreslení průběhu algoritmu obecné metody největšího<br />
spádu<br />
– nejvetsi_spad.m - algoritmus obecné metody největšího spádu<br />
– na_kruznici.m - algoritmus projekce na kružnici<br />
– vrat_z.m - vrací funkční hodnotu kvadratické <strong>funkce</strong> v daném bodě<br />
– draw_3D.m - vykreslí průběh kvadratické <strong>funkce</strong> v prostoru<br />
– draw_spojnice.m - vykreslí spojnici dvou bodů<br />
– draw_vektor.m - vykreslí vektor vycházející z počátečního bodu<br />
– draw_vazba.m - vykreslí kvadratickou vazbu<br />
– draw_vektor.m - vykreslí vektor vycházející z počátečního bodu<br />
– draw_vrstevnice.m - vykreslí vrstevnice kvadratické <strong>funkce</strong><br />
– je_z_množiny.m - ověří, zda daný bod je z množiny