7 ModSim Montecarlo Luas
-
Upload
eva-dwi-rochmawati -
Category
Documents
-
view
53 -
download
3
description
Transcript of 7 ModSim Montecarlo Luas
Pemodelan dan Simulasi Monte Carlo: Luasan
Slide: Tri Harsono
Politeknik Elektronika Negeri Surabaya (PENS)
Prodi Tek. Komputer
Simulasi Monte Carlo
Modelf(x)
x1
x2
x3
y1
y2
� Model deterministik parametrik akan memetakan suatuhimp. variabel masukan ke suatu himp variabel keluaran. � lihat gambar di atas.
� Monte Carlo: metode utk mengevaluasi secara berulangsuatu model deterministik menggunakan himpunanbilangan acak sbg masukan.
Simulasi Monte Carlo
� Monte Carlo sering digunakan bila model adalah kompleks, non linier, melibatkan banyak parameter tak tentu ygsaling berhubungan.
� Simulasi dapat mengulang evaluasi model sampai lebih� Simulasi dapat mengulang evaluasi model sampai lebihdari 10000 kali.
� Simulasi Monte Carlo termasuk metode pencuplikan(sampling) karena masukan dibangkitkan sec. acak daridistribusi probabilitas untuk menyimulasikan prosespencuplikan dari populasi sebenarnya.
Perambatan Ketidaktentuan(Uncertainty Propagation)
� Metode Monte Carlo salah satu dari sekianmetode utk menganalisis perambatanketidaktentuan,ketidaktentuan,
� Tujuannya adalah menentukan bagaimanavariasi acak, kurang pengetahuan, error akan mempengaruhi kepekaan unjuk kerjaatau keandalan sistem yg dimodelkan.
Perambatan Ketidaktentuan(Uncertainty Propagation)
� Gambar berikut memperlihatkan prinsip perambatanstokastik ketidaktentuan yg merupakan prinsip dasar dibelakang simulasi Monte Carlo.
y1
Modelf(x)
5.26±0.04
x1
x2
x3
Reliability = 87.6%
y2
Langkah-langkah simulasi Monte Carlo berdasarkan perlambatan ketidaktentuan
1. Buat suatu model parametrik y = f(x1, x2, …, xq);
2. Bangkitkan suatu himpunan masukan acak xi1, xi2, …, xiq;i2 iq
3. Evaluasi model & simpan hasilnya sbg yi;
4. Ulangi langkah 2-3 untuk i = 1, …, n;
5. Analisis hasilnya menggunakan histogram, statistik, selang kepercayaan.
Menghitung Luas di bawah suatukurva/fungsi menggunakan Monte CarloIlustrasi …
yi
Titik-titik di luarkurva
f(x)
xi
Titik-titik di dalamatau pada kurva
f(x)
Menghitung Luas di bawah suatukurva/fungsi menggunakan Monte Carlo
� Menghitung luas di bawah kurva f(x) = Asin(x).
� Misal suatu titik sembarang dilempar sec.acak padakotak berukuran dxπ, maka probabilitas Pa bahwa titikakan berada di dalam kurva adalah:
� Maka luas daerah di bawah kurva adalah:
Menghitung Luas di bawah suatukurva/fungsi menggunakan Monte Carlo
� Prosedur:1. Ambil 2 bilangan acak xi, 0≤xi≤π dan yi, 0≤yi≤d;
2. Periksalah apakah (xi,yi) adalah titik di bawah atau padakurva dengan cara testing:kurva dengan cara testing:
� Jika yi > f(xi) artinya titik di luar daerah yang diarsir,
� Jika yi ≤ f(xi) artinya titik pada kurva atau di dalamdaerah yang diarsir,
3. Tambahkan 1 ke suatu penghitung untuk menghitung jumlahtitik yang dilempar dan titik yang masuk pada daerah yang diarsir.
Menghitung Luas di bawah suatukurva/fungsi menggunakan Monte Carlo
4. Ulangi langkah 1-3 dg mengambil jumlah titik yang banyak.
5. Hitung:
6. Cari luas kurva = Pa*(luas OABC)
� Script dalam bahasa C: implementasi simulasiintegrasi dg metode Monte Carlo di bawah ini.
Menghitung Luas di bawah suatukurva/fungsi menggunakan Monte Carlo Script dalam bahasa C
#include <stdio.h>#include <stdlib.h> //rand() #include <math.h>
#define PI 3.14#define N 10000
int i, cacah=0;float xi, yi, t, pa, luas, luas_segi4;
float fungsi(float x){ float ftmp;
ftmp = (float)( t * sin(x) );
return ftmp; }
Menghitung Luas di bawah suatu kurva/fungsimenggunakan Monte Carlo Script dalam bahasa C [lanjutan …]
void main(void){printf("Mulai Simulasi \n"); t = 5.0; luas_segi4 = (float)(t * PI);printf("luas_segi4 = [%f] \n", luas_segi4); //getchar(); for (i=0; i<=N; i++){xi = (float)( PI * rand() / RAND_MAX ); xi = (float)( PI * rand() / RAND_MAX ); yi = (float)( t * rand() / RAND_MAX ); if (yi <= fungsi(xi)) cacah += 1;pa = (float)cacah/(float)i; luas = pa * luas_segi4; printf("%i: pa = [%f], luas = [%f] \n", i, pa, luas); //getchar();
}printf("Luas 5.0 * sin(x) antara 0 dan pi adalah : %f (nilai eksak 10.0) \n",
luas);
printf("Selesai Simulasi \n"); }
Soal (Tugas)
� Buatlah simulasi integrasi dg metode Monte Carlo utk luasan daerah di bawah kurva y(x) = 4e-2x dengan batas integrasi 0 – 2.= 4e dengan batas integrasi 0 – 2.
� Bandingkan dengan hasil eksak dari integral tersebut. Apa yang anda bisa simpulkandengan hasil perbandingan itu?