Операции с матрицами — MatrixManipulation
Операции с матрицами — MatrixManipulation
Подпакет MatrixManipulation добавляет к матричным функциям ядра системы Ма-thematica ряд новых функций. Начнем с функций объединения матриц:
-
AppendColumns [ml,m2,...] — объединяет по столбцам матрицы ml,m2,...;
-
AppendRows [ml,m2,...] — объединяет по строкам матрицы ml,m2,...;
-
BlockMatrix [blocks] — объединяет по строкам и столбцам блоки blocks, создавая новую матрицу.
Данные операции с матрицами иллюстрируют следующие примеры:
<< LinearAlgebra`MatrixManipulation`
a = {{a11, a12}, {a21, a22}}; MatrixFormfa]
b = {{b11, b12}, {b21, b22}}; MatrixForm[b]
MatrixForm[AppendColumns[a, b] ]
AppendRows[a, b] //MatrixForm
BlockMatrix[{{a, b}, {b, {{0, 0}, {0, 0}}}}] //MatrixForm
Следующая группа функций вставляет или удаляет столбцы или строки матриц:
-
TakeRows [mat, n] — вставляет в матрицу mat n-ю строку;
-
TakeRows [mat, -n] — удаляет из матрицы mat п-ю строку;
-
TakeRows [mat, {m,n} ] — вставляет в матрицу mat строки от m до n;
-
TakeColumns [mat, n] — вставляет в матрицу mat п-й столбец;
-
TakeColumns [mat, -n] — удаляет из матрицы mat п-й столбец;
-
TakeColumns [mat, {m, n} ] — вставляет в матрицу mat столбцы от m до п.
Действие функции иллюстрируется следующими примерами:
mat = Array[m, 3, 4]; MatrixForm[mat]
m[l, 1] m[l, 2] m[l, 3] m[l, 4]
m[2, 1] m[2, 2] m[2, 3] m[2, 4]
m[3, 1] m[3, 2] m[3, 3] m[3, 4]
TakeRows[mat, -2] //MatrixForm
m[2, 1] m[2, 2] m[2, 3] m[2, 4]
m[3, 1] m[3, 2] m[3, 3] m[3, 4]
TakeColumns[mat, {2,3}] //MatrixForm
m[l, 2] m[l, 3] )
m[2, 2] m[2, 3]
m[3, 2] m[3, 3]
TakeMatrix[mat, {2, 3}, {3, 4}] //MatrixForm
m[2, 3] m[2, 4]
m[3, 3] m[3, 4]
SubMatrix[mat, {2, 3}, {2, 2}] //MatrixForm
m[2, 3] m[2, 4]
m[3, 3] m[3, 4]
Следующая группа функций служит для задания матриц специального вида:
-
UpperDiagonalMatrix [f, n] — формирует наддиагональную матрицу размером пхп;
-
LowerDiagonalMatrix [f, n] — формирует поддиагональную матрицу размером пхп;
-
ZeroMatrix [n] — формирует квадратную нулевую матрицу размером пхп;
-
ZeroMatrix [m, n] — формирует нулевую матрицу размером тхп;
-
HilbertMatrix [n] — формирует квадратную матрицу Гильберта размером пхп;
-
HilbertMatrix [m, n] — формирует матрицу Гильберта размером тхп;
-
HankelMatrix [n] — формирует квадратную матрицу Ганкеля размером пхп;
-
HankelMatrix [m, n] — формирует матрицу Ганкеля размером тхп.
Примеры задания матриц разного типа приведены ниже:
UpperDiagonalMatrix[f, 3] //MatrixForm
LowerDiagonalMatrix[#1 + #2 &, 4] //MatrixForm
HilbertMatrix[2, 4] //MatrixForm
HankelMatrix[{w, x, y, z}] //MatrixForm
Наконец, в подпакет входит еще одна функция, LinearEquationsToMatri-ces [eqns, vars], которая из записи линейного уравнения eqns с переменными vars формирует расширенную матрицу, содержащую матрицу коэффициентов левой части уравнения и вектор свободных членов.
Пример применения данной функции:
LinearEquationsToMatrices[
а[1,1]*х + а[1,2]*у == с[1],
а[2,1]*х + а[2,2]*у == с[2], х, у]
{{{{{a11, a12), {а21, а22}}[1, 1],
{{a11, a12), {a21, а22}}[1, 2]}, {{{a11, a12}, {a21, a22}}[2, 1],
{{a11, a12), {a21, a22}} [2, 2]}}, {c[l],c[2]}}
Содержание раздела