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

15.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 03:46

0.0

برای حل، از روش ذوزنقه‌ای استفاده کنید و به‌صورت تکراری تعداد زیر‌بازه‌ها را (مثلاً دو برابر) افزایش دهید تا اختلاف بین تقریب‌های متوالی کمتر از 10^(-n) شود؛ برای کارایی از numpy.linspace و محاسبات برداری با NumPy بهره ببرید تا از حلقه‌های پایتون پرهیز شود. در مسائل سنگین می‌توانید از Numba یا چندپردازشی برای سرعت بیشتر استفاده کنید و مطمئن شوید که خروجی تابع شامل مقدار تقریبی انتگرال و تعداد زیر‌بازه‌های نهایی است.

توسط پژوهشگر در 198 روز قبل ساعت 03:46
دسته بندی ها: Python Python for beginner
arash در 198 روز قبل ساعت 03:47

نکته فنی: مطمئن شوید ورودی f به‌صورت برداری قابل اعمال روی آرایه‌های NumPy باشد (یا با np.vectorize پوشانده شود) تا از سرعت برداری سود ببرید و از حلقه‌های پایتون اجتناب شود. برای جلوگیری از حلقهٔ بی‌پایان، یک حداکثر تعداد تقسیم‌بندی (یا حداکثر تکرار) تعیین کنید و نوع محاسبات را با dtype=np.float64 ثابت کنید تا دقت شناور حفظ شود. اگر تابع نوسانی یا دارای تکینگی است، روش ذوزنقه‌ای ممکن است خیلی کند همگرا شود؛ در این حالت از رومبرگ/سیمپسون یا تکنیک‌های تقویت همگرایی (Richardson) استفاده کنید یا با Numba/multiprocessing عملکرد را بهبود دهید. همچنین هنگام مقایسه اختلاف بین تقریب‌ها از معیار مطلق 10**(-n) استفاده کنید و در صورت نیاز خطای تقریبی را نسبت به مقدار تقریبی قبلی هم گزارش دهید.

گزارش

1 پاسخ

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

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