Zadatak za treću lab. vježbu

Ova se vježba, osim implementacije u C++-u, izvodi i uporabom programskog paketa MATLAB.

1. C++

Načiniti progamsku implementaciju jedne od metoda optimiranja funkcija više varijabli:

Dodatni zahtjevi za pojedine postupke:

2. MATLAB

Potrebno je odabrati dvije optimizacijske funkcije (na dnu stranice), definirati ih kao funkcije u MATLABU i pronaći njihov minimum uporabom ugrađenih MATLABovih funkcija. Neke od funkcija za optimiranje su sljedeće:

Optimizacijske funkcije se u MATLAB-u mogu definirati u posebnim .m datotekama, kao u sljedećem primjeru:

function f = apr_primjer(x)  % mora biti u prvom retku!
% Bezvezna funkcija dvije varijable
f = x(1) + x(2);

Datoteku je potrebno nazvati istim imenom kao i funkcija (apr_primjer.m). Iz MATLAB-a se funkciji tada može pristupiti sa:

apr_primjer([1,1])

Osim .m datoteka sa definicijom funkcija, također napisati i skriptu u kojoj se pozivima navedenih ugrađenih funkcija pronalaze minimumi. Rješenja u MATLAB-u možete usporediti sa onima dobivenim vašim programom. BONUS: moguće je zaraditi dodatni 1 bod ako odabrane 2-dim funkcije i nacrtate (3D graf), ali samo u tjednu u kojemu vježba vrijedi 3 boda.

Recommended reading u MATLAB Helpu (pored navedenih ugrađenih funkcija):

3. Optimizacijske funkcije (traži se minimum!):

f1(x,y) = 10*(x2-y)2+(1-x)2
(Rjesenje: X = (1,1) )

f2(x,y) = (x-4)2 + 4(y-2)2
(Rjesenje: X = (4,2) )

f3(x1,x2,x3,x4,x5) = (x1-p1)2 + (x2-p2)2 + ... + (x5-p5)2
gdje su p1, p2, .. p5 parametri koji se učitavaju iz datoteke u obliku vektora.
(Rjesenje: X = (p1,p2,...,p5) )

f4(x,y) = |(x-y)*(x+y)| + (x2+y2)0.5
(Rjesenje: X = (0,0) )