PENYELESAIAN MASALAH OPTIMISASI NONLINEAR BERKENDALA DENGAN METODE FUNGSI PENALTI INTERIOR
1. Tujuan
Bertujuan untuk memberi wawasan dan pengetahuan kepada pembaca dengan pengertian dasar tentang bagaimana cara menyelesaikan masalah optimisasi Program Nonlinear dengan kendala dengan Metode Fungsi Penalti Interior.
2. Konsep Dasar Fungsi Penalti
Salah satu cara untuk mengubah masalah optimisasi berkendala menjadi masalah optimisasi tak berkendala adalah dengan metode fungsi penalti. Dalam kehidupan sehari-hari penalti yang berarti hukuman terjadi karena adanya pelanggaran. Dengan demikian, dalam masalah optimisasi berkendala fungsi penalti terjadi karena adanya pelanggaran, yaitu dengan menghilangkan kendala pada masalah optimisasi tersebut.
Rumus Metode Fungsi Penalti untuk masalah berkendala dengan kendala berbentuk pertidaksamaan dapat dibagi menjadi dua kategori yaitu metode fungsi penalti interior dan metode fungsi penalti eksterior. Rumus metode fungsi penalti interior yang sering digunakan berbentuk :
3. Flowchart
4. Percobaan
miu =
input('Taksiran awal miu : '); n = input('Iterasi maksimum : '); beta =
0.1;
k=1;
e = 0.00001;
miu = 1000; clc;
fprintf('Taksiran awal miu : %10.5f\n',miu);
fprintf('\n
CONTOH METODE FUNGSI PENALTI INTERIOR \n\n');
fprintf('===================================================================== \n');
fprintf(' Iterasi miu x1 x2 min(miu) f(miu) miu_Bx \n'); fprintf('===================================================================== \n');
while
k <= n
x1 = power(
(power(miu,0.5)+1), 0.5 ); x2 = power(miu,0.5);
miu_Bx =
power(miu,0.5) - ( 1 / ( (1/miu) - power ( ( (1 / power(miu, 3/2)) + ( 1 /
power(miu, 2) ) ), 0.5 ))); min_miu_depan = ( (1/3)
* power((x1 + 1), 3) ) + 2*x2;
min_miu_blkng
= 1 / ( (1/miu) - power ( ( (1 / power(miu, 3/2)) + ( 1 / power(miu, 2) ) ),
0.5 ) ); min_miu = min_miu_depan - min_miu_blkng;
f_miu = ( (1/3) * power((x1 + 1), 3) ) +
x2;
fprintf('%3d %10.5f
%8.5f %8.5f %9.5f %9.5f %9.5f\n',
k,miu,x1,x2,min_miu,f_miu,miu_Bx); if
miu_Bx < e
break end k=k+1;
miu = beta *
miu; end
fprintf('============================================================= \n');
fprintf('Pada
saat iterasi ke -%d,miu_Bx<%5.5f.\n',k,e);
fprintf('Jadi
nilai miu yang meminimalkan min(miu) adalah : x1 x2 =%8.5 f\n',x1,x2); end
Tidak ada komentar:
Posting Komentar