Иллюстрированный самоучитель по Mathematica 3/4

Операции с матрицами (MatrixManipulation)

Подпакет MatrixManipulation добавляет к матричным функциям ядра системы Маthematica ряд новых функций. Начнем с функций объединения матриц:

  • AppendColumns [m1,m2,…] – объединяет по столбцам матрицы m1,m2,…;
  • AppendRows [m1,m2,…] – объединяет по строкам матрицы m1,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 n-ю строку;
  • TakeRows [mat, {m,n} ] – вставляет в матрицу mat строки от m до n;
  • TakeColumns [mat, n] – вставляет в матрицу mat n-й столбец;
  • TakeColumns [mat, -n] – удаляет из матрицы mat n-й столбец;
  • TakeColumns [mat, {m, n} ] – вставляет в матрицу mat столбцы от m до n.

Действие функции иллюстрируется следующими примерами:

mat = Array[m, 3, 4]; MatrixForm[mat]
m[1, 1] m[1, 2] m[1, 3] m[1, 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[1, 2] m[1, 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] – формирует наддиагональную матрицу размером fхn;
  • LowerDiagonalMatrix [f, n] – формирует поддиагональную матрицу размером fхn;
  • ZeroMatrix [n] – формирует квадратную нулевую матрицу размером nхn;
  • ZeroMatrix [m, n] – формирует нулевую матрицу размером mхn;
  • HilbertMatrix [n] – формирует квадратную матрицу Гильберта размером mхn;
  • HilbertMatrix [m, n] – формирует матрицу Гильберта размером mхn;
  • HankelMatrix [n] – формирует квадратную матрицу Ганкеля размером nхn;
  • HankelMatrix [m, n] – формирует матрицу Ганкеля размером 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[
a[1.1]*x + a[1.2]*y == c[1],
a[2.1]*x + a[2.2]*y == c[2], x, y]
{{{{{a11, a12), {a21, a22}}[1, 1],
{{a11, a12), {a21, a22}}[1, 2]}, {{{a11, a12}, {a21, a22}}[2, 1],
{{a11, a12), {a21, a22}} [2, 2]}}, {c[1],c[2]}}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.