یک تابع پایتون بنویسید که یک معادله غیرخطی را با روش نیوتن-رفسون حل کند و در هر تکرار با استفاده از locals() متغیرهای محلی (x, fx, dfx, error) را ثبت کرده و در پایان همه تکرارها را بهصورت جدول چاپ کند.
4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:01 0.0
برای حل از الگوریتم نیوتن-رفسون استفاده کنید: x_{n+1}=x_n - f(x)/f'(x). میتوانید مشتق را با یک تابع مشتقدهنده جدا یا با اختلاف محدود (finite difference) تقریب بزنید. در هر تکرار داخل حلقه یک کپی از locals() (مثلاً dict(locals())) در یک لیست ذخیره کنید تا مقادیر x، fx، dfx و error نگهداری شوند؛ در پایان لیست را به شکل جدول با چاپ قالببندیشده یا با استفاده از pandas نمایش دهید. نکات: تعداد تکرارها و تلرانس خطا را محدود کنید، از نسخهای از locals() کپی بگیرید تا ارجاع به متغیرهای بعدی تغییر نکند، و برای محاسبه مشتق از numpy یا روش اختلاف محدود استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای ثبت دقیق هر تکرار، از dict(locals()) کپی کنید و آن را در یک لیست ذخیره کنید تا ارجاع به متغیرهای بعدی تغییر نکند. مشتق تابع را یا با یک تابع مشتقدهنده جدا پیادهسازی کنید یا با اختلاف محدود تخمین بزنید و مقدار dfx را در هر گام ثبت کنید. محدودیتهایی مانند حداکثر تکرار و آستانه خطا را تعیین کنید تا همواره به یک نقطه همگرایی برسید و نتیجه را در قالب جدول چاپ کنید (مثلاً با pandas). در نهایت به پایداری محاسبه مشتق حساس است، بنابراین احتمالاً لازم است از اندازهگیری اولیه خوب یا روشهای جایگزین مانند نرخ تغییرات مناسب استفاده کنید.
گزارش