Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中进行数值积分?_Python_Numerical Integration - Fatal编程技术网

如何在python中进行数值积分?

如何在python中进行数值积分?,python,numerical-integration,Python,Numerical Integration,我不能安装任何新的东西,我需要使用默认的python库,并且我必须集成一个函数。我可以得到任意f(x)的值,我需要对函数f(x)进行0到6的积分。在离散形式中,积分只是求和,即 其中n是样本数。如果我们将b-a/n设为dx(示例的“宽度”),那么我们可以用python编写如下内容: def integrate(f, a, b, dx=0.1): i = a s = 0 while i <= b: s += f(i)*dx i +=

我不能安装任何新的东西,我需要使用默认的python库,并且我必须集成一个函数。我可以得到任意f(x)的值,我需要对函数f(x)进行0到6的积分。

在离散形式中,积分只是求和,即

其中n是样本数。如果我们将b-a/n设为dx(示例的“宽度”),那么我们可以用python编写如下内容:

def integrate(f, a, b, dx=0.1):
    i = a
    s = 0
    while i <= b:
        s += f(i)*dx
        i += dx
    return s
使用python中的输入函数,您可以随机输入任何想要的数字并获得该函数,或者如果需要硬编码,您可以使用for循环并将数字附加到列表中

def func2():
    print "F(x) = 2x + 3"
    x = []
    for numbers in range(1,7):
        x.append(numbers)

    upd = 0
    for i in x:
        Fx = 2 * x[upd] + 3
        upd +=1
        print Fx

print func2()
编辑:如果您希望数字从0开始计数,请将范围内的第一个值设置为0,而不是1

您可以使用(在我的软件包中):

导入numpy
导入四边形
def f(x):
返回numpy.sin(x)-x
val,err=quadpy.quad(f,0.0,6.0)
打印(val)

为避免问题在未得到回答的情况下被关闭,请参阅本节评估函数,它不进行任何集成。您能否更详细地解释一下您想要的内容?您评估了[1,6]范围内的函数;海报需要[0,6]范围内的积分。我看不出你在任何地方处理过给定函数的定积分。请参阅前面的答案,以获得良好的演示。
def func():
    print "F(x) = 2x + 3"
    x = int(raw_input('Enter an integer value for x: '))
    Fx = 2 * x + 3
    return Fx

print func()
def func2():
    print "F(x) = 2x + 3"
    x = []
    for numbers in range(1,7):
        x.append(numbers)

    upd = 0
    for i in x:
        Fx = 2 * x[upd] + 3
        upd +=1
        print Fx

print func2()
-17.96017028290743