多项式插值,分段插值

插值法

插值法是离散数学中的重要工具,主要是根据已知的数据点,来预测未知数据点(例如极值点)的方法。例如。已知 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(x1x2)(x1x3)(xx2)(xx3)+f2(x2x1)(x2x3)(xx1)(xx3)+f3(x3x1)(x3x2)(xx1)(xx2)
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(x2x3)+f2(x3x1)+f3(x1x2)]f1(x22x32)+f2(x32x12)+f3(x12x22)

现在我们有四个点 ( 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)=(x2x1)2f2f1f1(x2x1)(xx1)2+f1(xx1)+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)]} μ=x12[f2f1f1(x2x1)]f1(x2x1)2

后面的迭代跟三点法二次插值一样。


分段插值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值