РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
253 of 541 menu

Функция linalg.matrix_rank

Функция linalg.matrix_rank вычисляет ранг матрицы, то есть максимальное количество линейно независимых строк или столбцов. Ранг матрицы показывает размерность пространства, порождаемого её строками или столбцами. Функция использует сингулярное разложение (SVD) для определения ранга, сравнивая сингулярные числа с заданным порогом. Первым параметром передаётся входная матрица, вторым параметром можно задать порог отсечения, третьим параметром указать, считать ли точные нули сингулярных чисел.

Синтаксис

np.linalg.matrix_rank(M, tol=None, hermitian=False)

Пример

Давайте вычислим ранг матрицы с линейно независимыми строками:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = np.linalg.matrix_rank(arr) print(res)

Результат выполнения кода:

2

Пример

Вычислим ранг единичной матрицы, которая имеет полный ранг:

import numpy as np arr = np.eye(3) res = np.linalg.matrix_rank(arr) print(res)

Результат выполнения кода:

3

Пример

Вычислим ранг нулевой матрицы:

import numpy as np arr = np.zeros((3, 4)) res = np.linalg.matrix_rank(arr) print(res)

Результат выполнения кода:

0

Пример

Используем параметр tol для задания пользовательского порога отсечения сингулярных чисел:

import numpy as np arr = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1e-12]]) res_default = np.linalg.matrix_rank(arr) res_custom = np.linalg.matrix_rank(arr, tol=1e-13) print(res_default) print(res_custom)

Результат выполнения кода:

2 3

Пример

Используем параметр hermitian для ускорения вычисления ранга эрмитовых матриц:

import numpy as np arr = np.array([[1, 2j], [-2j, 1]]) res = np.linalg.matrix_rank(arr, hermitian=True) print(res)

Результат выполнения кода:

2

Пример

Вычислим ранг матрицы, представляющей систему линейных уравнений с двумя независимыми уравнениями:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = np.linalg.matrix_rank(arr) print(res)

Результат выполнения кода:

2

Смотрите также

  • функцию svd,
    которая выполняет сингулярное разложение матрицы
  • функцию cond,
    которая вычисляет число обусловленности матрицы
  • функцию norm,
    которая вычисляет норму матрицы или вектора
  • функцию det,
    которая вычисляет определитель квадратной матрицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить