Metode Simulasi Monte Carlo

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.