Купить Matlab | Mathematica | Mathcad | Maple | Statistica | Другие пакеты | ![]() |
Internet-класс | Примеры | Методики | Форум | Download | |
![]() |
|
|
Синтаксис: B = balance(A) Описание: Несимметрические матрицы могут проявлять плохую обусловленность при вычислении их собственных значений. Малые возмущения элементов матрицы, такие, как ошибки округления, могут вызывать значительные погрешности в собственных значениях. Величина, связывающая погрешность вычисления собственных значений с погрешностью исходных данных, называется числом обусловленности задачи на собственные значения и вычисляется следующим образом: k = cond(R) = norm(R) * norm(inv(R)), где [R, D] = eig(A). Цель масштабирования - перевести плохую обусловленность матрицы собственных векторов в диагональное масштабирование. Масштабирование не может превратить несимметрическую матрицу в симметрическую, но делается попытка выравнять нормы строк и соответствующих столбцов. Поскольку масштабирование реализуется введением множителей, которые являются степенями основания 2, то никаких ошибок округления при этом не привносится. Функция B = balance(A) возвращает масштабированную матрицу. Функция [D, B] = balance(A) кроме масштабированной матрицы возвращает также диагональную матрицу D, элементы которой являются степенями основания 2; матрица B - это результат преобразования подобия B = D \ A * D. Функция eig(A) автоматически масштабирует A перед вычислением собственных значений D. Масштабирование можно подавить, если использовать обращение вида eig(A, ‘nobalance’). Пример: Рассмотрим матрицу порядка 3, которая имеет большой разброс значений элементов - большие наддиагональные и малые поддиагональные элементы.
Вычислим собственные значения и векторы матрицы A. [RA, DA] = eig(A)
Матрица собственных векторов плохо обусловлена. Выполним масштабирование матрицы A. [D, B] = balance(A)
После масштабирования значения элементов матрицы B оказались выравненными по величине. Вычислим собственные значения и векторы матрицы B. [RB, DB] = eig(B)
Матрица собственных векторов очень хорошо обусловлена. Плохая обусловленность сконцентрирована в диагональной матрице масштабирования D. Алгоритм: Функция balance является встроенной функцией интерпретатора MATLAB; она использует алгоритмы, первоначально написанные на языке АЛГОЛ [1], а затем реализованные на языке FORTRAN в составе пакета EISPACK: balance, balbak [2]. Ограничения: Обычно масштабирование улучшает обусловленность матрицы, гарантируя большую точность вычислений. Однако когда матрица содержит очень малые по величине элементы, которые находятся в пределах ошибок округления, масштабирование может сделать их сравнимыми с другими элементами матрицы, что может привести к неправильным результатам. Диагностические сообщения: Если матрица не квадратная, выдается сообщение Сопутствующие функции: EIG, HESS, SCHUR. Ссылки: 1. Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра: Пер. с англ. М.: Машиностроение, 1976. 390 с. 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. |
| На первую страницу | Поиск | Купить Matlab | |
|
|