数值分析属于计算数学范畴。数值分析的研究内容就是求解各种数学问题数值解的数值计算方法,以及建立数值计算方法、编写程序,并用计算机计算得出的问题的数值解。
我们将从以下方面进行展开:
(1)线性方程的求根---- 包括《数值分析》中的Gauss消元法、Chlesky分解、Jacobi迭代法等还包括运用遗传算法求解限定条件下的线性方程。
(2)多项式插值和函数的数值逼近/曲线拟合
(3)数值积分和导数---- 牛顿-柯特斯公式、Romberg公式、Gauss型求积公式等
概念:
推导和演算得出的结果为其解析解(精确解)。
数值方法求出的解为其数值解(近似解/计算解)。
对同一数学问题可能有多种方法计算,方法的选择上我们要求:
(1)计算效率高----时间/空间复杂度
(2)数值稳定性好----持续的计算中,微小的计算误差对最终结果的准确性影响不大。否则称算法是不稳定的。Ps.这是很要命的,特别是在递推中,误差如滚雪球一般....
误差一般有建立数学模型时产生的误差、确定初始数据时产生的误差、截断误差和舍入误差。后两种是数值分析中讨论研究的误差。
截断误差是指某数学问题的精确解与用数值方法求出的近似解之差。例如极限运算就存在截断误差:求级数的和。这个和等于π。当用数值算法计算S时,显然不能在程序中使n无穷大,通常办法是让n足够大即可。例如n取1000,则求得Sn=3.1420924,截断误差为π-Sn=-0.0004998。
舍入误差不用讲了就是数值在计算过程中四舍五入产生的误差。
假设x’是x的近似值,则:
ε=|x-x’| 称为绝对误差。比值(x-x’)/x为近似值的相对误差。若准确值x未知,为了便于计算,可以取(x-x’)/x’。前提条件是(x-x’)/x’较小。
同样,称(x-x’)/x<r中的r为相对误差限。
函数误差估计:
若数有小的变化,引起函数值大的变化,则称这个计算是病态的,反之称为良态的。例如常见的:病态矩阵。
--------------------防止误差传播:--------------------------------------------------------------------------------------------
(1) 避免相近的数相减
(2) 避免绝对值很小的数作除数
(3) 避免大数加(减)小数---浮点数的存储精度导致
(4) 简化计算步骤,减少运算次数