Tugas 3/10/2009
SOAL
Gunakan titik awal [6,6],[6,-6],[-6,6],[-6,-6]. Gunakan dua stopping criteria yaitu abs(sum(grad(xk)))=epsilon dan
deltax=xk-(xk-1)=epsilon.
Epsilon=10e-8.
Fungsi Himmelblau adalah f(x)=(x12+x2-11)2+(x1+x22-7)2
JAWABAN
Penggunaan metode Newton Raphson untuk fungsi Himmelblau menghasilkan output sebagai berikut:
Titikawal (x) | abs(sum(grad(xk)))=epsilon | deltax=xk-(xk-1)=epsilon | |||||||
iterasi | Xopt | Fungsi x | iterasi | Xopt | Fungsi x | ||||
[6,6] | 7 | [3.0000 2.0000] | 1.3960e-020 | 8 | [3 2] | 0 | |||
[-6,6] | 6 | [-2.8051 3.1313] | 4.8548e-018 | 7 | [-2.8051 3.1313] | 7.8886e-031 | |||
[6,-6] | 7 | [3.5844 -1.8481] | 1.5139e-018 | 8 | [3.5844 -1.8481] | 0 | |||
[-6,-6] | 6 | [-3.7793 -3.2832] | 4.1806e-024 | 7 | [-3.7793 -3.2832] | 7.8886e-031 | |||
Sedangkan, penggunaan metode Steepest Descent untuk fungsi Himmelblau menghasilkan output sebagai berikut:
Titik awal (x) | abs(sum(grad(xk)))=epsilon | deltax=xk-(xk-1)=epsilon | ||||||
iterasi | Xopt | Fungsi x | iterasi | Xopt | Fungsi x | |||
[6,6] | 20 | [-3.7793 -3.2832] | 1.5924e-017 | 17 | [-3.7793 -3.2832] | 2.3117e-014 | ||
[-6,6] | 79 | [3.0000 2.0000] | 6.3002e-016 | 64 | [3.0000 2.0000] | 4.7038e-012 | ||
[6,-6] | 67 | [3.0000 2.0000] | 6.3587e-016 | 52 | [3.0000 2.0000] | 4.7475e-012 | ||
[-6,-6] | 24 | [-3.7793 -3.2832] | 3.0874e-017 | 21 | [-3.7793 -3.2832] | 4.8928e-014 | ||
Dapat disimpulkan:
- Jadi, pada Metode Newton Raphson, stopping criteria (abs(sum(grad(xk)))=epsilon) menyebabkan iterasi menjadi lebih sedikit daripada stopping criteria (deltax=xk-(xk-1)=epsilon).
- Sedangkan, pada metode Steepest Decent, stopping criteria (abs(sum(grad(xk)))=epsilon) menyebabkan iterasinya menjadi banyak daripada dengan stopping criteria (deltax=xk-(xk-1)=epsilon).
- Metode Newton Raphson menghasilkan iterasi lebih sedikit daripada Steepest Decent.
- Metode Newton Raphson menghasilkan solusi yang lebih optimal (nilai fungsi (x) kecil) dibandingkan dengan Steepest Decent.
M-file yang digunakan:
1.M-file fungsi Newton dengan stopping criterion 1, abs(sum(himmel1(x)))>10e-8
function xopt=newtonrap(x)
%program untuk Newton-raphson
hasil1=[];
i=1;
while abs(sum(himmel1(x)))>10e-8
xk=x-himmel1(x)*inv(himmel2(x));
x=xk;
hasil=[i xk himmel(xk)];
hasil1=[hasil1;hasil];
i=i+1;
end
xopt=xk
hasil1
2.M-file fungsi Newton dengan stopping criterion 2, deltax=xk-(xk-1)=10e-8
function xopt=newtonrap2(x)
%program untuk Newton-raphson
deltax=[200 200];
hasil1=[];
i=1;
while abs(deltax)>10e-8
xk=x-himmel1(x)*inv(himmel2(x));
deltax=xk-x;
x=xk;
hasil=[i xk himmel(xk)];
hasil1=[hasil1;hasil];
i=i+1;
end
xopt=xk
hasil1
3.M-file fungsi Steepest Decent dengan stopping criterion 1, abs(sum(himmel1(x)))>10e-8
function xopt=steepest(x)
%program untuk Steepest-decent
hasil1=[];
i=1;
alpha=0.01;
while abs(sum(himmel1(x)))>10e-8
xk=x-alpha*himmel1(x);
x=xk;
hasil=[i xk himmel(xk)];
hasil1=[hasil1;hasil];
i=i+1;
end
xopt=xk
hasil1
4.M-file fungsi Steepest Decent dengan stopping criterion 2, deltax=xk-(xk-1)=10e-8
function xopt=steepest2(x)
%program untuk Steepest-decent
deltax=[200 200];
hasil1=[];
i=1;
alpha=0.01;
while abs(deltax)>10e-8
xk=x-alpha*himmel1(x);
deltax=xk-x;
x=xk;
hasil=[i xk himmel(xk)];
hasil1=[hasil1;hasil];
i=i+1;
end
xopt=xk
hasil1
5.M-file fungsi Himmelblau 1
function y = himmel(x)
y = (x(1)^2+x(2)-11)^2+(x(1)+x(2)^2-7)^2
6.M-file fungsi Himmelblau 2
function f = himmel1(x)
f = [4*x(1)^3+4*x(1)*x(2)-42*x(1)+2*x(2)^2-14 2*x(1)^2-26*x(2)+4*x(1)*x(2)+4*x(2)^3-22];
7.M-file fungsi Himmelblau 3
function g = himmel2(x)
g = [12*x(1)^2+4*x(2)-42 4*x(1)+4*x(2); 4*x(1)+4*x(2) 4*x(1)+12*x(2)^2-26];
0 komentar:
Post a Comment
thanks for stopping by