如何入门C++c 科学计算器 源代码

【图文】C++_STL入门基础_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
C++_STL入门基础
上传于||暂无简介
大小:1.99MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢如何入门C++科学计算?
本人平时主要用MATLAB来进行金融工程研究, MATLAB的功能很强大, 使用很方便, 但美中不足的是,对于计算密集型的问题,速度慢.解决办法是使用混合编程,即将程序中的瓶颈部分用C++写,然后编译成MEX文件.
但是有一个困难的地方,本人的C++水平以实现简单算法为主.对于矩阵相乘,矩阵SVD分解, 最小二乘法, gamma函数, 数值积分等科学运算,完全不知道怎么用C++快速实现,目前只是自己手动实现,编程效率很低.
问题是:有没有经常使用C++进行科学计算的或者MATLAB和C++混合编程的人,来指点一下,怎么入门C++科学计算? 用什么库比较好? 有没有什么教材推荐?补充: 本人使用Windows系统,用VS2013编程C++。本人C++水平很一般,比较看重安装以及使用的便利性。感谢大家的回答,平时用到矩阵运算比较多,先考虑用Eigen吧。
按投票排序
C++有很多现成的库来做这些事情。楼上的eigen是一个常见的库,在具体领域还有其他具体的库。有一个大杂烩的库叫做GNU Scientific Library(GSL)。其中包含了绝大多数常见的科学计算方面的需求,包括矩阵,优化,求根,数值积分,解微分方程,统计,常见分布,等等等等。不过如果你是在Windows下开发的话,需要花一点功夫调试编译的设置,官方自带的编译设置是没有包含windows的,但是有人创建过VS下的sln文件,你google一下下载调试一下就好了。除非你需要的算法很特别,网上没有人写过并且你对于你要设计的算法非常了解并且对于科学应用开发和计算机基本原理熟悉,否则自己写的多半都不如权威的库来的好,而且还花很多时间。As always, do not reinvest the wheels.
我一般用Eigen。无需编译,只要包含头文件即可。一般的矩阵运算都有。
基本都有库。比如楼上已经有朋友提到的GSL还挺好用的。
LAPACK这个库还混合了Fortran 90,所以速度绝对够用,功能也很强大很多有限元计算的软件都采用这个库作为矩阵运算的核
armadillo+openblas,配置起来略麻烦一点。但是armadillo用起来非常直观,后台用openblas保证速度。But,还是在一些函数比matlab慢,毕竟人家专门做数值的
已有帐号?
无法登录?
社交帐号登录您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
C++语言基础教程-吕凤翥.pdf435页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:40 &&
你可能关注的文档:
··········
··········
高等学校21 世纪教材
C++语言基础教程
C++语言基础教程 吕凤翥 编著 人 民 邮 电 出 版 社
图书在版编目(CIP)数据
C++语言基础教程/吕凤翥编著.
―北京:人民邮电出版社,2005.11
高等学校21 世纪教材
ISBN 7-115-13930-X Ⅰ.C ... Ⅱ.吕... Ⅲ.C 语言―高等学校―教材 Ⅳ.TP312
中国版本图书馆CIP 数据核字(2005 )第122885 号 内 容 提 要 本书系统讲述C++语言的基础知识、基本语法和编程方法。重点讲述C++语言面向对象的重要特征:类
和对象、继承性和派生类、多态性和虚函数等重要内容。同时,还介绍C++语言对C 语言的继承和改进。 本书文字通俗易懂,内容全面系统,例题丰富,重点突出,注重实践,偏重应用。每章后备有大量练习
题和上机题。 本书适用于大专院校理工科学生“C++语言程序设计”课程的教材,还可作为自学C++语言的指导书和
参考书。 高等学校21 世纪教材 C++ 语言基础教程 ?
著 吕凤翥 责任编辑 张孟玮 ?
人民邮电出版社出版发行 北京市崇文区夕照寺街14 号 邮编 100061
电子函件 .cn 网址 .cn 北京隆昌伟业印刷有限公司印刷 新华书店总店北京发行所经销 ?
开本:787×
印张:27.5 字数:660 千字 2005 年11 月第1 版 印数:1 C 3 000 册 2005 年11 月北京第1 次印刷 ISBN 7-115-13930-X/TP ?4917 定价:35.00 元 010 010 座机电话号码 读者服务热线: 印装质量热线: 座机电话号码 编 者的 话 本书作者长期以来从事C++语言程序设计课的教学工作。为了满足广大读者渴望学习
和掌握C++语言这一工具,更好地从事计算机编程工作和为深入学习计算机专业知识打下
基础,在原有讲稿的基础上编写了此书。 本书具有下述特点。 首先,
正在加载中,请稍后...计算机科学与技术本科学习如何安排课程顺序?_百度知道
计算机科学与技术本科学习如何安排课程顺序?
  一、公共基础课(未列无关的基础课程):    软件技术基础    Java程序设计    离散数学    微机接口及应用    计算机系统结构    脉冲电路与数字逻辑    网络安全    C语言程序设计(或C++程序设计语言:    计算机基础    网络教育学习概论    计算机应用基础(统考课程)  二、有些课程互为基础。而计算机各专业课程知识内在联系密切,但毕竟比较粗浅学习、公共选修课(未列无关的选修课程,下同)    数据结构(或算法设计分析)    电子商务(或计算机网络)    互联网及其应用(或软件工程)  三,因为可以自主网上选课  我报读了重庆大学网络教育学院专科起点本科计算机科学与技术专业的学习,2选1,我至少需要选5门才满学分);A类 )考试时自学了一些课程、专业必修课。希望大家给我安排一下课程学习顺序。专业教学计划如下,因为需要代修英语,虽然自己读大专时考全国计算机三级(偏硬&#47
提问者采纳
选修的学院没有强制安排,可以等到大二再跨年级选课,计算机组成原理,计算机基础大二,模电数电,C++,数据库,软件设计,如果大一的选修课没选上,但整体内容和方向都差不多,数据结构,离散数学按照我们学校的安排的话,微机接口,名字跟你们的有所不同,学习方式不会差太多,以上说的是必修的,大一.:Java:C语言.,计网,大三。你们学校的安排应该也是差不多的,毕竟都是同一个专业...
提问者评价
其他类似问题
为您推荐:
计算机科学与技术的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C++各大有名科学计算库(转) - 风过 无痕 - 博客园
在 C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 C++各大有名库的介绍——科学计算
1、Blitz++
参考网站:
   Blitz++ 是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像C++ 一样方便,同时又比Fortran速度更快的数值计算环境。通常,用C++所写出的数值程序,比 Fortran慢20%左右,因此Blitz++正是要改掉这个缺点。方法是利用C++的template技术,程序执行甚至可以比Fortran更快。
  Blitz++目前仍在发展中,对于常见的SVD,FFTs,QMRES等常见的线性代数方法并不提供,不过使用者可以很容易地利用Blitz++所提供的函数来构建。
参考网站:
  POOMA是一个免费的高性能的C++库,用于处理并行式科学计算。POOMA的面向对象设计方便了快速的程序开发,对并行机器进行了优化以达到最高的效率,方便在工业和研究环境中使用。
参考网站:
  Matrix Template Library(MTL)是一个高性能的泛型组件库,提供了各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能编译器的情况下,比如Intel的编译器,从产生的汇编代码可以看出其与手写几乎没有两样的效能。
参考网站:
  Computational Geometry Algorithms Library的目的是把在计算几何方面的大部分重要的解决方案和方法以C++库的形式提供给工业和学术界的用户。
Intel Math Kernel Library1.基本线形代数运算(BLAS) 向量与向量、向量与矩阵、矩阵与矩阵的运算2.稀疏线形代数运算3.快速傅立叶变换(单精度/双精度)(fftw)4.LAPACK(求解线形方程组、最小方差、特征值、Sylvester方程等)5.向量数学库(VML)6.向量统计学库(VSL)7.高级离散傅立叶变换
IMSL软件名称 IMSL C Numerical Library(不兼容vc6编译器)程序设计语言 C, Forton, C#, Java资源网址
功能概述 分为统计库和数学库两部分. 数学库包含应用数学和特殊函数.IMSL 程序库 - 已成为数值分析解决方案的工业标准。 IMSL 程序库提供最完整与最值得信赖的函数库。 IMSL 数值程序库提供目前世界上最广泛被使用的 IMSL 算法,有超过 370 验证过、最正确与 thread-safe 的数学与统计程序。 IMSL FORTRAN 程序库提供新一代以 FORTRAN 90 为程序库基础的程序,能展现出最佳化的演算法能力应用于多处理器与其它高效能运算系统。
lapack软件名称 Linear Algebra Package 程序设计语言 Fortran 77 资源网址
功能概述 线性代数计算子程序包
lapack++软件名称 Linear Algebra Package in c++ 程序设计语言 c++ 资源网址
功能概述 c++版的线性代数计算子程序包
BLAS软件名称 Basic Linear Algebra Subroutines 程序设计语言 Fortran 77 主要开发者 Kagstrom B. ,Ling P. ,Van Loan C. 资源网址
功能概述 Blas是执行向量和矩阵运算的子程序集合。
uBLASBLAS in C++ with expression templates. 表达式模版形式的 C++中的BLAS ,
gsl 软件名称 GNU Scientific Library (linux)程序设计语言 C , C++ compable 资源网址
功能概述 范围广泛, 包括数值分析的常见内容
Blitz++软件名称 Blitz++ (不兼容vc6编译器)资源网址
功能概述 The current versions provide dense arrays and vectors, random number generators, and small vectors and matrices.是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像 C++ 一样方便,同时又比 Fortran 速度更快的数值计算环境。通常,用 C++ 所写出的数值程序,比 Fortran 慢 20% 左右,因此Blitz++ 正是要改掉这个缺点。方法是利用 C++ 的 template 技术,程序执行甚至可以比 Fortran 更快。
MTL软件名称 Matrix Template Library(兼容vc6编译器)资源网址
功能概述 The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats. MTL专注于线性代数相关的计算任务,如各种形式矩阵的生成(对角,共轭,稀疏,对称等),相关的计算,变换,以及与一维向量的运算。
随笔 - 393
评论 - 246

我要回帖

更多关于 c科学计算讲义 pdf 的文章

 

随机推荐