给定一些数据,生成函数的方式有两种:插值,回归。
插值而得到的函数通过数据点,回归得到的函数不一定通过数据点。
下面给出拉格朗日插值,牛顿插值和Hermite插值的程序,
具体原理可参考课本,不再赘述。
拉格朗日插值法
线性插值 一次精度 需要2个节点
二次插值 二次精度 需要3个节点
n次插值 n次精度 需要n+1个节点
拉格朗日插值代码段(根据传入数据自动判断次数):
# 返回多项式
其中lu_solve(A,b)是自己写的轮子,可以用numpy的numpy.linalg.sovle(A,b)来代替
到后面会有一期讲矩阵方程直接法,会有讲到如何写lu_solve()
看一看插值的效果如何
import
![48d40c03394f1a690f79b3a528c9e7fa.png](https://img-blog.csdnimg.cn/img_convert/48d40c03394f1a690f79b3a528c9e7fa.png)
可以看到,插值之后的函数可以较好地反映原数据点的情况。
牛顿插值法
涉及到的两个表,差分表和差商表: