EN
注册

?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

  • 在spttrf/cpttrf中为单精度浮点型数组。
  • 在dpttrf/zpttrf中为双精度浮点型数组。

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

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

输入、输出

E

  • 在spttrf中为单精度浮点型数组。
  • 在dpttrf中为双精度浮点型数组。
  • 在cpttrf中为单精度复数型数组。
  • 在zpttrf中为双精度复数型数组。

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

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

输入、输出

INFO

整数型

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

输出

依赖

#include "klapack.h"

示例

C Interface:

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
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词