【科学计算】

科学计算


计算科学,也被称为科学计算科学计算(SC),是数学和计算机科学的一个领域,即利用先进的计算能力来理解和解决复杂问题。它是一个跨越许多学科的科学领域,但在其核心在于开发模型和模拟方法用于理解自然系统。

  • 算法(数值方法和非数值方法):为解决科学(如生物、物理和社会)、工程和人文问题而开发的数学模型、计算模型和计算机模拟。
  • 计算机硬件:开发和优化解决高计算量问题所需的先进硬件、软件、网络和数据管理系统。
  • 计算基础设施:帮助解决科学和工程问题,和推动计算机和信息科学发展。

在实际应用中,它通常是应用计算机模拟和其他来自数值分析理论计算机科学的计算形式来解决各科学学科的问题。科学计算与理论或者实验室实验不同,后者是科学和工程的传统研究范式。科学计算则是通过分析在计算机上运行的数学模型来获得对特定问题的理解。科学家和工程师开发计算机程序和应用软件,对所研究的系统进行建模,并以各种输入参数集运行这些程序。计算科学的本质是数值算法和计算数学的应用。在某些情况下,这些模型需要大量的计算(通常是高精度浮点计算),并经常在超级计算机或分布式计算平台上执行。数值分析是运算科学中使用的技法的重要基础。

在这里插入图片描述
在这里插入图片描述

计算思维


计算思维是起源于理论计算科学中的概念,原指构造性的逻辑思维。它被用来描述人类面对复杂问题时,采取类似计算机系统的抽象、分解、转化和计算的思维过程。

计算科学家


计算科学家这一术语被用来描述在自身研究领域中使用科学计算的人。这样的人通常是一位科学家、工程师或应用数学家,他们以不同的方式应用高性能计算来推动各自的物理、化学或工程等应用学科的尖端研究。

科学计算现在通常被认为是科学研究的第三种范式,是对实验/观察和理论的补充和增补。在这里,人们把一个系统定义为数据的潜在来源,实验是通过系统的输入施加数据而从系统中提取数据的过程,系统(S)的模型*(M*)和实验(E)是任何可以应用E来回答关于S的问题的东西。 一个计算科学家应该有能力:

  • 识别复杂的问题
  • 将包含这些问题的系统充分地概念化
  • 设计一个适合研究这个系统的算法框架:模拟
  • 选择一个合适的计算基础设施(并行计算/网格计算/超级计算机)
  • 最大限度地提高模拟的计算能力
  • 评估模拟的输出在多大程度上与系统相似:验证模型
  • 对系统的概念化进行相应的调整
  • 重复这一循环,直到获得适当的验证水平:计算科学家相信,模拟可以产生充分接近现实的系统结果。

科学哲学家们探讨了计算科学在多大程度上符合科学的条件。汉弗莱斯和格尔法特探讨了认识论的一般问题:如何从这种计算科学方法中获得洞察力?托克用这些见解来说明基于计算机的模拟研究的认识论限制。由于计算科学使用的是以可执行形式表示基础理论的数学模型,从本质上讲,它们应用了建模(理论构建)和模拟(实施和执行)。虽然模拟和计算科学是我们表达知识和理解的最复杂的方式,但它们也伴随着所有已经知道的计算解决方案的约束和限制。

科学计算的应用


计算流体力学

计算流体力学(CFD)是流体力学的一个分支,使用数值分析和数据结构来分析和解决涉及流体流动的问题。计算机被用来执行模拟流体自由流动所需的计算,以及流体(液体和气体)与边界条件定义的表面的相互作用。有了高速的超级计算机,可以实现更好的解决方案,而且往往需要解决最大和最复杂的问题。正在进行的研究产生了一些软件,这些软件提高了复杂模拟场景的准确性和速度,如跨音速或湍流。这类软件的最初验证通常是使用实验设备,如风洞进行的。此外,以前对某一特定问题进行的分析或经验分析也可用于比较。最后的验证通常使用全尺寸测试,如飞行测试。CFD被应用于许多研究领域和行业的广泛研究和工程问题,包括空气动力学和航空航天分析、高超音速、天气模拟、自然科学和环境工程、工业系统设计和分析、生物工程、流体流动和传热、发动机和燃烧分析以及电影和游戏的视觉效果。

计算金融学

在金融市场上,大量相互依赖的资产由不同地点和时区的大量市场参与者进行交易。它们的行为具有空前的复杂性,对这套高度多样化的工具所固有的风险的描述和测量通常是基于复杂的数学和计算模型。准确地以封闭形式解决这些模型,即使是在单一工具层面,通常也是不可能的,因此我们必须寻找有效的数字算法。最近,这个问题变得更加紧迫和复杂,因为信贷危机已经清楚地表明了从单个工具到单个机构的投资组合,甚至是相互关联的交易网络的级联效应的作用。理解这一点需要一种多尺度和整体的方法,在这种方法中,市场、信用和流动性风险等相互依存的风险因素被同时建模,并在不同的相互关联的尺度上进行建模。

计算生物学

生物技术令人振奋的新发展目前正在彻底改变生物学和生物医学研究。这些技术的例子包括高通量测序、高通量定量PCR、细胞内成像、基因表达的原位杂交、三维成像技术如光片荧光显微镜和光学投影(微)计算机断层扫描。鉴于这些技术所产生的大量复杂数据,它们的有意义的解释,甚至它们的存储,构成了需要新方法的主要挑战。超越目前的生物信息学方法,计算生物学需要开发新的方法来发现这些大数据集中有意义的模式。基于模型的基因网络重建可以用来系统地组织基因表达数据并指导未来的数据收集。这里的一个主要挑战是了解基因调控是如何控制生物矿化和胚胎发生等基本生物过程的。基因调控、与矿物沉积过程相互作用的有机分子、细胞过程、生理学以及组织和环境层面的其他过程等子过程是相互联系的。生物矿化和胚胎发生不是由中央控制机制指挥的,而是可以被看作是一个复杂系统产生的突发行为,在这个系统中,非常不同的时间和空间尺度(从纳米和纳秒到米和年)的几个子过程被连接成一个多尺度系统。

计算化学

计算化学是理论化学的一个分支,主要目的是利用有效的数学近似以及电脑程序计算分子的性质,例如总能量、偶极矩、四极矩、振动频率、反应活性等,并用以解释一些具体的化学问题。计算化学这个名词有时也用来表示计算机科学与化学的交叉学科。 理论化学泛指采用数学方法来表述化学问题,而计算化学作为理论化学的一个分支,常特指那些可以用电脑程序实现的数学方法。计算化学并不追求完美无缺或者分毫不差,因为只有很少的化学体系可以进行精确计算。不过,几乎所有种类的化学问题都可以并且已经采用近似的算法来表述。理论上讲,对任何分子都可以采用相当精确的理论方法进行计算。很多计算软件中也已经包括了这些精确的方法,但由于这些方法的计算量随电子数的增加成指数或更快的速度增长,所以他们只能应用于很小的分子。对更大的体系,往往需要采取其他一些更大程度近似的方法,以在计算量和结果的精确度之间寻求平衡。

第一性原理(First Principal)或者从头算法(ab initio method)在量子化学计算中指基于量子力学基本原理直接求解薛定谔方程的量子化学计算方法。从头计算法的特点是没有经验参数,并且对体系不作过多的简化。对各种不同的化学体系采用基本相同的方法进行计算。目前的从头计算法包括基于哈特里-福克方程的哈特里–福克方法、在哈特里–福克基础上引入电子相关作用校正而发展起来的后哈特里–福克方法,以及多组态多参考态方法等。与半经验方法相比,从头计算法精度高,但耗时长。

机器学习

机器学习是人工智能的一个分支。人工智能的研究历史有着一条从以“推理”为重点,到以“知识”为重点,再到以“学习”为重点的自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域。

科学计算算法


计算机代数学

包括统计、方程求解、代数、微积分、几何、线性代数、张量分析(多线性代数)、优化等领域的符号计算。

数值分析

  • 作为收敛和渐近级数的泰勒级数的应用
  • 利用自动微分运算微分
  • 利用有限差运算微分
  • 图论集
  • 凭借泰勒级数和理查森外推法进行高阶微分逼近
  • 均匀网格上的积分方法:矩形法、梯形法、中点法和辛普森积分法
  • 龙格-库塔法解常微分方程
  • 蒙特卡洛方法
  • 分子动力学
  • 有限元方法
  • 数值线性代数
  • 用高斯消元法运算LU因子
  • 乔里斯基分解
  • 离散傅里叶变换及应用
  • 牛顿法
  • 动力系统的时步法

程序设计语言普遍应用于科学运算应用中偏向数学的方面,包括R语言、MATLAB、Mathematica、Scilab、GNU Octave、COMSOL Multiphysics、SciPy的Python语言等。偏向于密集型运算的科学运算常会利用C语言或Fortran的一些变体以及BLAS或LAPACK等最优化代数库。

计算科学应用程序常常创建真实世界变化情况的模型,包括天气、飞机周围的气流、事故中的汽车车身变形、星系中恒星的运动、爆炸设备等。这类程序会在计算机内存中创建一个“逻辑网格”,网格中的每一项在空间上都对应一个区域,并包含与模型相关的那一空间的信息。例如在天气模型中,每一项都可以是一平方千米,并包含了地面海拔、当前风向、温度、压力等。程序会在模拟时步中基于当前状态运算出可能的下一状态,解出描述系统运转方式的方程,然后重复上述过程运算出下一状态。

高性能计算


高性能计算 (HPC) 是指通过聚合计算能力来提供比传统计算机和服务器更强大的计算性能。高性能计算 (HPC) 或超级计算和日常计算一样,区别只在于它的计算能力更强大。它能够通过聚合结构,使用多台计算机和存储设备,以极高速度处理大量数据,帮助人们探索科学、工程及商业领域中的一些世界级的重大难题。

  • 大规模并行运算
  • 高速网络互联
  • 具备任务管理和作业调度系统
  • 使用Linux操作系统
  • 使用C或Fortran开发应用软件

GPU计算

相比于CPU架构,在相同的面积上,GPU将更多的晶体管用于数值计算,取代了缓存(Cache)和流控(Flow Control),GPU的计算单元Core数量远多于CPU,但Cache和Control都要少。在相同晶体管数目下,GPU相对于CPU有更高的理论浮点性能。当前,最主流的GPU计算开发工具为NvidiaCUDA

量子计算

量子计算是一种遵循量子力学规律调控量子信息单元进行计算的新型计算模式。对照于传统的通用计算机,其理论模型是通用图灵机;通用的量子计算机,其理论模型是用量子力学规律重新诠释的通用图灵机。从可计算的问题来看,量子计算机只能解决传统计算机所能解决的问题,但是从计算的效率上,由于量子力学叠加性的存在,某些已知的量子算法在处理问题时速度要快于传统的通用计算机。

Why Python


基于数据的数值计算(本课程中基于NumPy/SciPy实现)、符号计算(SymPy)和可视化(matplotlib),构成了科学计算的基石。

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,被广泛地应用于科学计算和工程领域。作为一种通用性语言,Python并不是专为数值计算设计的(不同于Fortran),但其很多特性使之非常适合于本课程。首先,Python因其简洁易读的代码语法而闻名。其次,Python拥有非常丰富的低级语言编写的库和软件包。因此,Python已经成为了一种非常流行的“胶水语言”。使用Python和科学计算库这样的高级编程语言环境,可以最大限度地缩短开发时间(而不是CPU运行时间)。

低级语言高级语言的区别:

High Level LanguageLow Level Language
It is programmer friendly language.It is a machine friendly language.
It runs slower.It runs faster.
It is less memory efficient.It is high memory efficient.
It is easy to understand.It is tough to understand.
It is simple to maintain.It is tough to understand.
It can run on any platform.It is machine-dependent.
It needs compiler or interpreter for translation.It needs assembler for translation.
It is used widely for programming.It is not commonly used.

Anazonda


Anaconda是一个开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda致力于简化软件包管理系统和部署。Anaconda的包使用软件包管理系统Conda进行管理。在Windows环境下安装配置也非常简单。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSDGWxoj-1651751382204)(Images/Anaconda_Logo.png)]

Jupyter


Jupyter Notebook是一种基于Jupyter的交互式文档,支持文本、公式、数据可视化(图像动画等),以及原位执行的程序代码。Jupyter Notebook运行于网页浏览器中,可以提供丰富的互动式教学工具和体验。

免费计算资源

Google Colab

import sys print('Python版本: ', sys.version)

参考文献来自桑鸿乾老师的课件:科学计算和人工智能

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/71930196 【完整课程列表】 PPT教程\完整版 中南大学 MATLAB与科学计算教程 01-绪论(共46页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 02-MATLAB基础知识_数值计算 符号计算(共170页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 03-MATLAB基础知识_图形设计 程序设计(共135页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 04-插值法(共81页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 05-函数逼近与拟合法(共99页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 06-数值积分与微分(共116页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 07-常微分方程数值解法(共68页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 08-非线性方程求根(共79页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 09-解线性方程组的直接解法(共59页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 10-解线性方程组的迭代法(共41页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 11-simulink和偏微分 特征值法概率统计最优化问题(共48页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 11-概率统计函数问题(共118页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 12-simulink和偏微分pdetool(共65页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 12-实例和讲解(共44页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 matlab期中复习(共143页).ppt PPT教程\完整版 中南大学 MATLAB与科学计算教程 总复习(共277页).ppt 实验\Data.txt 实验\MATLAB程序设计实践2015.pdf 实验\实验1-基础知识.ppt 实验\实验2-数值处理.ppt 实验\实验3-模型求解.ppt 考试\matlab期末考试样题 2015.doc 考试\Matlab与科学计算样题.doc 考试\操作题集.doc 考试\期中考试样题.doc 考试\作业题.docx matlab与科学计算(2nd).pdf 数值分析(李庆扬、王能超、易大义)(超清晰版).pdf
《python科学计算》介绍如何用python开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍如何制作交互式的2d、3d图像,如何设计精巧的程序界面,如何与c语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。书中涉及的python扩展库包括numpy、scipy、sympy、matplotlib、traits、traitsui、chaco、tvtk、mayavi、vpython、opencv等,涉及的应用领域包括数值运算、符号运算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。    书中以大量实例引导读者逐步深入学习,每个实例程序都有详尽的解释,并都能在本书推荐的运行环境中正常运行。此外,本书附有大量的图表和插图,力求减少长篇的理论介绍和公式推导,以便读者通过实例和数据学习并掌握理论知识。 python科学计算目录: 第1章 软件包的安装和介绍 1 第2章 numpy——快速处理数据 16 第3章 scipy——数值计算库 79 第4章 sympy——符号运算好帮手 115 第5章 matplotlib——绘制精美的图表 139 第6章 traits——为python添加类型定义 190 第7章 traitsui——轻松制作用户界面 221 第8章 chaco——交互式图表 264 第9章 tvtk——数据的三维可视化 303 第10章 mayavi——更方便的可视化 343 第11章 vpython——制作3d演示动画 378 第12章 opencv——图像处理和计算机视觉 408 第13章 数据和文件 453 第14章 数字信号系统 473 第15章 频域信号处理 505 第16章 用c语言提高计算效率 537 第17章 自适应滤波器 571 第18章 单摆和双摆模拟 588 第19章 分形几何 599

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值