在上一节计算方法(2)——插值法(附Python程序)当中,主要讲了插值法,介绍了龙格现象,并给出了插值法的代码。
这一讲主要分段插值中的分段线性插值和分段Hermite插值,并给出分段插值的Python程序。
在此之前需要注意一下,n为区间数,n+1为插值节点的个数。
分段线性插值
分段线性插值,需要两个列表,一个用于存放各点的x坐标,一个用于存放各点的y坐标。
因为分段插值的算法需要x坐标按顺序增长,而调用该函数时可能传入的是一些未经排序的散点,所以在传入xlist和ylist时,需要对xlist进行排序,同时ylist也要跟着变化。解决方法是转换成字典,再对字典的key值排序。
# 分段线性插值,需要两个列表
程序比较臃肿,还有优化空间。下面看一下效果:
if
这一段程序,根据传入的五个数据点,自动分了四段进行插值,所得函数如图。