با استفاده از توابع تابعی (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 است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای محاسبه مشتق عددی مرکزی با فاصله بثابت 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 است.
گزارش