LAPACK函数介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

为方便线性代数运算,现将LAP ACK中的函数介绍如下:

1.函数的命名规则:

LAPACK里的每个函数名已经说明了该函数的使用规则。所有函数都是以XYYZZZ的形式命名,对于某些函数,没有第六个字符,只是XYYZZ的形式。

第一个字母X代表以下的数据类型:

S REAL,单精度实数

D DOUBL

E PRECISION,双精度实数

C COMPLEX,单精度复数

Z COMPLEX*16 或DOUBLE COMPLEX

注:

在新版LAPACK中含有使用重复迭代法的函数DSGESV和ZCDESV。

头2个字母表示使用的精度:

DS 输入数据是double双精度,算法使用单精度

ZC 输入数据是complex*16,算法使用complex单精度复数

接下面两个字母YY代表数组的类型。

BD bidiagonal,双对角矩阵

DI diagonal,对角矩阵

GB general band,一般带状矩阵

GE general (i.e., unsymmetric, in some cases rectangular),一般情形(即非对称,在有些情形下为矩形)

GG general matrices, generalized problem (i.e., a pair of general matrices),一般矩阵,广义问题(即一对一般矩阵)

GT general tridiagonal,一般三对角矩阵

HB (complex) Hermitian band,(复数)厄尔米特带状阵HE (complex) Hermitian,(复数)厄尔米特矩阵

HG upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a triangular matrix),上海森伯格矩阵,广义问题(即一个海森伯格矩阵和一个三角矩阵)

HP (complex) Hermitian, packed storage,(复数)压缩储存的厄尔米特矩阵HS upper Hessenberg,上海森博格矩阵

OP (real) orthogonal, packed storage,(实数)压缩储存的正交阵

OR (real) orthogonal,(实数)正交阵

PB symmetric or Hermitian positive definite band,对称或厄尔米特正定带状矩阵

PO symmetric or Hermitian positive definite,对称或厄尔米特正定矩阵

PP symmetric or Hermitian positive definite, packed storage,压缩储存的对称或厄尔米特正定矩阵

PT symmetric or Hermitian positive definite tridiagonal,对称或厄尔米特正定三对角阵

SB (real) symmetric band,(实数)对称带状阵

SP symmetric, packed storage,压缩储存的对称阵

ST (real) symmetric tridiagonal,(实数)对称三对角阵

SY symmetric,对称阵

TB triangular band,三角形带状矩阵

TG triangular matrices, generalized problem (i.e., a pair of triangular matrices),三角形矩阵,广义问题(即一对三角形阵)

TP triangular, packed storage,压缩储存的三角形阵

TR triangular (or in some cases quasi-triangular),三角形阵(在某些情形下为类三角形阵)

TZ trapezoidal,梯形阵

UN (complex) unitary,(复数)酉矩阵

UP (complex) unitary, packed storage,(复数)压缩储存的酉矩阵

最后三个字母ZZZ代表计算方法。比如,SGEBRD是一个单精度函数,用于把一个实数一般阵压缩为双对角阵(a bidiagonal reduction,即BRD)。

2.函数讲解

2.1 dgesv_()函数用来求解对称矩阵问题,否则真的要出错!

int dgesv_(

integer *n,

integer *nrhs,

doublereal *a,

integer *lda,

integer *ipiv,

doublereal *b,

integer *ldb,

integer *info

);

从名字的意义上可以看出是用来解决双精度一般型的线性方程(组)的问题。

DGESV是用来求解实数的线性方程组AX=B的。A是N×N型矩阵,X和B是N×NRHS 型矩阵。

参数介绍:

N (input) INTEGER

. 线性方程组的个数,例如A矩阵的行数。N >= 0.

NRHS (input) INTEGER

右边矩阵的尺寸, 例如:B矩阵的列数. NRHS >= 0.

A (input/output) 双精度数组, 尺寸为LDA×N。

输入时为矩阵A的系数。

输出时, L和U是来自A = P*L*U的因式分解;L对角线的元素不被存储。.

LDA (input) INTEGER

数组A的主尺寸LDA >= max(1,N).

相关文档
最新文档