绪论
数值分析概括为用计算机求解数学问题的数值方法和理论。
在工程计算和科学实验中会遇到诸如线性方程组的求解、微分、积分、微分方程的求解等常见的数学问题。
求解数学问题思维方式:
(1)利用数学方法求出(或推导出)结果的解析表达式(又称解析解)
(2)若实际中结果的解析表达式难以给出,例如满足某个微分方程的函数不易求得,采用数学理论与计算机相结合,寻求(设计)合适的算法以期得到问题的近似数值解——数值分析研究的主要问题。
下面是两种思维过程的对比:
通常解决数学问题的思维方式:实际问题 → 数学模型 → 解析表达式 → 结果
数值分析的思维方式:实际问题 → 数学模型 → 算法设计 → 编程计算结果
后者也正是利用计算机进行科学计算的过程。科学计算=数值方法+计算机
电子计算机实质上只会做加减乘除等基本运算,研究怎样通过计算机所能执行的基本运算,求得各类数学问题的数值解或近似解就是数值计算(科学计算)的根本课题。由基本运算及运算顺序的规定所构成的完整的解题步骤,称为算法。数值计算的根本任务就是研究算法。
学习数值分析课程的基本要求:
- 掌握算法(数值方法)的基本思想和原理
- 注意方法处理的技巧与计算机的结合,重视误差、稳定性、收敛性等基本理论
- 通过例子,编程实现各种数值方法,并利用其解决实际问题
误差
误差的背景介绍
误差:一个物理量的真实值与计算值之间的差异
来源与分类:
- 从实际问题中抽象出数学模型 —— 模型误差
- 通过测量得到模型中参数的值 —— 观测误差
- 求近似解 —— 方法误差 (截断误差)
- 机器字长有限 —— 舍入误差
传播与积累:计算
公式一:
(此公式精确成立) (舍入误差) 则初始误差
, 所以 ...... , , , , , 考察第n步的误差
可见初始的小扰动
迅速积累,误差呈递增走势。造成这种情况的是不稳定的算法。 公式二:
先估计一个 ,再反推要求的 (n<<N)。此公式与公式一理论上等价。 可取
,当 时, 取
得 , , ,......, , 考察反推一步的误差:
以此类推,对 n<N 有:
,误差逐步递减, 这样的算法称为稳定的算法。
误差与有效数字
绝对误差:
理论上讲是唯一确定的,可能取正,也可能取负。 不唯一,当然 越小越具有参考价值。
相对误差:
有效数字:若近似值
,按四舍五入原则若取四位小数得 (五位有效数值),取五位小数则有 (六位有效数值),它们的绝对误差不超过末位数的半个单位,即 , 数字末尾的0不可随意省去
有效数字与相对误差的关系:
- 有效数字
相对误差限:已知 有n位有效数字,则其相对误差限为 - 相对误差限
有效数字:已知 的相对误差限可写为 ,则 ,可见 至少有n位有效数字。
函数的误差估计
问题:对于 A=f(x),若用
分析:
即:
几点注意事项
避免相近二数相减:例如
, ,各有5位有效数字。而 ,只剩下1位有效数字。几种经验性避免方法: ; ;当 |x|<<1 时, 避免小分母:分母小会造成浮点溢出
避免大数吃小数:例如,用单精度计算
的根。精确解为 算法1:利用求根公式
。在计算机内, 存为 ,1存为 。做加法时,两加数的指数先向大指数对齐,再将浮点部分相加。即1的指数部分须变为 ,则 ,取单精度时就成为 。解得 算法2:先解出
,再利用 求和时从小到大相加,可使和的误差减小。
先化简再计算,减少步骤,避免误差积累。一般来说,计算机处理下列运算的速度为(+,-)>(×,÷)>(exp)
选用稳定的算法。