Kamis, 06 Juni 2013

Program Simulasi Monte Carlo





i

Contoh Kasus
Diketahui peluang hujan =0.50, peluang angin=0.20 dan peluang gempa=0.001. buktikan bahwa peluang hujan, angin dan gempa terjadi bersamaan adalah 0.604.

P(hujan) = 0.50; P(angin) = 0.20; P(gempa) = 0.001;
Analisis
Probabilitas dari tiga kejadian Hujan, Angin dan Gempa secara bersamaan adalah probabilitas (kemungkinan kejadian) dari salah satu baik Hujan, Angin atau Gempa dapat diselesaikan dengan rumus inclusion-exclusion rule:
P(h+a+g) = P(h) + P(a) + P(g) – P(h.a) – P(h.g) – P(a.g) – P(h.a.g).
Dalam soal ini tidak diketahui intersection antara kejadian hujan, angin dan gempa ketika keduanya atau ketiganya terjadi bersamaan. Oleh karena itu, dari
Probability, Conditional Probability and Bayes Formula, Brani Vidakovic,
untuk menyelesaikan suatu persoalan probabilitias adalah dengan menyelesaikan probalitias komplemennya yaitu dengan rumus:
P(h+a+g) +P(h’+a’+g’) = 1, atau

P(h+a+g) = 1 – P(h’+a’+g’)

= 1 – ((1-0.50).(1-0.20).(1-0.001))

= 0.6004


Program Matlab
%Menghitung peluang dengan monte carlo
%Membuktikan nilai P(h+a+g)=0.6004
%Diketahui P(h)=0.50; P(a)=0.20; dan P(g)=0.001
%peluang2.m
N=input(‘Masukkan jumlah percobaan :’);
Kejadian=0;
for nloops=1:N
h=rand(1); % Random hujan
a=rand(1); % Random angin
g=rand(1); % Random gempa
if (h <=0.50) || (a<=0.20) || (g<=0.001)
Kejadian=Kejadian+1;
end
end
Peluang=Kejadian/N; % Peluang terjadi hujan angin gempa
disp(‘Peluang hujan, angin dan gempa bersamaan’),disp(Peluang);

Hasil
Jumlah Percobaan
Peluang (hujan+angin+gempa)
1000
0.5830
10.000
0.5976
100.000
0.6021
1.000.000
0.6001
10.000.000
0.6003
100.000.000
0.6004
Ternyata dengan program ini nilai probabilitas P(h+a+g) mencapai nilai 0.6004 pada percobaan 100.000.000 kali.






















Simulasi Hasil Lemparan Uang Koin Dengan Matlab

Merupakan simulasi stokastik dimana hasil yang diperoleh merupakan peluang/probabilitas yang dihubungkan dengan terjadinya peristiwa tersebut dalam beberapa keadaan. Simulasi ini menggunakan distribusi binomial dimana hanya menghasilkan dua hasil, seperti menang/kalah, sukses/gagal, sehat/sakit.
Dalam kasus ini kita menggunakan lemparan uang koin untuk menjelaskan hal itu. Misalkan kita memiliki uang logam Rp 1000.
 Tulisan 1000 pada koin, kita anggap sebagai menang dengan rentang 1.0 > x ≥ 0.5, sedangkan gambar angklung pada koin kita anggap sebagai kalah dengan rentang 0.5 > x ≥ 0.
Sehingga :
P(0.5 > x ≥ 0) = P(1.0 > x ≥ 0.5) = 0.5
Kita menggunakan Fungsi rand () untuk membangkitkan bilangan acak dalam Matlab.  Contoh 1 :
Pada Command Window Matlab
» x = rand
 x = 0,3544
Contoh 2 :
Pada Command Window Matlab
» x = rand (1,4)
x =
     0.4477   0.6371   0.1513   0.4738
Berikut listing program pada M-File :
a = 1000;
b = rand(1,a);
c = find(b>0.5);
d = find(b<0.5);
f = size(c,2);
g = size(d,2);
plot(1:a,b)
line(0:100,0.5,'Color','red','LineStyle','-');
text(100,0.5,'  Batas Kemungkinan','FontSize',11);
text(120,0.7,sprintf('Menang = %d Kali',f),'HorizontalAlignment',...
'center','BackgroundColor',[.1 .9 .1],'FontSize',15,'Margin',7);
text(120,0.3,sprintf('Kalah = %d Kali',g),'HorizontalAlignment',...
'center','BackgroundColor',[.9 .0 .0],'FontSize',15,'Margin',7);
title('Simulasi Hasil Lemparan Uang Koin');
xlabel('Jumlah Lemparan');
ylabel('Kemungkinan');
Kemudian di run menampilkan hasil :
Setelah di run untuk kedua kalinya menghasilkan :
Kesimpulan :
  • Untuk memperoleh kemenangan dalam lemparan uang koin tidak dapat dipastikan.
  • Dari hasil simulasi 20 kali, dapat diambil kesimpulan bahwa jumlah menang dan kalah sama