关于重复求解含不同对角矩阵的线性方程组的高效方法咨询
关于重复求解含不同对角矩阵的线性方程组的高效方法咨询
我现在有一系列线性方程组需要求解:
$$A^\intercal D_1 Ax_1=b_1$$
$$A^\intercal D_2 Ax_2=b_2$$
$$A^\intercal D_3 Ax_3=b_3$$
$$\vdots$$
这里的$A$是一个“高瘦”矩阵(行数多于列数),而且$A$和所有$D_i$都是满秩的,同时每个$D_i$都是正定矩阵($D_i \succ 0$)。我想找一种不用每次都做完整的矩阵乘法和高斯消元的方法来求解这些方程组——有没有什么可以先对$A$做一次预处理,之后重复求解就能快很多的思路?
我一开始的想法是能不能找到类似$(A^\intercal D_i A)^{-1}=B (D_i)^{-1} B^\intercal$这样的形式,本来觉得伪逆$B=A+$可能有用,但试了之后发现$(A\intercal)^+ A^\intercal \neq I$,这下就卡壳了。不过好在中间的$D_i$是对角矩阵,这一点让我还抱有希望,毕竟$D_i$只是对$A$的行做缩放操作,说不定还是有办法的。
补充说明(来自评论区的问题回复)
- 从实际应用角度来看,$A$大概是50×10的规模,$D_i$的数量大概是行数的2倍左右;不过从理论角度我也很感兴趣,所以也可以假设$D_i$的数量远大于$A$的行数($D_i \gg m$)。
- 我刚看到一个老问题,里面作者的某个子问题和我的情况类似,但那个问题没有得到有效的解决方案。
备注:内容来源于stack exchange,提问作者thereasonforitall
相关产品推荐
相关产品推荐

