我需要解决以下形式的线性系统
在哪里是上 Hessenberg 矩阵,下带宽等于 1,是 RHS 向量和是解向量。我有一个基于“CB Moler, Algorithm 423, Linear Equation Solver, CACM 15 (1972), p. 274”的 C++ 例程。解决系统。但是,如果可用,我希望使用 LAPACK。由于我找不到任何用于“Hessenberg 矩阵线性系统求解”的 LAPACK 例程,我使用了
dgetrfanddgetrs例程,但它们比 Hessenberg 矩阵的 C++ 实现要慢得多。样本输出为:
基准 Hessenberg 矩阵求解例程(大小 = 400)
函数耗时残差
-------- ------------- --------
C++ dech() 0.000367 xx
C++ solh() 0.000140 0.00000004
LPK dgetrf() 0.004051 xx
LPK dgetrs() 0.000110 0.00000005
最终结果
C++ 因式分解比 LAPACK 快 11.027 倍。
C++ bf solve 比 LAPACK 慢 0.790X。
我的问题是:LAPACK 中有没有专门处理 Hessenberg 矩阵的线性系统求解的例程?
注意:正如预期的那样,在 LAPACK 中使用dgetrf和进行密集矩阵求解要快得多。dgetrs