Mathcad содержит функции для обычных в линейной алгебре действий с массивами. Эти функции предназначены для использования с векторами и матрицами. Если явно не указано, что функция определена для векторного или матричного аргумента, не следует в ней использовать массивы как аргумент. Обратите внимание, что операторы, которые ожидают в качестве аргумента вектор, всегда ожидают вектор-столбец, а не вектор-строку. Чтобы заменить вектор-строку на вектор-столбец, используйте оператор транспонирования [Ctrl]1.
Если Вы используете Mathcad PLUS, Вы будете также иметь несколько дополнительных функций, определенных для векторов. Эти функции скорее предназначены для анализа данных, чем для действий с матрицами. Они обсуждены в Главе “Встроенные функции”.
Следующие таблицы перечисляют векторные и матричные функции Mathcad. В этих таблицах
- A и B — массивы (векторы или матрицы).
- v — вектор.
- M и N — квадратные матрицы.
- z — скалярное выражение.
- Имена, начинающиеся с букв m, n, i или j — целые числа.
Размеры и диапазон значений массива
В Mathcad есть несколько функций, которые возвращают информацию относительно размеров массива и диапазона его элементов. Рисунок 10 показывает, как эти функции используются.
Имя функции |
Возвращается... |
rows(A) |
Число строк в массиве A. Если А — скаляр, возвращается 0. |
cols(A) |
Число столбцов в массиве A. Если A скаляр, возвращается 0. |
length(v) |
Число элементов в векторе v. |
last(v) |
Индекс последнего элемента в векторе v. |
max(A) |
Самый большой элемент в массиве A. Если A имеет комплексные элементы, возвращает наибольшую вещественную часть плюс i, умноженную на наибольшую мнимую часть. |
min(A) |
Самый маленький элемент в массиве A. Если A имеет комплексные элементы, возвращает наименьшую вещественную часть плюс i, умноженную на наименьшую мнимую часть. |
Рисунок 10: Векторные и матричные функции для нахождения размера массива и получения информации относительно диапазона элементов.
Специальные типы матриц
Можно использовать следующие функции, чтобы произвести от массива или скаляра матрицу специального типа или формы. Функции rref, diag и geninv доступны только в Mathcad PLUS.
Имя функции |
Возвращается... |
identity(n) |
n x n единичная матрица (матрица, все диагональные элементы которой равны 1, а все остальные элементы равны 0). |
Re(A) |
Массив, состоящий из элементов, которые являются вещественными частями элементов A. |
Im(A) |
Массив, состоящий из элементов, которые являются мнимыми частями элементов A. |
Е diag(v) |
Диагональная матрица, содержащая на диагонали элементы v. |
Е geninv(A) |
Левая обратная к A матрица L такая, что LA = I, где I - единичная матрица, имеющая то же самое число столбцов, что и A. Матрица А - m x n вещественная матрица, где m>=n. |
Е rref(A) |
Ступенчатая форма матрицы A. |
Рисунок 11: Функции для преобразования массивов. Обратите внимание, что функции diag и rref являются доступными только в Mathcad PLUS.
Специальные характеристики матрицы
Можно использовать функции из следующей таблицы, чтобы найти след, ранг, нормы и числа обусловленности матрицы. Кроме tr, все эти функции доступны только в Mathcad PLUS.
Имя функции |
Возвращается... |
tr(M) |
Сумма диагональных элементов, называемая следом M. |
Е rank(A) |
Ранг вещественной матрицы A. |
Е norm1(M) |
L1 норма матрицы M. |
Е norm2(M) |
L2 норма матрицы M. |
Е norme(M) |
Евклидова норма матрицы M. |
Е normi(M) |
Равномерная норма матрицы M. |
Е cond1(M) |
Число обусловленности матрицы M, основанное на L1 норме. |
Е cond2(M) |
Число обусловленности матрицы M, основанное на L2 норме. |
Е conde(M) |
Число обусловленности матрицы M, основанное на евклидовой норме. |
Е condi (M) |
Число обусловленности матрицы M, основанное на равномерной норме. |
Формирование новых матриц из существующих
В Mathcad есть две функции для объединения матриц вместе — бок о бок, или одна над другой. В Mathcad также есть функция для извлечения подматрицы. Рисунки 12 и 13 показывают некоторые примеры.
Имя функции |
Возвращается... |
augment (A, B) |
Массив, сформированный расположением A и B бок о бок. Массивы A и B должны иметь одинаковое число строк. |
stack (A, B) |
Массив, сформированный расположением A над B. Массивы A и B должны иметь одинаковое число столбцов. |
submatrix (A, ir, jr, ic, jc) |
Субматрица, состоящая из всех элементов, содержащихся в строках с ir по jc и столбцах с ic по jc. Чтобы поддерживать порядок строк и-или столбцов, удостоверьтесь, что ir<=jr и ic<=jc, иначе порядок строк и-или столбцов будет обращен. |
Рисунок 12: Объединение матриц функциями stack и augment.
Рисунок 13: Извлечение субматрицы из матрицы при помощи функции submatrix.
Собственные значения и собственные векторы
В Mathcad существуют функции eigenval и eigenvec для нахождения собственных значений и собственных векторов матрицы. В Mathcad PLUS также есть функция eigenvecs для получения всех собственных векторов сразу. Если Вы используете Mathcad PLUS, Вы будете также иметь доступ к genvals и genvecs для нахождения обобщенных собственных значений и собственных векторов. Рисунок 14 показывает, как некоторые из этих функций используются.
Имя функции |
Возвращается...
|
eigenvals (M) |
Вектор, содержащий собственные значения матрицы M. |
eigenvec (M, z) |
Матрица, содержащая нормированный собственный вектор, соответствующий собственному значению z квадратной матрицы M. |
Е eigenvecs (M) |
Матрица, содержащая нормированные собственные векторы, соответствующие собственным значениям квадратной матрицы M. n-ный столбец возвращенной матрицы — собственный вектор, соответствующий n-ному собственному значению, возвращенному eigenvals. |
Е genvals (M,N) |
Вектор v собственных значений, каждое из которых удовлетворяет обобщенной задаче о собственных значениях . Матрицы M и N — вещественнозначные квадратные матрицы одного размера. Вектор x — соответствующий собственный вектор. |
Е genvecs (M,N) |
Матрица, содержащая нормализованные собственные векторы, соответствующие собственным значениям в v, векторе, возвращенном genvals. n-ный столбец этой матрицы — собственный вектор x, удовлетворяющий обобщенной задаче о собственных значениях . Матрицы M и N — вещественнозначные квадратные матрицы одного размера. |
Рисунок 14: Нахождение собственных значений и собственных векторов.
Рисунок 15: Использование eigenvecs для одновременного нахождения всех собственных векторов.
Разложения
Если Вы используете Mathcad PLUS, Вы будете иметь доступ к некоторым дополнительным функциям для выполнения специальных разложений матрицы: QR, LU, Холесского, и по сингулярным базисам. Некоторые из этих функций возвращают две или три матрицы, соединенные вместе в одну большую матрицу. Используйте submatrix, чтобы извлечь эти две или три меньшие матрицы. Рисунок 16 показывает пример.
Имя функции |
Возвращается... |
Е cholesky(M) |
Нижняя треугольная матрица L такая, что LLT=M. Матрица M должна быть симметричной положительно определенной. Симметрия означает, что M=MT, положительная определённость — что xTMx>0 для любого вектора x 0. |
Е qr(A) |
Матрица, чьи первые n столбцов содержат ортогональную матрицу Q, а последующие столбцы содержат верхнюю треугольную матрицу R. Матрицы Q и R удовлетворяют равенству A=QR. Матрица A должна быть вещественной. |
Е lu(M) |
Матрица, которая содержит три квадратные матрицы P, L и U, расположенные последовательно в указанном порядке и имеющие с M одинаковый размер. L и U являются соответственно нижней и верхней треугольными матрицами. Эти три матрицы удовлетворяют равенству PM=LU . |
Е svd(A) |
Матрица, содержащая две расположенные друг над другом матрицы U и V. Сверху находится U — размера m x n, снизу V — размера n x n. Матрицы U и V удовлетворяют равенству A=Udiag(s)VT, где s — вектор, возвращенный svds(A). A должна быть вещественнозначной матрицей размера m x n, где m>=n. |
Е svds(A) |
Вектор, содержащий сингулярные значения вещественнозначной матрицы размера m x n, где m>=n. |
Рисунок 16: Использование функции submatrix для извлечения результата из функции rq. Используйте submatrix, чтобы извлечь подобным образом результаты из функций lu и svd. Обратите внимание, что эти функции доступны только в Mathcad PLUS.
Решение линейной системы уравнений
Если Вы используете Mathcad PLUS, Вы сможете использовать функцию lsolve для решения линейной системы уравнений. Рисунок 17 показывает пример. Обратите внимание, что M не может быть ни вырожденной, ни почти вырожденной для использования с lsolve. Матрица называется вырожденной, если её детерминант равен нулю. Матрица почти вырождена, если у неё большое число обусловленности. Можно использовать одну из функций, описанных на странице 204, чтобы найти число обусловленности матрицы.
Имя функции |
Возвращается...
|
Е lsolve (M, v) |
Вектор решения x такой, что Mx=v. |
Если Вы не используете Mathcad PLUS, Вы всё-таки можете решать систему линейных уравнений, используя обращение матрицы, как показано в нижнем правом углу Рисунка 9.
Рисунок 17: Использование lsolve для решения системы из двух уравнений с двумя неизвестными.
|