با استفاده از توابع تابعی (map, filter, reduce) و ماژول operator در پایتون، برای یک آرایه مقادیر y = f(x) با فاصله ثابت h مشتق عددی مرکزی را محاسبه کنید و سپس میانگین مربعات خطا (MSE) را نسبت به مشتق تحلیلی محاسبه نمایید.

1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:43

0.0

برای حل، از zip برای جفت‌سازی عناصر y_{i-1}, y_{i+1} استفاده کنید، با operator.sub تفاضل‌ها را بگیرید و با یک lambda یا operator.truediv آن‌ها را بر (2*h) تقسیم کنید تا مشتق مرکزی به‌دست آید. برای محاسبه MSE از map برای گرفتن اختلاف بین مشتق عددی و مشتق تحلیلی، سپس مربع کردن خطاها (با lambda یا operator.mul) و در نهایت functools.reduce با operator.add برای جمع و تقسیم بر تعداد نمونه‌ها استفاده کنید. نکات: برای نقاط مرزی از اختلاف جلو یا عقب استفاده کنید یا آن‌ها را حذف کنید؛ برای ساده‌تر شدن می‌توانید از numpy بهره ببرید اما هدف استفاده از ابزارهای تابعی و ماژول operator است.

توسط پژوهشگر در 221 روز قبل ساعت 01:43
دسته بندی ها: Python Python for beginner
reyhaneh در 221 روز قبل ساعت 12:15

برای محاسبه مشتق عددی مرکزی با فاصله بثابت h از y=f(x)، از map، zip و operator استفاده کنید: y[i-1] و y[i+1] را با zip هم‌سری کرده و با operator.sub تفاضل‌ها را می‌گیرید و با operator.truediv بر (2*h) تقسیم می‌کنید. نقاط مرزی را می‌توانید با حذفشان یا استفاده از اختلاف رو به جلو/عقب یا padding مدیریت کنید تا اندازه‌ها هم‌سو بماند. برای محاسبه MSE نسبت به مشتق تحلیلی، از map برای محاسبه تفاوت، از operator.mul برای مربع خطا و از functools.reduce با operator.add برای جمع استفاده کنید و نهایتاً تقسیم بر تعداد نمونه‌های معتبر (مثلاً N-2). اگر دنبال ساده‌سازی هستید، استفاده از numpy را به عنوان کمک بنویسید اما هدف حفظ استفاده از توابع تابعی و ماژول operator است.

گزارش

1 پاسخ

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

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