یک برنامه پایتون بنویسید که با استفاده از روش مونتکارلو و تولید اعداد تصادفی مقدار تقریبی انتگرال تابع f(x)=sin(x) را روی بازه [0, π] با n نمونه محاسبه کند و خطای تقریبی را گزارش دهد.
8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:36 0.0
برای حل این مسئله از ماژولهای استاندارد پایتون یا بهتر از numpy.random برای تولید اعداد تصادفی استفاده کنید و نمونهها را بهصورت برداری (vectorized) پردازش کنید تا سرعت اجرا افزایش یابد؛ مقدار انتگرال را با میانگین مقادیر تابع روی نمونهها ضربدر طول بازه محاسبه کنید و خطای تقریبی را با انحراف معیار نمونه تقسیم بر ریشه n تخمین بزنید. نکات: برای تولید قابل تکرار نتایج seed تنظیم کنید، n بزرگتر دقت را افزایش میدهد (خطا تقریباً ∝1/√n) و برای کارایی در کاربردهای عددی از numpy بهجای حلقههای پایتون استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای تکرارپذیری 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 کاهش مییابد.
گزارش