?ptsv
求解线性方程组,其中系数矩阵A为实(共轭)对称正定三对角矩阵。
接口定义
C Interface:
void sptsv_(const int *N, const int *NRHS, float *D, float *E, float *B, const int *LDB, int *INFO);
void dptsv_(const int *N, const int *NRHS, double *D, double *E, double *B, const int *LDB, int *INFO);
void cptsv_(const int *N, const int *NRHS, float *D, float _Complex *E, float _Complex *B, const int *LDB, int *INFO);
void zptsv_(const int *N, const int *NRHS, double *D, double _Complex *E, double _Complex *B, const int *LDB, int *INFO);
Fortran Interface:
SPTSV(N, NRHS, D, E, B, LDB, INFO);
DPTSV(N, NRHS, D, E, B, LDB, INFO);
CPTSV(N, NRHS, D, E, B, LDB, INFO);
ZPTSV(N, NRHS, D, E, B, LDB, INFO);
参数
参数名  | 
类型  | 
描述  | 
输入/输出  | 
|---|---|---|---|
N  | 
整数型  | 
矩阵A的维数,N≥0。  | 
输入  | 
NRHS  | 
整数型  | 
矩阵B的列数,NRHS≥0。  | 
输入  | 
D  | 
  | 
输入时,为三对角矩阵A的对角元素,维度为N。 输出时,为分解后的对角元素D。  | 
输入、输出  | 
E  | 
  | 
输入时,为三对角矩阵A的次对角元素,维度为N-1。 输出时,为分解后矩阵A的次对角元素。  | 
输入、输出  | 
B  | 
  | 
输入时,为右端项矩阵,维度为(LDB, NRHS)。 输出时,为结果X,维度为(LDB, NRHS)。  | 
输入、输出  | 
LDB  | 
整数型  | 
矩阵B的主维。  | 
输入  | 
INFO  | 
整数型  | 
  | 
输出  | 
依赖
#include "klapack.h"
示例
C Interface:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | const int n = 4; const int ldb = n; const int nrhs = 1; double d[] = {7.608696,7.739130, 7.347826,4.652174}; double e[] = {0.352941,0.000000,0.823529}; double b[] = {0.300000,0.100000,0.700000,0.200000}; int info = 0; dptsv_(&n, &nrhs, d, e, b, &ldb, &info); /* * Output: * d: 7.608696 7.722759 7.347826 4.559874 * e: 0.046387 0.000000 0.112078 * b: 0.038912 0.011147 0.092279 0.026655 */  | 
Fortran Interface:
PARAMETER (n = 4) PARAMETER (ldb = 4) PARAMETER (nrhs = 1) INTEGER :: info = 0 REAL(8) :: d(n) REAL(8) :: e(n-1) REAL(8) :: b(ldb, nrhs) DATA d / 7.608696,7.739130, 7.347826,4.652174 / DATA e / 0.352941,0.000000,0.823529 / DATA b / 0.300000,0.100000,0.700000,0.200000 / EXTERNAL DPTSV CALL DPTSV(n, nrhs, d, e, b, ldb, info); * * Output: * d: 7.608696 7.722759 7.347826 4.559874 * e: 0.046387 0.000000 0.112078 * b: 0.038912 0.011147 0.092279 0.026655