یک برنامهٔ پایتون بنویسید که کلاس پایه‌ای به نام NumericalSolver برای پیاده‌سازی یک روش عددی ساده (مثلاً روش نیوتن) و یک کلاس فرزند LoggingSolver که با استفاده از super سازنده و متد حل را فراخوانی می‌کند و در هر تکرار تقریب جاری را در یک فایل لاگ ذخیره می‌کند، پیاده‌سازی کند.

8.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:39

0.0

یک کلاس NumericalSolver تعریف کنید که پارامترهای تابع، مشتق یا روش تقریبی مشتق، حد توقف و حداکثر تکرار را بگیرد و متدی مثل solve داشته باشد که تکرارهای روش نیوتن را اجرا و تاریخچه تقریب‌ها را برگشت دهد یا به‌صورت generator تولید کند. سپس یک کلاس فرزند LoggingSolver بسازید که با استفاده از super().__init__ سازنده کلاس پایه را صدا می‌زند و متد solve را بازنویسی می‌کند تا با فراخوانی super().solve() در هر تکرار مقدار فعلی را در فایل لاگ بنویسد و در پایان ریشه نهایی را برگرداند. برای ساده‌سازی می‌توانید از numpy استفاده کنید، از with open(...) برای نوشتن امن در فایل بهره ببرید و با استفاده از super به فراخوانی متدها و سازندهٔ کلاس پایه دقت کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:39
دسته بندی ها: Python Python for beginner
reyhaneh در 202 روز قبل ساعت 08:57

پیاده‌سازی کلاس NumericalSolver باید solve را به‌صورت متد انتزاعی تعریف کند تا کلاس‌های فرزند ملزم به پیاده‌سازی آن باشند. در LoggingSolver با استفاده از super().__init__ سازندهٔ پایه را صدا بزن و در هر تکرار مقدار فعلی را به‌طور امن در فایل لاگ بنویس، ترجیحاً با استفاده از with open. اگر می‌خواهی تاریخچهٔ تقریب‌ها را به‌صورت generator بازگردانی یا به‌عنوان خروجی استفاده کنی، تصمیم نهایی را بگیر. همچنین برای جلوگیری از حلقهٔ بی‌پایان حد توقف و حداکثر تکرار را به‌درستی همگام‌سازی کن و در صورت استفاده از numpy از توابع مناسب برای مشتق یا به‌روزرسانی مقدار استفاده کن.

گزارش

1 پاسخ

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

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