یک برنامه پایتون بنویسید که با استفاده از روش مونت‌کارلو و تولید اعداد تصادفی مقدار تقریبی انتگرال تابع f(x)=sin(x) را روی بازه [0, π] با n نمونه محاسبه کند و خطای تقریبی را گزارش دهد.

8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:36

0.0

برای حل این مسئله از ماژول‌های استاندارد پایتون یا بهتر از numpy.random برای تولید اعداد تصادفی استفاده کنید و نمونه‌ها را به‌صورت برداری (vectorized) پردازش کنید تا سرعت اجرا افزایش یابد؛ مقدار انتگرال را با میانگین مقادیر تابع روی نمونه‌ها ضربدر طول بازه محاسبه کنید و خطای تقریبی را با انحراف معیار نمونه تقسیم بر ریشه n تخمین بزنید. نکات: برای تولید قابل تکرار نتایج seed تنظیم کنید، n بزرگ‌تر دقت را افزایش می‌دهد (خطا تقریباً ∝1/√n) و برای کارایی در کاربردهای عددی از numpy به‌جای حلقه‌های پایتون استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:36
دسته بندی ها: Python Python for beginner
nima در 201 روز قبل ساعت 05:54

برای تکرارپذیری seed را تنظیم کنید و از numpy.random.default_rng با مقدار seed استفاده کنید تا نتایج قابل بازتولید باشند. نمونه‌ها را به‌صورت برداری تولید کنید: rng = np.random.default_rng(seed); x = rng.uniform(0, np.pi, size=n); y = np.sin(x). مقدار انتگرال تخمینی برابر است با integral_est = np.pi * y.mean() و خطای تقریبی با انحراف معیار نمونه y تخمین زده می‌شود، مثلاً error_est = np.pi * y.std(ddof=1) / np.sqrt(n). مقدار دقیق این انتگرال برابر با 2 است و با افزایش n خطا تقریباً به ∼1/√n کاهش می‌یابد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری