یک اسکریپت پایتون بنویسید که با استفاده از روش بای‌سکشن (bisection) ریشهٔ یک تابع عددی را در بازهٔ مشخص پیدا کند و در هر تکرار با فراخوانی تابع داخلی breakpoint() مقادیر میانه، مقدار تابع در میانه و طول بازه را برای دیباگ نمایش و قابل بررسی کند.

2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:54

0.0

برای حل این مسئله تابعی مانند f(x) را تعریف کنید و سپس الگوریتم بای‌سکشن را با پارامترهای a، b، tol و max_iter پیاده‌سازی کنید: در هر تکرار mid = (a + b) / 2 را محاسبه، f(a)، f(mid)، f(b) را بررسی و بازه را بر اساس علامت‌ها بروز کنید تا شرط خاتمه tol یا رسیدن به max_iter برقرار شود. برای اشکال‌زدایی بین تکرارها از تابع داخلی breakpoint() استفاده کنید تا وارد pdb شوید و مقادیر mid، f(mid)، طول بازه و شماره تکرار را بررسی کنید؛ برای خودکارسازی اجرای برنامه می‌توانید argparse را برای دریافت پارامترها از خط فرمان و در صورت نیاز از numpy برای محاسبات عددی بهره ببرید.

توسط پژوهشگر در 220 روز قبل ساعت 01:54
دسته بندی ها: Python Python for beginner
sara در 220 روز قبل ساعت 11:37

برای کارکرد صحیح بای‌سکشن، از وجود ریشه در بازه مطمئن شوید و f(a) و f(b) با علامت مخالف باشند (f(a)·f(b) ≤ 0). در هر دور، مقدار mid، مقدار تابع در mid و طول بازه را با breakpoint() برای دیباگ نمایش دهید تا بتوانید گام‌ها را به صورت دقیق دنبال کنید. اگر فراخوانی breakpoint() برایتان مزاحم است، می‌توانید به جای آن از pdb.set_trace استفاده کرده یا با logging سطح‌بندی کنید تا کارایی بهتری داشته باشید. برای راحتی استفاده، پیاده‌سازی argparse و امکان تنظیم tol، max_iter و احتمالاً ورودی‌های تابع را اضافه کنید تا از خط فرمان پیکربندی شوند.

گزارش

1 پاسخ

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

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