数值分析--第一章--误差分析

误差分析

误差的来源与分类

  • 观测误差
  • 模型误差
  • 截断误差:近似计算出现的误差
  • 舍入误差:由于计算级只能进行有限位的运算而产生的误差
  • 绝对误差: e=xxe=x^{*}-x 其中e为绝对误差
    如果ϵ\epsilon满足:
    eϵ|e|\leq\epsilon, 则ϵ\epsilonxx的绝对误差限
  • 相对误差:
    er=xxx=exe_r = \frac{x^* - x}{x} = \frac{e}{x}, ere_r为相对误差
  • 相对误差限:
    ϵr=ϵx\epsilon_r=\frac{\epsilon}{|x|}, ϵr\epsilon_r为相对误差限,同时erϵr|e_r|\le\epsilon_r

有效数字

  • 有效数字与绝对误差限的关系:
    xx12×10mn|x^*-x|\leq\frac{1}{2}\times10^{m-n},其中nn为有效数字的位数,mmxx^*化为标准浮点数形式下的10的mm次幂。
    注:精确值的有效数字有无穷多位!
  • 有效数字和相对误差限的关系(其中a1a_1xx化为标准浮点数下小数点后第一个非零的数):
    • 已知有效位数nn:
      ϵr12a1×10n+1\epsilon_r\le\frac{1}{2a_1}\times10^{-n+1}

    • 已知xx的相对误差限:
      ϵr12(a1+1)×10n+1\epsilon_r\le\frac{1}{2(a_1+1)}\times10^{-n+1}

数值计算中的若干原则

  • 避免两个相近的数相减(使用其他算法,公式?乘除?)
    假设z=xy,z=xyz=x-y,z^*=x^*-y^*,那么:
    er(z)=xxyer(x)+yxyer(x)e_r(z)=|\frac{x}{x-y}||e_r(x)|+|\frac{y}{x-y}||e_r(x)|,从该式中我们可以看出zz的相对误差会特别大

  • 防止“大数”吃掉小数(改变运算顺序?)

  • 绝对值太小的数不宜做除数
    假设z=x÷y,z=x÷yz=x\div y,z^*=x^*\div y^*,那么:

    e(z)=zz=y(xx)+x(yy)yyye(x)+xe(y)y2e(z)=|z^*-z|=|\frac{y(x^*-x)+x(y-y^*)}{yy*}|\approx \frac{|y||e(x)|+|x||e(y)|}{y^2}

    则如果yy的绝对值太小,那么zz的绝对误差较大

  • 注意简化计算程序,减少计算次数(舍入误差的积累和计算的时间)

  • 选用数值稳定性好的算法

例题

  1. 将下列表达式进行等价变形,使其数值计算结果较为精确。

    (1) 112x1+x1x,x<<1\frac{1}{1-2x}-\frac{1+x}{1-x},|x|<<1

    解:=2x2(12x)(1x)原式=\frac{2x^2}{(1-2x)(1-x)}

    (2)1exx,x<<1\frac{1-e^x}{x},|x|<<1

    解:由exe^x在x=0处的泰勒展开式可得:

    ex=1+x+12!x2++1n!x2+Rn(x)e^x= 1+x+\frac{1}{2!}x^2+…+\frac{1}{n!}x^2+R_n(x)

    所以

    1exx=x+12!x2++1n!x2x=1+12!x+13!x2++1n!xn1\frac{1-e^x}{x}=\frac{x+\frac{1}{2!}x^2+…+\frac{1}{n!}x^2}{x}=1+\frac{1}{2!}x+\frac{1}{3!}x^2+…+\frac{1}{n!}x^{n-1}

  2. 假设f=(21)6,2f=(\sqrt{2}-1)^6,\sqrt{2}取1.4,下列哪种计算方式的精确度最高。

    (1)1(2+1)6f(x)=1x6\frac{1}{(\sqrt{2}+1)^6}\Rightarrow f(x)=\frac{1}{x^6}

    (2)(322)3f(x)=x3(3-2\sqrt2)^3 \Rightarrow f(x)=x^3

    (3)1(322)3f(x)=1x3\frac{1}{(3-2\sqrt2)^3} \Rightarrow f(x)=\frac{1}{x^3}

    (4)99702f(x)=9970x99-70\sqrt2 \Rightarrow f(x)=99-70x

    解:使用函数的条件数cond=f(x)xf(x)cond=|\frac{f^{'}(x)x}{f(x)}|

    x=1.4x=1.4带入其中,可得(3)式的精确度最高。

    注:条件数低为良态,条件数高为病态。

补充:x1x2x_1x_2的绝对误差限

x1x1,x2x2x_1\approx x_1,x_2\approx x_2
x1x2x1x2=x1x2x1x2+x1x2x1x2 |x_1x_2-x_1^*x_2^*|=|x_1x_2-x_1x_2^*+x_1x_2^*-x_1^*x_2^*|
x1x2x2+x2x1x1 \le|x_1||x_2-x_2^*|+|x_2^*||x_1-x_1^*|
=x1e(x2)+x2e(x1) =|x_1||e(x_2)|+|x_2||e(x_1)|

发布了8 篇原创文章 · 获赞 1 · 访问量 514
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览