Матрицы и простейшие операции с ними

В Maxime определены прямоугольные матрицы. Основной способ создания матриц – использования функции matrix. Синтаксис вызова: matrix(row1,...,rown). Каждая строка – список выражений, все строки одинаковой длины. На множестве матриц определены операции сложения, вычитания, умножения и деления. Эти операции выполняются поэлментно, если операнды - две матрицы, скаляр и матрица или матрица и скаляр. Возведение в степень возможно, если один из операндов - скаляр. Перемножение матриц (в общем случае некоммутативная операция) обозначается символом “.”. Операция умножения матрицы самой на себя может рассматриваться как возведение в степень. Возведение в степень “-1”- как обращение (если это возможно). Пример создания двух матриц:

Матрицы и простейшие операции с ними - student2.ru

Выполнение арифметических операций с матрицами:

Матрицы и простейшие операции с ними - student2.ru

Обратите внимание - операции выполняются поэлементно. При попытке выполнять арифметические операции, как представлено выше, над матрицами различных размеров, выдаётся ошибка. Пример операций с матрицами и скалярами:

Матрицы и простейшие операции с ними - student2.ru

Умножение матрицы на матрицу:

Матрицы и простейшие операции с ними - student2.ru

Для успешного перемножения матрицы должны быть согласованы по размерам. Возведение в степень −1 даёт обратную матрицу:

Матрицы и простейшие операции с ними - student2.ru

Стоит обратить внимание, что операции x^^-1 и x^-1дают разный результат! Пример:

Матрицы и простейшие операции с ними - student2.ru

Функция genmatrix возвращает матрицу заданной размерности, составленную из элементов двухиндексного массива. Синтаксис вызова:

genmatrix (a, i_2, j_2, i_1, j_1)

genmatrix (a, i_2, j_2, i_1)

genmatrix (a, i_2, j_2)

Индексы i1,j1 и i2,j2 указывают левый и правый нижний элементы матрицы в исходном массиве. Пример:

Матрицы и простейшие операции с ними - student2.ru

Функция zeromatrix возвращает матрицу заданной размерности, составленную из нулей (синтаксис вызова zeromatrix (m, n)).

Матрицы и простейшие операции с ними - student2.ru

Функция ident возвращает единичную матрицу заданной размерности (синтаксис ident(n))

Матрицы и простейшие операции с ними - student2.ru

Функция copymatrix (M) создаёт копию матрицы M. Обратите внимание, что присваивание не создаёт копии матрицы (как и присваивание не создаёт копии списка). Пример:

Матрицы и простейшие операции с ними - student2.ru

присваивание нового значения элементу матрицы b изменяет и значение соответствующего элемента матрицы a. Использование copymatrix позволяет избежать этого эффекта.

Функции row и col позволят извлечь соответственно строку и столбец заданной матрицы, получая список. Синтаксис вызова:

row (M, i) - возвращает i-ю строку;

col (M, i) - возвращает i-й столбец. Функции addrow и addcol добавляют к матрице строку или столбец соответственно. Синтаксис вызова:

addcol (M, list_1, ..., list_n)

addrow (M, list_1, ..., list_n)

Здесь list1,...,listn - добавляемые строки или столбцы. Пример:

Матрицы и простейшие операции с ними - student2.ru

Функция submatrix возвращает новую матрицу, состоящую из подматрицы заданной. Синтаксис вызова:

submatrix (i_1, ..., i_m, M, j_1, ..., j_n)

submatrix (i_1, ..., i_m, M)

submatrix (M, j_1, ..., j_n)

Подматрица строится следующим образом: из матрицы M удаляются строки i1,...,im и j1,...,jn. Пример (используем последний результат из предыдущего примера, удаляем третью строку и третий столбец):

Матрицы и простейшие операции с ними - student2.ru

Для заполнения матрицы значениями некоторой функции используется функция matrixmap (аналог map, apply, fullmap). Синтаксис вызова: matrixmap (f, M). Функция matrixmap возвращает матрицу с элементами i,j , равными f(M[i,j]). Пример:

Матрицы и простейшие операции с ними - student2.ru

Наши рекомендации