VS2010 调用 GSL 数学算法库的流程

GSL(GNU Scientific Library)是一个 C 写成的用于科学计算的库,有超过1000个函数,该库提供了关于数学计算的很多方面,Matlab的大部分函数几乎都能借助它实现,可以在数值计算中省却很多事情。本节介绍如何在 visual studio 2010 环境部署 gsl 环境。

下载 windows 下的 GSL 代码


下载WinGsl,然后解压,注意路径尽量没有空格或者中文。

打开VS工程,按照下图添加库路径和头文件路径


执行以下测试代码:



\#include <stdio.h> #include <gsl/gsl_linalg.h> #pragma comment(lib, "libgsl.a") #pragma comment(lib, "libgslcblas.a") //////////////////////////////////////////////////////////// // Solve Ax = b with LU and cholesky int main(int argc, char **argv) { printf("=========== tst2 ===========\n"); double a_data[] = { 2,1,1,3,2, 1,2,2,1,1, 1,2,9,1,5, 3,1,1,7,1, 2,1,5,1,8 }; double b_data[] = { -2,4,3,-5,1 }; gsl_vector *x = gsl_vector_alloc (5); gsl_permutation * p = gsl_permutation_alloc (5); gsl_matrix_view m = gsl_matrix_view_array(a_data, 5, 5); gsl_vector_view b = gsl_vector_view_array(b_data, 5); int s; gsl_linalg_LU_decomp (&m.matrix, p, &s); gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x); printf ("x = \n"); gsl_vector_fprintf(stdout, x, "%g"); double a2_data[] = { 2,1,1,3,2, 1,2,2,1,1, 1,2,9,1,5, 3,1,1,7,1, 2,1,5,1,8 }; double b2_data[] = { -2,4,3,-5,1 }; gsl_matrix_view m2 = gsl_matrix_view_array(a2_data, 5, 5); gsl_vector_view b2 = gsl_vector_view_array(b2_data, 5); gsl_linalg_cholesky_decomp(&m2.matrix); gsl_linalg_cholesky_solve(&m2.matrix, &b2.vector, x); printf ("x = \n"); gsl_vector_fprintf(stdout, x, "%g"); gsl_permutation_free (p); gsl_vector_free(x); return 0; }

输出如下:

成功了!

阅读更多:   C语言
添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gif