GSL安装使用

安装

最新版下载地址:gsl

wget ftp://ftp.gnu.org/gnu/gsl/gsl-2.4.tar.gz
tar -zxvf gsl-2.4.tar.gz 
cd gsl-2.4
./configure
make
sudo make install

最小二乘

Linear Least-Squares Fitting

Y(c,x)=c0+c1x Y ( c , x ) = c 0 + c 1 x

int gsl_fit_linear(const double * x, const size_t xstride, const double * y, const size_t ystride, size_t n, double * c0, double * c1, double * cov00, double * cov01, double * cov11, double * sumsq)

gsl默认只支持double运算
xstride,ystride: 可能是指针移动步长,一般为1
cov00,cov01,cov11: 协方差
sumsq: 剩余误差

#include <stdio.h>
#include <gsl/gsl_fit.h>

int main(void)
{
    int i, n = 4;
    double x[4] = { 1970, 1980, 1990, 2000 };
    double y[4] = {   12,   11,   14,   13 };

    double c0, c1, cov00, cov01, cov11, chisq;

    gsl_fit_linear(x, 1, y, 1, n, &c0, &c1, &cov00, &cov01, &cov11, &chisq);

    printf("# best fit: Y = %g + %g X\n", c0, c1);
    printf("# covariance matrix:\n");
    printf("# [ %g, %g\n#   %g, %g]\n", cov00, cov01, cov01, cov11);
    printf("# chisq = %g\n", chisq);

    for (i = 0; i < n; i++)
        printf("data: %g %g\n", x[i], y[i]);

    printf("\n");

    return 0;
}
gcc lls.cpp -o lls.o -lgsl -lgslcblas -o test //可以使用gsl自带的cblas库
gcc lls.cpp -o lls.o -lgsl -lopenblas -o test //也可以使用openblas之类的第三方cblas库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值