Laporan Praktikum 12 Analisis Numerik Syarif Abdullah (G551150381)∗†
Matematika Terapan Departemen Matematika FMIPA IPB E-mail: syarif
[email protected] 2 Juni 2016 MONTE CARLO METHODS AND SIMULATION (Integral Monte Carlo)
Deskripsi: Mengambil 1 soal latihan dari buku Numerical Mathematics and Computing, Sixth edition Ward Cheney, David Kincaid, Tuliskan dengan LaTex dan modifikasi menjadi soal untuk dikerjakan dalam Scilab. Computer Problem 13.2 Nomor 2: Tulis dan tes suatu program untuk mengevaluasi integral
1 0
ex dx dengan Metode Monte Carlo menggunakan n = 25, 50, 100, 200, 400, 800, 16000, dan 32000.
Amati bahwa bilangan random 32000 dibutuhkan, dan bahwa pekerjaan dalam setiap kasus dapat digunakan pada kasus selanjutnya. Print jawaban eksak. Plot hasil dengan mengunakan skala logaritmik untuk menunjukkan laju perubahannya. Jawab: Langkah Kerja: 1. Membuat program Integral Monte Carlo beserta plotting hasil pada fungsi yang diberikan. 2. Menjalankan program Integral Monte Carlo beserta plotting hasil pada fungsi yang diberikan. 3. Analisis hasil program Integral Monte Carlo dengan hasil eksak beserta analisis error relatifnya.
Adapun pseudocode lengkap Integral Monte Carlo adalah sebagai berikut: //Praktikum Analsis Numerik 2016 //INTEGRAL MONTE CARLO ∗ http † File
://syarif abdullah.student.ipb.ac.id/ dibuat dengan LYX Program
1
//a : Batas bawah Interval //b : Batas Atas Interval //n : n bilangan random //monte : hasil perhitungan monte carlo //eksak : hasil perhitungan integral fungsi eksak //relerr : hasil perhitungan relatif error //[hasil]=intmonte(f,a,b,n) : fungsi pembangkit INTEGRAL MONTE CARLO clear; clc; close(); funcprot(0); disp(’ Praktikum Analisis Numerik Syarif Abdullah (G551150381)’) disp(’ INTEGRAL MONTE CARLO’) disp(’Akan dilakukan Integral Monte Carlo pada fungsi y = exp(x)’) disp(’1. Masukkan batas integral & vektor n-bilangan random. Misalkan,’) disp(’ a=0;b=1;n=[25,50,100,200,400,800,16000,32000];’) disp(’2. Panggil Fungsi Program pemanggil Integral Monte Carlo. Yaitu:’) disp(’ [hasil]=intmonte(f,a,b,n)’) function y=f(x) y=exp(x); endfunction function [hasil]=intmonte(f,a,b,n) k=length(n); monte=zeros(k,1); eksak=zeros(k,1); relerr=zeros(k,1); for i=1:k x=(b-a)*grand(1,n(i),’def ’) + a; // Random Sebaran Normal fx=f(x); monte(i)=(b-a)*sum(fx)/n(i); eksak(i)=intg(a,b,f ); relerr(i)=abs(monte(i)-eksak(i))/eksak(i); // Relatif Error hasil=[n’ monte eksak relerr]; end disp(’n-RANDOM INTEGRAL MONTE CARLO vs HASIL EKSAK & ERROR RELATIF’) plot(log10(monte)) xtitle(’INTEGRAL MONTE CARLO FUNGSI y=exp(x)’,’x’,’y’); endfunction
2
Apabila program di atas dijalankan, maka akan mendapatkan hasil sebagai berikut: Praktikum Analisis Numerik Syarif Abdullah (G551150381) INTEGRAL MONTE CARLO Akan dilakukan Integral Monte Carlo pada fungsi y = exp(x) 1. Masukkan batas integral & vektor n-bilangan random. Misalkan, a=0;b=1;n=[25,50,100,200,400,800,16000,32000]; 2. Panggil Fungsi Program pemanggil Integral Monte Carlo. Yaitu: [hasil]=intmonte(f,a,b,n) –>a=0;b=1;n=[25,50,100,200,400,800,16000,32000]; 3
–>[hasil]=intmonte(f,a,b,n) n-RANDOM INTEGRAL MONTE CARLO vs HASIL EKSAK & ERROR RELATIF hasil = 25.
1.673181
1.7182818
0.0262476
50.
1.7641298
1.7182818
0.0266825
100.
1.6965372
1.7182818
0.0126549
200.
1.735346
1.7182818
0.0099310
400.
1.7434012
1.7182818
0.0146189
800.
1.7085724
1.7182818
0.0056507
16000. 1.7192725
1.7182818
0.0005766
32000. 1.7182667
1.7182818
0.0000088
4
1 0
Dari hasil diatas didapatkan hasil aproksimasi integral Metode Monte Carlo pada n = 32000, ex dx = 1.7182818 ≈ 1.7182667 dengan Errorrelatif = 0.0000088. Hal ini menunjukkan bahwa
untuk menghitung suatu integral, selain menggunakan metode-metode pada subbab sebelumnya dapat pula menggunakan Metode Monte Carlo. Motode Monte Carlo ini dibangkitkan oleh suatu bilangan random. Semakin besar bilangan random yang diberikan, maka akan lebih mendekati pada hasil eksak. Demikian. Semoga bermanfaat. Amin. Referensi : 1. AMTH142. Lecture 14. Monte-Carlo Integration Simulation. 2. Arief, Saifuddin. 2015. Pengenalan Scilab. 3. Atkinson, K. E. 2013. Scilab Textbook Companion for An Introduction To Numerical Analysis. 4. Cheney, Ward and Kincaid, David. 2008. Numerical Mathematics and Computing, Sixth edition. Thomson Brooks: United States of America. 5. Gilberto E. Urroz. 2001. Numerical Integration Using Scilab. Info Clearinghouse.com 6. Jacques, I and Judd, C. 2013. Scilab Textbook Companion for Numerical Analysis I.
5
Profile: Nama : Syarif Abdullah Tmpt/Tgl Lahir : Gresik, 26 Januari 1986 Alamat : Leran Manyar Gresik Jawa Timur NRP : G551150381 Jurusan : Matematika Terapan Departement : Matematika Fakultas : Matematika dan Ilmu Pengetahuan Alam Universitas : Institut Pertanian Bogor Hobby : Baca buku dan utek-utek soal E-mail : syarif
[email protected] Web/Blog : http ://syarif abdullah.student.ipb.ac.id/
6