整理一下数值分析的笔记~
目录:1. 误差
2. 多项式插值与样条插值
3. 函数逼近
4. 数值积分与数值微分
5. 线性方程组的直接解法
6. 线性方程组的迭代解法
7. 非线性方程求根
8. 特征值和特征向量的计算
9. 常微分方程初值问题的数值解
模型误差:实际问题和对其进行抽象、简化后得到的数学模型之间存在的误差
观测误差:由于精度的限制,观察和测量时候产生 的误差
舍入误差:计算机字长的限制,所能表示的数只能有有限的位数,后面的部分按照不同的舍入规则舍去而产生的误差
截断/方法误差:得不到精确解的数学模型通常用数值方法求近似解,二者之间的误差。通常是用有限过程对无穷进行截断,比如,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)。
定义1. 设x为准确值, x ∗ x^* x∗为x的一个近似值,称 E ( x ∗ ) = x ∗ − x E(x^*)=x^*-x E(x∗)=x∗−x为近似值的绝对误差,简称误差。
实际上,准确值x通常无法求得甚至未知,因此 E ( x ∗ ) E(x^*) E(x∗)往往也无法求得,只能知道其绝对值得某个上界 ε ( x ∗ ) ≥ E ( x ∗ ) = ∣ x ∗ − x ∣ \varepsilon(x^*)\geq E(x^*)=|x^*-x| ε(x∗)≥E(x∗)=∣x∗−x∣,数值 ε ( 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∗)=xx∗−x为近似值 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} ε=∣e∗−e∣=0.00000182...≤0.000002=2×10−6,εr=∣e∗∣ε≈0.71×10−6
定义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×10m具有n位(n≤k)有效数字当且仅当 ∣ E ∣ = ∣ x ∗ − x ∣ ≤ 0.5 × 1 0 m − n |E|=|x^*-x|\leq 0.5 \times 10^{m-n} ∣E∣=∣x∗−x∣≤0.5×10m−n。(可以看出有效数字越多,绝对误差越小)
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} er∗≤2a11×101−n
反之,若 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} er∗≤2(a1+1)1×101−n
ε ( 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^*) ε(x1∗x2∗)≈∣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∗)≈∣x2∗∣2∣x1∗∣ε(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∗)(x−x∗)+2f′′(ξ)(x−x∗)2,其中ξ介于x和x∗之间
取绝对值并假定 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∗)
多元函数同理。
定义:对数学问题本身如果输入数据有微小扰动,引起输出数据的很大扰动,即病态问题。
比如:计算函数值f(x),当x有扰动, δ = x − x ∗ \delta=x-x^* δ=x−x∗,相对误差 δ 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等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]