gpt4 book ai didi

r - 叉积矩阵的踪迹 - 更快的计算?

转载 作者:行者123 更新时间:2023-12-04 17:36:04 25 4
gpt4 key购买 nike

我正在寻找矩阵 A = B' C 的迹线(迹线(A))的 R 中的快速计算。我能想到的最快方法如下:

set.seed(123)
n <- 10^6
B <- matrix(rnorm(n), ncol=sqrt(n))
C <- matrix(rnorm(n), ncol=sqrt(n))

ptm <- proc.time()
A <- tcrossprod(B,C)
traceA <- sum(diag(A))
proc.time() - ptm

我在问自己是否有更快的方法(特别是如果矩阵 B 和矩阵 C 是对称的甚至是幂等的)。我的意思是线 A <- tcrossprod(B,C)我正在计算整个矩阵 A,虽然我只需要矩阵的对角线元素的总和 (trace(A))。

为了加快速度,我想到了 tcrossprod 的并行计算,但我还没有找到一个实现(另外我不知道这是否是一个好主意)。有人有想法吗?

最佳答案

Tr(B'C) 只是被视为向量的矩阵 B 和 C 的内积。因此

sum(B*C)

在这个例子中,它可以做到这一点,并且速度快了几个数量级。

关于r - 叉积矩阵的踪迹 - 更快的计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com