• 数值分析复习:误差


    文章目录

    本篇文章适合个人复习翻阅,不建议新手入门使用
    本专栏:数值分析复习 的前置知识主要有:数学分析、高等代数、泛函分析

    定义:截断误差、舍入误差
    当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差(或方法误差)
    用计算机做数值计算时,由于计算机字长有限,原始数据在计算机上表示时会产生误差,计算过程又可能产生新的误差,这种误差称为舍入误差。

    以下介绍舍入误差的相关概念
    定义:绝对误差、相对误差
    称准确值 x x x 和近似值 x ∗ x^* x 之差 e ∗ = x ∗ − x e^*=x^*-x e=xx 为绝对误差,称 e r ∗ = x ∗ − x x e_r^*=\frac{x^*-x}{x} er=xxx 为相对误差
    称绝对误差上界为(绝对)误差限,记为 ε ∗ \varepsilon^* ε,相对误差上界称为相对误差限,记为 ε r ∗ \varepsilon_r^* εr

    注1:绝对误差和误差限是有量纲的,相对误差和相对误差限是无量纲的。
    注2:在实际计算中,由于真值 x x x 总是不知道的,通常取 x ∗ − x x ∗ \frac{x^*-x}{x^*} xxx 作为相对误差

    当准确值 x x x 有多位数时,常常按四舍五入的原则得到 x x x 的前几位近似值 x ∗ x^* x,例如
    x = π = 3.14159265 ⋯ x=\pi=3.14159265\cdots x=π=3.14159265

    取三位: x 3 ∗ = 3.14 , ε 3 ∗ ≤ 0.002 x_3^*=3.14,\varepsilon_3^*\leq 0.002 x3=3.14,ε30.002
    取五位: x 5 ∗ = 3.1416 , ε 5 ∗ ≤ 0.000008 x_5^*=3.1416,\varepsilon_5^*\leq 0.000008 x5=3.1416,ε50.000008

    它们的误差都不超过末位数字的半个单位,即
    ∣ π − 3.14 ∣ ≤ 1 2 × 1 0 − 2 , ∣ π − 3.1416 ∣ ≤ 1 2 × 1 0 − 4 |\pi -3.14|\leq \frac{1}{2}\times 10^{-2},|\pi -3.1416|\leq \frac{1}{2}\times 10^{-4} π3.14∣21×102,π3.1416∣21×104

    定义:有效数字
    若近似值 x ∗ x^* x 的误差限是某一位的半个单位,该位到 x ∗ x^* x 的第一位非零数字共有 n n n 位,则称 x ∗ x^* x n n n 位有效数字,它可表示为
    x ∗ = ± 1 0 m × ( a 1 + a 2 × 1 0 − 1 + ⋯ + a n × 1 0 − ( n − 1 ) ) x^*=\pm 10^m\times (a_1+a_2\times 10^{-1}+\cdots+a_n\times 10^{-(n-1)}) x=±10m×(a1+a2×101++an×10(n1))

    其中 a i ( i = 1 , 2 , … , n ) a_i(i=1,2,\dots,n) ai(i=1,2,,n) 是 0 到 9 中的一个数字, a 1 ≠ 0 a_1\neq 0 a1=0 m m m 为整数,且
    ∣ x − x ∗ ∣ ≤ 1 2 × 1 0 m − n + 1 |x-x^*|\leq \frac{1}{2}\times 10^{m-n+1} xx21×10mn+1

    定理:有效数字和误差限的关系
    设近似数 x ∗ x^* x 表示为
    x ∗ = ± 1 0 m × ( a 1 + a 2 × 1 0 − 1 + ⋯ + a l × 1 0 − ( l − 1 ) ) x^*=\pm 10^m\times (a_1+a_2\times 10^{-1}+\cdots+a_l\times 10^{-(l-1)}) x=±10m×(a1+a2×101++al×10(l1))

    其中 a i ( i = 1 , 2 , … , l ) a_i(i=1,2,\dots,l) ai(i=1,2,,l) 是 0 到 9 中的一个数字, a 1 ≠ 0 a_1\neq 0 a1=0 m m m 为整数

    若使 x ∗ x^* x 具有 n n n 位有效数字,则绝对误差限为
    ε ∗ = 1 2 × 1 0 m − n + 1 \varepsilon^*=\frac{1}{2}\times 10^{m-n+1} ε=21×10mn+1

    相对误差限为
    ε r ∗ ≤ 1 2 a 1 × 1 0 − ( n − 1 ) \varepsilon_r^*\leq \frac{1}{2a_1}\times 10^{-(n-1)} εr2a11×10(n1)

    反之,若 x ∗ x^* x 的相对误差限 ε r ∗ ≤ 1 2 ( a 1 + 1 ) × 1 0 − ( n − 1 ) \varepsilon_r^*\leq \frac{1}{2(a_1+1)}\times 10^{-(n-1)} εr2(a1+1)1×10(n1),则 x ∗ x^* x 至少有 n n n 位有效数字

    证明
    由有效数字的定义,绝对误差限是显然的

    由于 a 1 × 1 0 m ≤ ∣ x ∗ ∣ < ( a 1 + 1 ) × 1 0 m a_1\times 10^m\leq |x^*|<(a_1+1)\times 10^m a1×10mx<(a1+1)×10m

    x ∗ x^* x 具有 n n n 位有效数字时,
    ε r ∗ = ∣ x − x ∗ ∣ ∣ x ∗ ∣ ≤ 0.5 × 1 0 m − n + 1 a 1 × 1 0 m = 1 2 a 1 × 1 0 − n + 1 \varepsilon_r^*=\frac{|x-x^*|}{|x^*|}\leq \frac{0.5\times 10^{m-n+1}}{a_1\times 10^m}=\frac{1}{2a_1}\times 10^{-n+1} εr=xxxa1×10m0.5×10mn+1=2a11×10n+1

    反之,由
    ∣ x − x ∗ ∣ = ∣ x ∗ ∣ ε r ∗ < ( a 1 + 1 ) × 1 0 m × 1 2 ( a 1 + 1 ) × 1 0 − n + 1 = 0.5 × 1 0 m − n + 1 |x-x^*|=|x^*|\varepsilon_r^*<(a_1+1)\times 10^m\times \frac{1}{2(a_1+1)}\times 10^{-n+1}=0.5\times 10^{m-n+1} xx=xεr<(a1+1)×10m×2(a1+1)1×10n+1=0.5×10mn+1

    x ∗ x^* x 至少具有 n n n 位有效数字

    注:该定理说明,有效位数越多,绝对误差限和相对误差限就越小

    命题:四则运算的误差
    设两个近似数 x 1 ∗ , x 2 ∗ x_1^*,x_2^* x1,x2 的误差限分别为 ε ( x 1 ∗ ) , ε ( x 2 ∗ ) \varepsilon(x_1^*),\varepsilon(x_2^*) ε(x1),ε(x2),则

    1. ε ( x 1 ∗ ± x 2 ∗ ) ≤ ε ( x 1 ∗ ) + ε ( x 2 ∗ ) \varepsilon(x_1^*\pm x_2^*)\leq \varepsilon(x_1^*)+\varepsilon(x_2^*) ε(x1±x2)ε(x1)+ε(x2)
    2. ε ( x 1 ∗ x 2 ∗ ) ≤ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ε ( x 1 ∗ ) ∣ x 2 ∗ ∣ \varepsilon(x_1^*x_2^*)\leq |x_1^*|\varepsilon(x_2^*)+\varepsilon(x_1^*)|x_2^*| ε(x1x2)x1ε(x2)+ε(x1)x2
    3. ε ( x 1 ∗ / x 2 ∗ ) ≤ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ε ( x 1 ∗ ) ∣ x 2 ∗ ∣ ∣ x 2 ∗ ∣ 2 , x 2 ∗ ≠ 0 \varepsilon(x_1^*/ x_2^*)\leq \frac{|x_1^*|\varepsilon(x_2^*)+\varepsilon(x_1^*)|x_2^*|}{|x_2^*|^2},x_2^*\neq 0 ε(x1/x2)x22x1ε(x2)+ε(x1)x2,x2=0

    命题:一元可微函数的误差
    f ( x ) f(x) f(x) 是一元可微函数, x x x 的近似值为 x ∗ x^* x,以 f ( x ∗ ) f(x^*) f(x) 近似 f ( x ) f(x) f(x),其误差界记作 ε ( f ( x ∗ ) ) \varepsilon(f(x^*)) ε(f(x)),由Taylor展开,
    f ( x ) − f ( x ∗ ) = f ′ ( x ∗ ) ( x − x ∗ ) + f ′ ′ ( ξ ) 2 ( x − x ∗ ) 2 f(x)-f(x^*)=f'(x^*)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2 f(x)f(x)=f(x)(xx)+2f′′(ξ)(xx)2

    其中 ξ \xi ξ 介于 x , x ∗ x,x^* x,x 之间,取绝对值得
    ∣ f ( x ) − f ( x ∗ ) ∣ ≤ ∣ f ′ ( x ∗ ) ∣ ε ( x ∗ ) + ∣ f ′ ′ ( ξ ) ∣ 2 ε 2 ( x ∗ ) |f(x)-f(x^*)|\leq |f'(x^*)|\varepsilon(x^*)+\frac{|f''(\xi)|}{2}\varepsilon^2(x^*) f(x)f(x)f(x)ε(x)+2f′′(ξ)ε2(x)

    假设 f ′ ( x ∗ ) f ′ ′ ( x ∗ ) \frac{f'(x^*)}{f''(x^*)} f′′(x)f(x) 不太大,则可忽略 ε ( x ∗ ) \varepsilon(x^*) ε(x) 的高阶项,可得计算函数的误差限
    ε ( f ( x ∗ ) ) ≈ ∣ f ′ ( x ∗ ) ∣ ε ( x ∗ ) \varepsilon(f(x^*))\approx |f'(x^*)|\varepsilon(x^*) ε(f(x))f(x)ε(x)

    命题:多元函数的误差
    设足够光滑的多元函数 A = f ( x 1 , x 2 , … , x n ) A=f(x_1,x_2,\dots,x_n) A=f(x1,x2,,xn),设 x 1 , x 2 , … , x n x_1,x_2,\dots,x_n x1,x2,,xn 的近似值为 x 1 ∗ , x 2 ∗ , … , x n ∗ x_1^*,x_2^*,\dots,x_n^* x1,x2,,xn,设 A ∗ = f ( x 1 ∗ , x 2 ∗ , … , x n ∗ ) A^*=f(x_1^*,x_2^*,\dots,x_n^*) A=f(x1,x2,,xn),于是由
    Taylor公式得 A ∗ A^* A 的误差 e ( A ∗ ) e(A^*) e(A)
    e ( A ∗ ) = A ∗ − A = f ( x 1 ∗ , x 2 ∗ , … , x n ∗ ) − f ( x 1 , x 2 , … , x n ) ≈ ∑ k = 1 n ( ∂ f ( x 1 ∗ , x 2 ∗ , … , x n ∗ ) ∂ x k ) ( x k ∗ − x k ) = ∑ k = 1 n ( ∂ f ∂ x k ) ∗ e k ∗ \begin{split} e(A^*)&=A^*-A=f(x_1^*,x_2^*,\dots,x_n^*)-f(x_1,x_2,\dots,x_n)\\ &\approx \sum\limits_{k=1}^n(\frac{\partial f(x_1^*,x_2^*,\dots,x_n^*)}{\partial x_k})(x_k^*-x_k)\\ &=\sum\limits_{k=1}^n(\frac{\partial f}{\partial x_k})^*e_k^*\\ \end{split} e(A)=AA=f(x1,x2,,xn)f(x1,x2,,xn)k=1n(xkf(x1,x2,,xn))(xkxk)=k=1n(xkf)ek

    于是误差限
    ε ( A ∗ ) ≈ ∑ k = 1 n ∣ ( ∂ f ∂ x k ) ∗ ∣ ε ( x k ∗ ) \varepsilon(A^*)\approx \sum\limits_{k=1}^n|(\frac{\partial f}{\partial x_k})^*|\varepsilon(x_k^*) ε(A)k=1n(xkf)ε(xk)

    参考书籍:《数值分析》李庆扬 王能超 易大义 编

  • 相关阅读:
    直播平台Stacked完成1290万美元A轮融资,计划转型为Web3流媒体
    第1章 C语言高级的枚举、typedef、位域(三)
    向上生长笔记
    自动化测试工具之selenium(一)
    springboot+校园超市管理系统的设计与实现 毕业设计-附源码201521
    贪心算法
    Java GUI小程序之图片浏览器
    Python对于时间相关模块的学习记录(time,datetime等模块)
    MYSQL一站式学习,看完即学完
    机器学习笔记:Huber Loss & smooth L1 loss
  • 原文地址:https://blog.csdn.net/2301_76884115/article/details/138194911