Mengintegrasikan Fungsi Sederhana
Ini adalah latihan sederhana yang memperkenalkan konsep Monte Carlo Integration.
Di sini kita akan mengevaluasi integral sederhana \( \int_0^1 x e^{x} dx\). Kita tahu bahwa jawaban pastinya adalah \(1\), tetapi simulasi akan memberikan solusi pendekatan, sehingga kita dapat mengharapkan jawaban yang mendekati \(1\). Seperti yang ditunjukkan dalam video, prosesnya sederhana. Untuk fungsi satu variabel \(f(x)\):
- Tentukan batas sumbu-x \((x_{min}, x_{max})\) dan sumbu-y \((\max(f(x)), \min(\min(f(x)), 0))\).
- Hasilkan sejumlah titik yang terdistribusi seragam di dalam kotak ini.
- Kalikan luas kotak (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)) dengan fraksi titik yang berada di bawah \(f(x)\).
Setelah selesai, Anda akan memiliki kerangka untuk menangani integral tentu menggunakan Monte Carlo Integration.
Latihan ini adalah bagian dari kursus
Simulasi Statistik di Python
Petunjuk latihan
- Dalam fungsi
sim_integrate(), hasilkan bilangan acak seragam antaraxmindanxmaxlalu simpan kex. - Hasilkan bilangan acak seragam antara \(\min(\min(f(x)), 0)\) dan \(\max(f(x))\) lalu simpan ke
y. - Kembalikan fraksi titik yang kurang dari \(f(x)\) dikalikan dengan luas (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)).
- Terakhir, gunakan lambda function untuk mendefinisikan
funcsebagai \(x e^{x}\).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Define the sim_integrate function
def sim_integrate(func, xmin, xmax, sims):
x = np.random.uniform(____, ____, sims)
y = np.random.uniform(____, ____, sims)
area = (max(y) - min(y))*(xmax-xmin)
result = area * sum(____(____) < abs(func(x)))/sims
return result
# Call the sim_integrate function and print results
result = sim_integrate(func = lambda x: ____, xmin = 0, xmax = 1, sims = 50)
print("Simulated answer = {}, Actual Answer = 1".format(result))