轨迹矩阵 matlab,matlab – 缓存矩阵轨迹内的元素

我有这样的评价

D =追踪(ABC)

A和C是不变的常数矩阵. B矩阵不断变化.我想要的是找到一种方法来存储A和C中的一些值,这样我就不必一直计算产品ABC. B会改变,我会使用B的元素的某种产品与AC的某些缓存版本或类似的东西.

我知道跟踪(ABC)=跟踪(BCA)所以我可以预先计算产品CA但CA的维度非常高,因此它不适合内存.因此我不能这样做. ABC结果是低维度所以很好

C is of size 40000x10 and dense

B of size 80000x40000 but B is sparse so it is fine

A is of size 10 by 80000 and dense

有什么建议我怎么能有效地做到这一点?

最佳答案 如果你考虑tr(ABC)元素,

l = 10,n = 40000,m = 80000.

使用B的稀疏度的上述乘法的数量是np * 10,其中np是B的非零元素的数量.

预计算CA的乘法数为10 * 40000 * 80000.之后,使用B的稀疏度,tr(B(CA))的乘法数是np.因此,除非你的计算超过1 /(B的密度),否则只计算tr(ABC)更快.

话虽这么说,我不认为预先计算CA是必要的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值