SOLUSI PERSAMAAN LINEAR DENGAN ” LINPROG ”MATLAB (TUGAS 2 )


Dengan menggunakan Matlab, dapat diperoleh solusi persamaan linear. Linprog Matlab menggunakan format berikut untuk program linaer,
linprog : Solve linear programming problems
Equation : Finds the minimum of a problem specified by

f, x, b, beq, lb, and ub are vectors, and A and Aeq are matrices.
Syntax
x = linprog(f,A,b)
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
x = linprog(problem)
[x,fval] = linprog(...)
[x,fval,exitflag] = linprog(...)
[x,fval,exitflag,output] = linprog(...)
[x,fval,exitflag,output,lambda] = linprog(...)
Description
linprog solves linear programming problems.
x = linprog(f,A,b) solves min f'*x such that A*x ≤ b.
x = linprog(f,A,b,Aeq,beq) solves the problem above while additionally satisfying the equality constraints Aeq*x = beq. Set A = [] and b = [] if no inequalities exist.
x = linprog(f,A,b,Aeq,beq,lb,ub) defines a set of lower and upper bounds on the design variables, x, so that the solution is always in the range lb ≤ x ≤ ub. Set Aeq = [] and beq = [] if no equalities exist.

KASUS I : ROTI MAROS DAN JALANGKOTE

Persaaman dan pertidaksamaan Linear pada kasus I :

A. Fungsi Tujuan (ingin dimaksimasi)
• J(x,y) = 500x + 150y

B. Fungsi kendala:

  • Kendala tepung : 0.2x + 0.02y <= 35
  • Kendala telur : 0.5x + 0.2y <=200

C. Konversi persamaan diatas kedalam matriks sesuai format matlab :



Kemudian ambil batasan :
Batas bawah (Lower Boundary) LB = 0 dan Batas atas (Upper Boundary)  UB =1000
Karena format umum matlab untuk tujuan minimasi fungsi, maka untuk memaksimumkan suatu fungsi tujuan, maka matrik fungsi tujuan (C) tersebut dijadikan “negatif” pada biaya satuan. Secara lengkap hal ini dapat dilihat pada listing program
.
D. Listing Program

%Optimisasi Penjualan Roti maros dan Jalangkote
clear
clc
A=[0.2 0.02;0.5 0.2];
b=[35;200];
C=-[500;150]; fungsi tujuan dinegatifkan
LB=zeros(2,1);
UB=[1000;1000];
[X,J,exitflag]=LINPROG(C,A,b,[],[],LB,UB)
disp('')
disp('')
disp(' " PENJUALAN ROTI MAROS DAN JALANGKOTE " ')
disp('--------------------------------------------------')
disp(['Jumlah Roti Maros yang dijual(X1)=' num2str(X(1))])
disp(['Jumlah Jalangkote yang dijual(X2)=' num2str(X(2))])
disp(['Keuntungan Penjualan Maksimum Rp.= ' num2str(J)])
disp('--------------------------------------------------')

Output Program :

Optimization terminated.

X =

100.0000
750.0000


J =

-1.6250e+005


exitflag =

1

" PENJUALAN ROTI MAROS DAN JALANGKOTE "
--------------------------------------------------
Jumlah Roti Maros yang dijual(X1)=100
Jumlah Jalangkote yang dijual(X2)=750
Keuntungan Penjualan Maksimum Rp.= -162500
--------------------------------------------------
Kesimpulan : Hasil yang diproleh sama dengan metode grafik
Catatan :
• Tanda minus berarti fungsi tujuan dimaksimasi, sementara format umum linprog matlab untuk tujuan minimasi.
• Solusi optimum diperoleh meskipun tidak dipergunakan matriks Aeq dan Beq tapi kita Set Aeq=[ ] dan Beq = [ ] pada perintah [X,J,exitflag]=LINPROG(C,A,b,[],[],LB,UB)
• exitflag = 1 menunjukan bahwa diperoleh solusi convergen dari fungsi x
exitflag = -2 No feasible point was found.
dst....dpt dilihat pada help matlab






KASUS II : COTO DAN SOP SAUDARA

Dengan cara yang sama pada kasus I dengan memasukan koefesian persamaan dan pertidaksamaan linear dalam matriks sesuai format Matlab. Karena bentuk baku matlab pertidaksamaan <= maka untuk pertidaksamaan yang berbentuk  >= ,maka diubah menjadi  <= dengan memberi tanda negatif pada kedua sisi pertidaksamaan.



C .Listing Program

%Optimisasi belanj coto dan sop saudara
clear
clc
A=[5 10 ; -20 -30 ; 15 15 ; -25 -25 ];
b=[100 ; -200 ; 250 ; -200];
C=[5000 ; 10000 ];
LB=zeros(2,1);
UB=[10000;10000;];
[x,J,exitflag]=LINPROG(C,A,b,[],[],LB,UB)
disp('')
disp('')
disp(' OPTIMISASI BELANJA COTO dan SOP SAUDARA ')
disp('=============================================================')
disp(['Jumlah porsi coto/pekan yang dikonsumsi (x1)= ' num2str(x(1))])
disp(['Jumlah porsi sop saudara/pekan yang dikonsumsi (x2)= ' num2str(x(2))])
disp(['Biaya konsumsi minimum Rp.= ' num2str(J)])
disp('=============================================================')


Output Program :
Optimization terminated.

x =

10.0000
0.0000 X1 = 10 dan X2 = 0


J =

5.0000e+004


exitflag =

1

OPTIMISASI BELANJA COTO dan SOP SAUDARA
=============================================================
Jumlah porsi coto/pekan yang dikonsumsi (x1)= 10
Jumlah porsi sop saudara/pekan yang dikonsumsi (x2)= 5.2774e-011
Biaya konsumsi minimum Rp.= 50000
=============================================================
Kesimpulan : Hasilnya Sama ( perbedaan pembulatan format angka ) dengan metode grafik

Comments (0)

Isi Blog ini diposting dari tugas-tugas kuliah, catatan pribadi, dan berbagai bacaan yang bersumber dari buku, internet dll