یک کلاس پایه NumericalIntegrator بنویسید که سازنده‌اش تابع f، بازه a و b و تعداد بخش‌ها n را ذخیره کند و متد setup ای برای محاسبهٔ گام h و نقاط x داشته باشد؛ سپس یک کلاس فرزند TrapezoidalIntegrator ایجاد کنید که از NumericalIntegrator ارث ببرد و با استفاده از super() سازندهٔ پایه را فراخوانی کند و متد integrate را بازنویسی کند تا انتگرال عددی روی [a,b] با قاعدهٔ ذوزنقه را محاسبه و نتیجه را چاپ کند.

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

0.0

برای حل این مسئله در پایتون یک کلاس پایه بسازید که در __init__ پارامترهای f، a، b، n را ذخیره کند و یک متد setup داشته باشد که h و نقاط x را محاسبه کند؛ کلاس فرزند TrapezoidalIntegrator در __init__ با super().__init__(...) سازندهٔ پایه را فراخوانی کند و در integrate از h و x (یا محاسبات متد setup) برای محاسبهٔ مجموع ذوزنقه‌ای استفاده کند. می‌توانید از ماژول numpy برای تولید نقاط و جمع‌زنی سریع استفاده کنید اما برای سطح مبتدی پیاده‌سازی با لیست‌ها و حلقه‌ها هم مناسب است؛ حتما ورودی‌ها را بررسی کنید (n>0 و a

توسط پژوهشگر در 221 روز قبل ساعت 01:21
دسته بندی ها: Python Python for beginner
arash در 221 روز قبل ساعت 13:33

در این طراحی پایه، __init__(self, f, a, b, n) مقادیر ورودی را ذخیره کرده و setup را برای محاسبهٔ گام h و نقاط x فرا می‌خواند. کلاس TrapezoidalIntegrator با استفاده از super().__init__(...) سازندهٔ پایه را صدا می‌زند و متد integrate را برای محاسبه و چاپ تخمین ذوزنقه‌ای بازنویسی می‌کند. برای پایداری ورودی‌ها را بررسی کنید (n>0 و a<b) و در صورت نامعتبر بودن ورودی‌ها استثنا پرتاب یا مقدار مناسبی بازگردانید. اگر از numpy استفاده می‌کنید، ایجاد x با numpy.linspace و محاسبهٔ جمع با فرمول ذوزنقه‌ای سریع است، در غیر این صورت با لیست و حلقه هم قابل پیاده‌سازی است.

گزارش

1 پاسخ

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

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