понедельник, 27 июля 2009 г.

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

Использую 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 ) )



Пример использования можно посмотреть тут
Ранг матрицы Он-лайн
Ранг матриц он-лайн

Комментариев нет:

Отправить комментарий