Как уже отмечалось ранее, основные операции с матрицами в пакете LinearAlgebra выполняются проще, чем такие же в пакете linealg.
Это связано с тем, что идентификаторы векторов и матриц здесь вычисляются не до уровня имени, а непосредственно до уровня вычисления их компонентов. В связи с этим возможно выполнение поэлементного сложения, вычитания и составления линейных комбинаций векторов и матриц одинаковой размерности с использованием обычных арифметических операций.
Если складывается скаляр с матрицей, то это равносильно сложению матрицы с единичной матрицей, элементы которой умножены на заданный скаляр. НО!!! Вектор нельзя складывать со скаляром.
Построение линейной комбинации матриц и векторов можно также выполнить, используя, соответственно, команды MatrixAdd() и VectorAdd().
Так как произведение матриц (имеется ввиду операция скалярного умножения) не является коммутативной, то использование операции коммутативного умножения (*) для веторов и матриц приводит к ошибке. (Исключение допускается только для умножения матрицы саму на себя, причем в этом случае выполняется скалярное умножение.) Коммутативное умножение можно использовать для перемножения скаляра и матрицы/вектора. В этом случае все элементы этих объектов умножаются на соответствующий скаляр.
Однако, если скаляр содержит неопределенную переменную, то перемножения не происходим, так как Maple не знает, какой объект в дальнейшем эта переменная может содержать. Для выполнения такого умножения следует использовать команду simplify с параметром symbolic или опцией assume=scalar.
Выполнить некоммутативное умножение в Maple (начиная с 6-ой версии программы) можно операцией, символом которой является точка (.). Она никогда не меняет сомножители местами, поэтому произведения x.y.z и x.z.y не являются тождественными.
Эта же операция, примененная к матрицам и векторам, выполняет их скалярное произведение.
Для получения степени квадратной матрицы можно последовательно применить операцию скалярного умножения необходимое число раз или операцию возведения в степень (^).
Показатель степени может быть и отрицательным числом, что позволяет вычислять обратную матрицу и ее степени.
Для выделения элементов матрицы и ее подматриц используется индексная запись, причем в качестве индекс можно указывать диапазон, что позволяет выделять целые блоки исходной матрицы.
Присваивание новых значений элементам матрицы также осуществляется с помощью индексов, причем и здесь можно использовать диапазон. Главное, чтобы размерность матрицы в левой части оперетора присваивания соответствовала размерности матрицы в правой части.
Возможности выбора и присваивания значений целым строкам или столбцам используется для осуществления операций со строками или столбцами матрицы.(см. рисунки ниже)
Все перечисленные выше операции можно выполнять с помощью команд пакета LinearAlgebra, которые рекомендуется использовать при программировании в Maple, хотя и допустимо их использование при интерактивной работе. Список команд допустимых операций над матрицами и векторами приведен в таблице.
Команды для работы с матрицами и векторами.
Команда
Описание
DeleteRow
Удаление строки матрицы
DeleteColumn
Удаление столбца матрицы
Row
Выделение строки матрицы
Column
Выделение столбца матрицы
SubMatrix
Выделение подматрицы из заданной матрицы
SubVector
Выделение подвектора из заданного вектора
ScalarMultiply
Умножение матрицы/вектора на скаляр
MatrixVectorMultiply
Скалярное произведение матрицы на вектор-столбец
VectorMatrixMultiply
Скалярное произведение на вектора-строки на матрицу