张瑞
中国科学技术大学数学科学学院
rui@ustc.edu.cn
插值
计算机只能处理、存贮有限的信息,如何来表达函数呢?
若已知函数形态,则存贮相关的系数。如:
通过存贮$a_0,a_1,\cdots,a_n$ 来表示多项式$a_0+a_1x+\cdots+a_nx^n$ ,
或者存贮$a,b,c$ 来表示函数$a\sin(bx+c)$ 。
更一般、复杂的函数,只能存贮它的有限个点上的函数值。通过这有限个点,如何研究函数的特性?
在实际问题中,往往只能观察到某物理量在有限个点处的值。
如何从这有限个点值将物理量的函数恢复出来,进而研究该物理量的特性呢?
它们的共同的数学模型 是:已知函数$f(x)$ 在若干个点处的函数值,如何恢复这个原来的函数$f(x)$ ?
通过有限个点的函数有无穷多个。因此,想要得到原来的函数是不可能的。
只能找一个原来函数的近似函数。这样,可以找一个性质 “好 ” 的, 形式上熟悉的近似函数;
定义 1 .
$\{x_i\}_{i=0}^n$ 是$n+1$ 个互不相同的点,函数$f(x)$ 在这些节点上的函数值为$f(x_i)$ ,
$\Phi$ 是已知的函数类(函数空间)。若$\Phi$ 中存在一个函数$g(x)$ ,使得
\[g(x_i)=f(x_i), i=0,1,\cdots,n
\]
则称$g(x)$ 是$f(x)$ 的一个插值函数 。$f(x)$ 称为原函数 。$\{x_i\}$ 称为插值节点 。
找一个性质“好”的近似函数,可以通过使用熟悉的函数类来得到。如:
多项式 $P_n=span\{1,x,x^2,\cdots,x^n\}$ ;
三角函数 $S_n=span\{1,\cos x,\sin x,\cos 2x, \sin 2x,\cdots,\cos nx,\sin nx\}$
插值函数的存在唯一性
怎么得到$g(x)$ ?
设$\Phi=span\{\phi_0(x),\cdots,\phi_m(x)\}$ 是一个$m+1$ 维的线性空间,则
\[g(x)=a_0\phi_0(x)+\cdots+a_m\phi_m(x)
\]
想办法求出$a_0,\cdots,a_m$ 即找到了$g(x)$ 。
由插值的要求,$g(x)$ 满足
\[g(x_i)=a_0\phi_0(x_i)+\cdots+a_m\phi_m(x_i)=f(x_i), i=0,1,\cdots,n
\]
写成矩阵形式,有
\[\begin{pmatrix}
\phi_0(x_0) & \phi_1(x_0) & \cdots & \phi_m(x_0) \\
\phi_0(x_1) & \phi_1(x_1) & \cdots & \phi_m(x_1) \\
\vdots & \vdots & & \vdots \\
\phi_0(x_n) & \phi_1(x_n) & \cdots & \phi_m(x_n) \\
\end{pmatrix}
\begin{pmatrix}
a_0 \\ a_1 \\ \vdots \\ a_m
\end{pmatrix}
=\begin{pmatrix}
f(x_0) \\ f(x_1) \\ \vdots \\ f(x_n)
\end{pmatrix}
\]
这是一个关于系数$a_0, \cdots, a_m$ 的线性方程组。
利用线性代数相关知识,可以分析出这个方程的解结构。
特别地,有
定理 1 .
若$m=n$ ,且
\[\left|\begin{matrix}
\phi_0(x_0) & \phi_1(x_0) & \cdots & \phi_n(x_0) \\
\phi_0(x_1) & \phi_1(x_1) & \cdots & \phi_n(x_1) \\
\vdots & \vdots & & \vdots \\
\phi_0(x_n) & \phi_1(x_n) & \cdots & \phi_n(x_n) \\
\end{matrix}\right|\neq 0
\]
则插值函数$g(x)$ 存在唯一。
插值多项式
在已知的函数形态中,多项式是最早接触到、形式简单的一类函数。它特别适合计算机使用:
计算一个多项式只需要四则运算,方便编程
一个多项式的积分与导数仍然是一个多项式,且可以方便的得到任意阶导数和任意次的积分
多项式还有一些特性,如:
$f(x)$ 是一个$n$ 次多项式,若$f(a)=0$ ,则有$f(x)=g(x)(x-a)$ ,且$g(x)$ 是一个$n-1$ 次多项式。
若$f(a)=0$ ,且$f'(a)=0$ ,则有$f(x)=g(x)(x-a)^2$ ,且$g(x)$ 是一个$n-2$ 次多项式。
由于多项式的诸多优秀的特性,在以后的学习中,一直使用多项式来近似 。
回到插值过程,若节点$\{x_i\}_{i=0}^n$ 互不相同,在$n$ 次多项式空间$P_n=span\{1,x, x^2,\cdots, x_n\}$ 中找插值函数。
由线性代数知识,有
\[\left|\begin{matrix}
1 & x_0 & \cdots & x_0^n \\
1 & x_1 & \cdots & x_1^n \\
\vdots & \vdots & & \vdots \\
1 & x_n & \cdots & x_n^n
\end{matrix}\right|=\prod_{i,j=0, \\ j>i}^n(x_j-x_i)\neq 0
\]
这是一个Vandermonde行列式。因此,有结论
定理 2 .
$n+1$ 个互不相同节点上的$n$ 次插值多项式存在且唯一。
待定系数法得到插值多项式
前面已经给出了求解插值多项式的一种方法 – 待定系数。
设插值多项式是$g(x)=a_0+a_1x+\cdots+a_n x^n$ ,由插值条件,可以得到线性方程组
\[\begin{cases}
a_0+a_1 x_0+\cdots+a_n x_0^n & = f(x_0) \\
a_0+a_1 x_1+\cdots+a_n x_1^n & = f(x_1) \\
\cdots \\
a_0+a_1 x_n+\cdots+a_n x_n^n & = f(x_n) \\
\end{cases}
\]
解方程,得到系数$a_0, \cdots, a_n$ 。
例 1 . 求过点$(1, 3)$ , $(2, 2)$ , $(3, 4)$ 的插值多项式。
解 . 总共3个点,因此使用2次多项式。
设$g(x)=a_0+a_1 x+a_2 x^2$ ,则有
\[\begin{cases}
a_0+ a_1 + a_2 &=3 \\
a_0+2a_1 + 4 a_1&=2 \\
a_0+3a_1 + 9 a_2&=4 \\
\end{cases}
\]
解 . 设多项式是
\[g(x)=a_0+a_1(x-2)+a_2(x-2)^2
\]
则有
\[\begin{cases}
a_0-a_1+a_2&=3 \\
a_0&=2 \\
a_0+a_1+a_2&=4
\end{cases}
\]
解 . 设多项式是
\[g(x)=a_0+a_1(x-2)+a_2(x-1)(x-3)
\]
则有
\[\begin{cases}
a_0-a_1&=3 \\
a_0-a_2&=2 \\
a_0+a_1&=4
\end{cases}
\]
方法的不足 :
需要解一个线性方程组,
Vandermonde矩阵是一个病态矩阵 。
当$n$ 比较大($>10$ )时,数值上的小扰动,会带来明显的计算误差。
当一个点处的函数值发现了变化,需要重新求解整个线性方程组
Lagrange插值
设插值多项式是
\[g(x)=f(x_0)l_0(x)+f(x_1)l_1(x)+\cdots+f(x_n)l_n(x)
\]
其中$l_i(x), i=0,\cdots,n$ 是次数不超过$n$ 次的多项式。
由插值的定义,
\[f(x_0)=g(x_0)=f(x_0)l_0(x_0)+f(x_1)l_1(x_0)+\cdots+f(x_n)l_n(x_0)
\]
因此,可以假定成立
\[l_0(x_0)=1, l_i(x_0)=0, i=1,2,\cdots,n
\]
类似地,由
\[f(x_1)=g(x_1)=f(x_0)l_0(x_1)+f(x_1)l_1(x_1)+\cdots+f(x_n)l_n(x_1)
\]
可以得到
\[l_0(x_1)=0, l_1(x_1)=1, l_i(x_1)=0, i=2,3,\cdots,n
\]
对$i=0,1,\cdots,n$ ,由
\[\begin{aligned}
f(x_i)=g(x_i)=f(x_0)l_0(x_i)+\cdots+f(x_i)l_i(x_i)+\cdots+f(x_n)l_n(x_i)
\end{aligned}
\]
都有
\[l_i(x_i)=1, l_j(x_i)=0, j=0,1,\cdots,j-1,j+1,\cdots,n
\]
可以得到如下的表
$l_0(x)$ $l_1(x)$ $\cdots$ $l_n(x)$
$x_0$ 1 0 $\cdots$ 0
$x_1$ 0 1 $\cdots$ 0
$\vdots$ $\vdots$ $\vdots$ $\vdots$
$x_n$ 0 0 $\cdots$ 1
可以看出,函数$l_i(x)$ 满足
$l_i(x_j)= \delta_{ij}=\begin{cases} 1, & i=j \\ 0, & i\neq j \end{cases}$
$l_i(x)$ 有零点$x_0$ , $x_1$ , $\cdots$ , $x_{i-1}$ , $x_{i+1}$ , $\cdots$ , $x_n$ , 因此有
\[l_i(x)=a_i(x-x_0)\cdots(x-x_{i-1})(x-x_{i+1})\cdots(x-x_n)
\]
其中$a_i$ 是某个实数。又$l_i(x_i)=1$ ,即
\[a_i(x_i-x_0)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)=1
\]
解得
\[a_i=\frac1{(x_i-x_0)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)}
\]
得到
\[l_i(x)=\frac{(x-x_0)\cdots(x-x_{i-1})(x-x_{i+1})\cdots(x-x_n)}{(x_i-x_0)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)}
\]
定义 2 .
称
\[l_i(x)=\frac{(x-x_0)\cdots(x-x_{i-1})(x-x_{i+1})\cdots(x-x_n)}{(x_i-x_0)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)}
\]
为Lagrange基函数 。
插值函数
\[f(x_0)l_0(x)+f(x_1)l_1(x)+\cdots+f(x_n)l_n(x)
\]
为Lagrange插值 ,记为$L_n(x)$ 。
例 2 . 给出两点的线性Lagrange插值多项式
解 . 依题意,设节点是$x_0$ , $x_1$ ,则
\[L_1(x)=f(x_0)\frac{x-x_1}{x_0-x_1}+f(x_1)\frac{x-x_0}{x_1-x_0}
\]
例 3 . 给出三个节点$(x_0,f(x_0))$ , $(x_1,f(x_1))$ , $(x_2, f(x_2))$ 上的2次Lagrange插值多项式
例 4 . 通过点$(x_0, f(x_0))$ 的插值多项式是什么?
解 . 3个Lagrange插值基函数是
\[\begin{aligned}
l_0(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)} \\
l_1(x)=\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)} \\
l_2(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} \\
\end{aligned}
\]
插值多项式为
\[\begin{aligned}
L_2(x)=&f(x_0)\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}
+f(x_1)\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)} \\
&+f(x_2)\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} \\
\end{aligned}
\]
通过一个点$(x_0, f(x_0))$ 的插值多项式是常值函数
例 5 . 求过点$(1, 3)$ , $(2, 2)$ , $(3, 4)$ 的插值多项式。
解 . 插值节点是$1,2,3$ ,因此Lagrange插值基函数是
\[\begin{aligned}
l_0(x)=&\frac{(x-2)(x-3)}{(1-2)(1-3)} \\
l_1(x)=&\frac{(x-1)(x-3)}{(2-1)(2-3)} \\
l_2(x)=&\frac{(x-1)(x-2)}{(3-1)(3-2)} \\
\end{aligned}
\]
因此,插值函数为
\[g(x)=3\frac{(x-2)(x-3)}{(1-2)(1-3)}+2\frac{(x-1)(x-3)}{(2-1)(2-3)}
+4\frac{(x-1)(x-2)}{(3-1)(3-2)}
\]
可以看到
$L_n(x)$ 是一个次数不超过$n$ 次的多项式,
由插值多项式的存在唯一性知,$L_n(x)$ 与待定系数法得到的多项式是一样的,而它避开了求解一个病态的线性方程组。
当节点不变化时,Lagrange插值基函数也不会改变。
作业
证明$\{l_i(x)\}_{i=0}^n$ 是线性无关的。
节点$\{x_{0},\cdots,x_{k-1},x_{k+1},\cdots,x_{n}\}$ 上的$n-1$ 次Lagrange插值多项式记为$P_{k}(x)$ ,则有
\[L_n(x)=\frac{(x-x_j)P_{j}(x)-(x-x_i)P_{j}(x)}{x_i-x_j}
\]
Lagrange插值的伪代码
fx=0.0 ;
for i=0 ,n:
li=1.0 ;
for j=0 ,i-1 :
li=li*(t-x[j])/(x[i]-x[j]);
end for
for j=i+1 ,n:
li=li*(t-x[j])(x[i]-x[j])
end for
fx = fx+y[i]*li;
end for
// fx 即为 插值函数 在 t 处的值
程序作业
对一个已知表达式的函数$f(x), x\in[a,b]$ ,以及它的一个插值多项式$L_N(x)$ ,如何判定$L_N(x)$ 的插值效果?
一个不错的指标是取遍$[a,b]$ 中的所有值,看函数值与插值得到的值的误差中最大的有多大?即
\[E=\max_{x\in[a,b]} |f(x)-L_n(x)|
\]
如何得到这个值$E$ ?高等数学:先求导,再求导函数的零点, …
计算机说:在$[a,b]$ 中找几百个点,取这些点上误差的最大值近似为$E$
\[E\approx\max\{|f(y_j)-L_N(y_j)|,j=0,1,2,\cdots,500\}
\]
函数
\[f(x)=\dfrac{1}{1+x^2}, \quad x\in[-5,5]
\]
对$N=5,10,20,40$ ,取以下两组节点
(等距节点) $x_i=-5+\dfrac{10}{N}i$ ,$i=0,1,\cdots,N$
(Chebyshev点) $x_i=-5\cos(\dfrac{2i+1}{2N+2}\pi)$ ,$i=0,1,\cdots,N$
构造Lagrange插值函数$L_N(x)$ 。 用如下式子近似计算最大模误差:
\[E_N=\max\{|f(y_j)-L_N(y_j)|,j=0,1,\cdots,500\}
\]
其中,$ y_j=-5+10/500*j , j=0,1,\cdots,500 $ 。
提交的作业中,只需要$E_N$ 的值。结果给出至少12位有效数字。
输出结果格式如下:
第1组节点误差:
N=5 , X.XXXXXXXXXXXXXXXX E xxx
N=10 , X.XXXXXXXXXXXXXXXX E xxx
N=20 , X.XXXXXXXXXXXXXXXX E xxx
N=40 , X.XXXXXXXXXXXXXXXX E xxx
第2组节点误差:
N=5 , X.XXXXXXXXXXXXXXXX E xxx
N=10 , X.XXXXXXXXXXXXXXXX E xxx
N=20 , X.XXXXXXXXXXXXXXXX E xxx
N=40 , X.XXXXXXXXXXXXXXXX E xxx
误差分析
插值多项式当然跟原函数有误差,下面来分析一下这个误差。记
则,由插值的定义知
\[R_n(x_i)=f(x_i)-L_n(x_i)=0, i=0,1,\cdots,n
\]
因此,可以设
\[R_n(x)=K_n(x)(x-x_0)(x-x_1)\cdots(x-x_n)
\]
其中$K_n(x)$ 是一个未知的函数。
下面,想办法把$K_n(x)$ 表达出来。
对$f(x)$ 定义域内任意的数$a$ ,构造辅助函数
\[\phi(t)=f(t)-L_n(t)-K_n(a)(t-x_0)\cdots(t-x_n)
\]
为$t$ 的函数。有
\[\phi(x_i)=f(x_i)-L_n(x_i)=0, \quad i=0,1,\cdots,n
\]
及
\[\phi(a)=f(a)-L_n(a)-R_n(a)=0
\]
也就是说,点$\{x_i\}_{i=0}^n$ 及$a$ 均为函数$\phi(t)$ 的零点。
设$\phi(t)$ 的所有零点$\{x_0,\cdots,x_n,a\}$ 在区间$[b,c]$ 内,则
$\phi(t)$ 具有$n+2$ 个互不相同的零点,若$\phi(t)$ 可导,则由Rolle定理,至少存在$n+1$ 个互不相同的点是$\phi'(t)$ 的零点,这些零点在区间$(b,c)$ 内。
同样的,若$\phi'(t)$ 可导,则至少存在$(b,c)$ 内的$n$ 个互不相同的$\phi''(t)$ 的零点。
因此,若$\phi(t)$ 具有$n+1$ 阶导数,则至少存在一个点$\xi\in(b,c)$ 满足$\phi^{(n+1)}(\xi)=0$ 。
从$\phi(t)$ 的表达式中可以看到,$\phi(t)$ 的光滑性与$f(t)$ 的光滑性相关。若$f(x)$ 足够光滑(比如:有到$m$ 阶的连续导数),则$\phi(t)$ 也具有$m$ 阶连续导数。
若$f(x)$ 具有$n+1$ 阶导数,则存在$\xi$ 满足
\[0=\phi^{(n+1)}(\xi)=f^{(n+1)}(\xi)-K_n(a)(n+1)!
\]
即有
\[K_n(a)=\frac{f^{(n+1)}(\xi)}{(n+1)!}
\]
由$a$ 的任意性,可以得到误差表达式
\[R_n(x)=f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)
\]
注 .
$f(x)$ 的光滑性对误差表达式的影响很大。
例 6 . 已知$\sin\frac{\pi}6=\frac12$ , $\sin\frac{\pi}4=\frac{\sqrt 2}2$ , $\sin\frac{\pi}3=\frac{\sqrt 3}2$ ,用1次和2次Lagrange插值近似$\sin50^\circ$ ,并估计误差
解 . 求解位置$x=50^\circ=\frac{5\pi}{18}$ 。记$x_0=\frac{\pi}6$ , $x_1=\frac{\pi}4$ , $x_2=\frac{\pi}3$ 。
先用$x_0$ , $x_1$ 做线性插值。得到插值多项式
\[L_1(x)=\frac12\frac{x-\frac{\pi}4}{\frac{\pi}6-\frac{\pi}4}
+\frac{\sqrt2}2\frac{x-\frac{\pi}6}{\frac{\pi}4-\frac{\pi}6}
\]
和误差表达式
\[R_1(x)=\frac{\sin^{(2)}(\xi)}{2!}(x-\frac{\pi}6)(x-\frac{\pi}4),\quad \xi\in(\frac{\pi}6,\frac{\pi}3)
\]
近似得到$\sin50^\circ\approx L_1(\frac{5\pi}{18})\dot=0.77614$ 。又
\[\sin^{(2)}(\xi)=-\sin(\xi)\in(-\frac{\sqrt3}2,-\frac12), \quad \xi\in(\frac{\pi}6,\frac{\pi}3)
\]
得到误差的范围
\[R_1(\frac{5\pi}{18})=-\sin(\xi)\frac12\frac{\pi}{18}\frac{4\pi}{18}
\in(-0.01319,-0.00762)
\]
比较真解$\sin50^\circ=0.7660444\cdots$ ,得到误差约为$-0.01001$ ,落在估计的区间内。
类似地,用$x_1$ , $x_2$ 做插值,得到估计值和误差$\tilde R_1$
\[\sin50^\circ\approx0.76008, \quad \tilde R_1\in(0.00538, 0.00660)
\]
实际误差约为$0.00596$
用$x_0$ , $x_1$ , $x_2$ 三个点构造二次插值多项式
\[\begin{aligned}
L_2(x)=&\frac12\frac{(x-\frac{\pi}4)(x-\frac{\pi}3)}{(\frac{\pi}6-\frac{\pi}4)(\frac{\pi}6-\frac{\pi}3)}
+\frac{\sqrt2}2\frac{(x-\frac{\pi}6)(x-\frac{\pi}3)}{(\frac{\pi}4-\frac{\pi}6)(\frac{\pi}4-\frac{\pi}3)} \\
&+\frac{\sqrt3}2\frac{(x-\frac{\pi}6)(x-\frac{\pi}4)}{(\frac{\pi}3-\frac{\pi}6)(\frac{\pi}3-\frac{\pi}4)}
\end{aligned}
\]
及误差
\[R_2(x)=\frac{\sin^{(3)}(\xi)}{3!}(x-\frac{\pi}6)(x-\frac{\pi}4)(x-\frac{\pi}3), \xi\in(\frac{\pi}6,\frac{\pi}3)
\]
得到
\[L_2(\frac{5\pi}{18})\approx0.76543, \quad R_2(\frac{5\pi}{18})\in(0.00044,0.00077)
\]
实际误差约为$0.00061$
在插值中,所求点$x$ 落在节点$\{x_i\}_{i=0}^n$ 所组成的区间外部的插值,又称为外插 。从上面的例子可以看到,通常内插的误差要小于外插的误差 。
上面的例子还可以看到,高阶插值的误差要小于低阶插值的误差 。
事后误差估计
误差表达式中的$f^{(n+1)}(\xi)$ 在实际应用中,是不可计算的。
若$f(x)$ 已知,则可以通过$\xi$ 的范围来得到$f^{(n+1)}(\xi)$ 的取值范围,进而给出误差的取值范围来。
若$f(x)$ 也未知,则没办法得到误差的范围。
在实际应用中,事后误差估计 方法可以对误差进行估计。
设节点$\{x_0,x_1,\cdots,x_n\}$ 上的插值多项式是$L_n(x)$ ,则有误差
\[f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)\cdots(x-x_n)
\]
替换一个节点,节点组$\{x_1,x_2,\cdots,x_{n+1}\}$ 上的插值多项式是$\tilde L_n(x)$ ,误差为
\[f(x)-\tilde L_n(x)=\frac{f^{(n+1)}(\eta)}{(n+1)!}(x-x_1)\cdots(x-x_{n+1})
\]
这里,做一个假设 : $f^{(n+1)}(\eta)\approx f^{(n+1)}(\xi)$ ,则有
\[\frac{f(x)-L_n(x)}{f(x)-\tilde L_n(x)}\approx\frac{x-x_0}{x-x_{n+1}}
\]
得到
\[f(x)\approx\frac{x-x_{n+1}}{x_0-x_{n+1}}L_n(x)+\frac{x-x_0}{x_{n+1}-x_0}\tilde L_n(x)
\]
进而,$L_n(x)$ 的误差可以估计为
\[f(x)-L_n(x)\approx\frac{x-x_0}{x_{n+1}-x_0}\left(\tilde L_n(x)-L_n(x)\right)
\]
这样计算出来的误差的近似值,就是事后误差估计 。
注意 :
推导过程中,假设$f^{(n+1)}(\eta)\approx f^{(n+1)}(\xi)$ 是没有数学依据的,
因此得到的误差估计既可能比真实误差大,也可能比真实误差小。从数学上说,这个数值没有意义。
但实际使用中,效果挺好。
设真解$x$ 与近似解$\tilde x$ 之间有误差$r$ ,则有
若有$|r|<r_0$ ,则可以得到
\[|x-\tilde x|<r_0 \Rightarrow \tilde x-r_0<x<\tilde x+r_0
\]
也就是说,可以得到真解$x$ 的范围(可能取到的最大值,或最小值)。
若有$|r|>r_1$ ,则有
\[|x-\tilde x|>r_1 \Rightarrow x>\tilde x+r_1 \,\mbox{or}\, x<\tilde x- r_1
\]
也就是说,真解$x$ 甚至可能是$\pm\infty$ 。这样,得到的近似值$\tilde x$ 就没有任何参考价值了。
注 .
在误差推导中,可以放大误差的绝对值,但不能缩小误差的绝对值
在事后误差估计公式的推导中
需要预先得到公式的误差表达式。
需要更换条件,计算至少2次。
对表达式中不可计算的量做近似表达,然后近似表达出原函数来。
以后来会使用这种手段来得到误差的近似值。