Uniwersytet Warmińsko – Mazurski w Olsztynie
Wydział Nauk Technicznych
Mechatronika
ALGORYTMY I METODY NUMERYCZNE
Ćwiczenie Nr 7
METODY OPTYMALIZACJI.
Wykonał:
Za pomocą funkcji fminbnd MATLAB-a wyznaczyć minimum funkcji
w przedziale [0; 2]. Przedstawić wykres funkcji.
Rozwiązanie :
fminbud (‘sin’, 0,2*pi)
x=[0:0.1:2*pi]
y=sin(x)
plot(y)
Wynik:
xmin= 4.71239108120009
ymin=-0.99999999999779~1 %wartość minimalna funkcji dla przedziału (0,2π)
Za pomocą funkcji fminbnd MATLAB-a wyznaczyć minimum funkcji
w przedziale [0; 5]. Przedstawić wykres funkcji.
Rozwiązanie :
fminbnd('((x-3)^2-1)',0,5)
x=[0:0.1:6];
y=((x-3).*(x-3))-1
plot(x,y)
xmin= 3
ymin= -1
Za pomocą funkcji fmincon MATLAB-a wyznaczyć minimum funkcji
przy początkowym znaczeniu =[10; 10;10] i ograniczeniach
Rozwiązanie :
x0=[10;10;10]
A=[-1,-2,-2;1,2,2]
B=[0;72]
z=fmincon(@funkcja,x0,A,B)
kod pliku o nazwie funkcja.m :
function f=funkcja(x)
f=-x(1)*x(2)*x(3)
z1= 23.99996314767320
z2=11.99999365045199
z3= 12.00002477571141
Za pomocą funkcji fminimax MATLAB-a rozwiązać zadanie minimaxne dla zestawu 5 funkcji , gdzie
Rozwiązanie :
function f=jeden(x)
y(1)= 2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;
y(2)= -x(1)^2 - 3*x(2)^2;
y(3)= x(1) + 3*x(2) -18;
y(4)= -x(1)- x(2);
y(5)= x(1) + x(2) - 8;
x0 = [0.1; 0.1];
[x,fval] = fminimax(@jeden,x0)
WYNIK :
x = 4.0000
Za pomocą funkcji fminsearch MATLAB-a wyznaczyć minimum funkcji
przy początkowym znaczeniu =2.
Rozwiązanie :
function y=jeden(x);
y=sin(x)+3
x2=2;
x = fminsearch(@jeden,x2)
WYNIK :
x = 4.7124
Za pomocą funkcji fminunc MATLAB-a wyznaczyć minimum funkcji
przy początkowym znaczeniu =[1; 1].
Rozwiązanie :
function y=jeden(x);
y=3*x(1)^2+2*x(1)*x(2)+x(2)^2
x0=[1;1];
x = fminunc(@jeden,x0)
WYNIK :
x = 1.0e-006
x = 0.2541
x = -0.2029
Za pomocą funkcji linprog MATLAB-a wyznaczyć minimum funkcji
przy ograniczeniach
Rozwiązanie :
function y=jeden(x);
y=5*x(1)-4x(2)-6*x(3);
A=[1 -1 1; 3 2 4; 3 2 0];
b=[20; 42; 30];
f10=[-5 -4 -6];
x1=linprog(f10,A,b,[],[],[0 0 0],[])
WYNIK :
x1 = 0.0000
x1 = 15.0000
x1 = 3.0000