资源简介
通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组中,通过插值方法计算得到的对应纵坐标存放于动态数组中。
本实验将Lagrange插值、Newton插值和三次样条插值实现为一个类,并在Button单击事件中调用该类相应函数,得出插值结果并画出图像。

代码片段和文件信息
import matplotlib.pyplot as plt
import interP as pi
# t:根据t为几输出不同算法图像,num:取点个数
def gui(t num):
x1 = range(100)
x2 = []
y1 = []
y2 = range(100)
for i in range(100):
y1.append(0)
x2.append(0)
# print(x1 y1)
plt.plot(x1 y1)
plt.plot(x2 y2)
# plt.show()
pos = plt.ginput(num)
# print(pos)
x = []
y = []
for k in range(num):
x.append(int(pos[k][0]))
y.append(int(pos[k][1]))
# print(x y)
n = len(x)
x.sort()
li = pi.PyInterpolation(x y n)
lj = pi.PyInterpolation(x y n)
lk = pi.PyInterpolation(x y n)
‘调用插值函数,形成坐标组‘
while True:
plt.figure()
# plt.plot(x y)
if t == 1:
li.lagrange()
plt.plot(li.X li.Y)
break
elif t == 2:
li.newton()
plt.plot(li.X li.Y)
break
elif t == 3:
li.spline()
plt.plot(li.X li.Y)
break
elif t == 4:
li.lagrange()
plt.plot(li.X li.Y linewidth=‘1‘ label=“lagrange“ color=‘red‘)
plt.legend(loc=‘upper right‘)
# print(li.X li.Y)
lj.newton()
plt.plot(lj.X lj.Y linewidth=‘1‘ label=“newton“ color=‘blue‘)
plt.legend(loc=‘upper right‘)
# print(lj.X lj.Y)
lk.spline()
plt.plot(lk.X lk.Y linewidth=‘1‘ label=“spline“ color=‘green‘)
plt.legend(loc=‘upper right‘)
# print(lk.X lk.Y)
break
plt.show()
‘根据t不同画不同插值函数的图‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 228 2017-11-26 15:40 project1\.idea\inspectionProfiles\profiles_settings.xm
文件 225 2017-11-26 15:41 project1\.idea\misc.xm
文件 270 2017-11-26 15:40 project1\.idea\modules.xm
文件 459 2017-11-26 15:41 project1\.idea\PYPROJECT.iml
文件 39485 2017-12-12 16:19 project1\.idea\workspace.xm
文件 1770 2017-12-05 17:56 project1\draw.py
文件 103101 2017-11-28 08:14 project1\easygui.py
文件 2096 2017-12-08 17:34 project1\interP.py
文件 1219 2017-12-05 18:15 project1\setUI.py
文件 1384 2017-12-05 17:56 project1\__pycache__\draw.cpython-35.pyc
文件 72673 2017-11-28 08:28 project1\__pycache__\easygui.cpython-35.pyc
文件 2800 2017-12-08 17:43 project1\__pycache__\interP.cpython-35.pyc
目录 0 2017-12-13 22:38 project1\.idea\inspectionProfiles
目录 0 2017-12-13 22:38 project1\.idea
目录 0 2017-12-13 22:38 project1\__pycache__
目录 0 2017-12-13 22:38 project1
----------- --------- ---------- ----- ----
225710 16
相关资源
- Python-BDD100K大规模多样化驾驶视频数据
- Instant Pygame for Python Game Development How
- Biopython Tutorial
- Think Python 2nd
- 一个小小的表白程序(python)
- Python课堂笔记(高淇400集第一季)
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
评论
共有 条评论