我无法安装任何新东西,我需要使用默认的python库,我必须集成一个函数。我可以获得任何f(x)的值,我需要为函数f(x)从0到6进行积分。
答案 0 :(得分:8)
在离散形式中,积分只是求和,即
其中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
请注意,我们在此处使用higher-order functions。具体来说,f
是传递给integrate
的函数。 a
,b
是我们的界限,dx
默认为1/10。这允许我们将新的集成函数应用于我们希望的任何函数,如下所示:
# the linear function, y = x
def linear(x):
return x
integrate(linear, 1, 6) // output: 17.85
# or using lamdba function we can write it directly in the argument
# here is the quadratic function, y=x^2
integrate(lambda x: x**2, 0, 10) // output: 338.35
答案 1 :(得分:0)
您可以使用quadpy(超出我的动物园范围):
import numpy
import quadpy
def f(x):
return numpy.sin(x) - x
val, err = quadpy.quad(f, 0.0, 6.0)
print(val)
-17.96017028290743
答案 2 :(得分:-1)
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()
使用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