数值分析复习:误差

本文介绍了数值分析中的关键概念,如截断误差和舍入误差的定义,以及绝对误差、相对误差和有效数字的计算方法。还探讨了四则运算和一元可微函数的误差估计,以及多元函数误差的Taylor公式应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

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

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

以下介绍舍入误差的相关概念
定义:绝对误差、相对误差
称准确值 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)

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

实验一 误差分析 一、实验目的及要求 1.了解误差分析对数值计算的重要性。 2.掌握避免或减小误差的基本方法。 二、实验设备 安装有C、C++或MATLAB的计算机。 三、实验原理 误差是指观测值与真值之差,偏差是指观测值与平均值之差。根据不同的算法,得到的结果的精度是不一样的。 四、实验内容及步骤 求方程ax2+bx+c=0的根,其中a=1,b= -(5×108+1),c=5×108 采用如下两种计算方案,在计算机上编程计算,将计算结果记录下来,并分析产生误差的原因。 ////////////////////////////// 实验二 Lagrange插值 一、实验目的及要求 1.掌握利用Lagrange插值法及Newton插值法求函数值并编程实现。 2.程序具有一定的通用性,程序运行时先输入节点的个数n,然后输入各节点的值( ),最后输入要求的自变量x的值,输出对应的函数值。 二、实验设备和实验环境 安装有C、C++或MATLAB的计算机。 三、算法描述 1. 插值的基本原理(求解插值问题的基本思路) 构造一个函数y=f(x)通过全部节点,即 (i=0、1、… n) 再用f(x)计算插值,即 2. 拉格朗日(Lagrange)多项式插值 Lagrange插值多项式: 3.牛顿(Newton)插值公式 //////////////////////////////////// 实验三 高斯消去法解方程组 一、实验目的及要求 1.掌握求解线性方程组的高斯消去法---列选主元在计算机上的算法实现。 2.程序具有一定的通用性,程序运行时先输入一个数n表示方程含有的未知数个数,然后输入每个线性方程的系数和常数,求出线性方程组的解。 二、实验设备和实验环境 安装有C、C++或MATLAB的计算机。 三、算法描述 1.高斯消去法基本思路 设有方程组 ,设 是可逆矩阵。高斯消去法的基本思想就是将矩阵的初等行变换作用于方程组的增广矩阵 ,将其中的 变换成一个上三角矩阵,然后求解这个三角形方程组。 2. 利用列选主元高斯消去法求解线性方程组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值