Aplikasi Sederhana Optimasi

 

OPTIMIZATION WITH MATLAB

DENGAN LEVENBERG MARQUARDT

Sumber : Griva, I., Nash, S. G., Sofer, A., 2009, Linier and Non Linier Optimization 2nd
Edition, SIAM



DAFTAR ISI
1. Tujuan
2. Teori
3. Fungsi
4. Percobaan
5. Video

1. Tujuan

Bertujuan untuk menjelaskan, secara matematis, tujuan menyelesaikan masalah dalam jalan terbaik


2. Teori

Problem optimasi secara tipikal akan memaksimalkan atau meminimalkan suatu fungsi yang disebut fungsi obyektif (objective function) pada himpunan titik-titik S (feasible set).

LEVENBERG MARQUARDT

Algoritma Levenberg–Marquardt adalah salah satu algoritma yang digunakan untuk memperkirakan hasil berikutnya berdasarkan data-data yang sudah ada sebelumnya. Contoh yang dibahas kali ini adalah mengenai memperkirakan penjualan pada periode berikutnya berdasarkan data penjualan pada periode sebelumnya. Algoritma ini biasa digunakan dalam menyelesaikan permasalahan nonlinier yang menggunakan prinisip pencarian nilai minimum berdasarkan jumlah kuadrat terendah. Proses ini biasanya ditemukan dalam kasus penyesuaian data ke dalam sebuah kurva. Dalam kasus penerapannya ke dalam pemrograman, algoritma Levenberg–Marquardt kemudian dimodifikasi untuk diterjemahkan ke dalam bahasa pemrograman FORTRAN oleh Fletcher, sehingga algoritma ini terkadang disebut juga sebagai algoritma Levenberg–Marquardt-Fletcher

3. Fungsi




Problem: menemukan nilai 𝑥1 dan 𝑥2 sedemikian sehingga fungsi obyektif menjadi optimal.

4. Percobaan


Data yang digunakan :

t

data

1

5.1

2

4

3

6.7

4

5

5

9.2

6

7.8

7

10

8

5

9

10.3

10

11.1




Listing program Objective 1


Listing program Objective 2






5. VIDEO PERCOBAAN






Download File : 
Matlab : Download
Video : Download


Listing Program :

 Fungsi Objektif 1:

function F = twoexpsmooth(par,data)

% par: parameter pemulusan, matriks (2,1)

% data


a = length(data);

L = zeros(a,1)

b = zeros(a,1)

F = zeros(a,1)

L(1) = (data(1)+data(2)+data(3)/3;

b(1) = data(2)-data(1);

F(1) = (data(1)+data(2)+data(3)/3;


for t = 2 : a,

    L(t) = par(1)*data(t)+(1-par(1))*(L(t-1)+b(t-1));

    b(t) = par(2)*(L(t)-L(t-1))+(1-par(2))*b(t-1);

    F(t) = L(t-1) + b(t-1);

end


Proses Optimasi

clc

option = optimset ('To1Fun', 1e-4, 'Display', 'iter', 'Algoritma', 'Levenberg-marquardt')

%ydata = randi([10 50], 10, 1);

ydata = [5.1;4;6.7;5;9.2;7.8;10;5.3;11.1];

xdata = linspace(1,10,10)';

x0 = [0.1;0.2];

[par,renosnorm] = lsqcurvefit(@(par,data)twoexpsmooth(par,ydata),x0,xdata,ydata,[0;0],[1;1],option)


Tidak ada komentar:

Posting Komentar