Clojure 中的小数矩阵幂

Fractional Matrix Power in Clojure

提问人:Phil Cooper 提问时间:4/1/2017 更新时间:4/4/2017 访问量:199

问:

我正在尝试在 clojure 中使用过渡母体。在将年度债券评级转换矩阵转换为季度时,我需要方阵的 0.25 次方。

在 python 中,我们有来自 scipy 的fractional_matrix_power

>>> 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]])

在搜索 IncanterParallel Colt 时,我还没有找到任何东西。浏览 javadocs 和谷歌搜索无济于事,但也许“矩阵”和“权力”太笼统了,无法深入到我正在寻找的内容。

我真的需要转码 python 或 R 函数,还是缺少一些很酷的 colt 文档站点?

Java Clojure incanter Colt

评论

1赞 Sam Estep 4/2/2017
您要求的是分数矩阵幂的现有异地 JVM 实现,对吗?在这种情况下,我认为这个问题是题外话。无论如何,从我所做的一点点研究来看,看起来您确实需要从非 JVM 实现进行转码。

答:

1赞 Alan Thompson 4/4/2017 #1

您可能已经看过 Clojure 的 core.matrix 库。它专注于基本线性代数,并且没有您所描述的矩阵指数函数。

但是,如果您确实将上述算法从 Python 转码为 Clojure,我相信这将是 .core.matrix

您还应该研究一下 Neanderthal 项目,该项目专注于使用 GPU 进行矩阵运算。

评论

1赞 Phil Cooper 4/4/2017
谢谢艾伦。我开始转码,但当算法要求 Schur 分解时,我按下了暂停键。Apache.commons math3 中有一个,但不是公开的,所以我无法从 clojure 访问它。尼安德特人很有意思,因为 mkl 库有 schur,但目前没有接触过 clojure。如果我知道一些算法代码应该放在哪里,我会更自信地移动。Incanter、尼安德特人、core.matrix、apache.commons......Clojure、Java、C...?在 python 中,scipy 是答案,但在 clojure 中,我不确定。