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

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

0.0

برای حل، ابتدا یک آرایه از نقاط یکنواخت در بازه [0, π] بسازید و سپس با random.choice به‌صورت با جایگزینی n نمونه از آن انتخاب کنید، مقادیر f(x) را برای نمونه‌ها محاسبه کنید و میانگین را در طول بازه ضرب کنید تا مقدار انتگرال بدست آید. از numpy برای بردارینه‌سازی محاسبات و محاسبه واریانس/انحراف معیار استفاده کنید تا سرعت اجرایی بالاتر (مناسب برای محاسبات عددی/HPC) حاصل شود؛ برای برآورد خطا می‌توانید انحراف معیار نمونه را بر ریشهٔ n تقسیم کنید و برای تکرارپذیری از seed در ماژول random یا numpy.random استفاده کنید.

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

برای کارایی خوب، می‌توانید ابتدا آرایه‌ای از نقاط یکنواخت در [0, π] بسازید و با random.choice به‌صورت با جایگزینی n نمونه از آن انتخاب کنید (یا از random.choices برای انجام همان کار به‌طور مستقیم استفاده کنید). مقدار انتگرال تقریبی برابر است با طول بازه π ضربدر میانگین مقادیر sin(x) روی این نمونه‌ها. خطای برآورد با تقریب استاندارد انحراف نمونه تقسیم بر جذر n محاسبه می‌شود؛ برای تکرارپذیری seeds هر دو کتابخانه random و numpy را مقداردهی کنید. استفاده از numpy برای محاسبه میانگین و واریانس سرعت محاسبات را افزایش می‌دهد، اما همین روش ساده نیز با n کافی نتیجه دقیق می‌دهد.

گزارش

1 پاسخ

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

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