?pttrf
计算实(共轭)对称正定三对角矩阵A的LDL*或U*DU分解,其中D为对角块矩阵,L为下三角矩阵,U为上三角矩阵。
接口定义
C Interface:
void spttrf_(const int *N, float *D, float *E, int *INFO);
void dpttrf_(const int *N, double *D, double *E, int *INFO);
void cpttrf_(const int *N, float *D, float _Complex *E, int *INFO);
void zpttrf_(const int *N, double *D, double _Complex *E, int *INFO);
Fortran Interface:
SPTTRF(N, D, E, INFO);
DPTTRF(N, D, E, INFO);
CPTTRF(N, D, E, INFO);
ZPTTRF(N, D, E, INFO);
参数
| 参数名 | 类型 | 描述 | 输入/输出 | 
|---|---|---|---|
| N | 整数型 | 矩阵A的维数,N≥0。 | 输入 | 
| D | 
 | 输入时,为三对角矩阵A的对角元素,维度为N。 输出时,为分解后的对角元素D。 | 输入、输出 | 
| E | 
 | 输入时,为三对角矩阵A的次对角元素,维度为N-1。 输出时,为分解后矩阵A的次对角元素。 | 输入、输出 | 
| INFO | 整数型 | 
 | 输出 | 
依赖
#include "klapack.h"
示例
C Interface:
| 1 2 3 4 5 6 7 8 9 10 | const int n = 4; double d[] = {103.608696, 103.739130, 103.347826, 100.652174}; double e[] = {0.352941, 0.000000, 0.823529}; int info = 0; dpttrf_(&n, d, e, &info); /* * Output: * d: 103.608696 103.737928 103.347826 100.645612 * e: 0.003406 0.000000 0.007969 */ | 
Fortran Interface:
PARAMETER (n = 4) INTEGER :: info = 0 REAL(8) :: d(n) REAL(8) :: e(n-1) DATA d / 103.608696, 103.739130, 103.347826, 100.652174 / DATA e / 0.352941,0.000000,0.823529/ EXTERNAL DPTTRF CALL DPTTRF (n, d, e, info) * Output: * d: 103.608696 103.737928 103.347826 100.645612 * e: 0.003406 0.000000 0.007969
父主题: 矩阵分解函数