Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 31
Текст из файла (страница 31)
Понятие это оченьшироко используется во многих задачах линейной алгебры (например, при нахождении чисел обусловленности матриц или при оценке сходимости итерационных методов при решении больших систем линейных алгебраических уравнений). Нестрогоговоря, прежде всего, норма матрицы отражает средний порядок величины матричныхэлементов. Так, например, норма вектора — это не что иное, как его длина.В линейной алгебре существует довольно значительное количество различных алгоритмов вычисления нормы. Если векторное пространство ограничено, то все они даютприблизительно одинаковый результат — как правило, различие не выходит за пределы одного порядка.
А так как матричные нормы есть величины оценочные, то нет разницы, которую из них использовать.В Mathcad существуют четыре функции, которые отвечают за вычисление матричных норм.• norml(M) — норма вычисляется в пространстве L1 (о том, что это такое, можно прочитать в любой математической энциклопедии или учебнике по линейной алгебре).Алгоритм ее вычисления следующий: складываются все элементы в столбцах (вернее, модули значений элементов), и наибольшая сумма определяется как норма данной матрицы.• norm2(M) — матричная норма в пространстве L2.• normi(M) — так называемая «-норма, или норма на бесконечности (infinity norm).Вычисляется так же, как norml, но суммируются элементы не столбцов, а строк.• norme(M). Норма в евклидовом пространстве. По аналогии с векторами, вычисляется как квадратный корень из суммы квадратов всех элементов матрицы.Так как нормы определяются довольно простыми выражениями, на практике можноспециальные функции и не использовать.
Поэтому в следующем примере нормы вычисляются обоими способами (обратите внимание на то, что результаты получаютсяочень близкими вне зависимости от выбранного алгоритма).1 2 8 • Глава 3. Матричные вычисленияПример 3.42. Вычисление норм матрицМ:=2 3 89 6 7norml(M) = 17normi(M) - 22norm2(M) = 15.224norme(M) = 15.875\\2У Мп .j=0i=02У М. ,max= 17= 22maxi=0j=02MZ i,2ZM2,ji=0j=0VV22|i=0 j = 03.3.6.
Вычисление ранга матрицыРанг матрицы равен порядку наибольшего отличного от нуля минора этой матрицы.Величина эта служит прежде всего для характеристики матрицы системы уравнений,а также как параметр, определяющий, базисом пространства какой размерности можетбыть данное множество векторов.Для вычисления ранга матрицы в Mathcad существует специальная функция rank(M).В следующем примере находится величина ранга для трех матриц. У первой (М) всетри строки линейно независимы, у второй (Ml) имеются две линейно зависимые строки, у третьей (М2) все строки линейно зависимы.Пример 3.43.
Вычисления ранга матрицы1 2 32 3 6М:=V4 5 9угапк(М) = 31 23Ml := 5 10 15,'•35угапк(М1) = 21 23^M2:= 2 4 64 8 12гапк(М2) = 13.3. Использование матричных функций * 1 2 93.3.7. Функции вычисления собственных значенийи собственных векторовОчень важной с практической точки зрения является задача о собственных векторахи собственных значениях матрицы, описывающей некоторую однородную систему.Это направление линейной алгебры находит широкое применение в экономике, программировании и особенно в инженерном деле (например, без него немыслима теорияповреждений при максимальных нагрузках или теория о деформациях).
Поэтому, естественно, в такой совершенной математической системе, как Mathcad, оно не моглоне найти отражения.Собственные векторы X,, Х2,... и соответствующие им собственные значения X,, Х2,...матрицы М являются решениями матричного уравнения видаМХ=ХХ(1)В принципе, для небольших матриц решить уравнение такого вида совсем несложно,однако, если, к примеру, вам требуется найти корни однородной системы линейныхдифференциальных уравнений, образованной 10 уравнениями, тут без помощи компьютера обойтись трудно. В системе Mathcad существует ряд функций, позволяющих весьма эффективно справляться с такой работой.•eigenvals(M). Функция возвращает вектор, содержащий собственные значения матрицы М.
Собственные значения расположены в векторе в соответствии с их величиной.•eigenvecs(M). Функция возвращает матрицу, столбцы которой являются собственными векторами для матрицы М. Между функциями eigenvals(M) и eigenvecs(M) существует следующая связь: n-му элементу вектора собственных значений соответствует n-й столбец матрицы собственных векторов.01 eigenvec(M,X). Функция вычисляет собственный вектор матрицы М, соответствующий определенному собственному значению X.В следующем примере рассматривается вычисление собственных значений и собственных векторов для матрицы размерности п=3.
Также проводится проверка правильности вычислений. Для этого, исходя из общего вида матричного уравнения (1), перемножаются собственный вектор и собственное значение матрицы М. Если расчеты былисделаны правильно, то полученный вектор должен равняться вектору, образованномуперемножением самой матрицы М на ее собственный вектор.Пример 3.44. Вычисление собственных значений и собственных векторовматрицы16.117М:=eigenvals(M) -4 5 6Ч7 8 9\-1.1170У0.232 0.786 -0.408eigenvecs (M) = 0.525 0.0870.8160.819 -0.612 -0.408VУ0.408eigenvec(M,0) • -0.816V0.408У1 3 0 •:• Глава 3.
Матричные вычисленияПроверка результатов вычислений:3.73<ЛM-eigenvecs (M)3.7398.467•Чeigenvecs (M)(0)-eigenvals(M) 0 =13.194,8.467Ч13.194,Также в линейной алгебре существует проблема поиска собственных значений и собственных векторов для случая более общей задачи, определяемой уравнением M-X=X-N'X,где N — некоторая квадратная матрица.
Технически решение такой задачи находитсянамного труднее, чем предыдущей, так что возможности Mathcad тут могут быть просто незаменимы.Для решения задачи поиска обобщенных собственных значений существуют две специальные функции.•genvals(M,N). Функция вычисляет вектор собственных значений матрицы М (аналогично функции eigenvals(M)).•genvecs(M,N). Функция, аналогичная eigenvecs(M). Возвращает матрицу, содержащую в качестве столбцов собственные векторы матрицы М при некоторой заданной матрице N.В следующем примере рассматривается использование функций genvals(M,N) и genvecs(M,N), а также проводится проверка на верность вычислений.Пример 3.45.
Решение обобщенной задачи на собственные значения(М:=(4Ъ5 0 7^5f0.831N-0.466 0.534ч\ оГN:= 0 1 0з,60.803genvecs(M,N) =fgenvals(M,N) =1 —З.ОЗо 1S-0.371 -0.158 >Проверка на верность расчетов:—1.312^М* scnvccs ( M , N)\W1.416—^-1.312^N-genvals(M,N) 0 -genvecs(M,N)0.104 .ч./=1.416^ 0.104у3.3.8. Функции матричных разложенийОдной из главных задач линейной алгебры является задача о представлении матрицыв виде произведения двух или более матриц специального вида. Во многих случаях,если такое представление (разложение) удается, решение той или иной проблемы значительно упрощается. Матричные разложения используются прежде всего при решении систем линейных алгебраических уравнений, а также в задачах, связанных с поиском собственных значений матриц.3.3.
Использование матричных функций• 131Ш-разложениеСуть этого разложения сводится к тому, что любую (не сингулярную) квадратную матрицу можно представить в виде произведения верхней и нижней треугольных матриц(R-M=L-U, где М — разлагаемая матрица, R — матрица перестановки (если же таковаяне требуется, просто единичная матрица), L и U — нижняя и верхняя треугольные матрицы).
LU-разложение широко используется при построении альтернативного методу Гаусса алгоритма решения систем линейных алгебраических уравнений. Достоинство такого способа проявляется в тех случаях, когда требуется решить одну и ту жесистему с различными векторами правых частей (а задача такая может возникнуть прирешении систем с параметрами). В этом случае число шагов алгоритма значительносокращается.
При решении же единственной системы уравнений нет разницы, какойиз методов использовать.Разложить матрицу на произведение нижней и верхней треугольных матриц в системеMathcad можно с помощью специальной функции lu(M).Особенностью этой функции является то, что результат выдается в виде одной общейматрицы, полученной слиянием матрицы перестановки R, нижней треугольной матрицы L и верхней треугольной матрицы U. Чтобы результат можно было использоватьв дальнейшей работе, придется воспользоваться уже рассмотренной выше функциейsubmatrix. Как это сделать, демонстрируется в примере 3.46.
Также в нем осуществляется проверка правильности разложения.Пример 3.46. Ш-разложение'i45^5 0 7N:=lu(M)i 6 3,0 011о0 5 631 0 0-6 41 0 0 0.6 -0.067 1 0 0 3.467,N = 0 1010 0 1R :=submatrix(N,0,rows(M) - l,0,cols(M) -R= 0 1 01 0 0L:=submatrix(N,0,rows(M) - l,cols(M),2cols(M) - 1)\о о110V 0.6 -0.067 15 6U:=submatrix(N,0,rows(M) - l,2cols(M),3cols(M) - 1)u=0-60 3.467y1 3 2 ••: Глава 3. Матричные вычисленияПроверка на верность разложения:R M - L-U =0 0 00 0 0То, как в Mathcad осуществляется LU-разложение, очень подробно описывается в гл 8(в разделе, посвященном решению систем линейных уравнений).
Там же имеется соответствующий алгоритм на языке программирования Mathcad.Разложение ХолецкогоРазложением Холецкого называется представление матрицы в виде произведения некоторой треугольной матрицы и матрицы, полученной транспонированием последней(M-L-U). Обязательным условием возможности разложения Холецкого является то,что разлагаемая матрица должна быть симметричной (то есть М=М7) и положительноопределенной (то есть ее определитель должен быть положительным числом).Для реализации разложения Холецкого в Mathcad существует специальная встроенная функция cholesky(M), результатом работы которой является матрица L.QR-разложениеQR-разложением матрицы М называется представление ее в виде произведения ортогональной (то есть QJ*=QX) и верхней треугольной матриц. Разложение имеет практическое значение в связи с использованием его при решении задач на собственные значения матриц.Для выполнения QR-разложения в Mathcad существует специальная встроенная функция qr(M).
Аналогично функции LU-разложения, qr(M) представляет результат в видеединой матрицы. Поэтому, как и при выполнении LU-разложения, придется использовать функциюsubmatrix.Пример 3.47. QR-разложениеГм :=24 5 6'о.241 -0.84N=3 5^0.487 8.307 9.8720.482 -0.332 -0.8110.843Ч0 43--.-N:«= qr(M)0.32400-9.149 ^-0.742 -3.6130--0.487jQ :=submatrix(N,0,rows(M) - l,0,cols(M) - 1)0.241 -0.840.4870.482 -0.332 -0.811v0.8430.430.324/\ ооQ-Q = 0 1 0oo i3.3.
Использование матричных функций8.307 9.872R :=submatrix(N,0,rows(M) - l,cols(M),2cols(M) - 1)R=0* 1339.149^-0.742 -3.61300-0.487 уПроверка разложения:0 0 0М - QR = 0 0 00 0 0Сингулярное разложениеСингулярным разложением матрицы М размера пхт (и > т) называется разложениевида M^U-s-V7, где {/и V — диагональные матрицы размерности соответственно пхпи тхт, s — диагональная матрица с сингулярными числами матрицы М на диагонали.Для решения задачи сингулярного разложения в Mathcad существуют следующиевстроенные функции.•svds(M).