第1章 绪论
误差来源
模型误差&观测误差- 截断误差&舍入误差
- 截断误差类似模型误差, 是近似解和真实值的误差.
- 泰勒公式
- 舍入误差类似观测误差, 是计算机表示和数学表示的误差.
- 截断误差类似模型误差, 是近似解和真实值的误差.
误差的基本概念
- (绝对)误差 e ∗ = x ∗ − x e^* = x^* - x e∗=x∗−x
- (绝对)误差限 ϵ ∗ ⩾ ∣ x ∗ − x ∣ \epsilon^* \geqslant |x^* - x| ϵ∗⩾∣x∗−x∣
- 相对误差 e r ∗ = e ∗ x ≈ e ∗ x ∗ e_r^* = \frac{e^*}{x} \approx \frac{e^*}{x^*} er∗=xe∗≈x∗e∗
- 相对误差 ϵ r ∗ = ϵ ∗ ∣ x ∣ ≈ ϵ ∗ ∣ x ∗ ∣ \epsilon_r^* = \frac{\epsilon^*}{|x|} \approx \frac{\epsilon^*}{|x^*|} ϵr∗=∣x∣ϵ∗≈∣x∗∣ϵ∗
- 估计误差近似真实误差的条件 ∣ e ∗ x ∗ − e ∗ x ∣ ≪ ∣ e ∗ x ∗ ∣ ⟺ ∣ e ∗ x ∗ ∣ ≪ 1 |\frac{e^*}{x^*} - \frac{e^*}{x}| \ll |\frac{e^*}{x^*}| \iff |\frac{e^*}{x^*}| \ll 1 ∣x∗e∗−xe∗∣≪∣x∗e∗∣⟺∣x∗e∗∣≪1
- e ∗ x ∗ − e ∗ x = e ∗ ( x − x ∗ ) x ∗ x = − e ∗ 2 x ∗ ( x ∗ − e ∗ ) = − ( e ∗ x ∗ ) 2 1 − e ∗ x ∗ \frac{e^*}{x^*} - \frac{e^*}{x} = \frac{e^*(x - x^*)}{x^* x} = \frac{- {e^*}^2}{x^*(x^*-e^*)} = \frac{- (\frac{e^*}{x^*})^2}{1 - \frac{e^*}{x^*}} x∗e∗−xe∗=x∗xe∗(x−x∗)=x∗(x∗−e∗)−e∗2=1−x∗e∗−(x∗e∗)2
- 有效数字的舍入误差
有效数字依附于衡量的量的量纲. 有效数字衡量绝对误差时具有绝对误差的量纲, 有效数字衡量相对误差时不具有量纲.- x ∗ = 1 0 m × ( a 1 . a 2 ⋯ a n ) = 1 0 m × ( a 1 × 1 0 − 0 + a 2 × 1 0 − 1 + ⋯ + a n × 1 0 − ( n − 1 ) + [ 1 2 × 1 0 − ( n − 1 ) ] ) x^* = 10^m \times (a_1.a_2 \cdots a_n) = 10^m \times (a_1 \times 10^{-0} + a_2 \times 10^{-1} + \cdots + a_n \times 10^{-(n-1)} + [\frac{1}{2} \times 10^{-(n-1)}]) x∗=10m×(a1.a2⋯an)=10m×(a1×10−0+a2×10−1+⋯+an×10−(n−1)+[21×10−(n−1)])
- n d i g i t s ⟺ e ∗ ⩽ 1 0 m × 1 2 × 1 0 − ( n − 1 ) n ~ \mathrm{digits} \iff e^* \leqslant 10^m \times \frac{1}{2} \times 10^{-(n-1)} n digits⟺e∗⩽10m×21×10−(n−1)
- n d i g i t s ⟹ ϵ r ∗ = sup e ∗ x ∗ ⩽ 1 0 m × 1 2 × 1 0 − ( n − 1 ) 1 0 m × a 1 × 1 0 − 0 n ~ \mathrm{digits} \implies \epsilon_r^* = \sup \frac{e^*}{x^*} \leqslant \frac{10^m \times \frac{1}{2} \times 10^{-(n-1)}}{10^m \times a_1 \times 10^{-0}} n digits⟹ϵr∗=supx∗e∗⩽10m×a1×10−010m×21×10−(n−1)
- ϵ r ∗ ⩽ 1 2 × 1 0 − ( n − 1 ) ( a 1 + 1 ) × 1 0 − 0 ⟹ e ∗ = x ∗ e r ∗ ⩽ x ∗ ϵ r ∗ ⩽ 1 0 m × ( a 1 + 1 ) × 1 0 − 0 1 2 × 1 0 − ( n − 1 ) ( a 1 + 1 ) × 1 0 − 0 ⟹ n d i g i t s \epsilon_r^* \leqslant \frac{\frac{1}{2} \times 10^{-(n-1)}}{(a_1+1) \times 10^{-0}} \implies e^* = x^* e_r^* \leqslant x^* \epsilon_r^* \leqslant 10^m \times (a_1 + 1) \times 10^{-0} \frac{\frac{1}{2} \times 10^{-(n-1)}}{(a_1+1) \times 10^{-0}} \implies n ~ \mathrm{digits} ϵr∗⩽(a1+1)×10−021×10−(n−1)⟹e∗=x∗er∗⩽x∗ϵr∗⩽10m×(a1+1)×10−0(a1+1)×10−021×10−(n−1)⟹n digits
- 数值运算的误差限
- ϵ ( x ∗ ± y ∗ ) = ϵ ( x ∗ ) + ϵ ( y ∗ ) \epsilon(x^* \pm y^*) = \epsilon(x^*) + \epsilon(y^*) ϵ(x∗±y∗)=ϵ(x∗)+ϵ(y∗)
- ϵ ( x ∗ y ∗ ) ≈ ∣ y ∗ ∣ ϵ ( x ∗ ) + ∣ x ∗ ∣ ϵ ( y ∗ ) \epsilon(x^* y^*) \approx |y^*| \epsilon(x^*) + |x^*| \epsilon(y^*) ϵ(x∗y∗)≈∣y∗∣ϵ(x∗)+∣x∗∣ϵ(y∗)
- ϵ ( x ∗ y ∗ ) ≈ ∣ y ∗ ∣ ϵ ( x ∗ ) + ∣ x ∗ ∣ ϵ ( y ∗ ) ∣ y ∗ ∣ 2 \epsilon(\frac{x^*}{y^*}) \approx \frac{|y^*| \epsilon(x^*) + |x^*| \epsilon(y^*)}{|y^*|^2} ϵ(y∗x∗)≈∣y∗∣2∣y∗∣ϵ(x∗)+∣x∗∣ϵ(y∗)
- f ( x ∗ ) ≈ ∣ f ′ ( x ∗ ) ∣ ϵ ( x ∗ ) f(x^*) \approx |f'(x^*)| \epsilon(x^*) f(x∗)≈∣f′(x∗)∣ϵ(x∗)
- f ( x ∗ ) ≈ ∑ i = 1 ∣ ∂ f ∂ x i ∗ ∣ ϵ ( x i ∗ ) f(x^*) \approx \sum\limits_{i=1}^{} |\frac{\partial f}{\partial x^*_i}| \epsilon(x^*_i) f(x∗)≈i=1∑∣∂xi∗∂f∣ϵ(xi∗)
减少误差的原则
- 数值稳定性
- 初始误差 ϵ 0 \epsilon_0 ϵ0 引入的误差累积 ϵ t \epsilon_t ϵt 不增长, 称作数值稳定.
- 数值稳定性原则
- 要避免两相近数相减
- ϵ ( z ∗ ) = ϵ ( x ∗ − y ∗ ) = ϵ ( x ∗ ) + ϵ ( y ∗ ) = ∣ x ∗ ∣ ϵ ( x ∗ ) + ∣ y ∗ ∣ ϵ ( y ∗ ) ∣ z ∗ ∣ \epsilon(z^*) = \epsilon(x^* - y^*) = \epsilon(x^*) + \epsilon(y^*) = \frac{|x^*| \epsilon(x^*) + |y^*| \epsilon(y^*)}{|z^*|} ϵ(z∗)=ϵ(x∗−y∗)=ϵ(x∗)+ϵ(y∗)=∣z∗∣∣x∗∣ϵ(x∗)+∣y∗∣ϵ(y∗)
- 要避免除数绝对值远远小于被除数绝对值的除法
- ϵ ( x ∗ y ∗ ) ≈ ∣ y ∗ ∣ ϵ ( x ∗ ) + ∣ x ∗ ∣ ϵ ( y ∗ ) ∣ y ∗ ∣ 2 = ϵ ( x ∗ ) ∣ y ∗ ∣ + ϵ ( y ∗ ) ∣ y ∗ ∣ ∣ x ∗ ∣ ∣ y ∗ ∣ \epsilon(\frac{x^*}{y^*}) \approx \frac{|y^*| \epsilon(x^*) + |x^*| \epsilon(y^*)}{|y^*|^2} = \frac{\epsilon(x^*)}{|y^*|} + \frac{\epsilon(y^*)}{|y^*|} \frac{|x^*|}{|y^*|} ϵ(y∗x∗)≈∣y∗∣2∣y∗∣ϵ(x∗)+∣x∗∣ϵ(y∗)=∣y∗∣ϵ(x∗)+∣y∗∣ϵ(y∗)∣y∗∣∣x∗∣
- 要防止大数“吃掉”小数
- 计算机的有效数位
- 简化计算步骤&减少运算次数
- 要避免两相近数相减
- 经典技术
- 从小到大分组求和
- 等价公式化简
- 快速幂算法
- 秦九韶算法
第2章 插值法
Lagrange插值
V 0 , ⋯ , n ( x 0 , ⋯ , x n ) = [ 1 x 0 ⋯ x 0 n ⋮ 1 x n ⋯ x n n ] V_{0, \cdots, n}(x_{0}, \cdots, x_{n}) = \begin{bmatrix} 1 & x_{0} & \cdots & x_{0}^n \\ & & \vdots & \\ 1 & x_{n} & \cdots & x_{n}^n \\ \end{bmatrix} V0,⋯,n(x0,⋯,xn)=⎣⎢⎡11