Skip to Content

绪论

2019-02-19·Numerical Analysis

数值分析研究对象与特点

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

误差

  • 误差来源
    • 建立数学模型:模型误差
    • 测量数据:测量误差
    • 构成数值算法:方法误差
    • 数值运行执行
      • 表示数据有限:舍入误差
      • 计算机对无穷过程截断:截断误差
  • 绝对误差:∣e∗∣|e^*|
    • 精确值:x∗x^*
    • e∗=x−x∗e^*=x-x^*
    • 绝对误差界:∣e∗∣<ϵ∗|e^*|<\epsilon^*
  • 相对误差:er=e∗∣x∗∣,x∗≠0e_r=\frac{e^*}{|x^*|},x^*\neq0
    • 相对误差界:er∗=ϵ∗∣x∗∣e_r^*=\frac{\epsilon^*}{|x^*|}
  • 有效位数:x=±0.a1a2⋯an×10mx=\pm 0.a_1a_2\cdots a_n\times 10^m
    • 四舍五入后绝对误差界限为被保留的数字中最后数位的半个单位:0.5×10m−n0.5\times 10^{m-n}
    • 有效数字:如果近似值的误差限是某一位上的半个单位,且该位置到 x 的第一位非零数字一共 n 位, 则称近似值 x 有 n 位有效数字 0.5×10m−n−1<∣x−x∗∣≤0.5×10m−n0.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^*)
    • ϵ(x1∗x2∗)≈∣x1∣ϵ(x2∗)+∣x2∣ϵ(x1∗)\epsilon(x_1^*x_2^*)\approx|x_1|\epsilon(x_2^*)+|x_2|\epsilon(x_1^*)
    • ϵ(x1∗x2∗)≈∣x1∣ϵ(x2∗)+∣x2∣ϵ(x1∗)∣x2∗∣2\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∗)(x−x∗)+f′′(ξ)2(x−x∗)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+k−x−kx+k+x\sqrt{x+k}-\sqrt{x}-\frac{k}{\sqrt{x+k}+\sqrt{x}}

    • x1,x2x_1,x_2 相近

    lg⁡x1−lg⁡x2=lg⁡x1x2\lg x_1-\lg x_2=\lg \frac{x_1}{x_2}

    • f(x)≈f(x∗)f(x)\approx f(x^*) 但 x,x∗x,x^* 不接近

    f(x)−f(x∗)=f′(x∗)(x−x∗)+12f′′(x−x∗)2+⋯f(x)-f(x^*)=f'(x^*)(x-x^*)+\frac{1}{2}f''(x-x^*)^2+\cdots

  • 避免大数吃小数

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