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

22.11.2014 Views

36 function [reseni] = minimum(A,b,c,bod0,e) % function [reseni] = minimum(A,b,c,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 % xn=bod0; % pocatecni aproximace nemusi lezet na kruznici it = 0; % pocet iteraci r = b − A∗xn; % vektor spadu pocatecni aproximace zkracovac=1; % koeficient zkraceni vektoru mimo kruznici while (norm(r,2)>=e) % presnost reseni lze urcit podle delky gradientu (je iteracne zkracovan) it = it +1; if (je z mnoziny(xn,c) == 0) % pokud predesla iterace nelezi v mnozine xn=na kruznici(xn,sqrt(c)) ; % projekce na kruznici stare z=vrat z(xn,A,b); % hodnota funkce pro stary bod r=(b−A∗xn)∗zkracovac; % zkraceni vektoru spadu nove z=vrat z(na kruznici(xn+r,sqrt(c)) ,A,b); % hodnota funkce pro novy bod while (nove z > stare z) && (je z mnoziny(xn+r∗zkracovac,c) == 0) zkracovac=zkracovac/2; nove z=vrat z(na kruznici(xn+r∗zkracovac,sqrt(c)),A,b); end; xn=xn+r∗zkracovac; else % pokud predesla iterace lezi v mnozine end; end; r = b − A∗xn; alfa = (norm(r,2)ˆ2)/(dot(A∗r,r)) ; xn = xn + alfa∗r; reseni=[xn(1) xn(2) vrat z (xn,A,b) it ] Výpis 10: Algoritmus modifikované metody největšího spádu s projekcí na množinu s nerovnostní vazbou

37 5.2.3 Příklady f(x) = 1 (Ax, x) − (b, x) (16) 2 Ω = {(x, y) ∈ R 2 : x 2 + y 2 ≤ c} (17) Příklad 5.2 Minimalizujte kvadratickou funkci (16) vzhledem k množině (17), pokud A = V matlabu zavoláme funkci (10) >> A = [2 −1; −1 2] A = 2 −1 −1 2 >> b = [1; 1] b = 1 1 >> c = 5 c = 5 >> e = 0.00001 e = 1.0000e−005 >> minimum(A,b,c,[−1;−2],e) ans = [ 2 −1 −1 2 1.0000 1.0000 −1.0000 6.0000 ] [ 1 , b = 1 ] , c = 3 Výpis 11: MNS s nerovnostní vazbou: Rěšení 1. příkladu Což znamená, že x 0 = [1; 1], f(x 0 ) = −1 a bylo potřebných 6 iterací.

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í.

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

Saved successfully!

Ooh no, something went wrong!