|
Zachodniopomorski Uniwersytet Technologiczny |
||||
Metody optymalizacji |
|||||
Temat: Metoda najszybszego spadku. |
|||||
Wykonawca: Paweł Nowak AiR N1 III |
Prowadzący: Dr P. Orłowski |
Data: 09.04.2011r. |
Ocena: |
Podpis: |
Kazda zmiana w funkcjach musi być zapisana przed uruchomieniem pliku głównego
function f=fc(x1,x2)
f=2*x1^2+50*x2^2;
f=25*(x1+x2)^2+(-x1+x2)^2
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
f=25*abs(2*x1-x2-4)+abs(4*x1+3*x2+8)
function gr=gradi(x1,x2)
delta= tutaj podajesz swoja wartosc;
pfpx1=-(fc(x1,x2)-fc(x1+delta,x2))/delta;
pfpx2=-(fc(x1,x2)-fc(x1,x2+delta))/delta;
gr=[pfpx1;pfpx2];
function h=hessi(x1,x2)
del= tutaj podajesz swoja wartość taka sama jak w gradi;
gr0=gradi(x1,x2);
gr1=gradi(x1-del,x2);
gr2=gradi(x1,x2-del);
fpx11=(gr0-gr1)/del;
fpx22=(gr0-gr2)/del;
h=[fpx11,fpx22];
program główny
N=0;
blad=Inf;
x1=2;
x2=2;
p=[]; |
o=[]; |patent michała na sciezke
i=0; |
while blad>wartosc bledu musi byc mniejsza niz delta(w gradi i hessi)
gr=gradi(x1,x2);
h=hessi(x1,x2);
alfa=gr'*gr/(gr'*h*gr);
xn=[x1;x2]-alfa*gr;
%xn=[x1;x2]-h^-1; metoda newtona (nie ma zrobionego tego w sprawozdaniu ale wy już musicie)
blad=norm(xn-[x1;x2]);
x1=xn(1);
x2=xn(2);
i=i+1; |
p(i)=xn(1); | patent michała na sciezke
o(i)=xn(2); |
N=N+1;
end
x1
x2
fc(x1,x2)
N
Lp. |
Funkcja |
xpocz
|
xest
|
ε |
δ |
N |
f(x)
|
1. |
f=2*x1^2+50*x2^2 |
[2;2] |
[x1;x2] |
0.01 |
0.001 |
N |
fc |
2. |
f=2*x1^2+50*x2^2 |
[2;2] |
|
|
|
|
|
3. |
f=2*x1^2+50*x2^2 |
[2;2] |
|
|
|
|
|
4. |
f=2*x1^2+50*x2^2 |
[2;2] |
|
|
|
|
|
5. |
f=2*x1^2+50*x2^2 |
[2;2] |
|
|
|
|
|
6. |
f=2*x1^2+50*x2^2 |
[2;2] |
|
|
|
|
|
7. |
f=25*(x1+x2)^2+(-x1+x2)^2
|
[2;2] |
|
|
|
|
|
8. |
f=25*(x1+x2)^2+(-x1+x2)^2
|
[2;2] |
|
|
|
|
|
9. |
f=25*(x1+x2)^2+(-x1+x2)^2
|
[2;2] |
|
|
|
|
|
10. |
f=25*(x1+x2)^2+(-x1+x2)^2
|
[2;2] |
|
|
|
|
|
11. |
f=25*(x1+x2)^2+(-x1+x2)^2
|
[2;2] |
|
|
|
|
|
12. |
f=25*(x1+x2)^2+(-x1+x2)^2
|
[2;2] |
|
|
|
|
|
13. |
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
|
[2;2] |
|
|
|
|
|
14. |
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
|
[2;2] |
|
|
|
|
|
15. |
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
|
[2;2] |
|
|
|
|
|
16. |
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
|
[2;2] |
|
|
|
|
|
17. |
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
|
[2;2] |
|
|
|
|
|
18. |
f=100*(x1^2-x2^2)^2+20*(x1^4+x2^2)^2
|
[2;2] |
|
|
|
|
|
19 |
f=25*abs(2*x1-x2-4)+abs(4*x1+3*x2+8)
|
[2;2] |
|
|
|
|
|
20. |
f=25*abs(2*x1-x2-4)+abs(4*x1+3*x2+8)
|
[2;2] |
|
|
|
|
|
Wykres funkcji:
[X,Y] = meshgrid(-od:krok:do, od:.krok:do); np. (-2:0.1:2, -2:0.1:2) zakres wartości dobierz samemu tak żeby ladnie wychodzilo
Z = 100*(X.^2-Y.^2)^2+20*(X.^4+Y.^2)^2;
surf(X,Y,Z)
Contour(X,Y,Z,to jest chyba ilość probek tez sam dobierasz ja dalem 10000)
hold on
plot(o,p,'r*') ściezka