Upload
nur-muhammad-zam-zam
View
238
Download
0
Embed Size (px)
Citation preview
8/18/2019 Metode Simulasi Monte Carlo
1/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
1
TUGAS 2
SIMULASI MONTE CARLO
Soal
Buatlah program untuk menghampiri nilai integral tentu ∫
dengan
menggunakan simulasi Monte carlo. Lakukan 8 percobaan untuk banyak dart
n=10,50,100,500,1000,5000,10000,100000. Run program sebayak 10 kali untuk setiap n dan
rata-ratakan hampiran integral tentu yang diperoleh. Buat dokumentasi yang berisi
algoritma,contoh output, table hasil 8 percobaan (n dan rata-rata hampiran integral), formula
hasil data fitting, dan kesimpulan dari simulasi ini.
Penyelesaian:
f(x)= ∫ )dx
Hasil analitik integral yang diperoleh adalah 0.6421525619
Gambar 1.Grafik Luas Integral sin (X2)
8/18/2019 Metode Simulasi Monte Carlo
2/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
2
Algoritma yang digunakan sebagai berikut :
1. Bangkitkan bilangan random (unirand)
2. Inisialisasi Nmax(dart yang digunakan),c(nilai maksimum fungsi), a(min),b(max),dan f(x)
3. input a dan b
4.
Pengsakalaan : s=min + (max-min)*randa. for(i=0,ic, maka
c=fabs(f(x))
5. Menentukan luas di bawah atau diatas sumbu y
if (f(x)>0)
a. luas diatas sumbu x:
y=c*unirand, maka:
if (y=f(x)), N—
6. Output:
a. Luas area dart (res):
res=(N/Nmax).(c.(b-a))
b. x,y, dan Luas integral f(x) {run sebanyak 10 untuk masing-masing Nmax}
Program menggunakan C++ dengan source code sebagai berikut :
//Soal : Integral dari sin(X^2), dgn batas :0-2pi
#include
#include
#include
#include
#include
#include
using namespace std;
double unirand()
{
return(double) rand()/ (double) RAND_MAX;
}
double f(double x)
8/18/2019 Metode Simulasi Monte Carlo
3/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
3
{
double y= sin(x*x);
return y;
}
int main()
{
double res,x,y,a,b,c=0.; // deklarasi
int N=0, Ntot, i, percobaan; //inisialisasi
a=0.; //batas atas
b=2*3.1416;//batas bawah
system("TITLE TEKNIK SIMULASI MONTE CARLO" );
system("Color 1F");
cout
8/18/2019 Metode Simulasi Monte Carlo
4/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
4
//Mencari integral fungsi dengan cara monte-carlo
ofstream out;
out.open("1MonteCarlo_data.txt");//hasil untuk di plot d gnu plot
for(i=0;i0.)
{
y=c*unirand();
if(y=f(x)){N--;} //luas dibawah sumbu x
}
out
8/18/2019 Metode Simulasi Monte Carlo
5/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
5
Hasil running sebagai berikut :
Plot grafik di GNU plot
N=10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7
'1MonteCarlo_data.txt'sin(x*x)
(
)
Gambar.2. Plot Luas Integral dengan N=10
X
8/18/2019 Metode Simulasi Monte Carlo
6/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
6
N =100000
Hasil/output yang di hasilkan untuk masing – masing dart (N):
(
)
X
Gambar.3. Plot Luas Integral dengan N=100000
Tabel 1. Hasil Luas Integral untuk masing-masing dart (N)
N Hasi l Rata-rata
10 0.786095
50 0.690463
100 0.684591
500 0.5968991000 0.666019
5000 0.615502
10000 0.656469
100000 0.656469
Tabel 2. Hasil Luas Rata- Rata untuk setiap N
8/18/2019 Metode Simulasi Monte Carlo
7/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
7
Formulasi hasil data fitting
Data Luas integral dengan jumlah dart (N) pada grafik dengan mengunakan regresi linear
menghasilkan formulasi data fitting sebagai berikut:
Y= -2.10-7
X + 0.672
y = -2E-07x + 0.672
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0 20000 40000 60000 80000 100000 120000
L u a s I n
t e g r a l
N
Grafik N terhadap Luas Integral
Series1
Linear (Series1)
N(Dart) TREND
10 0.671998
50 0.67199
100 0.67198
500 0.67191000 0.6718
5000 0.671
10000 0.67
100000 0.652
Grafik 4. Plot Luas Inte ral Rata-rata terhada N
Gambar 5. Grafik Model Regresi Linear
Tabel 3. Data Curve Fittin
8/18/2019 Metode Simulasi Monte Carlo
8/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
8
Grafik diatas menggambarkan trend line yang menuju ke bawah di mana merupakan hasil
luas secara numerik yang mendekati hasil analitiknya, jika dart (N) yang digunakan semakin
banyak.
0.64
0.645
0.65
0.655
0.66
0.665
0.67
0.675
T R E N D
Grafik Curve Fitting
Series1
0.65
0.655
0.66
0.665
0.67
0.675
0 20000 40000 60000 80000 100000 120000
L u a s
N
Grafik Regresi linear Luas Terhadap
banyak Dart
Series1
Gambar 7. Grafik Data fitting Menggunakan Regresi
Gambar 6. Grafik Curve Fitting
8/18/2019 Metode Simulasi Monte Carlo
9/9
ARNITA IRIANTI/20914009
COMPUTATIONAL SCIENCE ITB
22/11/2014
9
Kesimpulan :
1. Simulasi Monte Carlo adalah suatu model probabilistik yang melibatkan unsur
kemungkinan dengan menggunakan bilangan acak (random number) dilakukan dengan
bantuan komputer.
2. Prinsip kerja dengan membangkitkan bilangan – bilangan acak atau sampel dari suatu
variable acak yang telah diketahui distribusinya sehingga simulasi Monte Carlo meniru hasil
analitiknya secara numerik sehingga dengan semakin banyak angka random yang
digenerate maka semakin akurat hasilnya. Hal ini terlihat bahwa semakin banyak dart (N)
sehingga hasil simulasi luas integral mendekati hasil analitik yang diperoleh.