با استفاده از پایتون یک ماتریس مربعی تصادفی با عناصر توزیع نرمال بساز و بزرگترین مقدار ویژه آن را محاسبه کن.

6.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:08

0.0

برای این مساله می‌توانید از کتابخانه numpy استفاده کنید: با np.random.default_rng(seed).normal ماتریسی با توزیع نرمال بسازید، برای تضمین مقادیر ویژهٔ حقیقی می‌توانید ماتریس را به صورت متقارن کنید A = (M + M.T)/2 و سپس با np.linalg.eigh (که برای ماتریس‌های متقارن سریع‌تر و پایدارتر است) مقادیر ویژه را محاسبه کنید و بزرگترین مقدار ویژه را استخراج کنید. نکته‌ها: از seed برای تکرارپذیری استفاده کنید، نوع داده را float64 انتخاب کنید و برای ماتریس‌های بزرگ از پیاده‌سازی‌های بهینه BLAS/LAPACK بهره ببرید؛ برای سنجش کارایی می‌توانید زمان اجرا را با time یا timeit بررسی کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:08
دسته بندی ها: Python Python for beginner
nima در 220 روز قبل ساعت 10:50

برای تضمین مقادیر ویژهٔ حقیقی، ابتدا ماتریس M را ساخته و به A = (M + M.T)/2 بدهید تا متقارن شود. از np.random.default_rng(seed).normal برای تولید ماتریس n×n با توزیع نرمال استفاده کنید و سپس با np.linalg.eigh(A) مقادیر ویژه را به دست آورید (این تابع برای ماتریس‌های متقارن سریع‌تر و پایدارتر است). بزرگترین مقدار ویژه را می‌توانید از w[-1] بدست آورید، چون مقادیر ویژه در eigh به صورت صعودی مرتب می‌شوند. برای کارایی و ثبات، از dtype=float64 استفاده کنید و در ماتریس‌های بزرگ از پیاده‌سازی‌های بهینه BLAS/LAPACK و در صورت نیاز از الگوریتم‌های تخصصی مانند eigsh بهره ببرید؛ همچنین می‌توانید با اندازه‌گیری زمان با time یا timeit کارایی را بسنجید.

گزارش

1 پاسخ

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

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