Mencari pendekatan nilai phi

Contoh simulasi sederhana yang pertama adalah mencari pendekatan nilai phi dan mencari pendekatan nilai variansi.

Untuk membuat simulasi dari phi, langkah-langkah yang harus ditempuh adalah sebagai berikut:

  1. Mulai
  2. I=0
  3. i=i+1
  4. Bangkitkan 10.000 titik

x~u(0,1)

y~u(o,1)

  1. π1=4*mn
  2. Jika i<1000 pergi ke 3
  3. π=i=11000πi1000
  4. Tulis π
  5. Selesai

Sedangkan bila diterapkan pada program pascal adalah sebagai berikut:

Program pi;

Uses wincrt;

var

pi,x,y:real;

n1,n2,i:integer;

Begin

n1:=0;

n2:=0;

randomize;

For i:=1 to 1000 do

Begin

x:=random;

y:=random;

If (x*x+y*y) <=1 then n1:=n1+1;

else n2:=n2+1;

end;

P:=4*n1/(n1+n2);

Writeln (pi);

End.

Metode Monte Carlo

Metode Monte Carlo adalah algoritma komputasi untuk mensimulasikan berbagai perilaku sistem fisika dan matematika. Penggunaan klasik metode ini adalah untuk mengevaluasi integral definit, terutama integral multidimensi dengan syarat dan batasan yang rumit.
Metode Monte Carlo sangat penting dalam fisika komputasi dan bidang terapan lainnya, dan memiliki aplikasi yang beragam mulai dari perhitungan kromodinamika kuantum esoterik hingga perancangan aerodinamika. Metode ini terbukti efisien dalam memecahkan persamaan diferensial integral medan radians, sehingga metode ini digunakan dalam perhitungan iluminasi global yang menghasilkan gambar-gambar fotorealistik model tiga dimensi, dimana diterapkan dalam video games, arsitektur, perancangan, film yang dihasilkan oleh komputer, efek-efek khusus dalam film, bisnis, ekonomi, dan bidang lainnya.
Karena algoritma ini memerlukan pengulangan (repetisi) dan perhitungan yang amat kompleks, metode Monte Carlo pada umumnya dilakukan menggunakan komputer, dan memakai berbagai teknik simulasi komputer.

Algoritma Monte Carlo adalah metode Monte Carlo numerik yang digunakan untuk menemukan solusi problem matematis (yang dapat terdiri dari banyak variabel) yang susah dipecahkan, misalnya dengan kalkulus integral, atau metode numerik lainnya.

Sejarah

Metode Monte Carlo digunakan dengan istilah sampling statistik. Penggunaan nama Monte Carlo, yang dipopulerkan oleh para pioner bidang tersebut (termasuk Stanislaw Marcin Ulam, Enrico Fermi, John von Neumann dan Nicholas Metropolis), merupakan nama kasino terkemuka di Monako. Penggunaan keacakan dan sifat pengulangan proses mirip dengan aktivitas yang dilakukan pada sebuah kasino. Dalam autobiografinya Adventures of a Mathematician, Stanislaw Marcin Ulam menyatakan bahwa metode tersebut dinamakan untuk menghormati pamannya yang seorang penjudi, atas saran Metropolis.

Penggunaannya yang cukup dikenal adalah oleh Enrico Fermi pada tahun 1930, ketika ia menggunakan metode acak untuk menghitung sifat-sifat neutron yang waktu itu baru saja ditemukan. Metode Monte Carlo merupakan simulasi inti yang digunakan dalam Manhattan Project, meski waktu itu masih menggunakan oleh peralatan komputasi yang sangat sederhana. Sejak digunakannya komputer elektronik pada tahun 1945, Monte Carlo mulai dipelajari secara mendalam. Pada tahun 1950-an, metode ini digunakan di Laboratorium Nasional Los Alamos untuk penelitian awal pengembangan bom hidrogen, dan kemudian sangat populer dalam bidang fisika dan riset operasi. Rand Corporation]]an Angkatan Udara AS merupakan dua institusi utama yang bertanggung jawab dalam pendanaan dan penyebaran informasi mengenai Monte Carlo waktu itu, dan mereka mulai menemukan aplikasinya dalam berbagai bidang.

Penggunaan metode Monte Carlo memerlukan sejumlah besar bilangan acak, dan hal tersebut semakin mudah dengan perkembangan pembangkit bilangan pseudoacak, yang jauh lebih cepat dan praktis dibandingkan dengan metode sebelumnya yang menggunakan tabel bilangan acak untuk sampling statistik.

Aplikasi metode Monte Carlo

Metode Transformasi Invers

Metode Linear Congruential Generator dalam Pembangkitan Bilangan Acak

Salah satu Pembangkit bilangan acak Semu atau Pseudo Random Number Generator (PRNG) sebagai dasar yang cukup baik untuk dipelajari adalah Linear Congruential Generator (LCG) dengan rumus:

Xn = (a * Xn – 1 + b) mod m

Dimana:

  • Xn = bilangan acak ke-n dari deretnya
  • Xn – 1 = bilangan acak sebelumnya
  • a = faktor pengali
  • b = increment
  • m = modulus pembagi
Untuk permulaan, dibutuhkan X0 sebagai kunci pembangkit untuk mengenerate kunci-kunci selanjutnya (X0, X1, X2, X3 dan seterusnya).  X0 disebut sebagai umpan atau seed. Dalam membangkitkan angka random, metode LCG mempunyai periode pengulangan yang kurang dari m (modulus pembagi). Perhatikan hasil running di atas. Pembagi modulus diisi 11, sehingga LCG mampu men-generate angka random dari deret ke-0 sampai ke-10, ketika memasuki periode ke-11 proses akan berulang menampilkan nilai yang sama dengan nilai sebelumnya  (X0, X1, X2, X3 sampai X11).
Suatu LCG mempunyai periode penuh (m – 1) jika memenuhi syarat sebagai berikut:
  • b relatif prima terhadap m.
  • a – 1 dapat dibagi dengan semua faktor prima dari m
  • a – 1 adalah kelipatan 4 jika m adalah kelipatan 4
  • m > maks(a, b, X0)
  • a > 0
  • b > 0

LCG memiliki kelebihan pada kecepatannya karena sedikit  membutuhkan operasi bit namun urutan kemunculan bilangan acaknya, mudah diprediksi sehingga tidak aman secara kriptografi. Namun demikian, LCG tetap berguna untuk latihan awal penerapan enkripsi dengan metode stream cipher menggunakan kunci yang dibangkitkan oleh algoritma LCG. Selain itu LCF dapat diterapkan pada aplikasi simulasi lain karena algoritma ini sangat mangkus (efisien secara waktu proses dan hemat penggunaan memory).

Syntax Program Pascal :

program lcg

uses wincrt;

vara,b,m,z,n,i,hasil : integer;

begin

write (‘faktor pengali(a)= ‘);readln(a);

write(‘faktor penjumlah(b)= ‘);readln(b);

write(‘kunci pembangkit(Z0)= ‘);readln(z);

write(‘faktor pembagi modulus(m)= ‘);readln(m);

write(‘pengulangan= ‘);readln(n);

for i:=1 to n do

begin

z:=(a*z+b) mod m;

hasil:=z;

writeln(hasil);

end;

end.

Metode Middle Square

Metode Midsquare dalam pembangkitan bilangan acak.

Metode ini ditemukan oleh John von Neumann dan Metropolis (1940). Langkah-langkah dalam membangkitkan bilangan acak menggunakan metode ini antara lain:

  • Pilih bilangan bulat positif sebagai seed (Z0) yang berupa bilangan bulat positif yang terdiri dari beberapa digit.
  • Kuadratkan bilangan tersebut sehingga membentuk digit sejumlah dua kali jumlah digit Z0, jika tidak, tambahkan digit 0 di depan bilangan tersebut.
  • Ambil sejumlah digit yang sesuai dengan jumlah digit Z0 yang berada di tengah untuk menjadi Z1.
  • Tambahkan digit desimal di depan Z1.
  • Lakukan sampai langkah ke-n.

Contoh:

Dimulai dengan Z0 = 1113 (hasil bilangan random = Ui)

i Zi Ui (Zi)2
0 1113 01238769
1 2387 0,2387 05697769
2 6977 0,6977 48678529
3 6785 0,6785 46036225
4 0362 0,0362 00131044
5 1310 0,131 01716100
6 7161 0,7161 51279921
7 2799 0,2799 07834401
8 8344 0,8344 69622336
9 6223 0,6223 38725729
10 7257 0,7257 52664049
11 6640 0,664 44089600
12 0896 0,0896 00802816
13 8028 0,8028 64448784
14 4487 0,4487 20133169
15 1331 0,1331 01771561
16 7715 0,7715 59521225
17 5212 0,5212 27164944
18 1649 0,1649 02719201
19 7192 0,7192 51724864
20 7248 0,7248 52533504
21 5335 0,5335 28462225
22 4622 0,4622 21362884
23 3628 0,3628 13162384
24 1623 0,1623 02634129
25 6341 0,6341 40208281
26 2082 0,2082 04334724
27 3347 0,3347 11202409
28 2024 0,2024 04096576
29 0965 0,0965 00931225
30 9312 0,9312 86713344
31 7133 0,7133 50879689
32 8796 0,8796 77369616
33 3696 0,3696 13660416
34 6604 0,6604 43612816
35 6128 0,6128 37552384
36 5523 0,5523 30503529
37 5035 0,5035 25351225
38 3512 0,3512 12334144
39 3341 0,3341 11162281
40 1622 0,1622 02630884
41 6308 0,6308 39790864
42 7908 0,7908 62536464
43 5364 0,5364 28772496
44 7724 0,7724 59660176
45 6601 0,6601 43573201
46 5732 0,5732 32855824
47 8558 0,8558 73239364
48 2393 0,2393 05726449
49 7264 0,7264 52765696
50 7656 0,7656 58614336
51 6143 0,6143 37736449
52 7364 0,7364 54228496
53 2284 0,2284 05216656
54 2166 0,2166 04691556
55 6915 0,6915 47817225
56 8172 0,8172 66781584
57 7815 0,7815 61074225
58 0742 0,0742 00550564
59 5505 0,5505 30305025
60 3050 0,305 09302500
61 3025 0,3025 09150625
62 1506 0,1506 02268036
63 2680 0,268 07182400
64 1824 0,1824 03326976
65 3269 0,3269 10686361
66 6863 0,6863 47100769
67 1007 0,1007 01014049
68 0140 0,014 00019600
69 0196 0,0196 00038416
70 0384 0,0384 00147456

Pseudo-Random Number Generator

Dalam simulasi, membangkitkan bilangan acak merupakan langkah penting yang harus dilakukan. Bilangan acak yang dibangkitkan dapat dibangkitkan dengan menggunakan piranti perangkat lunak komputer atau manual. Bilangan acak yang dibangkitkan sering dinamakan bilangan acak semu (pseudo) karena pembangkitan bilangannya dapat diulang kembali (dengan menggunakan rumus matematika). Dalam kriptografi hal ini berarti suatu kelemahan yang harus dihindari.

Ada beberapa metode yang digunakan dalam pembangkitan bilangan acak, antara lain: Metode Midsquare, Linear Congruential Generator (LCG), dan Multiplicative LCG. Bilangan acak yang dihasilkan akan berdistribusi Uniform dengan parameter a = 0, dab b = 1. Jadi, distribusi Uniform (0,1) merupakan bentuk awal dari bilangan acak yang dibangkitkan.

Normality Test dengan menggunakan Uji Ryan-Joiner

Tes Ryan-Joiner menyediakan koefisien korelasi, yang menunjukkan korelasi antara data dan nilai normal data Anda. Jika koefisien korelasi mendekati 1, data Anda jatuh dekat dengan plot probabilitas normal. Jika jatuh di bawah nilai kritis yang tepat, Anda akan menolak hipotesis nol dari normalitas.

Koefisien korelasi dihitung sebagai:

Rp = ∑Yibi/√s²(n-1)∑bi²

dimana:

Yi adalah pengamatan yang ditentukan

bi = normal skor data Anda

s2 = varians sampel

Macro Minitab

macro

ryan c1

mcolumn c1 c2 c3

mconstant i n var a b g R

sort c1 c2

cdf c2 c3;

normal 0 1.

let n=count(c1)

let var=stde(c1)*stde(c1)

print c2 c3 var

do i=1:n

let a=sum(c2(i)*c3(i))

let b=sum(c3(i)*c3(i))

enddo

let g=sqrt(var*(n-1)*b)

let R=a/g

name R ‘Koefisien Korelasi (Rj)’

print R

endmacro

cara memanggil :

misal disimpan di D data berada pada kolom C1 maka : %d:namafile.txt c1

Previous Older Entries

Ikuti

Kirimkan setiap pos baru ke Kotak Masuk Anda.