数值分析研究对象与特点

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

误差

  • 误差来源
    • 建立数学模型:模型误差
    • 测量数据:测量误差
    • 构成数值算法:方法误差
    • 数值运行执行
      • 表示数据有限:舍入误差
      • 计算机对无穷过程截断:截断误差
  • 绝对误差:$|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$$

  • 避免大数吃小数

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