shenzhangzhou / chazhifa

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于样条插值的实现
1.综述
在实际工程应用与科学研究中,各个因素往往存在这函数的依赖关系。因为具体的表达式,
我们并不明确了解,故我们只能得到些离散的数值,从中挖掘出有用的信息,来构造函数
的近似表达式。而插值法证实构造函数的近似表达方法。本文讲比较各个插值法的优缺点,
并重点介绍样条插值的原理、实现及可视化。
2.常见的多项式插值公式构造
1)拉格朗日插值法
已知n+1点(xi,yi) (i=0,1,2,,n) ,求一个n次多项式Pn(x),使 Pn(xi)=yi (i=0,1,2,,n)
 
拉格朗日插值法在理论分析中十分简便,因为结构紧凑,很容易得到形象的描述算法,
但是缺点也是显而易见的,当我们的插值节点发生变化时,所有的插值基函数都要重新构
造,不利于我们计算,因而便提出了牛顿插值多项式算法。
2)牛顿插值法
 
其中  称为n次牛顿多项式,  成为插值余项。
 
显而易见,即当插值节点增加后,仅在原有计算结果的基础上增加一些项,增加节点前的
所有计算结果均起作用,不会造成计算的浪费。
3)埃尔米特(Hermite)插值法
  
这是带完全的一阶导数的埃尔米特插值公式。
4)分段插值法
主要是解决插值结点数增加时,插值多项式的次数随之增加,而带来剧烈振荡的问题。为
了既要增加插值结点,减少差值区间,以便更好的逼近被插值函数,又要不增加插值多项
式的次数以减少误差,故我们采用分段插值的方法。
所谓分段插值就是通过插值点用折线段连接,来逼近  。其优点在于只要结点间距充分小,
总能活的所要求的精度,另一优点为它的局部性质,即如果修改某个数据,那么插值曲线
仅仅在某个局部范围内有影响,而不会影响全局。
5)样条插值法
即条件要求有二阶连续导数。一般常用的是3次样条函数  ,其基本**是讲插值区间n等
分后,在每一个小区间上,采用分段3次埃尔米特。
3.样条插值法的实现
在这里主要使用的是Python这一开源语言。其中使用了numpy、scipy、matplotlib这3个
库。分别是矩阵运算、科学计算和画图工具库。搭建的是Anaconda3的集成开发环境。
(注:本文中使用的是Python3版本,与2.7略有区别,会出现不兼容的形况。)

About


Languages

Language:Python 100.0%