欢迎光临散文网 会员登陆 & 注册

科学计算C++

2023-04-05 16:02 作者:昵昵酱紫  | 我要投稿

用C++实现科学计算算法,得出所要的结果,有点类似刷OJ算法题的过程。一般OJ算法题主要是侧重逻辑。而科学计算则是根据数学公式出发,使用合适的科学计算算法,解决问题得到答案。

1)  具体的程序框架,通常是将问题的输入直接定义好(也可以从输入文件读取),然后执行C++程序进行计算,将计算好的结果用文件的形式输出,然后使用其他画图工具进行画图。

2)  在文件输入输出部分,会使用C++的文件处理模块。

3)  C++ 缺少一些科学计算模块,需要自己造轮子,或者自己去找。

4)  C++ 科学计算中最常用的数据结构是数组,但C++本身没有矩阵运算模块,要用到矩阵运算时,建议使用现代化的第三方库Eigen3( 这个上手会有些难度)

5)  当然,并行计算的编程技巧也需要学习。除此之外,掌握一些简单使用的科学计算算法。

C++科学计算的配置情况:

1.库的配置

Eigen:做线性代数相关的操作,由于Eigen调用MKL、BLAS等高性能线性代数库做底层,性能已经得到了足够的优化,而且又不用去学MKL、BLAS这些接口复杂的库,使用起来方便快捷。

GSL:这是一个大而全的数学库,GSL性能一般,线性代数方面的计算用更快的Eigen就好了,不必用GSL里面的。使用GSL主要是用来调用它的一些别人已经写好的数值积分、微分等方面的函数,就不用自己去写了。

注意的是,对于科研中经常碰到的逐元素操作,直接用C++写几层for循环就好了,不用调用gsl,eigen等第三方库。

fftw3:最快的傅里叶变换库,而且里面的傅里叶变换还有并行模式,速度非常快!


科学计算C++的评论 (共 条)

分享到微博请遵守国家法律