中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

?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

  • 在sptsv/cptsv中为单精度浮点型数组。
  • 在dptsv/zptsv中为双精度浮点型数组。

输入时,为三对角矩阵A的对角元素,维度为N。

输出时,为分解后的对角元素D。

输入、输出

E

  • 在sptsv中为单精度浮点型数组。
  • 在dptsv中为双精度浮点型数组。
  • 在cptsv中为单精度复数型数组。
  • 在zptsv中为双精度复数型数组。

输入时,为三对角矩阵A的次对角元素,维度为N-1。

输出时,为分解后矩阵A的次对角元素。

输入、输出

B

  • 在sptsv中为单精度浮点型数组。
  • 在dptsv中为双精度浮点型数组。
  • 在cptsv中为单精度复数型数组。
  • 在zptsv中为双精度复数型数组。

输入时,为右端项矩阵,维度为(LDB, NRHS)。

输出时,为结果X,维度为(LDB, NRHS)。

输入、输出

LDB

整数型

矩阵B的主维。

输入

INFO

整数型

  • 等于0:成功退出。
  • 小于0:第-info个参数值不合法。
  • 大于0:表示第INFO阶顺序主子式不正定。

输出

依赖

#include "klapack.h"

示例

C Interface:

    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