族谱网 头条 人物百科

数值分析

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:543
转发:0
评论:0
简介数值分析的目的是设计及分析一些计算的方式,可针对一些问题得到近似但够精确的结果。以下是一些会用利用数值分析处理的问题:数值天气预报中会用到许多先进的数值分析方法。计算太空船的轨迹需要求出常微分方程的数值解。汽车公司会利用电脑模拟汽车撞击来提升汽车受到撞击时的安全性。电脑的模拟会需要求出偏微分方程的数值解。对冲基金会利用各种数值分析的工具来计算股票的市值及其变异程度。航空公司会利用复杂的最佳化算法决定票价、飞机、人员分配及用油量。此领域也称为作业研究。保险公司会利用数值软件进行精算分析。直接法和迭代法直接法利用固定次数的步骤求出问题的解。这些方式包括求解线性方程组的高斯消去法及QR算法(英语:QRalgorithm),求解线性规划的单纯形法等。若利用无限精度算术的计算方式,有些问题可以得到其精确的解。不过有些问题不存在解析解(如五次方程),也就无法用直接法求解。在电脑中会使用浮点数进行运...

简介

数值分析的目的是设计及分析一些计算的方式,可针对一些问题得到近似但够精确的结果。以下是一些会用利用数值分析处理的问题:

数值天气预报中会用到许多先进的数值分析方法。

计算太空船的轨迹需要求出常微分方程的数值解。

汽车公司会利用电脑模拟汽车撞击来提升汽车受到撞击时的安全性。电脑的模拟会需要求出偏微分方程的数值解。

对冲基金会利用各种数值分析的工具来计算股票的市值及其变异程度。

航空公司会利用复杂的最佳化算法决定票价、飞机、人员分配及用油量。此领域也称为作业研究。

保险公司会利用数值软件进行精算分析。

直接法和迭代法

直接法利用固定次数的步骤求出问题的解。这些方式包括求解线性方程组的高斯消去法及 QR算法 ( 英语 : QR algorithm ) ,求解线性规划的单纯形法等。若利用无限精度算术的计算方式,有些问题可以得到其精确的解。不过有些问题不存在解析解(如五次方程),也就无法用直接法求解。在电脑中会使用浮点数进行运算,在假设运算方式稳定的前提下,所求得的结果可以视为是精确解的近似值。

迭代法是通过从一个初始估计出发寻找一系列近似解来解决问题的数学过程。和直接法不同,用迭代法求解问题时,其步骤没有固定的次数,而且只能求得问题的近似解,所找到的一系列近似解会收敛到问题的精确解。会利用审敛法来判别所得到的近似解是否会收敛。一般而言,即使使用无限精度算术的计算方式,迭代法也无法在有限次数内得到问题的精确解。

在数值分析中用到迭代法的情形会比直接法要多。例如像牛顿法、二分法、雅可比法、广义最小残量方法(GMRES)及共轭梯度法等。在计算矩阵代数中,大型的问题一般会需要用迭代法来求解。

离散化

许多时候需要将连续模型的问题转换为一个离散形式的问题,而离散形式的解可以近似原来的连续模型的解,此转换过程称为离散化。例如求一个函数的积分是一个连续模型的问题,也就是求一曲线以下的面积若将其离散化变成数值积分,就变成将上述面积用许多较简单的形状(如长方形、梯形)近似,因此只要求出这些形状的面积再相加即可。

例如在二小时的赛车比赛中,记录了三个不同时间点的赛车速度,如下表

利用离散化的方式,可以假设赛车在0:00到0:40之间的速度、0:40到1:20之间的速度及1:20到2:00之间的速度分别为三个定值,因此前40分钟的总位移可近似为(2/3h × 140 km/h) = 93.3 公里。可依此方式近似二小时内的总位移为93.3 公里 + 100 公里 + 120 公里 = 313.3 公里。位移是速度的积分,而上述的作法是用黎曼和进行数值积分的一个例子。

 

误差的产生及传播

误差是数值分析的重要主题之一。误差的形成可分为几种不同的原因。

舍入误差

当进行数值分析的设备只能用有限位数来表示一个实数时,就会出现舍入误差(Round-off error),例如用可显示十位数字的计算器计算1/3,所得到的结果0.333333333,和实际数值的误差就是舍入误差。即使进行数值分析的设备用浮点数来表示实数,仍无法完全避免舍入误差的问题。

截尾及离散化误差

若迭代法的数值分析算到某一程度就中止计算,或是使用一些近似的数学程序,程序所得结果和精准解不同,就会出现截尾(Truncation)误差。将问题离散化后,由于离散化问题的解不会和原问题的解完全一様,因此会出现 离散化误差 ( 英语 : discretization error ) 。例如用迭代法计算 3 x 3 + 4 = 28 {\displaystyle 3x^{3}+4=28} 的解,在计算几次后我们认为其解为1.99,就会有0.01的截尾误差。

一旦有了误差,误差就会借着计算继续的扩散。例如一个计算机中的加法是不准的,则a+b+c+d+e的计算也一定不准。例如刚刚计算 3 x 3 + 4 = 28 {\displaystyle 3x^{3}+4=28} 的解为1.99,若后续的运算需要用到 3 x 3 + 4 = 28 {\displaystyle 3x^{3}+4=28} 的解,用1.99代入所得的结果也会不准。

当用近似的方式处理数学式时就会出现截尾误差。以积分为例,完全精准的积分需要求出曲线下方无限个梯形的面积和,但用在数值分析中会用有限个梯形的面积和来近似无限个梯形的面积和,此时就会出现截尾误差。若要对一个函数进行微分,其微分量需要趋近于0,但实务上只能选择很小的微分量。

数值稳定性及良置问题

数值稳定性是数值分析中一个重要的主题。若一算法中不论什么原因产生了误差,此误差不会在运算中明显增加,此算法为数值稳定的算法。若问题为良置(well-conditioned)的,就会符合上述的特性,也就是问题数据微小的变化只会造成其解的微。相反的,若问题数据微小的变化会造成其解的巨大变化,会称问题为非良置或病态(ill-conditioned)。

原始问题及求解问题算法都可以分为良置及非良置,任何的组合都是允许的。

一个求解良置问题的算法可能是数值稳定的,也可能是数值不稳定的。数值分析的重点就是找到适定性问题的数值稳定算法。例如,计算2的平方根(大约是1.41421)本身是一个适定性问题。许多求解的算法都是从一个初始的近似值 x 1 开始去求解,例如 x 1 =1.4,再继续计算 x 2 、 x 3 等。巴比伦法就是一个具有此特性的算法。另一个方法,先称之为X方法,算法为 x k + 1 = ( x k −2) + x k 。 以下分别用初始值 x 1 = 1.4及 x 1 = 1.42,用二种方式进行几次迭代。

可观察到不论初始值多少,巴比伦法都可以快速的收敛,但X方法在初始值为1.4时收敛的很慢,在初始值为1.42时X方法会发散。因此巴比伦法是数值稳定的方法,而X方法是数值不稳定的方法。

领域研究

数值分析依其待求解的问题不同,分为不同的领域。

函数求值

数值分析中最简单的问题就是求出函数在某一特定数值下的值。最直觉的方法是将数值代入函数中计算,不过有时此方式的效率不佳。像针对多项式函数的求值,较有效率的方式是秦九韶算法,可以减少乘法及加法的次数。若是使用浮点数,很重要的是是估计及控制舍入误差。

内插法、外推法、曲线拟合及回归

内插法求解以下的问题:有一未知函数在一些特定位置下的值,求未知函数在已知数值的点之间某一点的值。

外推法类似内插法,但需要知道数值的点是在其他已知数值点的范围以外。一般而言外推法的误差会大于内插法。

曲线拟合是在已知一些数据的条件下,找到一条曲线完全符合现有的数据,数据可能是一些特定位置及其对应的值,也可能是其他资料,例如角度或曲率等。

回归分析类似曲线拟合,也是根据一些特定位置及其对应的值,要找到对应曲线。但回归分析考虑到数据可能有误差,因此所得的的曲线不需要和数据完全符合。一般会使用最小方差法来进行回归分析。

求解方程及方程组

另一种常见的问题是求特定方程式的解。首先会依方程式是否线性来区分,例如方程式 2 x + 5 = 3 {\displaystyle 2x+5=3} 是线性方程式,而 2 x 2 + 5 = 3 {\displaystyle 2x^{2}+5=3} 是非线性方程式。

此领域许多的研究都和求解线性方程组有关。直接法是线性方程组的系数以矩阵来表示,再利用矩阵分解的方式求解,这些方法包括高斯消去法、LU分解,对于对称矩阵(或埃尔米特矩阵)及正定矩阵可以用 乔莱斯基分解 ( 英语 : Cholesky decomposition ) ,非方阵的矩阵则可以用QR分解。迭代法包括有雅可比法、高斯–塞德迭代法、 逐次超松驰法 ( 英语 : successive over-relaxation ) (SOR)及共轭梯度法,一般会用在大型的线性方程组中。

求根算法是要解一非线性方程,其名称是因为函数的根就是使其值为零的点。若函数本身可微且其导数是已知的,可以用牛顿法求解,其他的方法包括二分法、割线法等。 线性化 ( 英语 : Linearization ) 则是另一种求解非线性方程的方法。

求解特征值或奇异值问题

许多重要的问题可以用奇异值分解或特征分解来表示。例如有些图像压缩算法 就是以奇异值分解为基础。统计学中对应的工具称为主成分分析。

最优化

最优化问题的目的是要找到使特定目标函数有最大值(或最小值)的点,一般而言这个点需符合一些约束。

依目标函数及约束条件的不同,最佳化又可以再细分:例如线性规划处理目标函数及约束条件均为线性的情形,常用单纯形法来求解。若目标函数及约束条件其中有一项为非线性,就是非线性规划的范围。

有约束条件的问题可以利用拉格朗日乘数转换为没有约束条件的问题。

积分计算

数值积分的目的是在求一定积分的值。一般常用牛顿-寇次公式,包括辛普森积分法、高斯求积等。上述方式是利用分治法来处理积分问题,也就是将大范围的积分切割成许多小范围的积分,再进行计算。不过在高维度时,上述作法可能会因为要作许多的计算而变得不实用(也就是维数之咒所描述的情形),此时可以采用蒙地卡罗方法或半蒙地卡罗方法。(可参照 蒙地卡罗积分 ( 英语 : Monte Carlo integration ) ,或是适用于高维度的 稀疏网格 ( 英语 : sparse grid ) 法。)

微分方程

数值分析也会用近似的方式计算微分方程的解,包括常微分方程及偏微分方程。

常微分方程往往会使用迭代法,已知曲线的一点,设法算出其斜率,找到下一点,再推出下一点的资料。欧拉方法是其中最简单的方式,较常使用的是龙格-库塔法。

偏微分方程的数值分析解法一般都会先将问题离散化,转换成有限元素的次空间。可以透过有限元素法、有限差分法及 有限体积法 ( 英语 : finite volume method ) ,这些方法可将偏微分方程转换为代数方程,但其理论论证往往和泛函分析的定理有关。另一种偏微分方程的数值分析解法则是利用离散傅立叶变换或快速傅立叶变换。

软件

20世纪末,大部分数值分析的算法都已用许多不同的编程语言实现。 Netlib ( 英语 : Netlib ) 软件库包含了许多数值分析算法的程式,大部分是Fortran及C语言的程式。商业产品也实现了许多不同的数值分析算法,包括国际数学及统计程序库数字型档及 英商纳格资讯 ( 英语 : Numerical Algorithms Group ) 软件库,GNU科学数值库则是自由软件的数值分析算法软件库。

数值分析的商用应用程序包括MATLAB、 S-PLUS ( 英语 : S-PLUS ) 、LabVIEW及互动式数据语言(IDL)等,自由软件或开源软件的数值分析应用程序则包括FreeMat、Scilab、GNU Octave(类似Matlab)、IT++(C++函式库连 library)、R语言(类似S-PLUS)及一些Python的衍生版本。各应用程序的性能有很大的差异:一般而言向量及矩阵的运算都很快,而各应用程序标量运算的速度差异则可能会超过10倍以上 。

许多计算机代数系统的软件(像Mathematica及Maple)由于使用无限精度算术的计算方式,可以得到比一般软件更准确的结果。

电子试算表的软件也可以处理一些简单的数值分析问题。

外部链接

参阅

算法

计算科学

数值分析主题列表 ( 英语 : List of numerical analysis topics )

格拉姆-施密特正交化

数值微分

符号数值计算 ( 英语 : Symbolic-numeric computation )

算法分析

《Numerical Recipes》

 


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 数值线性代数
参见数值线性代数是数值分析的子领域。高斯消去法,数值线性代数中一种重要的算法。BLAS和LAPACK,高度优化的计算机程序库,可以实现数值线性代数中最基本的算法。数值分析软件列表数值程序库列表参考文献Leader,JefferyJ.NumericalAnalysisandScientificComputation.AddisonWesley.2004.ISBN0-201-73499-0.BauIII,David;Trefethen,LloydN.Numericallinearalgebra.Philadelphia:SocietyforIndustrialandAppliedMathematics.1997.ISBN978-0-89871-361-9.J.H.WilkinsonandC.Reinsch,"LinearAlgebra,volumeIIofHandbookforAutomati...
· 数值稳定性
前向、后向与混合稳定性在数值线性代数中经常使用前向、后向以及混合稳定性的概念。该图显示了前向误差Δy、后向误差Δx、它们与精确解f以及数值解f*的关系假设要用数值算法解决的问题是用函数f将数据x映射到解y,通常算法的结果y*会与“真”解y有一定的偏差。误差的来源主要有舍入误差、截断误差以及数据误差。算法的前向误差是结果与真解之间的差别,在这里是Δy=y*−y。后向误差是满足f(x+Δx)=y*的最小Δx,也就是说后向误差说明算法的所解决的问题。前向误差和后向误差通过条件数发生关系:前向误差的幅度最多是条件数乘以后向误差的幅度。在许多情况下,需要考虑相对误差而不是绝对误差Δx。如果对于任意的输入x来说后向误差都很小,那么算法就是后向稳定的。当然,“小”是一个相对的概念,需要根据所用的场合进行定义。通常要求误差要与单位舍入误差处于同一数量级。包括前向误差与后向误差概念的混合稳定性通常数值稳定性...
· 复分析
复变函数曼德博集合,分形复变函数,是自变量和应变量都为复数的函数。更确切的说,复函数的值域与定义域都是复平面的子集。在复分析中,自变量又称为函数的“宗量”。对于复函数,自变量和应变量可分成实部和虚部:用另一句话说,就是函数f(z)的成分,可以理解成变量x和y的二元实函数。全纯函数全纯函数(holomorphicfunction)是定义在复平面C的开子集上的,在复平面C中取值的,在每点上皆复可微的函数。复变函数为全纯函数的充分必要条件是复变函数的实部和虚部同时满足柯西-黎曼方程:和通过上面的这个方程组也可以由全纯函数的实部或者虚部之一来求解另一个。柯西积分定理柯西积分定理指出,如果全纯函数的闭合积分路径没有包括奇点,那么其积分值为0;如果包含奇点,则外部闭合路径正向积分的值等于包围这个奇点的内环上闭合路径的正向积分值。柯西积分公式假设U是复平面C的一个开子集,f:U→C是一个在闭圆盘D上复可...
· 分析机
设计查尔斯·巴贝奇最初的尝试是所谓的差分机,用来求解对数和三角函数,以致近似计算多项式。因为一些个人和政治上的原因,他意识到需要一种更加通用的机器,于是便开始了分析机的设计。分析机由蒸汽机驱动,大约有30米长、10米宽。它使用打孔纸带输入,采取最普通的十进制计数。它的“内存”大约可以存储1000个50位的十进制数(20.7kB)。有一个算术单元可以进行四则运算、比较和求平方根操作。为这台机器设计的语言类似于今天的汇编语言,而且被认为是图灵完备性的。参见查尔斯·巴贝奇差分机查论编
· 技术分析
一般描述技术分析师会辨别金融市场上的非随机价格图样和趋势,并企图利用这些图样。在技术分析师所使用的各种方法和工具之中,价格图表是最主要的一种。技术分析师特别会去寻找所谓的原型图样,例如知名的头肩反转型态,以及研究此类型的指标,如价格、成交量与价格的移动平均等。许多的技术分析师亦会依著投资者心理(市场氛围)的指标来操作。技术分析师寻求着预测价格趋势的方法,以期从成功的交易中所得到的巨大获利能胜过较多但较少损失的失败交易,好让获利在长期中能经由风险控制和金钱管理得到正值。技术分析有许多个学派。每个学派(如K线、道氏理论和艾略特波浪理论)的拥护者或许会忽略其他的理论,但许多交易者会同时使用一个学派以上的理论来做分析。技术分析师使用经由经验所得到的判断依据来决定特定的工具在一定时间内所显示的图样,以及图样的解译为何。技术分析师可能会不同意他们之间对一特定图样的解译。技术分析经常会和“基本分析”(研...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信