Professional Documents
Culture Documents
NIM : F1A118040
Hasil Run:
clc
clear
format long
tic;
disp(' CYCLIC COORDINATE METHODE
')
% Function Definition (Enter your Function here):
syms X Y;
f =(X-4)^2-(Y-1*Y)^2;
% Convergence Parameters:
F = subs(f, [X,Y], [x(1),y(1)]);
f_plus = I + e*S;
F_plus = subs(f, [X,Y], [f_plus(1), f_plus(2)]);
f_minus = I - e*S;
F_minus = subs(f, [X,Y], [f_minus(1), f_minus(2)]);
% Search Direction:
if F_minus < F
S = -S;
else
S = S;
end
% Optimization Algorithm:
while ((double(F) > double(F_minus))||(double(F) > double(F_plus)))
syms h; % Step size
g = subs(f, [X,Y], [x(i)+S(1)*h,y(i)+h*S(2)]);
dg_dh = diff(g,h);
h = solve(dg_dh, h); % Optimal Step Size
x(i+1) = I(1)+h*S(1); % New x value
y(i+1) = I(2)+h*S(2); % New y value
i = i+1;
I = [x(i),y(i)]'; % Updated Point
if rem(i,2) == 0
S = [0 1]';
else
S = [1 0]';
end
F = subs(f, [X,Y], [x(i),y(i)]);
f_plus = I + e*S;
F_plus = subs(f, [X,Y], [f_plus(1), f_plus(2)]);
f_minus = I - e*S;
F_minus = subs(f, [X,Y], [f_minus(1), f_minus(2)]);
if double(F_minus) < double(F)
S = -S;
else
S = S;
end
end
toc
% Result Table:
Iter = 1:i;
X_coordinate = x';
Y_coordinate = y';
Iterations = Iter';
T = table(Iterations,X_coordinate,Y_coordinate);
% Output:
fprintf('Initial Objective Function Value: %d\n\n',subs(f,[X,Y],
[x(1),y(1)]));
if ((double(F)>=double(F_minus))||(double(F)>=double(F_plus)))
fprintf('Minimum succesfully obtained...\n\n');
end
fprintf('Number of Iterations for Convergence: %d\n\n', i);
fprintf('Point of Minima: [%d,%d]\n\n', x(i), y(i));
fprintf('Objective Function Minimum Value after Optimization: %f\n\n',
subs(f,[X,Y], [x(i),y(i)]));
disp(T)
Hasil Run:
CYCLIC COORDINATE METHODE
Elapsed time is 2.537411 seconds.
Initial Objective Function Value: 9
Minimum succesfully obtained...
Number of Iterations for Convergence: 2
Point of Minima: [4,-7]
Objective Function Minimum Value after Optimization: 0.000000
function y = f(x)
z = @(x,y)(x-4)^2-(y-1*y)^2;
y = z(x(1), x(2));
end
fprintf('==============================================================\
n');
endpt = xbefore;
end
Hasil Run:
iters =
19
endpt =
4 3
C. Metode Rosenbrock
close all; clear; clc;
% Objective function
function f = rosenbrock_func(in)
% Unpack inputs
x = in(1);
y = in(2);
% The Rosenbrock function in 2D
f = (x - 4)^2 - (y - 1*y)^2;
end
Hasil Run:
First-order
Iteration Func-count f(x) Step-size optimality
0 3 16 8
1 6 9 0.125 6
2 9 0 1 5.96e-08