2004年7月16日 19:12
GNU科学计算函数库GSL(GNU Scientific Library)是一个强大的C/C++数值计算函数库,它是一个自由软件,是GNU项目软件的一个部分,遵循GPL协议。目前GSL的最新版本是1.5,发布于2004年6月25日。
常见的LINUX发行版一般不带GSL,用户可以下载安装,安装比较简单,只要按照安装说明安装即可。
函数库提供了大量的数值计算程序,如随机函数、特殊函数和拟合函数等等。整个函数库大约有1000多个函数,几乎涵盖了科学计算的各个方面。以下是整个函数库的目录:
Complex Numbers Roots of Polynomials Special Functions Vectors and Matrices Permutations Sorting BLAS Support , BLAS(Basic Linear Algebra Subprograms) Linear Algebra Eigensystems Fast Fourier Transforms Quadrature Random Numbers Quasi-Random Sequences Random Distributions Statistics Histograms N-Tuples Monte Carlo Integration Simulated Annealing Differential Equations Interpolation Numerical Differentiation Chebyshev Approximation Series Acceleration Discrete Hankel Transforms Root-Finding Minimization Least-Squares Fitting Physical Constants IEEE Floating-Point
GSL主页上有完整的GSL参考手册,里面有详细的函数介绍。参考手册有GSL Reference Manual - HTML、GSL Reference Manual - Gzipped Postscript 、GNU Scientific Library Reference Manual 。内容都是一样的,电子书有600多页,文档非常详细,书的作者也是这些函数库的开发设计者。涵盖GSL使用的方方面面。
GSL函数库的设计者都是一些经验丰富的科学家和程序员。它是面向对象设计的,C和C++程序可以非常容易的调用,而且下载的安装源码里包含有所有程序的具体算法,用户可以参考,而且也可以对此提出改进。
GSL里面还包含完整的数学物理常数,有专门的头文件包含。
下面举一个简单的例子sample.c:
#include <stdio .h> #include <gsl /gsl_sf_bessel.h> int main (void) { double x = 5.0; double y = gsl_sf_bessel_J0(x); printf ("J0(%g) = %.18en", x, y); return 0; }
编译:
gcc sample.c -o sample -lgsl
运行输出:
J0(5) = 143382920e-01
有兴趣的可以详细阅读一下GSL Reference Manual 。