-
大小: 5KB文件類型: .py金幣: 1下載: 0 次發(fā)布日期: 2021-05-29
- 語言: Python
- 標簽: python??matplotlib??Romberg??
資源簡介
[計算方法作業(yè)]利用python中matplotlib實現(xiàn)繪制龍貝格公式和變步長梯形法圖像,利用龍貝格公式及變步長積分兩種算法計算定積分,用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
#顯示中文和負數(shù)
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(“數(shù)值積分“)
????????self.setGeometry(200?50?800?600)
????????m?=?Integration(self?width=7?height=6)#實例化一個畫布對象
????????m.move(0?0)
????????#設置龍貝格按鈕
????????button?=?QPushButton(‘龍貝格算法‘?self)
????????button.move(700?75)
????????button.resize(100?75)
????????button.clicked.connect(m.Romberg1)
????????#設置變步長積分按鈕
????????button?=?QPushButton(‘變步長積分‘?self)
????????button.move(700?450)
????????button.resize(100?75)
????????button.clicked.connect(m.trap1)
????????self.show()
#數(shù)值積分類
class?Integration(FigureCanvas):
????def?__init__(self?parent=None?width=5?height=4?dpi=100?):
????????fig?=?Figure(figsize=(width?height)?dpi=dpi?frameon=False)
????????self.axes=[]
????????self.axes1?=?fig.add_subplot(211)
????????self.axes2?=?fig.add_subplot(212)
????????FigureCanvas.__init__(self?fig)
????????self.setParent(parent)
????????FigureCanvas.setSizePolicy(selfQSizePolicy.Expanding
???????????????????????????????????QSizePolicy.Expanding)
????????FigureCanvas.updateGeometry(self)
????????self.a=0
????????self.b=6
????????self.eps=0.0001
????????#挪動坐標位置
????????self.axes1.set_xlim(06)
????????self.axes2.set_xlim(06)
????????#去掉邊框
????????self.axes1.spines[‘top‘].set_color(‘none‘)
????????self.axes1.spines[‘right‘].set_color(‘none‘)
????????#移位置?設為原點相交
????????self.axes1.xaxis.set_ticks_position(‘bottom‘)
????????self.axes1.spines[‘bottom‘].set_position((‘data‘0))
????????self.axes1.yaxis.set_ticks_position(‘left‘)
????????self.axes1.spines[‘left‘].set_position((‘data‘0))
????????#去掉邊框
????????self.axes2.spines[‘top‘].set_color(‘none‘)
????????self.axes2.spines[‘right‘].set_color(‘none‘)
????????#移位置?設為原點相交
????????self.axes2.xaxis.set_ticks_position(‘bottom‘)
????????self.axes2.spines[‘bottom‘].set_position((‘data‘0))
????????self.axes2.yaxis.set_ticks_position(‘left‘)
????????self.axes2.spines[‘left‘].set_position((‘data‘0))
????????#初始為畫圖
????????self.x=np.linspace(06)
????????self.y=[self.func(i)?for?i?in?self.x]
????
- 上一篇:dish_recognition_SDK.py
- 下一篇:gan - 3.py
評論
共有 條評論