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, kursun bir parçasıdır

Python'da İstatistiksel Benzetim

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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