拉格朗日插值的简单分享,了解拉格朗日插值并进行简单运用
下面我们来简单介绍一下什么是插值:
插值:用经过有限的点的线(函数)来近似代替实际值的变化
思路:
两个点一条直线就可以穿过,直线一个未知数,一维。
三个点一条抛物线就可以穿过,。
n个点一个n-1维的多项式就可以穿过。
实现:
1.两个点:y=k*+b代入两个点
2. 三个点:y=ax^2+bx+c,两个未知数,二维。用三个抛物线相加得到,这三个抛物线分别为经过一个点为1,另两个点为0的抛物线,先看为什么,假设有三个点(x0,y0),(x1,y1),(x2,y2):
L0=,这个是y0的插值基函数,为什么呢,观察这个式子,当x=x0的时候,式子为1,即过点(x0,1),且在x1,x2点处都是零,再乘以y0就是一个完美的过(x0,y0),(x1,0),(x2,0)的抛物线。同理可得其余两个点的插值基函数
L1= ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210327121658992.png
L2=
此时的拉格朗日多项式为: Y=L0y0+L1y1+L2*y2
n个点:(x0,y0),(x1,y1)…(xn-1,yn-1)
L0=
此时即找到一条n-1次多项式,当x=x0时,L0等于1,其余点为0。
同理得到其他点的插值基函数。
最后得到的n-1次多项式函数过所有点:y=L0y0+L1y1+…+Ln*yn-1。
代码实现:
首先搞清楚问题是什么:问题就是输入n个点的坐标,然后得到一个过这n个点的方程,再把预测值的某个坐标代入方程得出预测的另一个坐标。
思路:
输入多少个点n,然后输入n个点的坐标。
利用循环语句先写出每个坐标的插值基函数,然后与其纵坐标相乘加和得到y。
输出结果:
你学费了吗。第一篇博客,做得不好,有问题请大家指出。