BaşlayınÜcretsiz Başlayın

Basit Bir Fonksiyonun İntegralini Almak

Bu egzersiz, Monte Carlo İntegrasyonu kavramına basit bir giriş sunar.

Burada basit bir integrali hesaplayacağız: \( \int_0^1 x e^{x} dx\). Tam cevabın \(1\) olduğunu biliyoruz, ancak simülasyon bize yaklaşık bir çözüm vereceği için sonucun $1$’e yakın olmasını bekleyebiliriz. Videoda gördüğün gibi süreç oldukça basit. Tek değişkenli bir fonksiyon için \(f(x)\):

  1. x ekseninin sınırlarını \((x_{min}, x_{max})\) ve y ekseninin sınırlarını \((\max(f(x)), \min(\min(f(x)), 0))\) al.
  2. Bu kutu içinde düzgün (uniform) dağılmış bir dizi nokta üret.
  3. Kutunun alanını (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)) $f(x)$’in altında kalan noktaların oranı ile çarp.

Tamamladığında, Monte Carlo İntegrasyonu kullanarak belirli integralleri ele almak için bir çerçeveye sahip olacaksın.

Bu egzersiz

Python'da İstatistiksel Benzetim

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • sim_integrate() fonksiyonunda, xmin ile xmax arasında uniform rastgele sayılar üret ve x değişkenine ata.
  • \(\min(\min(f(x)), 0)\) ile \(\max(f(x))\) arasında uniform rastgele sayılar üret ve y değişkenine ata.
  • $f(x)\(’ten küçük noktaların oranını, alanla (\)(\max(f(x) - \min(f(x))\times(x_{max}-x_{min})$) çarparak geri döndür.
  • Son olarak, func fonksiyonunu lambda ile \(x e^{x}\) olarak tanımla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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))
Kodu Düzenle ve Çalıştır