python - 如何在 Python 中绘制 e^(-t^2) 从 x=0 到 x=3 的积分?

标签 python math plot physics integral

我需要在 Python 中计算并绘制下面的积分:

函数 e^(-t^2) 从 x=0 到 x=3 的积分

到目前为止,我已经成功地使用辛普森法则计算积分。我正在努力解决的下一个问题是绘制 e^(-t^2) 与 x 从 x=0 到 x=3 的积分(参见上图)。

这是我编写的用于计算积分的代码 -

from math import exp

def f(t):
    return exp(-(t**2))

a = 0
b = 3
h = 0.1
N = int((b-a)/h)
s_even = 0
s_odd = 0

for k in range(1,N,2):
    s_odd += f(a+k*h)

for k in range(2,N,2):
    s_even += f(a+k*h)

s = f(a) + f(b) + 4*s_odd + 2*s_even
Integral = h*s/3
print(Integral)

然后我如何创建这个积分的图表?

最佳答案

这是我编写的一个脚本,用于执行计算并使用 PyQtGraph 绘制它。 :

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg

from math import exp

class I:

    def f(self,t):
        return exp(-(t**2))

    def __init__(self, a = 0, b = 3, h = 0.1):
        N = int((b-a)/h)
        s_even = s_odd = 0
        for k in range(1,N,2):
            s_odd += self.f(a+k*h)

        for k in range(2,N,2):
            s_even += self.f(a+k*h)

        s = self.f(a) + self.f(b) + 4*s_odd + 2*s_even
        self.I = h*s/3

    def __str__(self):
        return "I: %s" % self.I

def plot(array):
    app = QtGui.QApplication([])
    win = pg.GraphicsWindow(title="Basic plotting examples")
    win.resize(1000,600)
    win.setWindowTitle('pyqtgraph example: Plotting')

    # Enable antialiasing for prettier plots
    pg.setConfigOptions(antialias=True)

    p1 = win.addPlot(title="Basic array plotting", y=array)

    QtGui.QApplication.instance().exec_()

def main():
    a=0
    b=a+0.001
    points=[]
    while(a<3):
        points.append(I(a,b).I)
        a=b
        b=a+0.001
    plot(points)


## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
    main()

这是它绘制的图表:

enter image description here

关于python - 如何在 Python 中绘制 e^(-t^2) 从 x=0 到 x=3 的积分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53455648/

相关文章:

python - 在连通分量标记函数后计算图像矩

python - 我如何 json_normalize() df 中的特定字段并保留其他列?

python - Pandas 添加两个多索引数据帧

math - 如何将两个整数相除并在 Forth 中得到 float 的结果?

math - 检查三个圆是否适合一个三角形

matlab - 使绘图从 0 开始

MATLAB - xy曲线下的条纹区域(弯矩分布)

python - 无法使用贡献模块让 PELU 或 SineRelu 激活函数在 keras 中工作

javascript - 将给定观察者位置的太阳路径转换到谷歌地图上

matlab - 如何在 MATLAB 中绘制没有黑边的曲面图?