Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 63
Текст из файла (страница 63)
Для сложных задач могут возникнуть проблемы с отысканием решения. В этих случаях возможно появление следующих сообщений. Пусть о — порядок матрицы. Если в течение 300 итераций решение ие получено, то выводится сообщение о том, что решение не сходится: 5о)отЧоп н111 оот соптегде При решении системы могут быть выведены следующие диагностические сообщения: сз матгЧх 15 51пдо) аг ьо ног21пд ргес1 51оп — матрица вырождена для выбранной точности; Спектр и сингулярное разложение 339 С) Иагп1 пен гапй бетт с1епС, гапй = ххх Со1 ххх — предупреждение: неполный ранг, ранг - ххх точность - ххх. Спентр и сингулярное разложение Обобщенная проблема собственных значений заключается в нахождении нетри- виальных решений системы уравнений Ях-1Вх, здесь А,  — квадратные матрицы порядка п, х — обобщенный собственный вектор [вектор-столбец), Л вЂ” обобщен- ное собственное значение (число).
Для нахождения собственных чисел использу- ется ряд модулей пакета Е[5РАСК: о операции масштабирования и восстановления производят Ьа1апсе и Ьа1Ьай; С) приведение матрицы к форме Хессенберга осуществляет команда огсьез; О запоминание преобразований производится командой огСап) о Ьцг2 вычисляет собственные значения н векторы матрицы, приведенной к верхней форме Хессенберга. Решение обобщенной проблемы собственных значений использует модули Е[ЯРАСК, основанные на ОХ-алгоритме; Отвез, цт1С, Огча1, цахес, Таблица 13.7. Команды вычисления спектра Имл Описание Вычисление характеристического полиномв Вычисление собственных значений мзтричного полинома Вычисление собственных чисел и векторов Декомпозиция (рвзложение) Шура Сингулярное разложение матрицы (5ЧО-разложение) ро)т ро)уе10 е)0 зспиг зто Для определения собственных значений и собственных векторов матрицы д слу- жит команда [0.0)=етр(Л) Здесь диагональная матрица О состоит нз собственных чисел, а матрица 0 составлена из собственных векторов-столбцов матрицы А Если в левой части указан единственный выходной параметр, то результатом будет выступать вектор-столбец собственных чисел е19[й), Для решения обобщенной задачи А-18 используется обра)цение [0,0)-етй<Л,В) Например, определим собственные числа и векторы для матрицы Паскаля третьего порядка: ъ Р-разса1(3): з [0,8)-етй(Р) 0 0.
8438 -0 8168 О. 1938 340 Глава 13. Матричные вычисления -0.4082 0,4722 0.4082 0.8599 -0.7812 0.3065 0= 0.1270 0 0 0 0 1.0000 0 О 7.8730 Теперь проверим, что первый столбец матрицы Р является собственйым вектором матрицы А, отвечающим первому собственному числу: » 1 1: Р*зы,и)-0(1,1)*0(: „1) дП5 = 1.0е-015 * 0 2220 0.7?72 0.9784 Собственное число н отвечающий ему собственный вектор найдены с точностью до шестнадцатого знака.
Проверку можно было провести и для всех векторов сра- зу Р*Р-Р*Р. Превратить диагональную матрицу собственных значений в вектор поможет ко- манда О)09: » ГЦ 49(0)' дП5 = 0.1270 1.0000 7.8730 Для решения проблемы собственных значений может быть использована декомпозиция Шура: ГР.Т)-5сьиг(А) Если матрица А действительная, то выводится матрица Т с действительными собственными числами на диагонали, а комплексные числа представляются в виде блоков 2х2 (почти треугольная форма). Для комплексной матрицы получается комплексная форма Шура в виде верхней треугольной матрицы с собственными значениями на диагонали. Матрица Р является унитарной матрицей: произведение Р»Р' ЕСТЬ ЕдИНИЧНая МатрИца. ОбращЕНИЕ 7-5С))ОГ(А) ВЫВОдИт ТОЛЬКО МатрИцу В фОрме Шура.
Для преобразования полученной матрицы из действительной формы в комплексную применяются функция [Р.Т)-г5720571 Р. Т); функция ГР. Т)=с572гзгй. Т) дает обратное преобразование. Для решения матричных уравнений Сильвестра и ряда других задач линейной алгебры нужно, чтобы к форме Шура приводилась пара матриц. Для этого имеется команда 02. Положенный в основу этой функции алгоритм был реализован первоначально в рамках пакета Е!БРАСК, многие процедуры которого использованы в системе МАТ!.АВ. После включения в МАТЕАВ ядра пакета Мар!е можно использовать функции из Мар!е. Покажем, как с помощью функции 30гбап найти жорданову структуру матрицы с кратными собственными числами. Введем матрицу А; » А [2 -6 О; 2 -4 2; 0 1 1): Каноническая жорданова форма матрицы получится по команде: Спектр и сингулярное разложение 341 » [В.ОРОогеап(А) В -б -2 2 3- 0 0 0 9 -В 4 -4 2 2 1 0 0 0 -1 На диагонали матрицы 3 находятся собственные числа и двукратному нулевому собственному значению отвечает жорданова клетка.
Прежде чем воспользоваться следующей командой, изменим формат представления чисел: » гогпас апогс е Теперь для той же матрицы А найдем разложение Шура; » СО,51- и 1А) 0- 8.7287е-ОИ -2.672бе-001 -4.0825е-001 4.3644е-001 8.0178е-001 4.0825е-001 -2.1822е-001 5.3452е-001 -8.1650е-001 5- -1.0000е+000 -6.1237е+000 -4.5434е+000 0 -1.6741е-ООВ -2.6186е+000 0 -2.0912е-021 1.6741е-008 Здесь нулевое кратное собственное значение должно было бы определиться нз нижнего блока матрицы 5.
Вследствие погрешности вычислений получаем маленькие ненулевые собственные значения: » е)д(5)' апа- -1.0000е+000 -1.674!е-008 1.6741е-008 Если обратиться к команде е1 д, то вычисление даст следующие собственные числа: » етд(А) апа- -1.0000е+000 7.7802е-016 »3.5798е-0081 7.7802е-016 -3.5798е-ООВт Функция 5»0 определяет сингулярное разложение матрицы.
Сингулярное число а и соответствующие ему векторы н и и матрицы Я удовлетворяют равенствам Ач-оц А' о-ож Здесь А' — транспонированная матрица, а — вещественное число. Образуем матрицу 5, в которой расположим на диагонали сингулярные числа. Тогда ЯУ-))5, Я'))"Ч5 и А"))5Ч'. Диагональ матрицы 5 состоит из положительных значений квадратных корней матрицы Я 'А. Если матрица Я симметричная и положительно определенная, то сингулярные числа совпадают с собственными числами матрицы А.
Вектор сингулярных чисел получается при обращении с одним выходным параметром 5 бит)1А). Приведем пример вычисления сингулярных чисел для прямоугольной матрицы: 342 Глава 13. Матричные вычисления »А[234;7531 А 2 3 4 7 5 3 » [0,5,Ч)=а»с(А) о = 0.4743 0.8803 0.8803 -0.4743 5 !0.2514 0 0 2.6284 Ч = 0.6937 -0 5934 0.4082 0.5682 0.1025 -0 8165 0.4427 0.7983 0.4082 Перемножая полученные матрицы, приходим к исходному массиву: » О*5*Ч' апа = 2.0000 3 0000 4.0000 7.0000 5.0000 3.0000 Значения сингулярных чисел используются при определении ряда характеристик матриц.
При обращении гап2(А) ранг матрицы А определяется как количество син- ГуЛярНЫХ ЧИСЕЛ, ПрЕВЫШаЮщИХ ПОРОГ Нан(612Е»А) )*ПОГя(А)»Ерз, а В СЛуЧаЕ КОМаН- ды гап1(А,(01) порогдается величиной 101. Работа с разреженными матрицами По умолчанию МАТЮКАВ проводит матричные вычисления, оперируя со всеми элементами матриц. Если число элементов велико, то выполнение операций требует большого времени. Для многих задач характерно наличие матриц определенной структуры, с большим количеством нулевых элементов. Поэтому в МАТЮКАВ имеются две системы хранения матриц: полная и разреженная. В первом варианте нулевые элементы хранятся в памяти, н для хранения матрицы с й строками и н столбцами требуется место для )(»н чисел. Для разреженных матриц хранятся только ненулевые элементы. Запись осуществляется по столбцам, а номера строк хранятся в целочисленном массиве.
Ввод разреженной матрицы наиболее просто реализуется с помощью команды Врагзе: 5 - арагъе(и,п,Ч) Здесь буквы н и и обозначают индексы строки и столбца, куда будет введен вектор Ч, причем в качестве индекса можно использовать диапазон.
Нулевые элементы при этом автоматически удаляются. Например: » 5 - арагае(З:5, 3. [1 О 2)) 5 (З.З) 1 (5.3) 2 Работа с разреженными матрицами 343 Команда зрагзе(Ч) преобразует полную матрицу Ч в разреженную. С разреженными матрицами можно производить те же операции, что и с обычными, необходимое для этого время будет пропорционально количеству арифметических операций над ненулевыми элементами. Применение некоторой функции только к ненулевым элементам поддерживает команда зртцп — это аналог функции гена1 (см.
главу 1Б «Программирование в МАТЕАВз). Ряд команд предоставляет стандартные возможности по вводу матриц специального вида. Например, для ввода единичной разреженной матрицы имеется команда зреуе, а случайная матрица создастся по команде з рга пап. Симметричная матрица со случайным заданием элементов будет выведена по команде зргапапзуж Аналогом команды а1ад для работы с разреженными матрицами является команда зра1адз, которая позволяет выделить указанные диагонали, заменить их, выделить все ненулевые диагонали, сформировать разреженную матрицу по заданным диагоналям. Найти индексы ненулевых элементов разреженной матрицы позволяет команда 1 па.