Раздел «Язык Си».SymPy1:

SymPy - линейная алгебра

Определение матрицы

Матрица m строк на n столбцов - это набор чисел a11, a12,.., amn

a11 a12 ... a1n
... ... ... ...
am1 am2 ... amn

или, когда первый номер 0 (а не 1), то

a0 0 a0 1 ... a0 n-1
... ... ... ...
am 0 am 1 ... am-1 n-1

Зададим матрицу

2 -3 -8 7
-2 -1 2 -7
1 0 -3 6

и сохраним ее в выражение А

>>> A = Matrix( [[ 2,-3,-8, 7],
                 [-2,-1, 2,-7],
                 [ 1, 0,-3, 6]] )

Значение элемента A[0,1]

Что лежит в строке 0 столбце 1? a0 1.
>>> A[0,1]            # row 0, col 1of A
-3

Часть матрицы

Подматрица задается через срезы.

Найдем подматрицу из 2 первых строк и 3 первых столбцов

>>> A[0:2,0:3]        # top-left 2x3 submatrix of A
[ 2, -3, -8]
[-2, -1,  2]

Единичная матрица и матрица из 0

>>> eye(2)            # 2x2 identity matrix
Matrix([
[1, 0],
[0, 1]])
>>> zeros(2, 3)
Matrix([
[0, 0, 0],
[0, 0, 0]])

Операции над матрицами

C = A+B cij = aij + bij
C = A-B cij = aij - bij
C = A*B cij = aij * bij
C = A**3 C = A*A*A

Транспонированная матрица AT

B = AT получается из матрицы А заменой строк на столбцы.

ATij = Aji

>>> B = A.transpose()   # the same as A.T
>>> B
Matrix([
[ 2, -2,  1],
[-3, -1,  0],
[-8,  2, -3],
[ 7, -7,  6]])
>>> A.T
Matrix([
[ 2, -2,  1],
[-3, -1,  0],
[-8,  2, -3],
[ 7, -7,  6]])

Reduced row echelon form

%TODO%

Детерминант (определитель)

>>> M = Matrix( [[1, 2, 3],
[2,-2, 4],
[2, 2, 5]] )
>>> M.det()
2

Обратная матрица A-1

A-1 - это такая матрица, которая при умножении на А дает единичную матрицу E.

A*A-1 = A-1*A = E

>>> A = Matrix( [[1,2],[3,9]] )
>>> A.inv()
Matrix([
[ 3, -2/3],
[-1,  1/3]])
>>> A.inv()*A
Matrix([
[1, 0],
[0, 1]])
>>> A*A.inv()
Matrix([
[1, 0],
[0, 1]])

A-1 играет роль деления на А.

Ранг матрицы rank

>>> A = Matrix( [[ 2,-3,-8, 7],
                 [-2,-1, 2,-7],
                 [ 1, 0,-3, 6]] )
>>> A.rank()
3

>>> A = Matrix([[2,1],[2,1]])
>>> A.rank()
1

Решение систем уравнений

Уравнение АХ = С, где А, Х и С - матрицы, может быть записано в виде системы линейных уравнений.

Система линейных уравнений может быть записана в виде уравнения матриц.

Найдем матрицу Х из уравнения АХ=С, где А=C=Matrix([[2,1],[2,1]]).

Задание

-- TatyanaDerbysheva - 14 Mar 2016