如何准确分解正半定矩阵并在线性方程组中使用下三角部分

计算科学 线性代数 矩阵 正则 准确性
2021-12-14 15:38:42

我有 任意向量矩阵半正定矩阵,其中一些(通常大多数)是相同的(例如只有两个不同的矩阵,一个正定矩阵,适用于和半定 for )。我想对所有进行以下线性变换:np×1xip×kAin p×pSiSiSi=1,n1Si=nxiAi

xi=Li1xi,其中Ai=Li1Ai

Li是一个下三角矩阵,因此(或者更好其中是对角矩阵。)LiLi=SiLiDiLi=SiDi

n的范围可以从几到几千甚至更多,通常小于 10,通常小于 100。可以包含带零的行和列,它最初形成为,其中是下三对角矩阵具有非负对角元素不可用。pkSBBBB

我想知道在速度和准确性方面实现这一目标的最佳方法是什么,并且更加重视准确性?

目前我正在为不同的使用我自己编写的 LDL 分解函数,反转并计算转换,因为我一直在处理具有少量不同和大的情况。如果我理解正确,那么只求解线性方程组而不在精度方面显式反转矩阵会更明智,但就速度而言,它似乎是更好的选择?SLSn

我正在使用 Fortran,我宁愿使用一些 LAPACK 函数进行分解,而不是我自己的 LDL 分解,我不能保证它是稳定的等,但我不确定哪个是好方法。

编辑:这可能更适合stackoverflow,因此任何有权这样做的人都可以将其删除。

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