【数值计算方法】导论

目录

一、极简数学史

1. 萌芽时期

2. 古典数学时期

3. 近代前期

4. 近代后期

5. 现代数学

二,计算方法学什么?

1. 数值代数

a. 线性代数方程组求解(等价变换)

b. 矩阵特征值特征向量(相似变换)

c. 二次型(合同变换)

2. 数值逼近

a. 插值

b. 曲线拟合

c. 数值积分

d. 数值微分

e. 迭代法

f. 近似求解常微分方程

3. 数值优化

a. 最优化问题的建模

b. 梯度下降法:        

c. 牛顿法和拟牛顿法

d. 进化算法        

e. 约束优化    

f. 全局优化 

4. 数值解

a. 常微分方程(Ordinary Differential Equations,ODEs)

b. 偏微分方程(Partial Differential Equations,PDEs)

三,什么样的算法是好的算法?

“能”

“准”

“快”


一、极简数学史

1. 萌芽时期

公元前6世纪

        是数学的起源阶段,包括古埃及和古巴比伦的数学。数学主要涉及计数、测量和几何。

2. 古典数学时期

公元前6世纪~公元16世纪

        古希腊时期的数学达到巅峰。数学家如毕达哥拉斯、欧几里得和阿基米德对几何学、数论和力学等领域做出了重要贡献。

3. 近代前期

公元17~18世纪,

        微积分的建立和分析学的发展。数学家如牛顿、莱布尼茨等人在微积分、数论和代数方程等领域做出了重要贡献。

4. 近代后期

19世纪,一堆欧洲老头:

        对无穷小的严格化、极限概念的确立等重要进展。欧洲的数学家们在这个时期推动了数学的发展,包括柯西、黎曼、庞加莱和哥德尔等人。

5. 现代数学

20世纪~至今,科学计算、智能化革命:

        现代数学包括了许多分支领域,如应用数学、数学分析、抽象代数、拓扑学、几何学以及概率论和统计学等。

二,计算方法学什么?

1. 数值代数

a. 线性代数方程组求解(等价变换)

        通过等价变换,可以将方程组转化为矩阵的形式,即PAx = Pb,其中P是列交换矩阵,A是系数矩阵,x是未知向量,b是常数向量。数值方法如高斯消元法、LU分解、迭代法(如雅可比法、高斯-赛德尔迭代)等可以用来求解线性方程组。

b. 矩阵特征值特征向量(相似变换)

        特征值表示矩阵的缩放因子,而特征向量表示相应的方向。通过相似变换,可以将矩阵变换为对角形式,其中对角元素是特征值,对应的列向量是特征向量。特征值和特征向量在许多数值方法、数据分析和物理学等领域具有重要应用。

c. 二次型(合同变换)

        二次型是一种由二次项组成的多项式函数。在数值代数中,研究二次型的性质和变化对于优化问题和矩阵分解等有重要意义。通过合同变换,可以将二次型转化为规范形式,这样求解和分析问题更加方便。

2. 数值逼近

怎样表示函数,数值积分数值微分

        数值逼近(Numerical Approximation)是指通过数值方法和计算机技术来近似求解复杂的数学问题。在实际应用中,很多数学问题无法准确地通过解析方法求解,因此需要使用数值逼近的方法来近似求解或计算其数值结果。

a. 插值

        通过已知数据点的函数值来构建一个近似函数,使得近似函数通过这些数据点,在这些点之间的函数值是未知的。常见的插值方法包括拉格朗日插值和牛顿插值。

b. 曲线拟合

        通过已知数据点拟合出一个符合数据趋势的函数。曲线拟合的目标是找到一个简单的函数,使其与已知数据点的误差最小化。常见的曲线拟合方法包括最小二乘法和多项式拟合。

c. 数值积分

        用数值方法计算函数在特定区间上的积分值。数值积分方法可以将连续函数的积分问题转化为离散的数值计算问题,包括梯形法则、辛普森法则和龙贝格积分等。

d. 数值微分

        使用数值方法计算函数的导数或微分。数值微分方法可以通过计算函数在离散点上的差分来估计导数值,例如前向差分、后向差分和中心差分等。

e. 迭代法

        使用迭代的方式逐步逼近问题的解,直到满足一定的收敛条件。迭代法广泛应用于求解非线性方程、线性方程组和优化问题等。

f. 近似求解常微分方程

        通过数值方法近似求解常微分方程,如欧拉方法、龙格-库塔方法等。

        数值逼近方法的选择取决于具体问题的特点和要求。通过适当选择和组合这些方法,可以在实际应用中获得满足精度和效率要求的数值结果。

3. 数值优化

min f(x)

训练神经网络~炼丹

        数值优化(Numerical Optimization)是一种通过数值方法寻找函数的最优解的技术。在实际问题中,我们经常需要找到一个函数的最小值或最大值,而数值优化提供了一系列算法和技术来解决这些问题。数值优化在各个领域都有广泛的应用,包括机器学习、数据分析、工程设计等。

        一些常用的数值优化算法和方法:

a. 最优化问题的建模

        将实际的优化问题转化为数学表述,定义目标函数和约束。目标函数可以是一个需要最小化或最大化的函数,约束可以是等式约束或不等式约束。

b. 梯度下降法:        

        梯度下降法是一种迭代优化算法,通过沿着函数梯度的反方向更新解向量来逐步接近最优解。这种方法特别适用于凸函数和可微函数的优化问题。

        梯度下降~凸函数~全局(or陷入局部极小值)        

c. 牛顿法和拟牛顿法

        牛顿法是一种基于二阶导数信息的优化方法,它通过求解方程系统来寻找极小值点。拟牛顿法是一种近似牛顿法,不需要计算二阶导数矩阵,而是利用历史迭代点的信息来近似二阶信息。

d. 进化算法        

        进化算法是一类基于生物进化原理的优化方法,如遗传算法、粒子群优化算法、蚁群算法等。这些方法通过模拟自然界的进化过程,逐步搜索解空间中的最优解。

e. 约束优化    

        在约束优化问题中,需要在给定约束条件下寻找最优解。常用的约束优化方法包括罚函数法、拉格朗日乘子法和KKT条件等。

f. 全局优化 

        在全局优化问题中,需要找到函数的全局最优解,而不仅仅是局部最优解。全局优化方法包括遗传算法、模拟退火算法和粒子群优化等。

4. 数值解

a. 常微分方程(Ordinary Differential Equations,ODEs)

        y''+py'+y=0

        y0=y'0=0

  • Euler方法:该方法使用离散的步长来逼近ODE的解。
  • Runge-Kutta方法:这是一种更高阶的数值方法,包括4阶和更高阶的版本。
  • 龙格-库塔方法(RK4):这是一种经典的4阶Runge-Kutta方法,通过逐步逼近解来获得高精度。
  • 多步法:例如Adams-Bashforth和Adams-Moulton方法,这些方法利用多个历史数据点来逼近解。

b. 偏微分方程(Partial Differential Equations,PDEs)

  • 有限差分法(Finite Difference Method):这是一种常见且简单的数值方法,将PDE离散化为一个网格,并通过近似差分的形式来计算解。
  • 有限元法(Finite Element Method):这是一种更高级的数值方法,将PDE离散化为小的子域,并利用基函数逼近解。
  • 有限体积法(Finite Volume Method):这是一种常用于流体动力学和传热学中的数值方法,将PDE离散化为控制体积,并计算通量。

三,什么样的算法是好的算法?

“能”

能够解决实际问题,即能够产生正确的结果。

“准”

算法的结果精度高,能够满足问题的要求或预期。

当前的神经网络准确率高,但还是需要判断

“快”

算法的执行速度快,能够在合理的时间范围内给出结果。

        这三个特征通常是相互制约的,很难同时达到最好状态。在实际应用中,需要根据具体的需求和场景,权衡这三个特征,选择最合适的算法。有时候可能需要在“准”和“快”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/61464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【附安装包】MyEclipse2019安装教程

软件下载 软件:MyEclipse版本:2019语言:简体中文大小:1.86G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.5GHz 内存4G(或更高)下载通道①百度网盘丨下载链接:https://pan.baidu.co…

Fiddler中 AutoResponder 使用

Fiddler的 AutoResponder ,即URL重定向功能非常强大。不管我们做URL重定向,还是做mock测试等,都可以通过该功能进行实践。 下面,小酋就来具体讲下该功能的用法。 Enable rules 启用规则Unmatched requests passthrough 没有匹配…

electron globalShortcut 快捷键,在焦点移到其他软件上时,调用快捷键报错

用 electron 开发软件,在设置了 globalShortcut 快捷键后,在当前开发的软件上调用快捷键正常,但是当焦点不在当前软件时,在使用快捷键,好些时候会报错。大概率与系统快捷键产生冲突或者快键键控制的回调里获取的内容&a…

四信重磅推出5G RedCap AIoT摄像机 RedCap轻量级5G终端新品首发!

6月6日,四信受邀出席移动物联网高质量发展论坛,并在移动物联网新产品发布环节隆重推出5G RedCap AIoT摄像机,再次抓紧需求先机,为行业用户创造无限可能! 两大应用场景 助推RedCap走深向实 火遍全网络的RedCap应用场景可…

java八股文面试[多线程]——ThreadLocal底层原理和使用场景

源码分析: ThreadLocal中定义了ThreadLocalMap静态内部类,该内部类中又定义了Entry内部类。 ThreadLocalMap定了 Entry数组。 Set方法: Get方法: Thread中定义了两个ThreaLocalMap成员变量: Spring使用ThreadLocal解…

Ansible学习笔记3

ansible模块: ansible是基于模块来工作的,本身没有批量部署的能力,真正具有批量部署的是ansible所运行的模块,ansible只是提供一个框架。 ansible支持的模块非常多,我们并不需要把每个模块记住,而只需要熟…

华为云软件精英实战营——感受软件改变世界,享受Coding乐趣

机器人已经在诸多领域显现出巨大的商业价值,华为云计算致力于以云助端的方式为机器人产业带来全新机会 如果您是开发爱好者,想了解华为云,想和其他自由开发者交流经验; 如果您是学生,想和正在从事软件开发行业的大佬…

Go 切片

切片 一、切片(slice)概念 在讲解切片(slice)之前,大家思考一下数组有什么问题? 数组定义完,长度是固定的。例如: var num [5]int [5]int{1,2,3,4,5}定义的num数组长度是5&#…

Android 下第一个fragment app 先Java 后Kotlin

看着视频学习的,Fragment:3.Fragment使用方法_哔哩哔哩_bilibili 在android studio 下新建一个工程,类型是 Empty View Activity,本身就有一个Activity。就有文件MainActivity.java 或者kt,还有一个layout 文件&#…

无代码:软件开发从代码语言到业务语言的拐点

在互联网巨头和中小企业纷纷追求移动互联和“上云”的今天,业务在线已成为众多企业数字化转型的必经之路。然而,传统的软件重装开发模式已经无法满足企业快速变化的需求,同时IT专业人才的成本也在不断攀升,使得企业的IT交付能力面…

Unity ShaderGraph教程——进阶shader

1.水面(一) 公式:场景深度 节点深度 — 屏幕空间位置的W向量 半透明物体与不透明物体的相交边缘 原理:场景深度 节点深度包含透明像素,屏幕空间w向量不包含透明像素。 注意:需要在UniversalRP-xxxQuali…

Docker修改容器ulimit的全部方案及各方案的详细步骤

要修改Docker容器的ulimit(用户资源限制),有以下三种方案,每个方案的详细步骤如下: 方案一:在Dockerfile中设置ulimit 打开您的Dockerfile。在文件中添加以下命令来修改ulimit:RUN ulimit -n …

Mysql索引、事务与存储引擎 (事务、MySQL 存储引擎)

事务 一、事务的概念: ①事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。 ②事务是一个不可分割的工…

海康机器人工业相机SDK MVS安装教程

文章目录 一. 海康机器人介绍二. 工业相机客户端安装教程 一. 海康机器人介绍 海康机器人是面向全球的机器视觉和移动机器人产品及解决方案提供商,业务聚焦于工业物联网、智慧物流和智能制造,构建开放合作生态,为工业和物流领域用户提供服务…

对分库分表进行批量操作

对ShardingJDBC基础了解:https://blog.csdn.net/m0_63297646/article/details/131894472 对批量操作案例:https://blog.csdn.net/m0_63297646/article/details/131843517 分为db0和db1两个库,每个库都有三张订单表,分表键根据年份…

如何自定义iview树形下拉内的内容

1.使用render函数给第一层父级定义 2. 使用树形结构中的render函数来定义子组件 renderContent(h, {root, node, data}) {return data.children.length0? h(span, {style: {display: inline-block,width: 400px,lineHeight: 32px}}, [h(span, [h(Icon, {type: ios-paper-outli…

解密数据分析:提升企业竞争力的关键一步

在当今数字化时代,数据已成为企业最宝贵的资产之一。数据分析作为一项强大的工具,对企业来说已经不再是可选项,而是一项必不可少的战略性举措。为什么企业要做数据分析?让我们深入探讨这个问题。 提升决策质量: 数据…

TiDB Serverless Branching:通过数据库分支简化应用开发流程

2023 年 7 月 10 日,TiDB Serverless 正式商用。这是一个完全托管的数据库服务平台(DBaaS),提供灵活的集群配置和基于用量的付费模式。紧随其后,TiDB Serverless Branching 的测试版也发布了。 TiDB Serverless Branc…

基于战争策略算法优化的BP神经网络(预测应用) - 附代码

基于战争策略算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于战争策略算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.战争策略优化BP神经网络2.1 BP神经网络参数设置2.2 战争策略算法应用 4.测试结果:5…