【数值分析学习笔记】——3、插值与多项式逼近

本文介绍了拉格朗日插值多项式,通过线性和二次实例演示其原理,并拓展至任意次数。接着,牛顿插值多项式被详细阐述,包括线性、二次及一般形式,以及系数计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3、插值与多项式逼近

   种类:拉格朗日插值多项式、牛顿插值多项式、Hermite插值、样条插值等等。

3.1拉格朗日插值多项式

news_20191112_2    最简单的插值是用直线连接两个数据点。如右图,这种方法称为线性插值(linear interpolation)。由直线斜率相等得:

f(x)−f(x1)x−x1=f(x2)−f(x1)x2−x1\frac{{f(x) - f({x_1})}}{{x - {x_1}}} = \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}xx1f(x)f(x1)=x2x1f(x2)f(x1)   整理得到:

f(x)=f(x1)+f(x2)−f(x1)x2−x1(x−x1)f(x) = f({x_1}) + \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}(x - {x_1})f(x)=f(x1)+x2x1f(x2)f(x1)(xx1)

   将线性插值的公式进行重新整理可以得到:
f(x)=x−x2x1−x2f(x1)+x−x1x2−x1f(x2)f(x) = \frac{{x - {x_2}}}{{{x_1} - {x_2}}}f({x_1}) + \frac{{x - {x_1}}}{{{x_2} - {x_1}}}f({x_2})f(x)=x1x2xx2f(x1)+x2x1xx1f(x2)   即将线性插值多项式看成由直线相连的两个点的加权平均,就是拉格朗日插值多项式:


f(x)=L1f(x1)+L2f(x2)f(x) = {L_1}f({x_1}) + {L_2}f({x_2})f(x)=L1f(x1)+L2f(x2)

   其中L是加权系数。由此推断,第一个加权系数可以是在x处等于1,在x,处等于0的直线:L1=x−x2x1−x2{L_1} = \frac{{x - {x_2}}}{{{x_1} - {x_2}}}L1=x1x2xx2。同理,第二个系数是在x处等于1、在x处等于0的直线:L2=x−x1x2−x1{L_2} = \frac{{x - {x_1}}}{{{x_2} - {x_1}}}L2=x2x1xx1。(这里有点像有限元当中的形函数)。公式:
f(x)=x−x2x1−x2f(x1)+x−x1x2−x1f(x2)f(x) = \frac{{x - {x_2}}}{{{x_1} - {x_2}}}f({x_1}) + \frac{{x - {x_1}}}{{{x_2} - {x_1}}}f({x_2})f(x)=x1x2xx2f(x1)+x2x1xx1f(x2)称为线性拉格朗日插值多项式。
   一次、二次以及更高次的拉格朗日多项式都可以简写为:fn−1(x)=∑i=1nLi(x)f(xi){f_{n - 1}}(x) = \sum\limits_{i = 1}^n {{L_i}(x)f({x_i})}fn1(x)=i=1nLi(x)f(xi) 其中:Li(x)=∏j=1nx−xjxi−xj(i≠j){L_i}(x) = \prod\limits_{j = 1}^n {\frac{{x - {x_j}}}{{{x_i} - {x_j}}}} {\rm{ }}(i \ne j)Li(x)=j=1nxixjxxj(i=j) n=数据点的个数。

3.2牛顿插值多项式

   线性插值:
f1(x)=f(x1)+f(x2)−f(x1)x2−x1(x−x1){f_1}(x) = f({x_1}) + \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}(x - {x_1})f1(x)=f(x1)+x2x1f(x2)f(x1)(xx1) b1=f(x1){b_1} = f({x_1})b1=f(x1)b2=f(x2)−f(x1)x2−x1{b_2} = \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}b2=x2x1f(x2)f(x1) 则:f(x)=b1+b2(x−x1)f(x) = {b_1} + {b_2}(x - {x_1})f(x)=b1+b2(xx1)

   二次插值:
f2(x)=b1+b2(x−x1)+b3(x−x1)(x−x2){f_2}(x) = {b_1} + {b_2}(x - {x_1}) + {b_3}(x - {x_1})(x - {x_2})f2(x)=b1+b2(xx1)+b3(xx1)(xx2)   确定系数值,首先令x=x1x = {x_1}x=x1得到:b1=f(x1){b_1} = f({x_1})b1=f(x1),再令x=x2x = {x_2}x=x2得到:b2=f(x2)−f(x1)x2−x1{b_2} = \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}b2=x2x1f(x2)f(x1),最后令x=x3x = {x_3}x=x3得到:b3=f(x3)−f(x2)x3−x2−f(x2)−f(x1)x2−x1x3−x1{b_3} = \frac{{\frac{{f({x_3}) - f({x_2})}}{{{x_3} - {x_2}}} - \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}}}{{{x_3} - {x_1}}}b3=x3x1x3x2f(x3)f(x2)x2x1f(x2)f(x1)
   牛顿插值多项式的一般形式:
   考虑用(n-1)次多项式拟合n个数据点,前面的分析可以进行推广。(n-1)次插值多项式为:
fn−1(x)=b1+b2(x−x1)+⋯+bn(x−x1)(x−x2)⋯(x−xn−1){f_{n - 1}}(x) = {b_1} + {b_2}(x - {x_1}) + \cdots + {b_n}(x - {x_1})(x - {x_2}) \cdots (x - {x_{n - 1}})fn1(x)=b1+b2(xx1)++bn(xx1)(xx2)(xxn1)

   与线性插值与二次插值一样,系数b1,b2,b3,⋯ ,bn{b_1},{b_2},{b_3}, \cdots ,{b_n}b1,b2,b3,,bn由数据点确定。 (n-1)次多项式需要n个数据点: 。可以用这些数据点和下面的公式计算系数:
b1=f(x1),b2=f[x2,x1],b3=f[x3,x2,x1]⋯ ,bn=f[xn,xn−1,⋯ ,x2,x1]{b_1} = f({x_1}),{\rm{ }}{b_2} = f[{x_2},{x_1}],{\rm{ }}{b_3} = f[{x_3},{x_2},{x_1}] \cdots ,{\rm{ }}{b_n} = f[{x_n},{x_{n - 1}}, \cdots ,{x_2},{x_1}]b1=f(x1),b2=f[x2,x1],b3=f[x3,x2,x1],bn=f[xn,xn1,,x2,x1]
   带方括号的函数值表示为有限均差。例如一阶有限均差表示为:
f[xi,xj]=f(xi)−f(xj)xi−xjf[{x_i},{x_j}] = \frac{{f({x_i}) - f({x_j})}}{{{x_i} - {x_j}}}f[xi,xj]=xixjf(xi)f(xj)
   两个一阶均差的差分是二阶有限均差,它的一般表示形式为:
f[xi,xj,xk]=f[xi,xj]−f[xj,xk]xi−xkf[{x_i},{x_j},{x_k}] = \frac{{f[{x_i},{x_j}] - f[{x_j},{x_k}]}}{{{x_i} - {x_k}}}f[xi,xj,xk]=xixkf[xi,xj]f[xj,xk]
   n阶有限均差为:
f[xn,xn−1,⋯ ,x2,x1]=f[xn,xn−1,…,x2]−f[xn−1,xn−2,…,x1]xn−x1f[{x_n},{x_{n - 1}}, \cdots ,{x_2},{x_1}] = \frac{{f[{x_n},{x_{n - 1}}, \ldots ,{x_2}] - f[{x_{n - 1}},{x_{n - 2}}, \ldots ,{x_1}]}}{{{x_n} - {x_1}}}f[xn,xn1,,x2,x1]=xnx1f[xn,xn1,,x2]f[xn1,xn2,,x1]

xi{x_i}xif(xi)f({x_i})f(xi)一阶二阶三阶
x1{x_1}x1f(x1)f({x_1})f(x1)f[x2,x1]=f(x2)−f(x1)x2−x1f[{x_2},{x_1}] = \frac{{f({x_2}) - f({x_1})}}{{{x_2} - {x_1}}}f[x2,x1]=x2x1f(x2)f(x1)f[x3,x2,x1]=f[x3,x2]−f[x2,x1]x3−x1f[{x_3},{x_2},{x_1}] = \frac{{f[{x_3},{x_2}] - f[{x_2},{x_1}]}}{{{x_3} - {x_1}}}f[x3,x2,x1]=x3x1f[x3,x2]f[x2,x1]f[x4,x3,x2,x1]=f[x4,x3,x2]−f[x3,x2,x1]x4−x1f[{x_4},{x_3},{x_2},{x_1}] = \frac{{f[{x_4},{x_3},{x_2}] - f[{x_3},{x_2},{x_1}]}}{{{x_4} - {x_1}}}f[x4,x3,x2,x1]=x4x1f[x4,x3,x2]f[x3,x2,x1]
x2{x_2}x2f(x2)f({x_2})f(x2)f[x3,x2]=f(x3)−f(x2)x3−x2f[{x_3},{x_2}] = \frac{{f({x_3}) - f({x_2})}}{{{x_3} - {x_2}}}f[x3,x2]=x3x2f(x3)f(x2)f[x4,x3,x2]=f[x4,x3]−f[x3,x2]x4−x2f[{x_4},{x_3},{x_2}] = \frac{{f[{x_4},{x_3}] - f[{x_3},{x_2}]}}{{{x_4} - {x_2}}}f[x4,x3,x2]=x4x2f[x4,x3]f[x3,x2]
x3{x_3}x3f(x3)f({x_3})f(x3)f[x4,x3]=f(x4)−f(x3)x4−x3f[{x_4},{x_3}] = \frac{{f({x_4}) - f({x_3})}}{{{x_4} - {x_3}}}f[x4,x3]=x4x3f(x4)f(x3)
x4{x_4}x4f(x4)f({x_4})f(x4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值