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
26 Porovnáním uhlů lze úpravou získat předpis cos ϕ z = cos ϕ p (z, x) (p, x) = ‖z‖.‖x‖ ‖p‖.‖x‖ z ‖z‖ = p ‖p‖ p = ‖p‖ ‖z‖ .z Velikost polohového vektoru ‖p‖ je ve skutečnosti poloměr kružnice, která je popsaná kvadratickou vazbou Tedy předpis projekce je p = Algoritmus v matlabu: Ω = {x = (x, y) : x 2 + y 2 = c, c ∈ R} √ c ‖z‖ .z function [P] = na kruznici(Z,r) % function [P] = na kruznici(Z,r) % % funkce zobrazi dany bod na bod, ktery % lezi na kruznici % % P ... reseni % Z ... vstupni bod % r ... polomer kruznice % P = (sqrt(r) /norm(Z))∗Z; Algoritmus v matlabu: Výpis 5: Algoritmus projekce bodu na kružnici function [reseni] = minimum(A,b,c,bod0,e) % function [reseni] = minimum(A,b,bod0,e) % % reseni ... reseni % % A ... matice soustavy (2x2, pozitivne definitni , symetricka) % b ... vektor pravych stran % c ... kvadrat polomeru kruznice % bod0 ... pocatecni aproximace % e ... pozadovana presnost bod=na kruznici(bod0,sqrt(c)); % pocatecni aproximace nemusi lezet na kruznici zkracovac=1; gradient=(b−A∗bod); % pozn. jedna se o −grad
27 while (norm(gradient)>e) % presnost reseni lze urcit podle delky gradientu (je iteracne skracovan) stare z=vrat z(bod,A,b); % hodnota funkce pro stary bod gradient=(b−A∗bod)∗zkracovac; nove z=vrat z(na kruznici(bod+gradient,sqrt(c)),A,b); % hodnota funkce pro novy bod while (nove z > stare z) zkracovac=zkracovac/2; nove z=vrat z(na kruznici(bod+gradient∗zkracovac,1),A,b); end; bod=na kruznici(bod+gradient∗zkracovac,sqrt(c)); end reseni=[bod(1) bod(2) vrat z (bod,A,b)]; Výpis 6: Algoritmus metody největšího spádu s projekcí na množinu 4.3.5 Příklady použití metody největšiho spádu s projekcí na množinu f(x) = 1 (Ax, x) − (b, x) (12) 2 Ω = {(x, y) ∈ R 2 : x 2 + y 2 = c} (13) Příklad 4.5 Minimalizujte kvadratickou funkci (12) vzhledem k množině (13), pokud A = V matlabu zavoláme funkci (6) >> A = [2 −1; −1 2] A = 2 −1 −1 2 >> b = [1; 1] b = 1 [ 2 −1 −1 2 ] [ 1 , b = 1 ] , c = 1
- Page 1 and 2: VŠB - Technická univerzita Ostrav
- Page 3 and 4: Rád bych na tomto místě poděkov
- Page 5 and 6: 1 Obsah 1 Úvod 4 2 Úvod do proble
- Page 7 and 8: 3 Seznam výpisů zdrojového kódu
- Page 9 and 10: 5 2 Úvod do problematiky 2.1 Kvadr
- Page 11 and 12: 7 Obrázek 1: Průběh funkce vlast
- Page 13 and 14: 9 |y| = √ c − x 2 y = ± √ c
- Page 15 and 16: 11 3 Globální extrémy 3.1 Globá
- Page 17 and 18: 13 1. Najdeme stacionární body fu
- Page 19 and 20: 15 4 Minimalizace kvadratické funk
- Page 21 and 22: 17 [ ] [ ] [ 2 −1 x1 1 grad F (x)
- Page 23 and 24: 19 V průběhu funkce f(α k ) nedo
- Page 25 and 26: 21 Příklad 4.2 Minimalizujte kvad
- Page 27 and 28: 23 Obrázek 10: MNS: Rěšení 2. p
- Page 29: 25 Obrázek 11: MNS: Rěšení 3. p
- Page 33 and 34: 29 Obrázek 13: MNS s projekcí: R
- Page 35 and 36: Obrázek 15: MNS s projekcí: Rěš
- Page 37 and 38: 33 5 Minimalizace funkce s nerovnos
- Page 39 and 40: 35 5.2 Modifikovaná metoda největ
- Page 41 and 42: 37 5.2.3 Příklady f(x) = 1 (Ax, x
- Page 43 and 44: 39 Příklad 5.3 Minimalizujte kvad
- Page 45 and 46: 41 7 Reference [1] Z. Dostál Line
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