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