基于Python实现拉格朗日插值法
作者:泡泡怡 时间:2022-03-18 18:52:18
一、拉格朗日的基本思想
拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。
许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个简单函数,其恰好在各个现测的点取到观测到的值,这个函数可以是代数多项式,三角多项式等。
二、线性插值
三、多个点
四、代码实现
def lagrange(xx,y):
l=len(y)
l_n = 0
for k in range(l):
xxx=xx.copy()
x_k = xxx[k]
xxx.pop(k)
l_k = 1
for i in range(len(xxx)):
l_k *= (x - xxx[i]) / (x_k -xxx[i])
l_n += y[k] * l_k
return expand(l_n)
五、完整代码
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sympy import expand
from sympy.abc import x
xx=[]
for i in range(7):
xx.append(data['x'][i])
y=[]
for j in range(7):
y.append(data['y'][j])
def lagrange(xx,y):
l=len(y)
l_n = 0
for k in range(l):
xxx=xx.copy()
x_k = xxx[k]
xxx.pop(k)
l_k = 1
for i in range(len(xxx)):
l_k *= (x - xxx[i]) / (x_k -xxx[i])
l_n += y[k] * l_k
return expand(l_n)
lagrange_interpolation_polynomial = lagrange(xx, y)
print("拉格朗日插值多项式为:",lagrange_interpolation_polynomial)
x2=np.linspace(-1,4,100)
y1=[]
for i in range(len(x2)):
y1.append(lagrange_interpolation_polynomial.subs(x,x2[i]))
print(y1)
#绘制散点图,逼近函数
plt.figure(figsize=(8,4))
plt.scatter(xx,y,c='red')
plt.plot(x2,y1,'-')
plt.show()
六、pop()函数
七、结果展示
来源:https://blog.csdn.net/m0_72662900/article/details/128278422
标签:Python,拉格朗日插值
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python实现连接dr校园网示例详解
2022-09-20 05:00:45
![](https://img.aspxhome.com/file/2023/2/72022_0s.png)
基于python获取本地时间并转换时间戳和日期格式
2021-02-23 17:30:06
![](https://img.aspxhome.com/file/2023/9/86539_0s.png)
php计算两个整数的最大公约数常用算法小结
2023-11-20 00:29:01
Python设计模式之组合模式原理与用法实例分析
2023-04-12 16:15:28
![](https://img.aspxhome.com/file/2023/3/95563_0s.png)
django 使用全局搜索功能的实例详解
2023-01-26 05:56:56
bpython 功能强大的Python shell
2022-05-08 22:12:06
![](https://img.aspxhome.com/file/2023/9/100909_0s.png)
用python建立两个Y轴的XY曲线图方法
2023-06-30 15:01:26
![](https://img.aspxhome.com/file/2023/0/100850_0s.jpg)
python绘制横竖条形图的方法
2021-12-03 14:15:17
![](https://img.aspxhome.com/file/2023/0/98970_0s.jpg)
php中$_GET与$_POST过滤sql注入的方法
2023-07-13 14:38:12
Python使用Scrapy保存控制台信息到文本解析
2022-04-12 20:29:00
![](https://img.aspxhome.com/file/2023/9/97059_0s.jpg)
Python+django实现文件上传
2022-08-31 20:52:22
如何用ASP建立Index Server查询对象并为其参数赋值?
2010-06-11 19:59:00
python爬取youtube视频的示例代码
2021-10-02 16:25:26
![](https://img.aspxhome.com/file/2023/9/92499_0s.png)
分享PHP函数实现数字与文字分页代码
2023-11-14 12:32:54
Python Flask框架实现Proteus仿真Arduino与网页数据交互
2022-01-18 08:43:16
![](https://img.aspxhome.com/file/2023/0/89080_0s.png)
分享我们的select控件设计过程
2009-06-16 18:04:00
![](https://img.aspxhome.com/file/UploadPic/20096/16/01-92s.png)
Django集成百度富文本编辑器uEditor攻略
2021-01-11 21:43:21
安装并免费使用Pycharm专业版(学生/教师)
2023-09-27 08:14:13
![](https://img.aspxhome.com/file/2023/4/94054_0s.png)
Oracle 中文字段进行排序的sql语句
2009-09-26 18:58:00
php注册系统和使用Xajax即时验证用户名是否被占用
2023-09-12 05:27:55
![](https://img.aspxhome.com/file/2023/4/55524_0s.png)