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

20 Algoritmus v matlabu: function [x, it ,ex] = sd(A,b,x0,e) % function [x, it ,ex] = sd(A,b,x0,e) % % funkce minimalizuje kvadratickou vazbu metodou nejvetsiho % spadu % % x ... reseni % it ... pocet iteraci % ex ... chyby v iteracich % % A ... matice soustavy % b ... vektor pravych stran % x0 ... pocatecni aproximace % e ... pozadovana presnost n = max(size(A)); it = 0; x = x0; r = b − A∗x; Ar = A∗r; alfa = r ’∗ r /( r ’∗Ar); xn = x + alfa∗r; ex( it +1) = norm(xn−x,2); while (ex( it +1)>=e) & (norm(r)>0) it = it +1; x = xn; r = r − alfa∗Ar; Ar = A∗r; alfa = r ’∗ r /( r ’∗Ar); xn = x + alfa∗r; end ex( it +1) = norm(xn − x,2); x = xn; Výpis 1: Algoritmus obecné metody největšího spádu 4.3.3 Příklady použití metody největšiho spádu F (x) = 1 (Ax, x) − (b, x) (11) 2

21 Příklad 4.2 Minimalizujte kvadratickou funkci (1), pokud V matlabu zavoláme funkci (6) >> A = [2 −1; −1 2] A = 2 −1 −1 2 >> b = [1; 1] b = 1 1 >> e = 0.00001 e = 1.0000e−005 A = >> nejvetsi spad(A,b,[−1;−2],e) ans = 1.0000 1.0000 [ 2 −1 −1 2 ] [ 1 , b = 1 Výpis 2: MNS: Rěšení 1. příkladu V našem případě bylo potřebných 16 iterací. Příklad 4.3 Minimalizujte kvadratickou funkci (1), pokud V matlabu zavoláme funkci (6) A = [ 2 1 1 2 >> A = [2 1; 1 2];b = [−2; 2];e = 0.00001; >> nejvetsi spad(A,b,[−1;−2],e) ans = −2.0000 ] [ −2 , b = 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 />

]

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

Saved successfully!

Ooh no, something went wrong!