通过自动微分计算矩阵值函数的逐行散度

计算科学 矩阵 自动分化 分化
2021-12-21 21:56:35

假设我有一些矩阵值函数B:RdRd×d,我想计算的逐行散度B,以向量形式给出

α:=divB(x)Rd,whereαi=j[d]Bijxj(x)fori[d].

想象一下B由几个平滑函数的组合定义,因此不必担心这些量是否存在。此外,这个向量当然可以计算,从某种意义上说,我可以逐个元素地写出矩阵,计算偏导数Bijxj一个接一个,然后聚合它们。

但是,我想避免这种情况。在我的应用程序中,虽然很容易计算B在向量上,矩阵本身是密集的(粗略地说,它具有对角线加低秩形式)。因此,实际上写下整个矩阵B似乎这将对例如内存造成压力。

考虑到这些问题,我正在(也许乐观地)寻找一种算法解决方案,它可以让我准确计算α无需实例化矩阵B,并且只计算矩阵向量乘积。这可能吗?如果可以,这样的解决方案将如何运作?

0个回答
没有发现任何回复~