Дробная матрица власти в Clojure
Я пытаюсь работать с переходными матрицами в clojure. При преобразовании, скажем, годовой матрицы перехода рейтинга облигаций в квартальную, мне нужна 0,25 степень квадратной матрицы.
В python мы имеем дробную_матрицу_power от scipy как:
>>> from scipy.linalg import fractional_matrix_power
>>> a = np.array([[1.0, 3.0], [1.0, 4.0]])
>>> b = fractional_matrix_power(a, 0.5)
>>> b
array([[ 0.75592895, 1.13389342],
[ 0.37796447, 1.88982237]])
В поисках Incanter и Parallel Colt мне еще предстоит что-то найти. Пробираться через javadocs и поиски в Google не помогли, но, может быть, "matrix" и "power" слишком общие, чтобы перейти к тому, что я ищу.
Мне действительно нужно перекодировать функцию Python или R, или я пропускаю какой-нибудь классный сайт с документами Colt?
1 ответ
Возможно, вы уже видели библиотеку core.matrix для Clojure. Он сфокусирован на базовой линейной алгебре и не имеет (пока!) Матричной функции экспоненты, как вы описываете.
Однако, если вы действительно перекодировали вышеприведенный алгоритм из Python в Clojure, я уверен, что это будет долгожданным дополнением к core.matrix
,
Вам также следует изучить проект неандертальца, который сфокусирован на использовании графического процессора для матричных операций.