青未了分享 http://blog.sciencenet.cn/u/yanghang

博文

IDL数学与统计分析——IMSL数学库

已有 7918 次阅读 2018-8-8 21:37 |个人分类:IDL学习笔记|系统分类:科研笔记

1.IMSL数学库介绍

IMSL(International Mathematics and Statistics Library)是由Visual Numerics,Inc从20世纪70年代开始开发的包含全面的数学和统计函数的软件包,拥有超过300个已证明且精准的数学统计算法,IDL Advanced中包含了除金融方面函数之外的整个C语言库。

IDL Advanced为科学家和专业领域的工程师提供了185个经过证明的运算函数,在IDL环境下,用户只需要简单地调用这些函数到自己的应用程序中,就可以实现复杂的数学和统计运算,并可以进行运算结果的快速可视化。

详情可参考博客:

http://blog.sina.com.cn/s/blog_764b1e9d0100qe4g.html

2.线性系统

IMSL数学库中包含的线性系统函数有矩阵求逆、线性方程组、线性最小二乘方程租和稀疏矩阵四类函数。

类型函数名称功能描述
矩阵求逆函数IMSL_INV求逆矩阵
线性方程组

IMSL_LUSOL

求逆矩阵

IMSL_LUFAC

矩阵的LU因式分解

IMSL_CHSOL

对称正定线性方程组求解
IMSL_CHFACCholesky系数计算
线性最小二乘方程租IMSL_QRSOL求逆矩阵

IMSL_QRFAC实矩阵因子分解

IMSL_SVDCOMP奇异值分解(SVD)

IMSL_CHNNDSOL实对称非负矩阵线性方程组求解

IMSL_CHNNDFAC实矩阵的Cholesky分解

IMSL_LINLSQ线性约束最小二乘求解(见例)
稀疏矩阵IMSL_SP_LUSOL线性稀疏矩阵求解(见例)

IMSL_SP_LUFAC稀疏矩阵的LU分解

IMSL_SP_BDSOL线性方程求解

IMSL_SP_BDFAC计算LU分解

IMSL_SP_PDSOL稀疏对称正定矩阵求解

IMSL_SP_PDFAC对称正定矩阵因式分解

IMSL_SP_BDPDSOL线性对称正定方程求解

IMSL_SP_BDPDFACCholesky分解

IMSL_SP_GMRES广义最小残差求解线性方程

IMSL_SP_CG共轭梯度方法求解实对称矩阵方程

IMSL_SP_MVMUL稀疏矩阵的向量积

例1:

利用最小二乘法求解方程组:

IMSL_LINLSQ_ex1.png

Syntax

Result = IMSL_LINLSQb, a, c, bl, bu, contype [, ABS_TOLERANCE=value] [, /DOUBLE] [, ITMAX=value] [, REL_TOLERANCE=value] [, RESIDUAL=variable] [, XLB=array] [, XUB=array])


程序:

a = TRANSPOSE([[3.0, 2.0, 1.0], [4.0, 2.0, 1.0], $

[2.0, 2.0, 1.0], [1.0, 1.0, 1.0]])

b = [3.3, 2.3, 1.3, 1.0]

c = [[1.0], [1.0], [1.0]]

xub = [0.5, 0.5, 0.5]

xlb = [0.0, 0.0, 0.0]

contype = [1]

bc = [1.0]

sol = IMSL_LINLSQ(b, a, c, bc, bc, contype, Xlb = xlb, $

Xub = xub, Residual = residual)

PM, sol, Title = 'Solution'

Solution

0.500000

0.300000

0.200000

PM, residual, Title = 'Residual'

Residual

-1.00000

0.500000

0.500000

0.00000

PRINT, 'Norm of Residual =', IMSL_NORM(residual)

Norm of Residual = 1.22474


例2:IMSL_SP_LUSOL:线性稀疏矩阵求解 Ax = b


IMSL_SP_LUSOL_Example2.png

Syntax

Result =IMSL_SP_LUSOL(b, [, a] [, CONDITION=variable] [, /CSC_COL] [, /CSC_ROW] [, /CSC_VAL] [, FACTOR_COORD=variable] [, GWTH_FACTOR=value] [, GWTH_LIM=value] [, /HYBRID_DENSITY] [, /HYBRID_ORDER] [,/ITER_REFINE=value] [, MEMORY_BLOCK=value] [, N_NONZERO=variable] [, N_SEARCH_ROWS=value] [, PIVOTING=value] [, SMALLEST_PVT=variable] [, STABILITY=value] [, TOL_DROP=value] [, TRANSPOSE=value])



程序:

Let xT = (1, 2, 3, 4, 5, 6) so that Ax = (10, 7, 45, 33, –34, 31)T. The number of nonzeros in A is 15.

A = replicate(imsl_f_sp_elem, 15)

; Define the sparse matrix A using coordinate storage format.

a(*).row = [0, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5]

a(*).col = [0, 1, 2, 3, 2, 0, 3, 4, 0, 3, 4, 5, 0, 1, 5]

a(*).val = [10, 10, -3, -1, 15, -2, 10, -1, -1, -5, $

1, -3, -1, -2, 6]

b = [10, 7, 45, 33, -34, 31]

; Define the right-hand side.

x = IMSL_SP_LUSOL(b, a)

; Call IMSL_SP_LUSOL, then print out result and the residual.

PM, x

1.0000000

2.0000000

3.0000000

4.0000000

5.0000000

6.0000000

PM, IMSL_SP_MVMUL(6, 6, a, x) - b

0.0000000

-8.8817842e-16

0.0000000

0.0000000

0.0000000

0.0000000






       

3.特征系统分析       

       Linear Eigensystem Problems 线性特征系统问题

              IMSL_EIG: 矩阵特征值

       Generalized Eigensystem Problems 广义特征系统问题

              IMSL_EIGSYMGEN: A=λBx的广义特征值,其中A、B为实对称矩阵

              IMSL_GENEIG:A=λBx的广义特征值,

例:求解矩阵的特征值:eigval = IMSL_EIG(a)

4.插值与近似

函数名称功能描述

IMSL_CSINTERP

三次样条插值

IMSL_CSSHAPE

shape-preserving三次样条插值

IMSL_BSINTERP

一维或二维的样条插值

IMSL_BSKNOTS

样条插值的节点

IMSL_SPVALUE

样条曲线值或导数

IMSL_SPINTEG

一维或二维的样条积分

IMSL_FCNLSQ

最小二乘拟合

IMSL_BSLSQ

一维或二维的样条的最小二乘逼近

IMSL_CONLSQ

约束样条逼近

IMSL_CSSMOOTH

三次样条平滑

IMSL_SMOOTHDATA1D

基于误差检测的一维或二维数据平滑

IMSL_SCAT2DINTERP

离散点进行插值平滑
IMSL_RADBF基于径向基线计算离散数据的逼近值
IMSL_RADBE基于径向基线的拟合






















https://wap.sciencenet.cn/blog-346157-1128274.html

上一篇:IDL&ENVI界面设计-编程中实际问题解决
下一篇:IDL图像处理
收藏 IP: 210.72.27.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-10 03:49

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部