【IDL】 IDL Advanced及其详细功能介绍
IDL Advanced是IDL的一个新的增值模块,它全面集成了IMSLTM C Numerical Library的数学和统计程序,在IDL原有的交互式数据分析和可视化功能基础上增加了复杂的数学和统计功能。IMSL(International Mathematics and Statistics Library)是由Visual Numerics,Inc从20世纪70年代开始开发的包含全面的数学和统计函数的软件包,拥有超过300个已证明且精准的数学统计算法,IDL Advanced中包含了除金融方面函数之外的整个C语言库。
IDL Advanced为科学家和专业领域的工程师提供了185个经过证明的运算函数,在IDL环境下,用户只需要简单地调用这些函数到自己的应用程序中,就可以实现复杂的数学和统计运算,并可以进行运算结果的快速可视化。
1. IMSL数学和统计功能列表:
Linear System (线性系统)
Eigensystem Analysis (特征系统分析)
Interpolation and Approximation (差值和拟合)
Quadrature (积分)
Differential Equations (微分方程)
Transforms (变换)
Nonlinear Equations (非线性方程)
Optimization (最优化)
Special Functions (特殊函数)
Basic Statistics and Random Number Generators (基础统计和随机数产生)
Regression (回归)
Correlation and Covariance (相关和协方差)
Analysis of Variance (变异分析)
Categorical and Discrete Data Analysis (分类和离散数据分析)
Nonparametric Statistics (非参数统计)
Goodness of Fit (拟和优度/配合度)
Time Series and Forecasting (时间序列和预测)
Multivariate Analysis (多元分析)
Survival Analysis (生存分析)
Probability Distribution Functions and Inverses (概率分布函数和反转)
Random Number Generation (随机数生成)
Math and Statistics Utilities(应用数学统计)
2. IDL Advanced数学功能详细介绍
§1 Linear System (线性系统)
Matrix Inversion 矩阵转置
IMSL_INV
Linear Equations with Full Matrices 全矩阵线性方程
IMSL_SP_LUSOL
IMSL_SP_LUFAC
IMSL_SP_CHSOL
IMSL_SP_CHFAC
Linear Least Squares with Full Matrices 全矩阵线性最小二乘
IMSL_QRSOL
IMSL_QRFAC
IMSL_SVDCOMP
IMSL_CHNNDSOL
IMSL_CHNNDFAC
IMSL_LINLSQ
Sparse Matrices 稀疏矩阵
IMSL_SP_LUSOL
IMSL_SP_LUFAC
IMSL_SP_BDSOL
IMSL_SP_BDFAC
IMSL_SP_PDSOL
IMSL_SP_PDFAC
IMSL_SP_BDPDSOL
IMSL_SP_BDPDFAC
IMSL_SP_GMRES
IMSL_SP_CG
IMSL_SP_MVMUL
§2 Eigensystem Analysis (特征系统分析)
Linear Eigensystem Problems 线性特征系统问题
IMSL_EIG
Generalized Eigensystem Problems 广义特征系统问题
IMSL_EIGSYMGEN
IMSL_GENEIG
§3 Interpolation and Approximation (差值和拟合)
Cubic Spline Interpolation 三次样条插值
IMSL_CSINTERP
IMSL_CSSHAPE
B-spline Interpolation B-样条插值
IMSL_BSINTERP
IMSL_BSKNOTS
B-spline and Cubic Spline Evaluation and Integration B-样条、三次样条评价及综合
IMSL_SPVALUE
IMSL_SPINTEG
Least-squares Approximation and Smoothing 最小二乘拟和及滤波
IMSL_FCNLSQ
IMSL_BSLSQ
IMSL_CONLSQ
IMSL_CSSMOOTH
IMSL_SMOOTHDATA1D
Scattered Data Interpolation 离散数据插值
IMSL_SCAT2DINTERP
IMSL_RADBF
IMSL_RADBE
§4 Quadrature (积分)
Univariate and Bivariate Quadrature 一元积分和双重积分
IMSL_INTFCN
Arbitrary Dimension Quadrature 任意维的积分
IMSL_INTFCNHYPER
IMSL_INTFCN_QMC
Gauss Quadrature 高斯积分
IMSL_GQUAD
Differentiation 区别
IMSL_FCN_DERIV
§5 Differential Equations (微分方程)
IMSL_ODE
IMSL_PDE_MOL
IMSL_POISSON2D
§6 Transforms (变换)
IMSL_FFTCOMP
IMSL_FFTINIT
IMSL_CONVOL1D
IMSL_CORR1D
IMSL_LAPLACE_INV
§7 Nonlinear Equations (非线性方程)
Zeros of a Polynomial 多项式的零点
IMSL_ZEROPOLY
Zeros of a Function 函数的零点
IMSL_ZEROFCN
Root of a System of Equations 方程组的根
IMSL_ZEROSYS
§8 Optimization (最优化)
Unconstrained Minimization 无约束最小化
IMSL_FMIN
IMSL_FMINV
IMSL_NLINLSQ
Linearly Constrained Minimization 线性约束最小化
IMSL_LINPROG
IMSL_QUADPROG
Nonlinearly Constrained Minimization 非线性约束最小化
IMSL_MINCONGEN
IMSL_CONSTRAINED_NLP
§9 Special Functions (特殊函数)
Error Functions 误差函数
IMSL_ERF
IMSL_ERFC
IMSL_BETA
IMSL_LNBETA
IMSL_BETAI
Gamma Functions γ函数
IMSL_LNGAMMA
IMSL_GAMMA_ADV
IMSL_GAMMAI
Bessel Functions with Real Order and Complex Argument 一般和复杂的贝赛尔函数
IMSL_BESSI
IMSL_BESSJ
IMSL_BESSK
IMSL_BESSY
IMSL_BESSI_EXP
IMSL_BESSK_EXP
Elliptic Integrals 椭圆积分
IMSL_ELK
IMSL_ELE
IMSL_ELRF
IMSL_ELRD
IMSL_ELRJ
IMSL_ELRC
Fresnel Integrals菲涅耳积分
IMSL_FRESNEL_COSINE
IMSL_FRESNEL_SINE
Airy Functions Airy函数
IMSL_AIRY_AI
IMSL_AIRY_BI
Kelvin Functions开尔文函数
IMSL_KELVIN_BER0
IMSL_KELVIN_BEI0
IMSL_KELVIN_KER0
IMSL_KELVIN_KEI0
3. IDL Advanced统计功能详细介绍
§1 Basic Statistics (基础统计)
Simple Summary Statistics 简单统计概要
IMSL_SIMPLESTAT
IMSL_NORM1SAMP
IMSL_NORM2SAMP
Tabulate, Sort, and Rank 列表、分类和排列
IMSL_FREQTABLE
IMSL_SORTDATA
IMSL_RANKS
§2 Regression (回归)
Multiple Linear Regression 多线性回归
IMSL_REGRESSORS
IMSL_MULTIREGRESS
IMSL_MULTIPREDICT
Variable Selection 变量选择
IMSL_ALLBEST
IMSL_STEPWISE
Polynomial and Nonlinear Regression 多项式和非线性回归
IMSL_POLYREGRESS
IMSL_POLYPREDICT
IMSL_NONLINREGRESS
Multivariate Linear Regression—Statistical Inference and Diagnostics 多元线性回归-统计推断和诊断
IMSL_HYPOTH_PARTIAL
IMSL_HYPOTH_SCPH
IMSL_HYPOTH_TEST
Polynomial and Nonlinear Regression 多项式和非线性回归
IMSL_NONLINOPT
Alternatives to Least Squares Regression 可选最小二乘回归
IMSL_LNORMREGRESS
§3 Correlation and Covariance (相关和协方差)
IMSL_COVARIANCES
IMSL_PARTIAL_COV
IMSL_POOLED_COV
IMSL_ROBUST_COV
§4 Analysis of Variance (变异分析)
IMSL_ANOVA1
IMSL_ANOVAFACT
IMSL_MULTICOMP
IMSL_ANOVANESTED
IMSL_ANOVABALANCED
§5 Categorical and Discrete Data Analysis (分类和离散数据分析)
Statistics in the Two-Way Contingency Table (双向列联表统计)
IMSL_CONTINGENCY
IMSL_EXACT_ENUM
IMSL_EXACT_NETWORK
Generalized Categorical Models 广义类别模型
IMSL_CAT_GLM
§6 Nonparametric Statistics (非参数统计)
One Sample Tests—Nonparametric Statistics 单样本检验-非参数统计
IMSL_SIGNTEST
IMSL_WILCOXON
IMSL_NCTRENDS
IMSL_CSTRENDS
IMSL_TIE_STATS
Two or More Samples Tests—Nonparametric Statistics 双样本或多样本检验-非参数统计
IMSL_KW_TEST
IMSL_FRIEDMANS_TEST
IMSL_COCHRANQ
IMSL_KTRENDS
§7 Goodness of Fit (拟和优度/配合度)
General Goodness of Fit Tests 一般拟和优度检验
IMSL_CHISQTEST
IMSL_NORMALITY
IMSL_KOLMOGOROV1
IMSL_KOLMOGOROV2
IMSL_MVAR_NORMALITY
Tests for Randomness 随机检验
IMSL_RANDOMNESS_TEST
§8 Time Series and Forecasting (时间序列和预测)
IMSL_ARMA Models IMSL_ARMA 模型
IMSL_ARMA
IMSL_DIFFERENCE
IMSL_BOXCOXTRANS
IMSL_AUTOCORRELATION
IMSL_PARTIAL_AC
IMSL_LACK_OF_FIT
IMSL_GARCH
IMSL_KALMAN
§9 Multivariate Analysis (多元分析)
IMSL_K_MEANS
IMSL_PRINC_COMP
IMSL_FACTOR_ANALYSIS
IMSL_DISCR_ANALYSIS
§10 Survival Analysis (生存分析)
IMSL_SURVIVAL_GLM
§11 Probability Distribution Functions and Inverses (概率分布函数和反转)
IMSL_NORMALCDF
IMSL_BINORMALCDF
IMSL_CHISQCDF
IMSL_FCDF
IMSL_TCDF
IMSL_GAMMACDF
IMSL_BETACDF
IMSL_BINOMIALCDF
IMSL_BINOMIALPDF
IMSL_HYPERGEOCDF
IMSL_POISSONCDF
§12 Random Number Generation (随机数生成)
Random Numbers 随机数
IMSL_RANDOMOPT
IMSL_RANDOM_TABLE
IMSL_RANDOM
IMSL_RANDOM_NPP
IMSL_RANDOM_ORDER
IMSL_RAND_TABLE_2WAY
IMSL_RAND_ORTH_MAT
IMSL_RANDOM_SAMPLE
IMSL_RAND_FROM_DATA
IMSL_CONT_TABLE
IMSL_RAND_GET_CONT
IMSL_DISCR_TABLE
IMSL_RAND_GEN_DISCR
Stochastic Processes 随机过程
IMSL_RANDOM_ARMA
Low-discrepancy Sequences 超均匀分布序列
IMSL_FAURE_INIT
IMSL_FAURE_NEXT_PT
§13 Math and Statistics Utilities(应用数学统计)
Dates 日期
IMSL_DAYSTODATE
IMSL_DATETODAYS
Constants and Data Sets 常量和数据集
IMSL_CONSTANT
IMSL_MACHINE
IMSL_STATDATA
Binomial Coefficient 二项式系数
IMSL_BINOMIALCOEF
Geometry 几何排列
IMSL_NORM
Matrix Norm 矩阵范数
IMSL_MATRIX_NORM
Matrix Entry and Display 矩阵输入和显示
PM
RM
4. 需要知道的关于IDL Advanced的几点常识:
I.关于license:IDL Advanced是独立注册的IDL模块,如果没有安装IDL Advanced license,那么包含IMSL函数的IDL应用程序将不能运行,也就是说每个终端用户都必须有一个IDL Advanced license。
II.应用IDL Advanced Reference Guide:在IDL Advanced 参考指南中,对二维数组的描述采用的是线性代数惯有的表达方法,即第一个下标代表行,第二个下标代表列。
III.关于IDL Advanced的错误处理:
a) 对溢出值的处理。在进行数学和统计分析的时候,经常会遇到值溢出的情况。IDL Advanced将它们分为两类:underflow(下溢)和overflow(超值溢出)。IDL Advanced编写了相应的规则来对这两种溢出进行处理,对于下溢,除非系统(硬件或软件)强制将下溢的值用0代替,否则IDL Advanced将会用自己的规则进行处理;对于超值溢出的情况,IDL Advanced能够检测出程序错误(如错误的数据输入,参数类型不匹配,数组维度错误)导致的超值溢出。
b) 对缺失值的处理。一些IDL Advanced程序允许输入数据包含缺失值,程序把这些缺失值看作“Not a Number”(NaN),其真实值随着硬件环境的不同而不同,可通过“IMSL_MACHINE”得到。不同的IDL Advanced函数对缺失值的处理方式也不同。
c) 对用户代码错误的处理。IDL Advanced为用户提供了更多的关于错误的提示信息。除了基本的IDL错误帮助,IDL Advanced还提供了五级的错误信息,它们分别为:
Note:可能发生的微小错误信息,不更新!ERROR_STATE的值
Alert:经常由underflow(下溢)错误导致,不更新!ERROR_STATE的值
Warning:可能会导致输出错误的提示信息,不更新!ERROR_STATE的值
Fatal:一般情况下需要对这种错误进行改正,更新!ERROR_STATE的值
Terminal:严重错误信息,必须对错误进行改正,更新!ERROR_STATE的值
默认情况下,IDL输出日志会打印出所有存在的五种错误信息,用户可以通过设置系统变量!QUIET的值来确定Notes,Alerts和Warnings三种错误信息是否输出。.
5. IDL Advanced的应用实例
计算H原子的概率函数
This example evaluates
the probability function for the hydrogen atom.