MulaiMulai sekarang secara gratis

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)\):

  1. Tentukan batas sumbu-x \((x_{min}, x_{max})\) dan sumbu-y \((\max(f(x)), \min(\min(f(x)), 0))\).
  2. Hasilkan sejumlah titik yang terdistribusi seragam di dalam kotak ini.
  3. 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

Lihat Kursus

Petunjuk latihan

  • Dalam fungsi sim_integrate(), hasilkan bilangan acak seragam antara xmin dan xmax lalu simpan ke x.
  • 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 func sebagai \(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))
Edit dan Jalankan Kode