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