?gttrf
计算一般三对角矩阵A的LU分解。
接口定义
C Interface:
void sgttrf(const int *N, float *DL, float *D, float *DU, float *DU2, int *IPIV, int *INFO);
void dgttrf(const int *N, double *DL, double *D, double *DU, double *DU2, int *IPIV, int *INFO);
void cgttrf(const int *N, float _Complex *DL, float _Complex *D, float _Complex *DU, float _Complex *DU2, int *IPIV, int *INFO);
void zgttrf(const int *N, double _Complex *DL, double _Complex *D, double _Co mplex *DU, double _Complex *DU2, int *IPIV, int *INFO);
Fortran Interface:
SGTTRF(N,DL,D,DU,DU2,IPIV,INFO);
DGTTRF(N,DL,D,DU,DU2,IPIV,INFO);
CGTTRF(N,DL,D,DU,DU2,IPIV,INFO);
ZGTTRF(N,DL,D,DU,DU2,IPIV,INFO);
参数
参数名  | 
类型  | 
描述  | 
输入/输出  | 
|---|---|---|---|
N  | 
整数型  | 
矩阵A的维数,N≥0。  | 
输入  | 
DL  | 
  | 
输入时,为三对角矩阵A的次对角元素,维度为N-1。 输出时,为L矩阵。  | 
输入、输出  | 
D  | 
  | 
输入时,为三对角矩阵A的对角元素,维度为N。 输出时,为U的对角元素。  | 
输入、输出  | 
DU  | 
  | 
输入时,为三对角矩阵A的超对角元素,维度为N-1。 输出时,为U的第一超对角元素。  | 
输入、输出  | 
DU2  | 
  | 
输出时,为U的第二超对角元素。  | 
输出  | 
IPIV  | 
整数型  | 
转置数组。  | 
输出  | 
INFO  | 
整数型  | 
  | 
输出  | 
依赖
#include "klapack.h"
示例
C Interface:
const int n = 4;
double dl[] = {0.923077, 0.153846, 0.153846};
double d[] = {0.521739, 0.043478, 0.304348, 0.086957};
double du[] = {0.924528, 0.150943, 0.566038};
double du2[] = {0.986301, 0.397260};
double ipiv[4];
int info = 0;
dgttrf_(&n, dl, d, du, du2, ipiv, &info);
if (info != 0) {
    printf("ERROR, info = %d\n", info);
}
/* 
* Output: 
*   d:    0.923077        0.899954        0.318932        -0.186088
*   dl:   0.565217        0.170949        0.482378
*   du:   0.043478        -0.085316       0.566038
*   du2:  0.150943        0.000000
*   ipiv: 2       2       3       4
*/
Fortran Interface:
PARAMETER (n = 4) INTEGER :: info = 0 REAL(8) :: d(n) REAL(8) :: dl(n-1) REAL(8) :: du(n-1) REAL(8) :: du2(n-2) INTEGER :: ipiv(n) DATA d / 0.521739, 0.043478, 0.304348, 0.086957 / DATA dl / 0.923077, 0.153846, 0.153846 / DATA du / 0.924528, 0.150943, 0.566038 / DATA du2 / 0.986301, 0.397260 / EXTERNAL DGTTRF CALL DGTTRF(n, dl, d, du, du2, ipiv, info); * * Output: * d: 0.923077 0.899954 0.318932 -0.186088 * dl: 0.565217 0.170949 0.482378 * du: 0.043478 -0.085316 0.566038 * du2: 0.150943 0.000000 * ipiv: 2 2 3 4