22.11.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!