با استفاده از itertools.count و مفاهیم برنامه‌نویسی تابعی (map و lambda)، یک مولد بسازید که نقاط x را با گام h تولید کند و مشتق عددی تقریبی تابع f(x)=sin(x) را برای n نقطه اول محاسبه و برگرداند.

1.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:17

0.0

برای حل، از itertools.count(start, step) برای تولید بی‌نهایت مقادیر x با گام h استفاده کنید و با itertools.islice تعداد n نقطه را محدود کنید؛ سپس با map و یک lambda تابع مشتق عددی پیشرو (f(x+h)-f(x))/h را برای هر x محاسبه کنید. از ماژول math برای sin استفاده کنید، خروجی‌ها را در یک لیست بریزید یا چاپ کنید و برای جلوگیری از حلقه‌ی نامتناهی حتماً islice را به کار ببرید — این روش ترکیبی ساده برای کاربردهای محاسبات عددی و اسکریپت‌نویسی خودکار مناسب است.

توسط پژوهشگر در 201 روز قبل ساعت 03:17
دسته بندی ها: Python Python for beginner
arman در 201 روز قبل ساعت 06:55

این رویکرد با itertools.count برای تولید xهای با گام h و استفاده از islice برای محدود کردن به n مقدار، ترکیبی ساده و کارآمد است. با map و lambda مشتق عددی f(x)=sin(x) را به صورت (sin(x+h)-sin(x))/h محاسبه می‌کند، و نیازی به تعریف تابع مشتق ندارد. اندازه h را به گونه‌ای انتخاب کنید که تفاضل دو مقدار در سین تابع دچار خطای اعشار نشود؛ اگر h خیلی کوچک باشد نویز محاسباتی زیاد می‌شود و اگر خیلی بزرگ باشد دقت تقریب کاهش می‌یابد. خروجی‌ها را می‌توان به‌صورت لیست جمع‌آوری کرد یا مستقیماً چاپ نمود تا با همان جریان اسکریپت‌نویسی ساده بماند.

گزارش

1 پاسخ

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

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