Skip to Content
Numerical Analysis

绪论

2019-02-19Original-language archivelegacy assets may be incomplete

数值分析研究对象与特点

  • 计算方法:在计算机上求解数学问题的理论、方法及其软件实现
  • 现代科学三个组成:科学理论,科学实验和科学计算

误差

  • 误差来源
    • 建立数学模型:模型误差
    • 测量数据:测量误差
    • 构成数值算法:方法误差
    • 数值运行执行
      • 表示数据有限:舍入误差
      • 计算机对无穷过程截断:截断误差
  • 绝对误差:e|e^*|
    • 精确值:xx^*
    • e=xxe^*=x-x^*
    • 绝对误差界:e<ϵ|e^*|<\epsilon^*
  • 相对误差:er=ex,x0e_r=\frac{e^*}{|x^*|},x^*\neq0
    • 相对误差界:er=ϵxe_r^*=\frac{\epsilon^*}{|x^*|}
  • 有效位数:x=±0.a1a2an×10mx=\pm 0.a_1a_2\cdots a_n\times 10^m
    • 四舍五入后绝对误差界限为被保留的数字中最后数位的半个单位:0.5×10mn0.5\times 10^{m-n}
    • 有效数字:如果近似值的误差限是某一位上的半个单位,且该位置到 x 的第一位非零数字一共 n 位, 则称近似值 x 有 n 位有效数字 0.5×10mn1<xx0.5×10mn0.5\times 10^{m-n-1}<|x-x^*|\leq 0.5\times10^{m-n}
    • nn 位有效数字,则先对 n+1n+1 位四舍五入
  • 误差界运算
    • ϵ(x1±x2)=ϵ(x1)+ϵ(x2)\epsilon(x_1^*\pm x_2^*)=\epsilon(x_1^*)+\epsilon(x_2^*)
    • ϵ(x1x2)x1ϵ(x2)+x2ϵ(x1)\epsilon(x_1^*x_2^*)\approx|x_1|\epsilon(x_2^*)+|x_2|\epsilon(x_1^*)
    • ϵ(x1x2)x1ϵ(x2)+x2ϵ(x1)x22\epsilon(\frac{x_1^*}{x_2^*})\approx\frac{|x_1|\epsilon(x_2^*)+|x_2|\epsilon(x_1^*)}{|x_2^*|^2}
    • ϵ(f(x))f(x)ϵ(x)\epsilon(f(x^*))\approx |f'(x^*)|\epsilon(x^*)
      • f(x)f(x)=f(x)(xx)+f(ξ)2(xx)2,ξ[x,x]f(x)-f(x^*)= f'(x^*)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2, \xi\in[x,x^*]

病态问题与条件数

  • 病态:初始数据微小扰动,导致计算结果产生很大影响(反之良态)
    • 即时算法数值稳定,也无法得到好的解(采集数据就有误差)
  • 计算函数值的条件数:Cp=f(x)f(x)f(x)/Δxx=xf(x)f(x)C_p=|\frac{f(x)-f(x^*)}{f(x)}|/|\frac{\Delta x}{x}|=\frac{xf'(x)}{f(x)}

算法中需要注意的地方

  • 使用数值稳定的算法:输入数据有误差,但在运算过程中摄入误差不增长的算法为数值稳定的

  • 避免绝对值远小于分子的数做分母

  • 避免两个绝对值很大的数相乘

  • 避免两个相近的数相减

    • xx 很大时

    x+kxkx+k+x\sqrt{x+k}-\sqrt{x}-\frac{k}{\sqrt{x+k}+\sqrt{x}}

    • x1,x2x_1,x_2 相近

    lgx1lgx2=lgx1x2\lg x_1-\lg x_2=\lg \frac{x_1}{x_2}

    • f(x)f(x)f(x)\approx f(x^*)x,xx,x^* 不接近

    f(x)f(x)=f(x)(xx)+12f(xx)2+f(x)-f(x^*)=f'(x^*)(x-x^*)+\frac{1}{2}f''(x-x^*)^2+\cdots

  • 避免大数吃小数

  • 简化计算步骤,减少运算次数