Перейти к содержимому
SYMPY. Способы задания матриц.

SYMPY. Способы задания матриц.

В библиотеке SymPy (Python) матрицы можно задавать различными способами в зависимости от удобства и типа матрицы. Рассмотрим основные методы.  

1. Создание матрицы вручную

1.1. Matrix (общий способ)

\(A = \begin{bmatrix}
1 & 2 \\
3 & 4 \\
\end{bmatrix}\)

# python
from sympy import Matrix

# Матрица 2x2
A = Matrix([[1, 2], [3, 4]])
print(A)

Вывод:

Matrix([
[1, 2],
[3, 4]])
1.2. Символьные (нечисловые) матрицы

\(A = \begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}\)

python
from sympy import symbols

a, b, c, d = symbols('a b c d')
B = Matrix([[a, b], [c, d]])
print(B)

Вывод:

Matrix([
[a, b],
[c, d]])

2. Специальные типы матриц

2.1. Нулевая матрица (zeros)

\(A = \begin{bmatrix}
0 & 0 & 0\\
0 & 0 & 0\\
\end{bmatrix}\)

from sympy import zeros

Z = zeros(2, 3)  # 2 строки, 3 столбца
print(Z)

Вывод:

Matrix([
[0, 0, 0],
[0, 0, 0]])
2.2. Единичная матрица (eye)

\(A = \begin{bmatrix}
1 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 1\\
\end{bmatrix}\)

from sympy import eye

I = eye(3)  # Единичная матрица 3x3
print(I)

Вывод:

Matrix([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
2.3. Матрица из единиц (ones)

\(A = \begin{bmatrix}
1 & 1 & 1\\
1 & 1 & 1\\
1 & 1 & 1\\
\end{bmatrix}\)

from sympy import ones

O = ones(2, 2)
print(O)

Вывод:

Matrix([
[1, 1],
[1, 1]])
2.4. Диагональная матрица (diag)

\(A = \begin{bmatrix}
1 & 0 & 0\\
0 & 2 & 0\\
0 & 0 & 3\\
\end{bmatrix}\)

from sympy import diag

D = diag(1, 2, 3)  # Диагональная матрица с элементами 1, 2, 3
print(D)

Вывод:

Matrix([
[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])

3. Матрицы, заданные функцией

3.1. Матрица с элементами, вычисляемыми по формуле
from sympy import Matrix

# Матрица 3x3, где элемент (i,j) = i + j
M = Matrix(3, 3, lambda i, j: i + j)
print(M)

Вывод:

Matrix([
[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
3.2. Символьная матрица с шаблоном
from sympy import symbols, Matrix

i, j = symbols('i j')
M = Matrix(3, 3, lambda i, j: i + j if i != j else 0)
print(M)

Вывод:

Matrix([
[0, 1, 2],
[1, 0, 3],
[2, 3, 0]])

4. Блочные матрицы

Можно собирать матрицы из блоков:

from sympy import Matrix, eye, ones

A = eye(2)
B = ones(2, 2)
C = Matrix([[0, 1], [-1, 0]])

# Блочная матрица [[A, B], [C, A]]
M = Matrix([[A, B], [C, A]])
print(M)

Вывод:

Matrix([
[1, 0, 1, 1],
[0, 1, 1, 1],
[0, 1, 1, 0],
[-1, 0, 0, 1]])

5. Матрицы из SymPy-выражений

Можно создавать матрицы, элементы которых — SymPy-выражения:

from sympy import sin, cos, Matrix, symbols

x = symbols('x')
M = Matrix([[sin(x), cos(x)], [-cos(x), sin(x)]])
print(M)

Вывод:

Matrix([
[sin(x),  cos(x)],
[-cos(x), sin(x)]])
Вывод

SymPy предоставляет гибкие способы задания матриц:

  • - Вручную \(Matrix([[a, b], [c, d]]\)  
  • - Специальные матрицы (zeros, eye, diag, ones)  
  • - Через функцию (Matrix(3, 3, lambda i, j: ...))
  • - Блочные конструкции  
  • - Символьные элементы  
Среда, 30 апреля 2025 Posted in SYMPY, Python
SYMPY. Способы задания матриц.