在求解 ODE 系统时,作为预处理器的一部分,我得到了系统
其中是稀疏矩阵,是对角线。我目前正在通过对每个进行系统的 LU 分解来解决这个问题。在整个解中是恒定的。
有没有一种算法可以让我有效地解决这个问题,而无需在每一步都重新计算分解?
在求解 ODE 系统时,作为预处理器的一部分,我得到了系统
其中是稀疏矩阵,是对角线。我目前正在通过对每个进行系统的 LU 分解来解决这个问题。在整个解中是恒定的。
有没有一种算法可以让我有效地解决这个问题,而无需在每一步都重新计算分解?
我不相信在你的情况下直接解决是可能的,有太多用户的应用程序太多,如果可能的话,这将受益匪浅。特别是计算线性时不变系统
或
使用交替方向
求解 Lyapunov 矩阵方程
的因式分解到的因式分解廉价地传递的算法都将极大地促进隐式 (ADI) 方法。
如果具有低秩,那么 Sherman-Morrison-Woodbury 公式将允许您快速求解具有系数矩阵系统,前提是您可以快速求解具有系数矩阵系统。但是,我认为这不太可能。
我建议您将线性系统视为 t 的。很可能可以微分几次,这表明的未来值可以从过去的值中推断出来。特别是,如果足够小,则
值的简单且易于实现的初始猜测。更复杂的近似是可能的,但它们不一定值得付出努力。
我进一步建议您使用预处理的 Krylov 子空间方法解决您的线性系统。与其为每个时间步计算一个新的预处理器,我建议您循环使用几次预处理器,并且仅在当前的预处理器无效时计算一个新的预处理器,即迭代计数变得太大。
我不能保证这些选项会给你你正在寻找的速度,但至少它们提供了一些可以调整的参数:初始猜测的选择、预处理器和计算新预处理器之前的时间步数.
否(除非几乎没有非零)。这个问题的变体在这里被问了很多,答案总是相同的。