Hari ini mendapat email dari seorang mahasiswa, begini bunyinya:
Bapak salaman sya mau bertanya. ini saya attach. sebelumnya terimaksih banyak ya bapak
Dan isi file attachment dalam format “doc” adalah:
bapak, saya mau menanya bagaimana skrip untuk perhitungan metode monte carlo dengan cara membangkitkan bilangan acak.
Dalam integral monte carlo ada rumus begini :
Dengan N = banyaknya data yang dibangkitkan.
Algoritmanya begini mas :
1. bangkitkan data dalam interval a sampai b
2. masukkan nilainya ke dalam fungsi g(x) lalu jumlahkan nilainya
3. hitung rata-rata lalu kalikan dengan (b-a) sebagai taksiran nilai integral yang dicari.Misal ada soal begini :
bagaimana cara menyelesaikan dengan script python dengan integral monte carlo….? mohon saya diberi contoh skripnya ya bapak
Sebelumnya saya ucapkan terimakasih banyak atas kebaikan bapak
Entah iseng atau kurang kerjaan, saya jawab pertanyaan ini.
Berikut jawaban saya:
Berikut ini skrip yang dimaksud. Saya buat secara cepat dengan menggali ingatan hampir 14 tahun yang lalu. Tidak ada upaya optimasi apapun, hanya menerjemakan algoritma “monte carlo” yang berbasis bilangan acak. Dan perlu diingat bilangan acak ini, karena dibuat oleh komputer sifatnyat tidak benar-benar acak. Sering disebut “quasi random”.
#!/usr/bin/python from math import * from random import * # ubah fungsi ini. def equation(x): return x*x def genrand(a,b,n): step = (b-a)/n pairs = [] l = a while (l<n): x = uniform(a,b) pairs.append([x, equation(x)]) l = l + step return pairs def calculate(a,b,n): pairs = genrand(a,b,n) points = len(pairs) y = 0 for x in pairs: y = y + x[1] avg = y/points bmina = b - a return bmina*avg a = 2.0 b = 8.0 n = 1000 print "" print "a = %s, b = %s, n= %s" % (a,b,n) print "Definit integral: %s" % calculate(a, b, n) print 40*"-" print "notes: change equation() definition" print ""
Gunakan dengan bijak dan tidak ada pernyataan apapun. Resiko apapun ditanggung pengguna. *LOL*
pak, saya minta bantuannya buat penyelesaian soal dengan script matlab monte carlo
Diketahui dalam suatu rangkaian elektronica mengalir arus dengan persamaan
i(t)=t.e -2t
Daya rata-rata dalam suatu perioda dirumuskan dengan :
T
P=R/T integral | i kwadrat (t)dt
0
Dengan P adalah daya rata-rata, R adalah hambatan rangkaian, dan T adalah periode,
Hitung menggunakan script matlap
a). Jika periode 2 secon dan hambatan 2 KΩ, tentukan besar daya rata-rata.
( gunakan Metode Monte Carlo )
b). Carilah nilai maksimum arus i ( t ) pada saat 0 < t <2
( gunakan Metode Monte Carlo )
waduh. maaf sebelumnya. saya sendiri gak pernah pakai mathlab.