با استفاده از itertools.product در پایتون، یک اسکریپت بنویسید که شبکهای از مقادیر x و y را تولید کند و برای هر جفت (x, y) مقدار تابع f(x,y)=sin(x)*exp(-y) را محاسبه کرده و نتایج را به صورت لیستی از تاپلهای (x, y, f) بازگرداند.
4.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:04 0.0
برای حل این مسئله از کتابخانه استاندارد itertools و توابع ریاضی (math یا numpy) استفاده کنید: ابتدا بردارهای مقادیر x و y را با range یا numpy.linspace تعریف کنید، سپس با itertools.product بر روی دو بردار تکرار کنید و برای هر جفت مقدار f را محاسبه و در لیستی ذخیره کنید. نکتهها: میتوانید از لیست کامپرهنشن یا ژنراتور برای حافظه کمتر استفاده کنید؛ برای شبکههای بزرگ به جای حلقهٔ پایتون از numpy.meshgrid و عملیات برداری برای سرعت بیشتر بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای تولید شبکهای از مقادیر x و y و محاسبه f(x,y)=sin(x)*exp(-y) با itertools.product، دو بردار x و y را تعریف کرده و از یک ژنراتور یا لیست از تاپلهای (x, y, f) استفاده کنید. برای صرفهجویی در حافظه میتوانید از لیست کامپرهنشن یا ژنراتور استفاده کنید تا تنها یک نتیجه در هر زمان تولید شود. اگر شبکه بزرگ است، استفاده از numpy.meshgrid و محاسبه برداری f بهجای حلقهٔ پایتون میتواند سرعت را بهشدت افزایش دهد. همچنین مطمئن شوید از واحدهای رادیانی استفاده میکنید و اگر از numpy استفاده میکنید، از numpy.sin و numpy.exp بهجای math استفاده کنید.
گزارش