Python 中稀疏矩阵的 LDL 分解

问题描述

假设我有一个稀疏对称实数不定矩阵A,大​​小为N=150,000。该矩阵在具有相同结构(非零元素的位置)但值不同的算法的每次迭代中生成。我需要在每次迭代中求解 Ax=b 形式的多个系统并计算矩阵惯性(正、负和零特征值的数量)。从现有文献来看,使用矩阵 ALDL.T 分解似乎是一种很有前途的方法。

A 是 KKT 矩阵,形式如下:

|--------+-----|
|        |     |
|   H    | G.T |
|        |     |
|--------+-----|
|   G    |  0  |
|--------+-----|

H 大部分是对角线,G 是矩形,由沿对角线重叠的矩形块组成(通过状态方程系统的离散化获得)。

我正在使用 python。我曾尝试使用 numpy 包,cvxopt 包用于密集和稀疏实现,但分解对于我的目标来说太慢了。

有没有人推荐一个python包/方法来解决这种(中等)大小的问题? 例如,多前沿直接求解器/分解器的良好实现? 有什么方法可以充分利用矩阵的结构从一次迭代到下一次迭代这一事实? 有什么想法可以跳出框框?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)