拉格朗日插值法+python实现
拉格朗日插值法
- 1.数学原理
- 1.1 线性插值
- 1.2二次插值
- 1.3 n次拉格朗日插值多项式
- 2.Python实现
本文将介绍拉格朗日插值法得数学原理,并用Python实现。
1.数学原理
首先我们得知道一个定理:给定n+1个互异节点,则它的n次插值多项式是唯一存在的。
1.1 线性插值
线性插值即一次插值
已知:
求解:L1(x)=a1x+a0L_1(x)=a_1x+a_0 L1(x)=a1x+a0
根据点斜式得到:
L1(x)=y0+(y1−y0)(x1−x0)(x−x0)L_1(x)=y_0+\frac{(y_1-y_0)}{(x_1-x_0)}(x-x_0) L1(x)=y0+(x1−x0)(y1−y0)(x−x0)
即:
L1(x)=(x−x1)(x0−x1)y0+(x−x0)(x1−x0)y1L_1(x)=\frac{(x-x1)}{(x_0-x_1)}y_0+\frac{(x-x0)}{(x_1-x_0)}y_1 L1(x)=(x0−x1)(x−x1)y0+(x1−x0)(x−x0)y1
这就是一次拉格朗日多项式
令
l0(x)=(x−x1)(x0−x1)l_0(x)=\frac{(x-x1)}{(x_0-x_1)} l0(x)=(x0−x1)(x−x1)
l1(x)=(x−x0)(x1−x0)l_1(x)=\frac{(x-x0)}{(x_1-x_0)} l1(x)=(x1−x0)(x−x0)
则一次拉格朗日多项式就可以表示为
l1(x)=y0l0(x)+y1l1(x)l_1(x)=y_0l_0(x)+y_1l_1(x) l1(x)=y0l0(x)+y1l1(x)
1.2二次插值
已知:
求解:
L2(x)=a2x2+a1x+a0L_2(x)=a_2x^2+a_1x+a_0 L2(x)=a2x2+a1x+a0
采用以下方法构造,令
L2(x)=A(x−x1)(x−x2)+B(x−x0)(x−x2)+C(x−x0)(x−x1)L_2(x)=A(x-x_1)(x-x_2)+B(x-x_0)(x-x_2)+C(x-x_0)(x-x_1) L2(x)=A(x−x1)(x−x2)+B(x−x0)(x−x2)+C(x−x0)(x−x1)
可以解出:
A=y0(x0−x1)(x0−x2)A=\frac{y_0}{(x_0-x_1)(x_0-x_2)} A=(x0−x1)(x0−x2)y0
B=y1(x1−x0)(x1−x2)B=\frac{y_1}{(x_1-x_0)(x_1-x_2)} B=(x1−x0)(x1−x2)y1
C=y2(x2−x0)(x2−x1)C=\frac{y_2}{(x_2-x_0)(x_2-x_1)} C=(x2−x0)(x2−x1)y2
于是可以得到:
L2(x)=∑i=12(∏i=0,i≠j2x−xixj−xi)yjL_2(x)=\sum\limits_{i=1}^{2}(\prod\limits_{i=0,i\neq{j}}^{2}\frac{x-x_i}{x_j-x_i})y_j L2(x)=i=1∑2(i=0,i=j∏2xj−xix−xi)yj
该式称为二次拉格朗日多项式
如果令:
l0(x)=(x−x1)(x−x2)(x0−x1)(x0−x2)l_0(x)=\frac{(x-x1)(x-x_2)}{(x_0-x_1)(x_0-x_2)} l0(x)=(x0−x1)(x0−x2)(x−x1)(x−x2)
l1(x)=(x−x0)(x−x2)(x1−x0)(x1−x2)l_1(x)=\frac{(x-x0)(x-x_2)}{(x_1-x_0)(x_1-x_2)} l1(x)=(x1−x0)(x1−x2)(x−x0)(x−x2)
l2(x)=(x−x0)(x−x1)(x2−x0)(x2−x1)l_2(x)=\frac{(x-x0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} l2(x)=(x2−x0)(x2−x1)(x−x0)(x−x1)
则
L2(x)=y0l0(x)+y1l1(x)+y2l2(x)L_2(x)=y_0l_0(x)+y_1l_1(x)+y_2l_2(x) L2(x)=y0l0(x)+y1l1(x)+y2l2(x)
1.3 n次拉格朗日插值多项式
由前面得规律可以得到n次拉格朗日插值多项式:
L2(x)=∑i=1n(∏i=0,i≠jnx−xixj−xi)yjL_2(x)=\sum\limits_{i=1}^{n }(\prod\limits_{i=0,i\neq{j}}^{n}\frac{x-x_i}{x_j-x_i})y_j L2(x)=i=1∑n(i=0,i=j∏nxj−xix−xi)yj
2.Python实现
import numpy as npdef LagrangeInterpolation(x):grid_x = np.array([4, 5, 6])k = len(grid_x)value = np.array([10, 5.25, 1])result = 0for j in range(k):result_l = 1for i in range(k):if i != j:result_l = result_l * (x - grid_x[i]) / (grid_x[j] - grid_x[i])result = result + value[j] * result_lreturn resultif __name__ == '__main__':x=18result=LagrangeInterpolation(x)print(result)
结果如下:
-11.0
参考:https://blog.csdn.net/u011699626/article/details/120394802
拉格朗日插值法+python实现相关推荐
- 解读 拉格朗日插值法python,保你学明白
文章目录 概述拉格朗日插值法 什么是插值法 拉格朗日插值法的原理 拉格朗日公式 拉格朗日插值法的代码实现 Python 进行拉格朗日插值的主要知识点 Polyfit 函数 Polyval 函数 Lin ...
- 缺失值处理 - 拉格朗日插值法 - Python代码
目录 缺失值处理 拉格朗日差值法的理论基础 拉格朗日插值法代码实现 其他数据预处理方法 缺失值处理 处理缺失值常用的办法可分为三类:删除记录.数据插补.不处理. 其中常见的数据插补法有: 如果通过删除 ...
- 拉格朗日插值法--python
数据分析 数据清洗:缺失值处理.1删除记录 2数据插补 3不处理 数据 链接:https://pan.baidu.com/s/1jiIOoselsqVQR4P_EaS3pA 提取码:t970 常见插补 ...
- 拉格朗日插值法python实现
目录 1.原理 2.涉及的Python库 3.例子 1.原理 对某个多项式函数有已知的k+1个点,假设任意两个不同的都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为: L(x)=∑j= ...
- 拉格朗日插值法——python代码实现
一.拉格朗日的基本思想: 二.线性插值 三.多个点 四.代码实现 def lagrange(xx,y):l=len(y)l_n = 0for k in range(l):xxx=xx.copy()x_ ...
- 拉格朗日插值法《python数据分析与挖掘实践》
数据清洗 数据清洗主要是删除原始数据集中地无关数据.重复数据.平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值.异常值等. 缺失值处理的方法可分为3类:删除记录.数据插补和不处理. 删除含有缺失值 ...
- 拉格朗日插值法 【python】
一.插值 设函数y=f(x)在区间[a,b]上连续,给定n+1个点 a≤x0<x1<....<xn≤b 已知,f(xk)=yk(k=0,1....n),在函数类P中寻找一个函数Φ(x ...
- python拉格朗日插值法_Python实现的拉格朗日插值法示例
本文实例讲述了Python实现的拉格朗日插值法.分享给大家供大家参考,具体如下: 拉格朗日插值简单介绍 拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法. 许多实际问题中都 ...
- 拉格朗日插值python代码_Python实现的拉格朗日插值法示例
本文实例讲述了Python实现的拉格朗日插值法.分享给大家供大家参考,具体如下: 拉格朗日插值简单介绍 拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法. 许多实际问题中都 ...
最新文章
- HDU2899(二分查找+or+模拟退火算法)
- git fetch比较差异
- linux程序员的proc文件系统
- HDU 4556 Stern-Brocot Tree
- 李宏毅深度学习——Backpropagation
- 债券指数(Bond Index)
- [Golang]slice值传递存在的问题
- Vue项目 报错TypeError [ERR INVALID ARG TYPE]: The “path“ argument must be of type string
- 基于DevExpress XtraGrid控件实现的凭证式显示
- paip.支付宝即时到账接口改双功能接口.txt
- java右移位_Java移位运算
- 计算机中丢失msvcp120.dll是什么意思,win7系统玩游戏提示“msvcp120.dll丢失”怎么修复...
- 使用财务系统所用到的会计基础知识(一)
- html写一个轮播图响应式布局,响应式banner图片轮播布局代码
- 明日之后什么服务器物品最便宜,明日之后:玩家晒物价最低的服务器,看到uzi标价,观众直接酸了...
- 这些商业心理你了解吗?
- 砂土液化判别计算工具
- linux修改ipaddr,并保存
- adb shell bugreport分析
- 小米扫地机器人充电座指示灯不亮_小米扫地机器人常见问题处理 充电后无法取电怎么办?...
热门文章
- matlab 差分方程画图,怎样用Matlab求解差分方程题概念.ppt
- 如何合理而有效的进行控制系统冗余设计
- ping不通阿里云服务器的公网ip的解决
- idea工具栏添加快捷图标(添加快速打开文件所在电脑位置图标)
- js找你妹微信小游戏源码
- UE-c++ className.generated.h报错:generated header must be included last in a list of includes
- Django开发个人博客网站——16、给博客添加上评论功能
- 电驱动系列:十七、相绕组的磁势、分布系数、绕组系数及齿谐波(电机篇)
- weka_ 聚类分析实例演练
- python 文本聚类分析案例——从若干文本中聚类出一些主题词团