数值分析(1)-绪论:误差

整理一下数值分析的笔记~
目录:

1. 误差
2. 多项式插值与样条插值
3. 函数逼近
4. 数值积分与数值微分
5. 线性方程组的直接解法
6. 线性方程组的迭代解法
7. 非线性方程求根
8. 特征值和特征向量的计算
9. 常微分方程初值问题的数值解

1. 误差的分类和来源

模型误差实际问题和对其进行抽象、简化后得到的数学模型之间存在的误差
观测误差:由于精度的限制,观察和测量时候产生 的误差
舍入误差:计算机字长的限制,所能表示的数只能有有限的位数,后面的部分按照不同的舍入规则舍去而产生的误差
截断/方法误差:得不到精确解的数学模型通常用数值方法求近似解,二者之间的误差。通常是用有限过程对无穷进行截断,比如,f(x)用泰勒公式近似替代如下:
P n ( x ) = f ( 0 ) + f ′ ( 0 ) 1 ! x + f ′ ′ ( 0 ) 1 ! x 2 + . . . + f n ( 0 ) n ! x n P_n(x)=f(0)+\frac{f'(0)}{1!}x+\frac{f''(0)}{1!}x^2+...+\frac{f^{n}(0)}{n!}x^n Pn(x)=f(0)+1!f(0)x+1!f(0)x2+...+n!fn(0)xn

则截断误差为

R n ( x ) = f ( x ) − P n ( x ) = f n + 1 ( ξ ) ( n + 1 ) ! x n + 1 , 其 中 ξ ∈ ( 0 , x ) 。 R_n(x)=f(x)-P_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}x^{n+1},其中 \xi \in(0,x)。 Rn(x)=f(x)Pn(x)=(n+1)!fn+1(ξ)xn+1,ξ(0,x)

2. 误差和误差限

定义1. 设x为准确值, x ∗ x^* x为x的一个近似值,称 E ( x ∗ ) = x ∗ − x E(x^*)=x^*-x E(x)=xx为近似值的绝对误差,简称误差

实际上,准确值x通常无法求得甚至未知,因此 E ( x ∗ ) E(x^*) E(x)往往也无法求得,只能知道其绝对值得某个上界 ε ( x ∗ ) ≥ E ( x ∗ ) = ∣ x ∗ − x ∣ \varepsilon(x^*)\geq E(x^*)=|x^*-x| ε(x)E(x)=xx,数值 ε ( x ∗ ) \varepsilon(x^*) ε(x)称为 x ∗ x^* x的**(绝对)误差限**。
{一般地,凡是由准确值经过四舍五入得到的近似值,其绝对误差限等于该近似值末位的半个单位}

但是一个测量值的精确程度除了与绝对误差限有关外,还和该量的大小有关,由此引入相对误差限

定义2. 设x为准确值, x ∗ x^* x为x的一个近似值,称 E r ( x ∗ ) = E ( x ∗ ) x = x ∗ − x x E_r(x^*)=\frac{E(x^*)}{x}=\frac{x^*-x}{x} Er(x)=xE(x)=xxx为近似值 x ∗ x^* x的相对误差,简记为 E r E_r Er ε r ( x ∗ ) ≥ ∣ E r ( x ∗ ) \varepsilon _r(x^*)\geq|E_r(x^*) εr(x)Er(x) x ∗ x^* x的相对误差限。

两种误差限的关系: ε r = ε ∣ x ∗ ∣ \varepsilon _r=\frac{\varepsilon}{|x^*|} εr=xε

eg. 已知e=2.71828182…,近似值 e ∗ e^* e=2.71828,则 ε = ∣ e ∗ − e ∣ = 0.00000182... ≤ 0.000002 = 2 × 1 0 − 6 , ε r = ε ∣ e ∗ ∣ ≈ 0.71 × 1 0 − 6 \varepsilon=|e^*-e|=0.00000182...\leq0.000002=2 \times 10^{-6},\varepsilon_r=\frac{\varepsilon}{|e^*|}\approx0.71 \times10^{-6} ε=ee=0.00000182...0.000002=2×106,εr=eε0.71×106

3. 有效数字

定义3.若 x ∗ x^* x作为x的近似值,其绝对误差的绝对值不超过某一位数字的半个单位,而该位数字到 x ∗ x^* x的第一位非零数字共有n位,则称用 x ∗ x^* x近似x时具有n位有效数字,简称 x ∗ x^* x有n位有效数字。

有效数字与绝对误差限的关系

x的近似值 x ∗ x^* x的规格化形式可以写为:

x ∗ = ± 0. a 1 a 2 . . . a k × 1 0 m x^*=\pm0.a_1a_2...a_k \times10^m x=±0.a1a2...ak×10m

其中m是整数, a i a_i ai是0-9中的一个数字且 a 1 ≠ 0 a_1\neq 0 a1̸=0,则 x ∗ = ± 0. a 1 a 2 . . . a k × 1 0 m 具 有 n 位 ( n ≤ k ) x^*=\pm0.a_1a_2...a_k \times10^m具有n位(n\leq k) x=±0.a1a2...ak×10mn(nk)有效数字当且仅当 ∣ E ∣ = ∣ x ∗ − x ∣ ≤ 0.5 × 1 0 m − n |E|=|x^*-x|\leq 0.5 \times 10^{m-n} E=xx0.5×10mn。(可以看出有效数字越多,绝对误差越小)

有效数字与相对误差限的关系

x的近似值 x ∗ x^* x的规格化形式可以写为:

x ∗ = ± 0. a 1 a 2 . . . a k × 1 0 m , a 1 ≠ 0 x^*=\pm0.a_1a_2...a_k \times10^m,a_1 \neq0 x=±0.a1a2...ak×10m,a1̸=0

x ∗ x^* x有n位有效数字,则相对误差限:

e r ∗ ≤ 1 2 a 1 × 1 0 1 − n e_r^*\leq \frac{1}{2a_1} \times 10^{1-n} er2a11×101n
反之,若 x ∗ x^* x的相对误差限为

e r ∗ ≤ 1 2 ( a 1 + 1 ) × 1 0 1 − n e_r^*\leq \frac{1}{2(a_1+1)} \times 10^{1-n} er2(a1+1)1×101n

4. 数值运算的误差估计

ε ( x 1 ∗ ± x 2 ∗ ) = ε ( x 1 ∗ ) + ε ( x 2 ∗ ) \varepsilon(x_1^* \pm x_2^*)=\varepsilon(x_1^*)+\varepsilon(x_2^*) ε(x1±x2)=ε(x1)+ε(x2) ε ( x 1 ∗ x 2 ∗ ) ≈ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) \varepsilon(x_1^* x_2^*) \approx |x_1^*|\varepsilon(x_2^*)+|x_2^*|\varepsilon(x_1^*) ε(x1x2)x1ε(x2)+x2ε(x1) ε ( x 1 ∗ / x 2 ∗ ) ≈ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) ∣ x 2 ∗ ∣ 2 \varepsilon(x_1^* / x_2^*) \approx \frac{|x_1^*|\varepsilon(x_2^*)+|x_2^*|\varepsilon(x_1^*)}{|x_2^*|^2} ε(x1/x2)x22x1ε(x2)+x2ε(x1)

一般地,自变量有误差时,计算函数值也产生误差,误差限可利用函数的泰勒展开式进行估计, ε ( f ( x ∗ ) ) = f ( x ) − f ( x ∗ ) = f ′ ( x ∗ ) ( x − x ∗ ) + f ′ ′ ( ξ ) 2 ( x − x ∗ ) 2 , 其 中 ξ 介 于 x 和 x ∗ 之 间 \varepsilon(f(x^*))=f(x)-f(x^*)=f'(x^*)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2,其中\xi介于x和x^*之间 ε(f(x))=f(x)f(x)=f(x)(xx)+2f(ξ)(xx)2,ξxx

取绝对值并假定 f ′ ( x ∗ ) f'(x^*) 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)

多元函数同理。

5. 四则运算的稳定性问题

  • 防止大数吃小数(计算机位数有限造成) → \rarr 求和时从小到大相加,可使和的误差减小
  • 做减法时避免相近数相减 → \rarr 使用有理化,三角变换等。
  • 避免小数作除数和大数作乘数。

6. 提高算法效率问题

6.1 减少运算次数(比如多项式计算的秦九韶算法)
6.2 病态问题:

定义:对数学问题本身如果输入数据有微小扰动,引起输出数据的很大扰动,即病态问题。

比如:计算函数值f(x),当x有扰动, δ = x − x ∗ \delta=x-x^* δ=xx,相对误差 δ x \frac{\delta}{x} xδ,函数值相对误差 f ( x ) − f ( x ∗ ) f ( x ) \frac{f(x)-f(x^*)}{f(x)} f(x)f(x)f(x),相对误差比值为 f ( x ) − f ( x ∗ ) f ( x ) δ x ≈ f ′ ( x ) δ f ( x ) δ x ≈ x f ′ ( x ) f ( x ) = C p \frac{\frac{f(x)-f(x^*)}{f(x)}}{\frac{\delta}{x}}\approx\frac{\frac{f'(x)\delta}{f(x)}}{\frac{\delta}{x}}\approx \frac{xf'(x)}{f(x)}=C_p xδf(x)f(x)f(x)xδf(x)f(x)δf(x)xf(x)=Cp

C p C_p Cp称为计算函数值问题的条件数。

从上面的计算中可以看出,如果条件数很大(通常自变量相对误差不会太大)将会引起函数值相对误差很大 ,此时出现病态问题。


{持续更新}
欢迎扫描二维码关注微信公众号 深度学习与数学   [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
在这里插入图片描述

你可能感兴趣的:(数学,数学分析)