使用dpbtrf时出现分段故障



我尝试在c++中使用LAPACK例程dpbtrf(Documentaton(,但总是遇到分段错误。我不知道如何传递矩阵LAPACKE_dpbtrf,并试图从我发现的几个例子中复制它,但没有成功。如何使下面的代码工作?

我想计算矩阵的cholesky分解

1 -0.9    0    0    0
-0.9 1.81 -0.9    0    0
0 -0.9 1.81 -0.9    0
0    0 -0.9 1.81 -0.9
0    0    0 -0.9 1.81

以下是我尝试过的:

#include<iostream>
#include<lapacke.h>

int main() {
lapack_int info;
lapack_int N = 5;
lapack_int KD = 1; 
lapack_int LDAB = KD + 1;
double AB[N * KD] = {
1, 1.81, 1.81, 1.81, 1.81, 
-0.9, -0.9, -0.9, -0.9, -0.9
};

info = LAPACKE_dpbtrf( LAPACK_COL_MAJOR, 'L', N, KD, AB, LDAB);

for(int i=0;i<N * KD; i++)
{
std::cout << AB[i] << std::endl;
}
return(info);
}

似乎没有合适的AB尺寸。根据文件,大小是(LDAB,N(,而不是(KD,N(。

相关内容

  • 没有找到相关文章

最新更新