یک تابع پایتون بنویسید که یک معادله غیرخطی را با روش نیوتن-رفسون حل کند و در هر تکرار با استفاده از 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 یا روش اختلاف محدود استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 03:01
دسته بندی ها: Python Python for beginner
nima در 202 روز قبل ساعت 07:46

برای ثبت دقیق هر تکرار، از dict(locals()) کپی کنید و آن را در یک لیست ذخیره کنید تا ارجاع به متغیرهای بعدی تغییر نکند. مشتق تابع را یا با یک تابع مشتق‌دهنده جدا پیاده‌سازی کنید یا با اختلاف محدود تخمین بزنید و مقدار dfx را در هر گام ثبت کنید. محدودیت‌هایی مانند حداکثر تکرار و آستانه خطا را تعیین کنید تا همواره به یک نقطه همگرایی برسید و نتیجه را در قالب جدول چاپ کنید (مثلاً با pandas). در نهایت به پایداری محاسبه مشتق حساس است، بنابراین احتمالاً لازم است از اندازه‌گیری اولیه خوب یا روش‌های جایگزین مانند نرخ تغییرات مناسب استفاده کنید.

گزارش

1 پاسخ

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

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