插值法
插值法是离散数学中的重要工具,主要是根据已知的数据点,来预测未知数据点(例如极值点)的方法。例如。已知 f f f函数经过了n个数据点,可以求一个n-1次的插值函数 P P P,使得插值函数 P ( x ) P(x) P(x)尽量接近原函数 f ( x ) f(x) f(x),并由插值函数来预测未知的数据点。(通常是因为 f f f的极值不好求,用而用于拟合的插值函数一般是比较好求极值的函数,例如多项式。)
多项式插值
二次插值
三点法二次插值
要求已知
f
f
f在三个点
x
1
<
x
2
<
x
3
x_1< x_2 <x_3
x1<x2<x3上的值
f
1
,
f
2
,
f
3
f_1, f_2, f_3
f1,f2,f3,并且满足
f
1
>
f
2
<
f
3
f_1> f_2< f_3
f1>f2<f3(为了确保f在
[
x
1
,
x
3
]
[x_1, x_3]
[x1,x3]上有极小值)。那么二次插值函数
P
P
P满足:
P
(
x
i
)
=
a
0
+
a
1
x
+
a
2
x
2
=
f
i
,
∀
i
=
1
,
2
,
3
P(x_i) = a_0 + a_1x + a_2x^2 = f_i, \forall i = 1,2,3
P(xi)=a0+a1x+a2x2=fi,∀i=1,2,3
求解上面方程组可得:
P
(
x
)
=
f
1
(
x
−
x
2
)
(
x
−
x
3
)
(
x
1
−
x
2
)
(
x
1
−
x
3
)
+
f
2
(
x
−
x
1
)
(
x
−
x
3
)
(
x
2
−
x
1
)
(
x
2
−
x
3
)
+
f
3
(
x
−
x
1
)
(
x
−
x
2
)
(
x
3
−
x
1
)
(
x
3
−
x
2
)
P(x) = f_1\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x_3)} + f_2\frac{(x-x_1)(x-x_3)}{(x_2-x_1)(x_2-x_3)} + f_3\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_3-x_2)}
P(x)=f1(x1−x2)(x1−x3)(x−x2)(x−x3)+f2(x2−x1)(x2−x3)(x−x1)(x−x3)+f3(x3−x1)(x3−x2)(x−x1)(x−x2)
令
P
′
(
x
)
=
0
P'(x) = 0
P′(x)=0,可以求得
P
(
x
)
P(x)
P(x)的极小值点:
μ
=
f
1
(
x
2
2
−
x
3
2
)
+
f
2
(
x
3
2
−
x
1
2
)
+
f
3
(
x
1
2
−
x
2
2
)
2
[
f
1
(
x
2
−
x
3
)
+
f
2
(
x
3
−
x
1
)
+
f
3
(
x
1
−
x
2
)
]
\mu = \frac{f_1(x_2^2-x_3^2)+ f_2(x_3^2-x_1^2)+ f_3(x_1^2-x_2^2)}{2[f_1(x_2-x_3) + f_2(x_3-x_1) + f_3(x_1-x_2)]}
μ=2[f1(x2−x3)+f2(x3−x1)+f3(x1−x2)]f1(x22−x32)+f2(x32−x12)+f3(x12−x22)
现在我们有四个点
(
x
1
,
f
1
)
,
(
x
2
,
f
2
)
,
(
x
3
,
f
3
)
,
(
μ
,
f
(
μ
)
)
(x_1,f_1),(x_2,f_2),(x_3,f_3),(\mu, f(\mu))
(x1,f1),(x2,f2),(x3,f3),(μ,f(μ)),可以继续在里面找到最相邻的满足“两边大中间小”的三个点,然后继续重复上面的步骤,直到达到精度要求(一般停止的条件是
∣
μ
−
x
2
∣
<
ϵ
|\mu - x_2| < \epsilon
∣μ−x2∣<ϵ)。可以看下图方面理解:
两点法二次插值
只知道
x
1
x_1
x1的函数值
f
1
f_1
f1及导数
f
1
′
f_1'
f1′,以及
x
2
x_2
x2的函数值
f
2
f_2
f2。那么有:
P
(
x
i
)
=
a
0
+
a
1
x
+
a
2
x
2
=
f
i
,
i
=
1
,
2
P
′
(
x
1
)
=
a
1
+
2
a
2
x
=
f
1
′
\begin{aligned} P(x_i) &= a_0 + a_1x + a_2x^2 = f_i, \quad i = 1,2\\ P'(x_1) &= a_1 + 2a_2 x = f_1' \end{aligned}
P(xi)P′(x1)=a0+a1x+a2x2=fi,i=1,2=a1+2a2x=f1′
⇒ P ( x ) = f 2 − f 1 − f 1 ′ ( x 2 − x 1 ) ( x 2 − x 1 ) 2 ⋅ ( x − x 1 ) 2 + f 1 ′ ( x − x 1 ) + f 1 \Rightarrow P(x) = \frac{f_2 -f_1-f_1'(x_2-x_1)}{(x_2-x_1)^2}\cdot (x-x_1)^2 + f_1' (x-x_1) + f_1 ⇒P(x)=(x2−x1)2f2−f1−f1′(x2−x1)⋅(x−x1)2+f1′(x−x1)+f1
令
P
′
(
x
)
=
0
P'(x) = 0
P′(x)=0,可以求得
P
(
x
)
P(x)
P(x)的极小值点:
μ
=
x
1
−
f
1
′
(
x
2
−
x
1
)
2
2
[
f
2
−
f
1
−
f
1
′
(
x
2
−
x
1
)
]
\mu = x_1 - \frac{f_1'(x_2-x_1)^2}{2[f_2 -f_1 - f_1'(x_2-x_1)]}
μ=x1−2[f2−f1−f1′(x2−x1)]f1′(x2−x1)2
后面的迭代跟三点法二次插值一样。