سؤال

في MATLAB، عندما أقوم بتشغيل الأمر [V,D] = eig(a) بالنسبة للمصفوفة المتماثلة، تقع أكبر قيمة ذاتية (والناقل المرتبط بها) في العمود الأخير.ومع ذلك، عندما أقوم بتشغيلها باستخدام مصفوفة غير متماثلة، تكون أكبر قيمة ذاتية في العمود الأول.

أحاول حساب مركزية المتجهات الذاتية التي تتطلب أن أقوم بحساب المتجهات الذاتية المرتبطة بأكبر قيمة ذاتية.لذا فإن حقيقة ظهور أكبر قيمة ذاتية في مكانين منفصلين تجعل من الصعب علي إيجاد الحل.

هل كانت مفيدة؟

المحلول

عليك فقط العثور على فهرس أكبر قيمة ذاتية في D, ، وهو ما يمكن القيام به بسهولة باستخدام الوظيفة دياج لاستخراج القطر الرئيسي والوظيفة الأعلى للحصول على القيمة الذاتية القصوى والفهرس الذي تحدث فيه:

[V,D] = eig(a);
[maxValue,index] = max(diag(D));  %# The maximum eigenvalue and its index
maxVector = V(:,index);           %# The associated eigenvector in V

ملحوظة: مثل تشير رقائق الخشب, ، يمكن أن يكون لديك قيم ذاتية معقدة للمصفوفات غير المتماثلة.عند العمل على مدخلات معقدة X, ، ال الأعلى تستخدم الدالة حجم العدد المركب max(abs(X)).في حالة العناصر المتساوية الحجم، زاوية الطور max(angle(X)) يستخدم.

نصائح أخرى

ما أفعل عادة هو:

giveacodicetagpre.

لاحظ أن المصفوفات غير المتماثلة تميل إلى الحصول على eigenvalues معقدة.

giveacodicetagpre.

لاحظ أيضا أن EIG لا يرجع بشكل صريح إلى Eigenvalues مرتبة (على الرغم من أن الخوارزمية الأساسية تميل إلى إنتاجها في ترتيب فرز تقريبا، بناء على حجم eigenvalue)، ولكن حتى لو كنت تفعل فرز، فأنت بحاجة إلى فهمكيف فرز يعمل على ناقلات معقدة.

giveacodicetagpre.

الفرز، عند تطبيقها على المدخلات المعقدة، يعمل على حجم الرقم المعقد.

إذا كنت تهتم فقط إلى eigenvector المرتبط بأكبر eigenvalue، فليس من الأفضل استخدام eigs ؟

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top