Membangkitkan Bilangan Acak Menggunakan Matlab

dokumen-dokumen yang mirip
Membangkitkan Bilangan Acak Menggunakan Matlab. Achmad Basuki

4. BILANGAN ACAK dan Pembangkitannya

PEMBANGKIT BILANGAN ACAK (Random Number Generator)

Distribusi Bilangan Acak

BAB 3 PEMBANGUNAN MODEL SIMULASI MONTE CARLO. Simulasi Monte Carlo merupakan salah satu metode simulasi sederhana yang

BILANGAN ACAK (RANDOM NUMBER)

PEMBANGKIT BILANGAN ACAK

PembangkitVariabelRandom

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS DAN PERANCANGAN. Perancangan game mencocokkan gambar ini dibuat agar dapat berjalan

STK 572 Manajemen Data Statistik

PEMROGRAMAN KOMPUTER KODE MODUL: TIN 202 MODUL III LINEAR PROGRAMMING DAN VISUALISASI

Distribusi Peluang Kontinu. Bahan Kuliah II2092 Probabilitas dan Statistik Oleh: Rinaldi Munir Sekolah Teknik Elektro dan Informatika ITB

PEMBANGKIT BILANGAN RANDOM RANDON NUMBER GENERATOR (RNG)

Fungsi Kepadatan Probabilitas

PERANCANGAN SISTEM APLIKASI UNDIAN BERHADIAH PADA PT. PS MAJU BERSAMA MENGGUNAKAN LINEAR CONGRUENT METHOD (LCM)

BAB I PENDAHULUAN. Keterampilan membaca sangat diperlukan oleh semua orang yang

BAB 2 LANDASAN TEORI

Fungsi Kepadatan Probabilitas

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

Mata Kuliah Pemodelan & Simulasi

PERANCANGAN SIMULASI PENGACAKAN SOAL TRYOUT UNTUK MEMBENTUK PAKET SOAL UJIAN NASIONAL MENGGUNAKAN LINEAR CONGRUENT METHOD (LCM)

MODIFIKASI METODE LINEAR CONGRUENTIAL GENERATOR UNTUK OPTIMALISASI HASIL ACAK

BAB III ANALISIS DAN PERANCANGAN

BAB 2 TINJAUAN PUSTAKA DAN DASAR TEORI. adalah linear congruent method (LCM). Bahasa Pemrograman yang digunakan

IMPLEMENTASI LINEAR CONGRUENT METHOD (LCM) UNTUK PENGACAKAN SOAL UJIAN BERKATEGORI

TENTANG UTS. Penentuan Cadangan, hal. 1

BAB I PENDAHULUAN. penulis melihat pada perkembangan zaman saat ini yang tidak terlepas dari

Fungsi Kepadatan Probabilitas/Probability Density Function-PDF

APLIKASI RANDOM BANK SOAL UJIAN NASIONAL SEKOLAH DASAR MENGGUNAKAN METODE LINEAR CONGRUENTIAL GENERATORS (LCG)

PEMODELAN BILANGAN ACAK DAN PEMBANGKITANNYA. Pemodelan & Simulasi

PEMBANGKIT RANDOM VARIATE

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB IV APLIKASI JARAK MAHALANOBIS

Simulasi Monte Carlo

METODE MONTE CARLO. Pemodelan & Simulasi TM11

MODUL I PENGENALAN MATLAB

PENS. Probability and Random Process. Topik 4. Variabel Acak dan Distribusi Probabilitas. Prima Kristalina April 2015

Universitas Gadjah Mada Fakultas Teknik Departemen Teknik Sipil dan Lingkungan ANALISIS FREKUENSI. Statistika dan Probabilitas

PENERAPAN LEARNING DALAM PROSES UJIAN MENGGUNAKAN LINEAR CONGRUENT METHOD (LCM) PADA SMP DARUL ARQAM MUHAMMADIYAH GOMBARA MAKASSAR

Penerapan Linear Congruent Method Pada Game Edukasi Tebak Huruf Hiragana Dan Katakana Berbasis Android

PRAKTIKUM 1 SINYAL, SYSTEM, DAN KONTROL PENGENALAN MATLAB 1. Percobaan 1 Vektor Penulisan vektor di MATLAB

Bab IV Simulasi dan Pembahasan

METODE MONTE CARLO. Presented by Muchammad Chusnan Aprianto Dr.KHEZ Muttaqien Istitute of Technology

CNH3E3 PROSES STOKASTIK Peubah Acak & Pendukungnya

DISTRIBUSI PROBABILITAS KONTINYU. Nur Hayati, S.ST, MT Yogyakarta, Maret 2016

BAB II TINJAUAN PUSTAKA. (b) Variabel independen yang biasanya dinyatakan dengan simbol

POLINOM (SUKU BANYAK) Menggunakan aturan suku banyak dalam penyelesaian masalah.

Jurusan Teknik Sipil dan Lingkungan Universitas Gadjah Mada STATISTIKA. Distribusi Normal. 1-Sep-14

PERANCANGAN APLIKASI KUIS WAWASAN KEBANGSAAN MENGGUNAKAN METODE LINEAR CONGRUENT METHODS (LCM)

Probabilitas dan Statistika Fungsi Distribusi Peluang Kontinyu. Adam Hendra Brata

APLIKASI TEBAK GAMBAR PAHLAWAN DAN CANDI INDONESIA MENGGUNAKAN METODE LINEAR CONGRUENT METHOD (LCM)

BAB 2 LANDASAN TEORI

Muttaqin 1, Atthariq 2, Mursyidah 3

MODUL 1. Command History Window ini berfungsi untuk menyimpan perintah-perintah apa saja yang sebelumnya dilakukan oleh pengguna terhadap matlab.

BAB 2 LANDASAN TEORI

Modul 2 Kontrol Program. Tujuan Memahami logika alur program Mampu menggunakan sintaks kontrol program dalam pemrograman

Probabilitas dan Statistika Variabel Acak dan Fungsi Distribusi Peluang Diskrit. Adam Hendra Brata

BAB II TINJAUAN PUSTAKA

Dasar-dasar Statistika Pemodelan Sistem

Menjelaskan pengertian distribusi binomial, mengidentifikasi eksperimen binomial dan menghitung probabilitas binomial, menghitung ukuran pemusatan

ESTIMASI PARAMETER DISTRIBUSI WEIBULL DENGAN TRANSFORMASI MODEL REGRESI MENGGUNAKAN METODE KUADRAT TERKECIL LINIER

Aplikasi Teori Bilangan Bulat dalam Pembangkitan Bilangan Acak Semu

Bab 2 LANDASAN TEORI

PERBANDINGAN WAKTU AKSES ALGORITMA FISHER- YATES SHUFFEL DAN LINEAR CONGRUENT METHOD PADA SOAL TRY-OUT BERBASIS WEB

Perancangan Sistem Media Pembelajaran Balita (Game Akez) dengan Metode Linear Congruentials Generator (LCG)

STATISTIKA UNIPA SURABAYA

BAB IV KESIMPULAN DAFTAR PUSTAKA LAMPIRAN... 64

BAB III PEMROGRAMAN MATLAB 2 Copyright by

BAB 3 METODOLOGI PENELITIAN

ESTIMASI PARAMETER DISTRIBUSI WEIBULL DENGAN TRANSFORMASI MODEL REGRESI MENGGUNAKAN METODE KUADRAT TERKECIL LINIER

RANDOM NUMBER GENERATOR DENGAN METODE LINEAR CONGRUENT

BAB II LANDASAN TEORI

Dasar-dasar Simulasi

SATIN Sains dan Teknologi Informasi

DISTRIBUSI SATU PEUBAH ACAK

Pembangkitan Bilangan Acak dengan Memanfaatkan Fenomena Fisis

PENDEKATAN INVERSE-TRANSFORM RANDOM VARIATE GENERATOR BERBASIS DISTRIBUSI GEOMETRI PADA PENGACAKAN RANDOM SAMPLING

BAB IV HASIL DAN PEMBAHASAN

Modul 1 Pengenalan MATLAB

FORMAT LAPORAN MODUL V DISTRIBUSI SAMPLING

Cara memperoleh data: Zaman dahulu, dgn cara : Melempar dadu Mengocok kartu

Bab 3 Kinerja Rata-rata dan Variabilitas

PEMODELAN DAN SIMULASI ANALISA SISTEM ANTRIAN PELAYANAN NASABAH DI PT SARANA SUMATERA BARAT VENTURA SSBV MENGGUNAKAN METODE MONTE CARLO

BAB IV IMPLEMENTASI DAN PENGUJIAN. simulasi untuk mengetahui bagaimana performanya dan berapa besar memori

#12 SIMULASI MONTE CARLO

PERTEMUAN 5 Metode Simpleks Kasus Minimum

Peubah Acak. 14-Sep-07 TPADF (Kelas Ganjil/ Rahmat) Lecture 2 page 1

BAB III VARIABEL ACAK DAN DISTRIBUSI PROBABILITAS

PERCOBAAN 1 PENGENALAN MATLAB UNTUK STATISTIK

Minggu 1 Review Peubah Acak dan Fungsi Distribusi. Minggu 4-5 Analisis Model MA, AR, ARMA. Minggu 6-7 Model Diagnostik dan Forecasting

SIMULASI MONTE CARLO UNTUK MENENTUKAN ESTIMASI CADANGAN MINYAK DI LAPANGAN X

BAB 4 KEKONSISTENAN PENDUGA DARI FUNGSI SEBARAN DAN FUNGSI KEPEKATAN WAKTU TUNGGU DARI PROSES POISSON PERIODIK DENGAN TREN FUNGSI PANGKAT

STUDI KASUS : SIMULASI MODEL PERMINTAAN SUPERMARKET DENGAN TEKNIK MONTECARLO

BAB III Algoritma Pelabelan Total Sisi-Ajaib Super

Sampling dengan Simulasi Komputer

2.3 Algoritma Tidak Berhubungan dengan Bahasa Pemrograman Tertentu

BAB II DISTRIBUSI FREKUENSI

Transkripsi:

Membangkitkan Bilangan Acak Menggunakan Matlab Achmad Basuki 2004

Materi Linear Congruent Method Metode Resuffle Fungsi Standard Membangkitkan Bilangan Acak Menampilkan Grafik Bilangan Acak

Pseudo Random Number Bilangan acak yang dibangkitkan oleh komputer merupakan bilangan acak semu, karena pembangkitannya menggunakan operasi-operasi aritmatika. Banyak algoritma atau metode yang dapat digunakan untuk membangkitkan bilangan acak.

Linear Congruent Method Linear Congruent Method (LCM) merupakan metode pembangkitkan bilangan acak yang banyak digunakan dalam program komputer. LCM memanfaatkan model linier untuk membangkitkan bilangan acak yang didefinisikan dengan: x n+1 = ( a x n + c ) mod m Dimana : x n = adalah bil. acak ke n a dan c adalah konstanta LCM m adalah batas maksimum bilangan acak

Contoh 1 Membangkitkan bilangan acak sebanyak 8 kali dengan a=2, b=7, m = 10 dan x(0)=2 x(1) = ( 2 (2) + 7 ) mod 10 = 1 x(2) = ( 2 (1) + 7 ) mod 10 = 9 x(3) = ( 2 (9) + 7 ) mod 10 = 5 x(4) = ( 2 (5) + 7 ) mod 10 = 7 x(5) = ( 2 (7) + 7 ) mod 10 = 1 x(6) = ( 2 (1) + 7 ) mod 10 = 9 x(7) = ( 2 (9) + 7 ) mod 10 = 5 x(8) = ( 2 (5) + 7 ) mod 10 = 7 Bilangan acak yang dibangkitkan adalah : 1 9 5 7 1 9 5 7 Terjadi pengulangan bilangan secara periodik (4)

Contoh 2 Membangkitkan bilangan acak sebanyak 8 kali dengan a=4, b=7, m = 15 dan x(0)=3 x(1) = ( 4 (3) + 7 ) mod 15 = 4 x(2) = ( 4 (4) + 7 ) mod 15 = 8 x(3) = ( 4 (8) + 7 ) mod 15 = 5 x(4) = ( 4 (5) + 7 ) mod 15 = 12 x(5) = ( 4 (12) + 7 ) mod 15 = 10 x(6) = ( 4 (10) + 7 ) mod 15 = 2 x(7) = ( 4 (2) + 7 ) mod 15 = 0 x(8) = ( 4 (0) + 7 ) mod 15 = 7 Bilangan acak yang dibangkitkan adalah : 4 8 5 12 10 2 0 7 Tidak terlihat pengulangan bilangan secara periodik

Contoh 3 Membangkitkan bilangan acak sebanyak 16 kali dengan a=4, b=7, m = 15 dan x(0)=3 x(1) = ( 4 (3) + 7 ) mod 15 = 4 x(9) = ( 4 (7) + 7 ) mod 15 = 13 x(2) = ( 4 (4) + 7 ) mod 15 = 8 x(10) = ( 4 (13) + 7 ) mod 15 = 14 x(3) = ( 4 (8) + 7 ) mod 15 = 5 x(11) = ( 4 (14) + 7 ) mod 15 = 3 x(4) = ( 4 (5) + 7 ) mod 15 = 12 x(12) = ( 4 (3) + 7 ) mod 15 = 4 x(5) = ( 4 (12) + 7 ) mod 15 = 10 x(13) = ( 4 (4) + 7 ) mod 15 = 8 x(6) = ( 4 (10) + 7 ) mod 15 = 2 x(14) = ( 4 (8) + 7 ) mod 15 = 5 x(7) = ( 4 (2) + 7 ) mod 15 = 0 x(15) = ( 4 (5) + 7 ) mod 15 = 12 x(8) = ( 4 (0) + 7 ) mod 15 = 7 x(16) = ( 4 (12) + 7 ) mod 15 = 10 Bilangan acak yang dibangkitkan adalah : 4 8 5 12 10 2 0 7 13 14 3 4 8 5 12 10 Terlihat pengulangan bilangan secara periodik (10)

Kesimpulan Pada LCM Terjadi pengulangan pada periode waktu tertentu atau setelah sekian kali pembangkitan, hal ini adalah salah satu sifat dari metode ini, dan pseudo random generator pada umumnya. Penentuan konstanta LCM (a, c dan m) sangat menentukan baik tidaknya bilangan acak yang diperoleh dalam arti memperoleh bilangan acak yang seakan-akan tidak terjadi pengulangan.

Membuat Fungsi Pembangkit Bilangan Acak Dengan LCM Tuliskan program fungsi di bawah ini dan simpan dalam nama file LCM.m function x=lcm(xs) % Membangkitkan bilangan acak dengan LCM a=23; c=15; m=257; x=mod(a*xs+c,m); Fungsi ini menghasilkan satu bilangan x, dengan memasukkan x sebelumnya (xs), sedangkan a, c dan m merupakan konstanta yang harus didefinisikan

Memanggil Bilangan Acak Dengan Fungsi LCM Membangkitkan 4 bilangan acak dengan x(0) = 10 adalah sebagai berikut: >> LCM(10) ans = 245 >> LCM(245) ans = 253 >> LCM(253) ans = 180 >> LCM(180) ans = 43

Memanggil Bilangan Acak Dengan Fungsi LCM Membangkitkan 20 bilangan acak dengan x(0) = 150 adalah sebagai berikut: >> xs=150; >> for i=1:20 x(i)=lcm(xs); xs=x(i); end >> x x = Columns 1 through 6 124 40 164 189 250 111 Columns 7 through 12 255 226 73 152 170 70 Columns 13 through 18 83 125 63 179 20 218 Columns 19 through 20 146 32

Metode Resuffle Metode ini melakukan pergantian posisi pada bilangan acak dengan mengupdate nilai bilangan acak pada posisi yang diganti. Metode Resuffle digunakan untuk memperbaiki bilangan acak dari LCM dengan menghilangkan sifat periodik yang ada pada bilangan acak.

Algoritma dari Metode Resuffle 1. Bangkitkan n bilangan acak a i [0,1] dengan LCM 2. Bangkitkan bilangan acak baru b [0,1] dengan LCM 3. Hitung k = n b 4. Hitung r = a k 5. Hitung a k = b 6. Ambil nilai r sebagai sebagai bilangan acak baru dan ulangi langkah 2.

Contoh Program Resuffle % Nilai pembangkitan % dan state awal a=4; c=1; m=9; r(1)=3; % membangkitkan 9 bil acak % state awal dianggap 1 bil for i=1:9 r(i+1)=mod(lcm(r(i)),10); end disp('sebelum resuffle:') disp(r) % resuffle 3 kali for i=1:3 r(10+i)=mod(a*r(9+i)+c,m); p=r(10+i); r(p+1)=p; end disp('sesudah resuffle:') Simpan program ini dalam file resuffle.m

Contoh Hasil Resuffle >> reshuffle Sebelum resuffle: 3 4 8 6 7 2 0 1 5 3 Sesudah resuffle: 3 4 8 6 4 2 6 1 8 3 Bilangan yang di-resuffle

Fungsi Standard Untuk Membangkitkan Bilangan Acak Fungsi untuk membangkitkan bilangan acak dalam Matlab adalah rand(). Fungsi rand(m,n) membangkitkan bilangan acak 0 s/d 1, sebanyak m baris dan n kolom. Fungsi rand( state,a) digunakan untuk mengganti nilai state awal bilangan acak atau x(0) dalam LCM.

Contoh Membangkitkan Bilangan Acak Dengan Matlab Membangkitkan 10 bilangan acak 0 s/d 1 dapat digunakan fungsi rand(1,10) Membangkitkan matrik dengan ukuran 4x6 yang elemennya bilangan acak 0 s/d 1 dapat digunakan fungsi rand(4,6) Membangkitkan 10 bilangan acak bulat 0 s/d 7 digunakan fungsi floor(8*rand(1,10)) Membangkitkan 10 bilangan acak antara 4 s/d 10 digunakan fungsi floor(7*rand(1,10))+4 Membangkitkan matrik 3x5 yang elemennya acak dari 0 s/d 7 digunakan fungsi floor(8*rand(3,5))

Grafik dan Statistik Bilangan Acak Plot Histogram PDF CDF Analisa Data

PLOT x(n) Menampilkan semua bilangan acak n >> x=rand(1,8) x = Columns 1 through 3 0.4387 0.4983 0.2140 Columns 4 through 6 0.6435 0.3200 0.9601 Columns 7 through 8 0.7266 0.4120 >> plot(x),grid >>

Histogram H(x) Menampilkan histogram dari bilangan acak x >> x=floor(rand(1,15)*10) x = Columns 1 through 6 7 2 4 9 6 2 Columns 7 through 12 8 6 1 2 6 6 Columns 13 through 15 3 5 4 >> t=0:9; >> h=hist(x,t); >> bar(t,h), grid 3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 5 6 7 8 9

PDF Menampilkan fungsi kepadatan probabilitas (probability density function) dari bilangan acak >> x=floor(10*rand(1,16)) x = Columns 1 through 6 6 7 6 0 4 4 Columns 7 through 12 3 1 6 6 7 4 Columns 13 through 16 5 1 4 7 >> t=0:9; >> h=hist(x,t); >> p=h/sum(h); >> plot(t,p,'o:'),grid p(x) p ( x ) i = n H j= 1 ( x ) H i x ( x ) j

CDF Menampilkan fungsi kepadatan kumulatif (cumulative density function) dari bilangan acak >> x=floor(10*rand(1,16)) x = Columns 1 through 6 6 7 6 0 4 4 Columns 7 through 12 3 1 6 6 7 4 Columns 13 through 16 5 1 4 7 >> t=0:9; >> h=hist(x,t); >> p=h/sum(h); >> for i=0:9 c(i+1)=sum(p(1:i+1)); end >> plot(t,c,'o:'),grid 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 c(x) 0.1 0 1 2 3 4 5 6 7 8 9 c k x ( x ) = p( ) k x i i= 1

Analisa Data Pada Bilangan Acak Perintah rand() menghasilkan bilangan acak dengan distribusi data uniform, artinya bahwa peluang munculnya setiap bilangan sama atau bila dilihat secara grafis, pdfnya berupa garis horisontal. Untuk menunjukkan distribusi bilangan acak yang dibangkitkan dapat digunakan nilai histogram, dan fungsi kepadatan probabilitas. Disarankan menggunakan pengujian distribusi untuk melakukan analisa terhadap distribusi dari bilangan acak yang dibangkitkan.

Distribusi Uniform 0.1 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 0 10 20 30 40 50 60 70 80 90 100

Tugas 1 Bangkitkan 20, 100, 500, 1000, 5000 dan 10000 bilangan acak bulat 0 s/d 9, kemudian gambarkan pdfnya. Perhatikan apakah ke-empat pembangkitan di atas menunjukkan distribusi uniform?