Использую numpy python
import numpy as np
a = np.matrix('1 2 3; 4 5 6; 7 8 9')
Оказывается в numpy нет встроенной функции для вычисления ранга матрицы!
Нашел рукописную функцию
from numpy.linalg import svd
from numpy import sum,where
def matrix_rank(a, tol=1e-8):
"""Возвращает ранг матрицы"""
s = svd(a, compute_uv=0)
return sum( where( s>tol, 1, 0 ) )
Пример использования можно посмотреть тут
Ранг матрицы Он-лайн
Комментариев нет:
Отправить комментарий