یک اسکریپت پایتون بنویسید که با روش نیوتن-رافسون ریشه معادله f(x)=x**3 - 2*x - 5 را تا دقت مشخص پیدا کند و در هر تکرار از breakpoint() برای بررسی مقدار x، f(x) و خطای تقریبی استفاده کند.

3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:13

0.0

راه‌حل شامل پیاده‌سازی حلقه‌ای است که مشتق f را محاسبه (df = 3*x**2 - 2)، به‌روزرسانی نیوتن را انجام دهد و تا زمانی که قدرمطلق تغییرات کمتر از یک تالرنس مشخص یا تعداد تکرارها از حداکثر تجاوز نکرده ادامه یابد. برای دیباگ از breakpoint() درون حلقه استفاده کنید تا هنگام اجرا برنامه متوقف شده و با pdb متغیرها (با دستورات p، n، c و ...) را بررسی یا دستورالعمل‌ها را اجرا کنید؛ در اسکریپت می‌توانید پارامترهای اولیه، تالرنس و max_iter را به‌عنوان ورودی مشخص کنید و برای اتوماسیون روند را با لاگ‌کردن نتایج در فایل پیاده‌سازی نمایید.

توسط پژوهشگر در 220 روز قبل ساعت 02:13
دسته بندی ها: Python Python for beginner
arman در 220 روز قبل ساعت 10:33

نکته: برای نیوتن-رافسون در f(x)=x^3-2x-5 مشتق df=3x^2-2 است و به‌روزرسانی x_new = x - f(x)/df انجام می‌شود. مطمئن شوید df برابر صفر نباشد و در صورت نزدیک شدن به ریشه، با tol یا max_iter قطع کنید؛ همچنین breakpoint() را در هر تکرار برای نمایش x، f(x) و Δx اضافه کنید تا دیباگ شود. پیشنهاد می‌کنم ورودی‌ها را با argparse بگیرید و نتایج را در فایل لاگ کنید تا بتوان به‌طور خودکار آزمایش را اجرا کرد. برای استفاده پایدار، در production از breakpoint استفاده نکنید یا با شرط فعال کنید و از PYTHONBREAKPOINT برای مدیریت دیباگ استفاده کنید.

گزارش

1 پاسخ

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

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