Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 29
Текст из файла (страница 29)
Матричные вычисленияматрицу приходится использовать. С помощью Mathcad можно предельно упроститьэту очень трудоемкую и порой весьма сложную задачу.Оператор нахождения обратной матрицы (Inverse) можно ввести с помощью специальной кнопки панели Matrix (Матричные). Однако можно обойтись и без обращенияк рабочей панели: достаточно просто выделить матрицу и возвести ее в степень -1 абсолютно аналогично числам или выражениям.Находить обратную матрицу можно как для матриц с элементами-числами, так и дляматриц, элементы которых определены символьно.Пример 3.24. Вычисление обратной матрицы2 3 45 6 78QП-cos ( а )-1f-2.11.2-од1.867 -1.067 0.2V-0.10.2-0.1/...( sin(a)simplify -¥Обратите внимание, оператор simplify корректно упростил элементы обратной матрицы. Однако не следует забывать о том, что символьный процессор Mathcad может правильно преобразовать лишь простейшие тригонометрические выражения.Для нахождения матрицы, обратной A, Mathcad использует численный метод, в основе которого лежит решение систем линейных уравнений.
Действительно, чтобы найтиобратную матрицу, необходимо, по сути, решить матричное уравнение вида А'Х=°Е.Для вычисления Х=А~' Mathcad последовательно ищет корни систем уравнений A-Xi==Ei(i = 1,2,..N — размерность матрицы), где Е, — i-й столбец единичной матрицы или матрицы перестановки (если таковая требуется). Вектор решений X, каждой системы естьне что иное, как i-й столбец обратной матрицы. Объединяясь, они формируют конечный результат. Обратите внимание, чтобы найти столбцы обратной матрицы, нужнорешить одну и ту же систему уравнений с различными векторами правых частей.
Дляупрощения этой процедуры проводится LU-разложение, поскольку алгоритм, используемый в этом случае, затрачивает на поиск решения меньшее число шагов, чем методГаусса. В основе его работы лежат следующие операции.1. После того как проведено LU-разложение, исходную систему уравнений представляем как LUX(HE,.2. Полагая, что UXj""Yp находим решения Yi нижних треугольных систем LY,"E| методом прямой подстановки.3. Методом обратной подстановки ищем интересующие нас решения X, верхних треугольных систем UX,-Y,.4. Объединяем полученные вектора Х; в конечную матрицу А"1.Помимо описанного выше способа найти обратную матрицу в Mathcad можно, задействовав встроенную функцию geninv(M). Для матриц, определитель которых мало отличен от нуля, алгоритм, использующий LU-разложение, может и не сойтись.
С помощьюже функции geninv(M) можно получить матрицу, обратную любой почти сингулярной матрице. Правда, точность таких решений оставляет желать Лучшего. В остальных случаях использование функции geninv(M) и оператора Inverse панели Matrix абсолютноидентично.3.2. Элементарные матричные вычисления *3.2.10. Сумма элементов вектораВ некоторых случаях приходится находить сумму элементов вектора. Для этого в Mathcad существует специальный оператор Vector Sum (Сумма вектора), который расположен на панели Matrix (Матричные).
Также его можно ввести сочетанием клавишCtrl+4.Иногда возникает необходимость просуммировать элементы, стоящие на главной диагонали квадратной матрицы. Такая сумма называется следом (trace) матрицы. Для еевычисления в Mathcad существует специальная функция tr(M), где М — матрица.Пример 3.25. Сумма элементов вектора и след матрицы((\ з•','СЛ= 124 5 6tt\\5 67= 13Л3.2.11. Возведение матрицы в степень и матричныеуравненияСистема Mathcad позволяет проводить операции возведения матрицы в степень. Еслиматрица квадратная, ее можно возвести в степень п, где п — любое целое число (или 0).При этом:л• если п=0, то (по аналогии с традиционной алгеброй) М =Е, где Е — единичная матрица;• если п=1, то М1 =М (матрица, возведенная в первую степень, равна сама себе);О если n=N, где N — любое натуральное число, равное или большее 2, то степень матрицы определяется как произведение соответствующего числа матриц в первой степени.
Подобное произведение возможно, поскольку при перемножении две квадратные матрицы равной размерности дают третью с той же размерностью;если п=-1, то М"1 — это матрица, обратная данной;если n=R, где R — любое целое отрицательное число, меньшее либо равное -2, тоаналогично возведению в положительную степень, MR определяется как произведение нужного числа обратных матриц.Задается степень матрицы аналогично случаям с числами или выражениями: либос помощью кнопки Raise to Power (Возвести в степень) рабочей панели Calculator (Калькулятор), либо сочетанием клавиш Shift+б (предварительно матрицу следует выделить).••Пример 3.26. Возведение матрицы в степень1О О-71.222 24.8896 7 8О 16 О0О 81УЧ57 8у1711.202 -54.695 49.77837.90530.49-54.222,/Большое значение в линейной алгебре и, особенно, теории оптимизации имеют такназываемые матричные уравнения.
Решить их можно очень просто с помощью блокаGiven-Find. Подробно особенности использования данного блока описываются в гл. 8.1 2 0 •:• Глава 3. Матричные вычисленияПример 3.27. Найти матрицу X, удовлетворяющую условию Х 2 -Х=М, гдеМ — некоторая квадратная матрицаЗадаем матрицу М:'303642 ^668196М:=^102 126 150JУказываем начальное приближение для используемого Mathcad численного алгоритма:Х:=0.001МУказываем вид уравнения в блоке Given-find и присваиваем матрицу с решением переменной R:GivenХ 2 - Х =МR:=find(X)Проверяем решение на верность:'-2.106 -2.626 -2.146Л'302R -R =R = -4.355 -4.22 -6.0846636428196-5.604 -7.814 -9.023,V 102 126 150Аналогично численному решению простых уравнений, решение матричных уравненийзависит от величины параметра TOL, а также начального приближения. При поиске корней матричных уравнений система использует те же алгоритмы, что и для решениясистем нелинейных уравнений.
Символьно решать матричные уравнения Mathcadне может.3.2.12. Векторизация матрицСамым оригинальным и интересным оператором матричных преобразований является оператор векторизации (Vectorize) панели Matrix (Матричные). Этот оператор позволяет производить некоторые преобразования над каждым элементом матрицы в отдельности. Задачи подобного рода возникают очень часто, и в общем случае для ихрешения приходится задавать циклы или даже писать программы. Оператор векторизации помогает справиться со многими такими задачами гораздо проще.Пример 3.28. Произведение элементов двух матрицПусть стоит следующая задача: есть две соразмерные матрицы М и N.
Следует задать матрицу Р,элементы которой образованы произведениями соответствующих элементов матриц М и N.Определяем исходные матрицы:(2М:=3 3^3 5 68 9.3 2 4N:=6 7 51 8 9,3.3. Использование матричных функций* 121Перемножаем их с использованием векторизации:P:=(M-N)Выводим результат:661218 35 30Р=V49 64 81,Ввести оператор векторизации можно либо с панели Matrix (Матричные), либо сочетанием клавиш Ctrl+-.
Перед тем как ввести этот оператор, следует выделить преобразуемое выражение.Применять оператор векторизации можно в очень разнообразных ситуациях. Следующий пример демонстрирует это.Пример 3.29. Разнообразие векторизацииС помощью операции векторизации можно возвести одну матрицу в степень, которая представляется в виде другой матрицы. И это совсем не абсурд: просто каждый элемент однойматрицы будет возведен в степень, равную значению соответствующего ему элемента второйматрицы:f\ 2 ЛМ:=2 3 l,23з,(2N:=3 4N2 4 53 2,—>MN=418 1481 16 4 27 9,Используя векторизацию, можно получить матрицу значений любой функции в точках, равныхпо значению элементам исходной матрицы.
А это может значительно облегчить задачу обработки данных и построения графиков:0.841 0.909 0.841sin(M) = 0.909 0.141 0.8410.909 0.141 0.1413.3. Использование матричных функцийРабота с матрицами — это наиболее важная и наиболее часто используемая областькомпьютерной математики. Поэтому совсем не удивительно, что специальных матричных функций в Mathcad очень много — более 50 (значительно больше, чем любых других). Аналогично другим встроенным функциям, для задания матричных функцийнужно воспользоваться командой Insert • Function (Вставить функцию) главного менюлибо соответствующей ей кнопкой панели Standard. Также матричные функции можнопросто набрать с клавиатуры. Первый способ предпочтительнее в том плане, что запомнить синтаксис такого большого количества функций очень сложно, а также тем, чтовы всегда сможете прочитать описание нужной вам матричной функции в случае, еслинет уверенности в собственных знаниях.Все матричные функции можно разделить на несколько основных типов: редактирование, создание матриц специального вида, поиск матричных норм и др.