资源简介
通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组中,通过插值方法计算得到的对应纵坐标存放于动态数组中。
本实验将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实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论