Довідник по matlab

Проблема власних значень полягає в знаходженні нетривіальних рішень системи рівнянь, яка може бути інтерпретована як алгебраїчний еквівалент системи звичайних диференціальних рівнянь в явній формі Коші:

де A - квадратна матриця порядку n;
r - вектор-стовпець розміру 1х n, званий власним вектором;
l - скаляр, званий власним значенням.

Функція d = eig (A) обчислює власні значення матриці A.

Функція [R, D] = eig (A) обчислює діагональну матрицю D власних значень і матрицю R правих власних векторів, що задовольняють співвідношенню A * R = R * D. Ці вектори нормовані так, що норма кожного з них дорівнює одиниці.

Ліві власні вектори можуть бути знайдені в такий спосіб:
[L, D] = eig (A ');

Матриці власних значень D для A і A 'містять одні й ті ж власні значення, хоча порядок їх слідування може бути різний. Матриця лівих власних векторів задовольняє співвідношенню A '* L = L * D. Для узгодження незалежно знайдених систем правих і лівих власних векторів систему лівих векторів необхідно унормувати так, щоб дотримувалася умова L * R = eye (n, n).

Функція [R, D] = cdf2rdf (R, D) перетворює комплексні виходи функції eig в дійсні, при цьому комплексні власні значення перетворюються в блоки розміру 2 х 2, а комплексна матриця правих власних векторів R перетворюється в дійсну, стовпці якої, відповідні дійсним власним значенням, зберігаються, а відповідні комплексним - розщеплюються на два: [Re (ri) Im (ri)].

Розглянемо матрицю порядку 3 з одним дійсним і парою комплексно сполучених власних значень і виконаємо обчислення з використанням комплексних матриць.

Застосовуючи функцію cdf2rdf, ці ж обчислення можна реалізувати, використовуючи тільки дійсні матриці, що дозволяє більш економно витрачати пам'ять.

Функція [R, D] = eig (A, 'nobalance') обчислює власні значення і власні вектори без попереднього масштабування матриці. Зазвичай, масштабування покращує обумовленість матриці, гарантуючи більшу точність обчислень. Однак коли матриця містить дуже малі за величиною елементи, які знаходяться в межах помилок округлення, масштабування може зробити їх порівнянними з іншими елементами матриці, що може привести до неправильних результатів.

Розглянемо матрицю порядку 4, яка містить елементи, які можна порівняти з помилками округлення.

norm (B * RN- RN * DN) = 0.9957e-015

Як випливає з цього прикладу, власні значення в обох випадках обчислені правильно, але норми невязок розрізняються дуже істотно, що свідчить про те, що власні вектори в першому випадку обчислені невірно.

Узагальнена проблема власних значень полягає в знаходженні нетривіальних рішень системи рівнянь

де A, B - квадратні матриці порядку n;
r - вектор-стовпець розміру 1 х n, званий узагальненим власним вектором;
l - скаляр, званий узагальненим власним значенням.

Обчислення з використанням комплексних матриць:

Обчислення з використанням тільки дійсних матриць:

Якщо B - невироджена матриця, то система може бути розглянута як алгебраїчний еквівалент системи звичайних диференціальних рівнянь в неявній формі Коші, а завдання може бути зведена до звичайної проблеми власних значень

У разі, коли B - вироджена матриця, система рівнянь являє собою змішану систему диференціальних і алгебраїчних рівнянь і для її вирішення необхідно застосовувати спеціальні методи.

Функція d = eig (A, B) обчислює узагальнені власні значення матриці A.

Функція [R, D] = eig (A, B) обчислює діагональну матрицю D узагальнених власних значень і матрицю R правих узагальнених власних векторів, що задовольняють співвідношенню A * R = B * R * D. Ці вектори нормовані так, що норма кожного з них дорівнює одиниці.

Для дійсних матриць функція eig (A) використовує наступні модулі пакета EISPACK [1-2]: balance, balbak, orthes, ortran і hqr2. Модулі balance і balbak пов'язані з операціями масштабування і відновлення; модуль orthes здійснює приведення матриці до форми Хессенберга за допомогою ортогональних подібних перетворень; модуль ortran запам'ятовує всі перетворення; модуль hqr2 обчислює власні значення та вектори матриці у верхній формі Хессенберга з використанням QR-алгоритму Франсіса і Кублановского [3].

Функція eig (A, B) використовує інші модулі пакета EISPACK [1-2]: qzhes, qzit, qzval, і qzvec, засновані на QZ-алгоритмі.

Для комплексних матриць функція eig (A) використовує QZ-алгоритм, вирішуючи завдання в формі eig (A, eye (A)).

Якщо протягом 30 * n ітерацій власні значення не знайдені, видається повідомлення
Solution will not converge.
Рішення не сходиться.

1. Smith B. T. Boyle J. M. Dongarra J. J. Garbow B. S. Ikebe Y. Klema V. Moler C. B. Matrix Eigensystem Routines - EISPACK // Guide. Lecture Notes in Computer Science. Berlin, 1976. Vol. 6.

2. Garbow B. S. Boyle J. M. Dongarra J. J. Moler C. B. Matrix Eigensystem Routines - EISPACK Guide Extension // Lecture Notes in Computer Science. Berlin, 1977. Vol. 51.

3. Уілкінсон, Райнш. Довідник алгоритмів на мові АЛГОЛ. Лінійна алгебра: Пер. з англ. М. Машинобудування, 1976. 390 с.

4. Moler C. B. Stewart G. W. An Algorithm for Generalized Matrix Eigenvalue Problems // SIAM J. Numer. Anal. 1973. N 2. Vol. 10.

Схожі статті