در پایتون یک برنامه بنویس که با استفاده از collections.OrderedDict زمان اجرای محاسبات مقادیر ویژه (با numpy.linalg.eigvals) را برای ماتریسهای تصادفی با اندازههای مختلف (مثلاً 100، 200، 500) ذخیره کرده و در پایان نتایج را به ترتیب اندازه ماتریسها چاپ کند.
1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:25 0.0
برای حل، از کتابخانه numpy برای ساخت ماتریسهای تصادفی و محاسبه مقادیر ویژه و از collections.OrderedDict برای نگهداری نتایج به ترتیب درج استفاده کن؛ در هر تکرار اندازه ماتریس را به عنوان کلید و زمان اجرا (با time.perf_counter) و شاید چند مقدار ویژه اول را به عنوان مقدار در OrderedDict ذخیره کن. نکتهها: قبل از حلقه importهای لازم را انجام بده (numpy، time، OrderedDict)، برای اندازههای بزرگ از کتابخانههای عددی بهینهشده (مثلاً numpy با BLAS/MKL) استفاده کن و برای آزمایشهای سنگین میتوانی از multiprocessing یا افزایش حافظه/هسته در محیطهای HPC استفاده کنی؛ اما برای سطح مبتدی کافیست اندازهها را کوچکتر انتخاب و نتایج را با حلقه ساده چاپ کنی.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای این کار یک برنامه پایتون بنویسید که با استفاده از collections.OrderedDict زمان اجرای محاسبات مقادیر ویژه را برای ماتریسهای تصادفی با اندازههای مختلف ذخیره کند و در پایان نتایج را به ترتیب اندازه چاپ کند. قبل از حلقه importهای لازم (numpy، time، و از collections import OrderedDict) را انجام بده و از time.perf_counter برای اندازهگیری دقیق زمان استفاده کن و شاید چند مقدار ویژه اول را به عنوان مقدار در OrderedDict ذخیره کن. از numpy.linalg.eigvals برای محاسبه مقادیر ویژه استفاده کن؛ برای اندازههای بزرگ از توابع بهینهشده numpy بهره ببر تا سرعت و استفاده از BLAS/MKL بهتر باشد. در نهایت میتوانی آزمایشهای سنگین را با multiprocessing یا تخصیص منابع HPC انجام بدهی، اما برای سطح مبتدی اندازهها را کوچکتر و چاپ نتایج بهطور ساده کافی است.
گزارش