我有 任意向量和矩阵和半正定矩阵,其中一些(通常大多数)是相同的(例如只有两个不同的矩阵,一个正定矩阵,适用于和半定 for )。我想对所有和进行以下线性变换:
和 ,其中
是一个下三角矩阵,因此(或者更好其中是对角矩阵。)
的范围可以从几到几千甚至更多,通常小于 10,通常小于 100。可以包含带零的行和列,它最初形成为,其中是下三对角矩阵具有非负对角元素不可用。
我想知道在速度和准确性方面实现这一目标的最佳方法是什么,并且更加重视准确性?
目前我正在为不同的使用我自己编写的 LDL 分解函数,反转并计算转换,因为我一直在处理具有少量不同和大的情况。如果我理解正确,那么只求解线性方程组而不在精度方面显式反转矩阵会更明智,但就速度而言,它似乎是更好的选择?
我正在使用 Fortran,我宁愿使用一些 LAPACK 函数进行分解,而不是我自己的 LDL 分解,我不能保证它是稳定的等,但我不确定哪个是好方法。
编辑:这可能更适合stackoverflow,因此任何有权这样做的人都可以将其删除。