با استفاده از پایتون یک ماتریس مربعی تصادفی با عناصر توزیع نرمال بساز و بزرگترین مقدار ویژه آن را محاسبه کن.
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 بررسی کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای تضمین مقادیر ویژهٔ حقیقی، ابتدا ماتریس 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 کارایی را بسنجید.
گزارش