با استفاده از functools.partial یک تابع مشتقگیر عددی (روش اختلاف مرکزی) بنویسید که مقدار h پیشفرض را ثابت میکند و آن را برای توابع math.sin و math.exp در نقاط معین محاسبه کند.
1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:52 0.0
یک تابع derivative(f, x, h=1e-5) بنویسید که با فرمول اختلاف مرکزی (f(x+h)-f(x-h))/(2*h) مشتق عددی را محاسبه کند، سپس از functools.partial برای ثابتکردن مقدار h (مثلاً 1e-6 یا 1e-5) استفاده کنید تا یک تابع مشتقِ آمادهبهکار بهدست بیاید. از ماژول math برای توابع نمونه (math.sin و math.exp) استفاده کنید و نتایج را در چند نقطه با مقدار مشتق تحلیلی مربوطه مقایسه کنید؛ از list comprehension یا map برای اعمال تابع مشتق روی لیستی از نقاط بهره ببرید. نکتهها: h خیلی کوچک میتواند باعث خطای عددی شود، بنابراین مقدار مناسب انتخاب کنید و ترتیب آرگومانها را طوری قرار دهید که partial بتواند پارامتر h را با نام یا موقعیت ثابت کند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای ساخت یک مشتقگیر عددی با استفاده از اختلاف مرکزی میتوان از functools.partial برای ثابت کردن مقدار h استفاده کرد تا تابع مشتقِ آمادهبهکار بسازیم. در فرمول (f(x+h) - f(x-h)) / (2*h)، مقدار h را میتوان با partial ثابت کرد و سپس برای توابع math.sin و math.exp با لیست نقاط x و مقایسه با مشتق تحلیلی آنها استفاده کرد. از map یا لیستفهمی برای اعمال مشتق روی مجموعهای از نقاط بهره ببرید تا نتایج به دست آید. مراقب باشید h خیلی کوچک باعث نویز عددی شود و مقدار مناسبی مانند 1e-5 یا 1e-6 انتخاب کنید و همچنین ترتیب آرگومانها را طوری تنظیم کنید که partial بتواند h را از طریق نام یا موقعیت ثابت کند.
گزارش