在我的项目中,我必须在每个时间步上求解几个三对角矩阵,因此拥有一个好的求解器至关重要。我做了自己的实现,只是Wikipedia上描述的经典方法。然后我尝试使用Lapack代替,令我惊讶的是它的速度更慢!
现在,在Lapack中,似乎通过LU分解进行求解,我不知道为什么,它不是比可能更复杂吗?
另外,我在nr.com的“数字食谱”书中找到了一种算法,该算法将系统递归地划分为较小的三对角线问题。看起来很有希望。那里还有其他东西吗?
更新:问题大小约为1000x1000。我使用了GotoBLAS,它也为您提供了Lapack 3.1.1库。问题不对称。我将Lapack例程用于一般的三对角矩阵。
2
您将必须说明为此使用了哪些LAPACK例程。请注意,dgtsv执行部分数据透视,但是您的代码可能不会执行此操作。还请说明您使用哪种LAPACK实施进行了测试,以及基准测试的问题规模。另外,您的问题对称正定吗?
—
杰德·布朗
我在问题表述中添加了一些信息。
—
tiam 2012年
您的应用程序与有限体积方法有关吗?
—
Inquest 2012年
这是有限的差异,但是从这个角度来看,我猜是差不多。
—
tiam 2012年