Sprawozdanie – Jerzy Jurczak – Laboratorium 6
Korzystając z funkcji:
F1:
f=(0.25-x(1)^2-x(2)^2)^2+0.1*x(1);
df=[-4*(0.25-x(1)^2-x(2)^2)*x(1)+0.1, -4*(0.25-x(1)^2-x(2)^2)*x(2)];
F2:
f=3*x(1)^2+x(2)^2;
df=[ 6*x(1), 2*x(2)];
F3:
f=3*(x(2)-x(1)^2)^2 + 0.1*x(2)^2
df = [ -12*x(1)*x(2)+12*x(1)^3, 6.2*x(2)-6*x(1)^2 ];
sprawdzamy metodę działania minimalizacji dwóch zmiennych. Do tego zadania tworzymy dwa algorytmy: naiv i dfp.
Algorytm naiv:
function [x0, f0, iter]=naiv(x0, maxiter, krok)
Określamy punkt, z którego funkcja startuje, definjuejmy długość kroku, ilość iteracji jaką przeprowadzamy, maksymalną ilość iteracji jaką może przeprowadzić funkcja a także wartość funkcji w punkcie. Metoda opiera się na robieniu małych kroków w kierunku najniższego punktu.
Algorytm dfp:
function [x0, f0, iter]=dfp(x0, maxiter)
Algorytm ten wykorzystuje dane odnośnie kształtu funkcji z poprzedniego kroku. Jest Wydajniejszy od algorytmu naiwnego, nie potrzebuje określania wielkości kroku, wielkość iteracji potrzebna do uzyskania wyniku jest mniejsza.
Wykresy:
F1 naiwna
F1 dfp
F2 naiwna
F2 dfp
F3 naiwna
F3 dfp