问题的背景
我目前正在研究一个 Matlab 代码,其中必须求解线性方程组,,...。由于矩阵在模拟过程中是恒定的,因此我在开始时将其一劳永逸地进行 LU 分解,并将第个系统求解为
xn = U\(L\bn);
在这一点上,可能值得一提的是,我一次只知道一个向量,这意味着我不能一次解决所有方程。
如下图所示,矩阵和非常稀疏,因此我将它们存储为稀疏格式。此外,它们是上三角形和下三角形。通过查看运算符“\”的文档可以看出,Matlab 最终将使用三角求解器来求解系统。然而,在此之前,它必须查看和是否为正方形,计算它们的带宽,查看它们是否是对角线,检查它们是否看起来是三角形的,最后在使用三角形求解器之前检查它们是否真的是三角形的。
实际问题
我的问题是是否有办法绕过所有这些检查并直接进入三角求解器?
到目前为止我尝试了什么
到目前为止,我已经研究了函数“linsolve”并使用“dsp.LowerTriangularSolver”和“dsp.UpperTriangularSolver”创建了上三角求解器和下三角求解器。不幸的是,所有这些都只适用于完整的矩阵。
![U的稀疏模式]](https://i.stack.imgur.com/z6Wxr.png)
