• 大小: 58KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Python
  • 标签: python  图像显示  

资源简介

通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组中,通过插值方法计算得到的对应纵坐标存放于动态数组中。 本实验将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.xml

     文件        225  2017-11-26 15:41  project1\.idea\misc.xml

     文件        270  2017-11-26 15:40  project1\.idea\modules.xml

     文件        459  2017-11-26 15:41  project1\.idea\PYPROJECT.iml

     文件      39485  2017-12-12 16:19  project1\.idea\workspace.xml

     文件       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


评论

共有 条评论