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)\):
- 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.
- Bu kutu içinde düzgün (uniform) dağılmış bir dizi nokta üret.
- 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
Egzersiz talimatları
sim_integrate()fonksiyonunda,xminilexmaxarasında uniform rastgele sayılar üret vexdeğişkenine ata.- \(\min(\min(f(x)), 0)\) ile \(\max(f(x))\) arasında uniform rastgele sayılar üret ve
ydeğ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,
funcfonksiyonunu 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))