数值分析研究对象与特点
- 计算方法:在计算机上求解数学问题的理论、方法及其软件实现
- 现代科学三个组成:科学理论,科学实验和科学计算
误差
- 误差来源
- 建立数学模型:模型误差
- 测量数据:测量误差
- 构成数值算法:方法误差
- 数值运行执行
- 表示数据有限:舍入误差
- 计算机对无穷过程截断:截断误差
- 绝对误差:$|e^*|$
- 精确值:$x^*$
- $e^=x-x^$
- 绝对误差界:$|e^|<\epsilon^$
- 相对误差:$e_r=\frac{e^}{|x^|},x^*\neq0$
- 相对误差界:$e_r^=\frac{\epsilon^}{|x^*|}$
- 有效位数:$x=\pm 0.a_1a_2\cdots a_n\times 10^m$
- 四舍五入后绝对误差界限为被保留的数字中最后数位的半个单位:$0.5\times 10^{m-n}$
- 有效数字:如果近似值的误差限是某一位上的半个单位,且该位置到 x 的第一位非零数字一共 n 位, 则称近似值 x 有 n 位有效数字 $0.5\times 10^{m-n-1}<|x-x^*|\leq 0.5\times10^{m-n}$
- 取 $n$ 位有效数字,则先对 $n+1$ 位四舍五入
- 误差界运算
- $\epsilon(x_1^\pm x_2^)=\epsilon(x_1^)+\epsilon(x_2^)$
- $\epsilon(x_1^x_2^)\approx|x_1|\epsilon(x_2^)+|x_2|\epsilon(x_1^)$
- $\epsilon(\frac{x_1^}{x_2^})\approx\frac{|x_1|\epsilon(x_2^)+|x_2|\epsilon(x_1^)}{|x_2^*|^2}$
- $\epsilon(f(x^))\approx |f’(x^)|\epsilon(x^*)$
- $f(x)-f(x^)= f’(x^)(x-x^)+\frac{f’’(\xi)}{2}(x-x^)^2, \xi\in[x,x^*]$
病态问题与条件数
- 病态:初始数据微小扰动,导致计算结果产生很大影响(反之良态)
- 即时算法数值稳定,也无法得到好的解(采集数据就有误差)
- 计算函数值的条件数:$C_p=|\frac{f(x)-f(x^*)}{f(x)}|/|\frac{\Delta x}{x}|=\frac{xf’(x)}{f(x)}$
算法中需要注意的地方
-
使用数值稳定的算法:输入数据有误差,但在运算过程中摄入误差不增长的算法为数值稳定的
-
避免绝对值远小于分子的数做分母
-
避免两个绝对值很大的数相乘
-
避免两个相近的数相减
- $x$ 很大时
$$\sqrt{x+k}-\sqrt{x}-\frac{k}{\sqrt{x+k}+\sqrt{x}}$$
- $x_1,x_2$ 相近
$$\lg x_1-\lg x_2=\lg \frac{x_1}{x_2}$$
- $f(x)\approx f(x^)$ 但 $x,x^$ 不接近
$$f(x)-f(x^)=f’(x^)(x-x^)+\frac{1}{2}f’’(x-x^)^2+\cdots$$
-
避免大数吃小数
-
简化计算步骤,减少运算次数