91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

利用python中matplotlib庫,實現繪制牛頓插值、拉格朗日插值、三次樣條插值函數圖像。 隨機在圖像上產生5個隨機點,用三種插值方式求函數,并用python中matplotlib庫繪制在圖像上

資源截圖

代碼片段和文件信息

import?sys
from?PyQt5.QtWidgets?import?QApplication?QMainWindow?QSizePolicy?QPushButton
from?matplotlib.backends.backend_qt5agg?import?FigureCanvasQTAgg?as?FigureCanvas
from?matplotlib.figure?import?Figure
import?matplotlib.pyplot?as?plt
import?numpy?as?np
import?scipy.interpolate?as?spi

#顯示中文和負數
plt.rcParams[‘font.sans-serif‘]=[‘SimHei‘]
plt.rcParams[‘axes.unicode_minus‘]=False

class?App(QMainWindow):

????def?__init__(self):
????????super().__init__()
????????self.initUI()

????def?initUI(self):
????????self.setWindowtitle(“插值方法“)
????????self.setGeometry(200?200?640?400)

????????m?=?Interpolation(self?width=5?height=4)#實例化一個畫布對象
????????m.move(0?0)

????????#設置隨機數按鈕
????????button?=?QPushButton(‘隨機數‘?self)
????????button.setToolTip(“產生5個隨機數“)
????????button.move(520?20)
????????button.resize(100?75)
????????button.clicked.connect(m.main)

????????#設置牛頓插值按鈕
????????button?=?QPushButton(‘牛頓插值‘?self)
????????button.move(520?115)
????????button.resize(100?75)
????????button.clicked.connect(m.main1)

????????#設置拉格朗日按鈕
????????button?=?QPushButton(‘拉格朗日插值‘?self)
????????button.move(520?210)
????????button.resize(100?75)
????????button.clicked.connect(m.main2)

????????#設置三次樣條插值
????????button?=?QPushButton(‘三次樣條插值‘?self)
????????button.move(520?305)
????????button.resize(100?75)
????????button.clicked.connect(m.main3)
????????self.show()

#插值方法類
class?Interpolation(FigureCanvas):
????def?__init__(self?parent=None?width=5?height=4?dpi=100):
????????fig?=?Figure(figsize=(width?height)?dpi=dpi)
????????self.axes?=?fig.add_subplot(111)

????????FigureCanvas.__init__(self?fig)
????????self.setParent(parent)

????????FigureCanvas.setSizePolicy(self
???????????????????????????????????QSizePolicy.Expanding
???????????????????????????????????QSizePolicy.Expanding)
????????FigureCanvas.updateGeometry(self)
????????#初始為牛頓插值圖像
????????#self.main()
????????self.X?=?sorted(self.suiji(-20205))
????????self.Y?=?sorted(self.suiji(-20205))
????#牛頓插值函數
????def?newton_interpolation(XYinit):
????????sum=Y[0]
????????temp=np.zeros((len(X)len(X)))

????????#將第一行賦值
????????for?i?in?range(0len(X)):
????????????temp[i0]=Y[i]

????????temp_sum=1.0
????????for?i?in?range(1len(X)):
????????????#x的多項式
????????????temp_sum=temp_sum*(init-X[i-1])

評論

共有 條評論