我需要解决一个三对角系统(正定,对角占优) 在时间步进循环中。 保持不变但每个时间步的变化。
我在想以下哪个会更快:
计算和存储解决了. 那么任何是一个线性组合和
天真地解决对于每个给定的通过三对角矩阵算法。
我认为(1)将节省计算三对角解的时间,因为基本上给出了的倒数. 但是,我计算出一个解决方案需要翻牌,所以那是计算所有. 然后对于每个给定的, 它需要计算失败. 如果我拿时间步长,即总共.
相比之下(2)需要.
我对么 ?(2) 在哪里获得优势?
我需要解决一个三对角系统(正定,对角占优) 在时间步进循环中。 保持不变但每个时间步的变化。
我在想以下哪个会更快:
计算和存储解决了. 那么任何是一个线性组合和
天真地解决对于每个给定的通过三对角矩阵算法。
我认为(1)将节省计算三对角解的时间,因为基本上给出了的倒数. 但是,我计算出一个解决方案需要翻牌,所以那是计算所有. 然后对于每个给定的, 它需要计算失败. 如果我拿时间步长,即总共.
相比之下(2)需要.
我对么 ?(2) 在哪里获得优势?
最有效的方法可能是对 A 执行一步高斯消除以消除次对角线,然后存储新主对角线的倒数、新修改的上对角线和常数以在b上执行前向替换。
这样,每个 rhs 将需要一个前向替换来修改b,然后是一个反向求解。前向操作由 N 次加法和 N 次乘法组成,后向操作由 2N 次乘法和 N 次加法组成。这增加了 5N 次操作并且没有除法(速度较慢)。