Компьютерная алгебра в программе Mathematica 4

         

Операции с матрицами — 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]}}









Содержание раздела