数学 旧 .com 迁移

数值分析 / 绪论 / 误差

从旧 .com 全量搬运的历史内容,来源路径:/math/课程/数值分析/chapters/绪论/误差/

迁移来源

误差 #

误差的分类 #

    1. 从实际问题提炼数学问题时忽略的次要因素导致与真实解的差称为模型误差.
    1. 测量如质量、温度等实际值时由于工具精度等原因测量产生的误差称为观测误差数据误差参量误差.
    1. 在数学求解过程中用近似公式代替准确公式求解 (如使用泰勒公式) 产生的误差称为截断误差方法误差.
    1. 由于计算机计算精度不够, 舍入产生的误差称为舍入误差计算误差.
info

本课程只研究截断误差和舍入误差.

绝对误差、相对误差与准确数字 #

definition

xx 为准确值, x~\widetilde{x}xx 的一个近似值, 则

Δx=xx~ 或 Δx=xx~\Delta_x = x-\widetilde{x}\ \text{或}\ |\Delta_x|=|x-\widetilde{x}|

称为近似值 x~\widetilde{x}绝对误差.

通常我们并不知道准确值, 因而绝对误差也是不知道的, 但可以估计出绝对误差的上界 ε\varepsilon, 即 Δxε|\Delta x|\leqslant \varepsilon. ε\varepsilon 称为绝对误差界绝对误差限.

并记 x=x~±εx=\widetilde{x}\pm\varepsilon.

definition

xx 为准确值, x~\widetilde{x}xx 的一个近似值, 则

δx=xx~x 或 δx\delta_x=\dfrac{x-\widetilde{x}}{x}\ \text{或}\ |\delta_x|

称为近似值 x~\widetilde{x}相对误差.

同样的在实际计算中, 准确值 xx 是不知道的, 但由于

xx~x~xx~x\frac{x-\widetilde{x}}{\widetilde{x}}-\frac{x-\widetilde{x}}{x}

Δxx~\dfrac{\Delta_x}{\widetilde{x}} 的平方级, 当其较小时, 可以忽略不记. 而此时相对误差可取为

δx=xx~x~.|\delta_x|=\frac{|x-\widetilde{x}|}{|\widetilde{x}|}.

并定义相对误差限相对误差界, 为 εr\varepsilon_r, 满足 δxεr|\delta_x|\leqslant\varepsilon_r. 记为 x=x~(1±εr)x=\widetilde{x}(1\pm\varepsilon_r).

definition

若把 xx 写成科学计数法 (注意与高中定义的差别, 要求整数部分为 00)

x=±10m×0.x1x2,x10x=\pm 10^m\times0.x_1x_2\cdots ,\quad x_1\neq 0

xx 的近似值 x~\widetilde{x} 的绝对误差界为 12×10n\dfrac{1}{2}\times 10^{-n} 时, x~\widetilde{x} 准确到 nn 位小数, 具有 n+mn+m准确数字 (有效数字).

若已知 x~\widetilde{x} 的相对误差界为 12×10t\dfrac{1}{2}\times 10^{-t}, 即

xx~x~12×10t,\dfrac{|x-\widetilde{x}|}{|\widetilde{x}|}\leqslant\dfrac{1}{2}\times 10^{-t},

x~\widetilde{x} 的绝对误差为

xx~x~×12×10t12×10(tm).|x-\widetilde{x}|\leqslant|\widetilde{x}|\times \dfrac{1}{2}\times 10^{-t}\leqslant\dfrac{1}{2}\times 10^{-(t-m)}.

由此可知, x~\widetilde{x} 至少具有 tm+m=tt-m+m=t 位准确数字.

计算机中数的表示与舍入误差 #

计算机中的实数采用浮点表示法, 设计算机采用 β\beta 进制, 字长为 tt, 将非零实数 xx 在计算机上表示为

fl(x)=x~=±{x1β+x2β2++xtβt}×βl=±0.x1x2xt×βl,fl(x)=\widetilde{x}=\pm\left\{\dfrac{x_1}{\beta}+\dfrac{x_2}{\beta^2}+\cdots+\dfrac{x_t}{\beta^t}\right\}\times\beta^l=\pm0.x_1x_2\cdots x_t\times\beta^l,

其中 x1{1,2,,β1}, xi{0,1,,β1} (i=2,3,,t).x_1\in\{1,2,\cdots,\beta-1\},\ x_i\in\{0,1,\cdots,\beta-1\}\ (i=2,3,\cdots,t).

尾数部分: 0.x1x2,xt0.x_1x_2,\cdots x_t.

指数部分: βl\beta^l.

指数: lZl\in\Z, 也称阶码, 其取值范围 LlU (L<0,U>0)L\leqslant l\leqslant U\ (L<0,U>0). L,UL,U 分别称为指数的下、上界.

规格化浮点数: fl(x)fl(x).

浮点数集: F(β,t,L,U)={0}{fl(x)=±0.x1x2xt×βl}F(\beta,t,L,U)=\{0\}\bigcup\{fl(x)=\pm0.x_1x_2\cdots x_t\times\beta^l\}.

显然, 浮点数集 F(β,t,L,U)F(\beta,t,L,U)共有 2(β1)βt1(UL+1)+12(\beta-1)\beta^{t-1}(U-L+1)+1 个数, 所能表示的范围

flmin(x)=βL1fl(x)βU×(1βt)=flmax(x).fl_{min}(x)=\beta^{L-1}\leqslant|fl(x)|\leqslant\beta^U\times(1-\beta^{-t})=fl_{max}(x).
info

在计算机运算过程中, 应尽量调整计算顺序, 避免中途计算结果超出表示范围 (称作 “上溢”、“下溢”).

在浮点数系 F(β,t,L,U)F(\beta,t,L,U)fl(x)fl(x) 产生的绝对误差与相对误差分别为

\begin{aligned} |x-fl(x)|\leqslant\dfrac{1}{2}\beta^{-t}\times\beta^l=\dfrac{1}{2}\beta^{l-t},\

10pt] \dfrac{|x-fl(x)|}{|x|}\leqslant\dfrac{\dfrac{1}{2}\beta^{l-t}}{\beta^{l-1}}=\dfrac{1}{2}\beta^{-(t-1)}. \end{aligned}

由此可见, 相对误差限只与计算机数的进制和字长有关, 称为**计算机的相对精度**. 一些计算原则: - 为避免大数"吃掉"小数, 若干个数相加时, 宜采取绝对值较小的数优先加的原则. - 尽量避免两个相近的数相减. - 避免绝对值小的数作除数, 绝对值大的数作乘数. - 为减少舍入误差和节省计算时间, 在计算中应尽量简化计算步骤, 减少运算次数. 例如用秦九韶算法将多项式 $p_n(x)$ 写作 $(\cdots((a_nx+a_{n-1})x+a_{n-2})x+\cdots+a_1)x+a_0$. - 选用数值稳定性好的算法.

讨论

评论

正在加载评论...