gpt4 book ai didi

python - 数值积分循环 Python

转载 作者:行者123 更新时间:2023-11-28 20:26:23 24 4
gpt4 key购买 nike

我想编写一个程序,在一个循环中求解下面的定积分,该循环考虑每次迭代中常数 c 的不同值。

然后我希望将积分的每个解输出到一个新数组中。

我如何最好地用 Python 编写这个程序?

enter image description here

限制在 0 到 1 之间。

从 scipy 导入整合

integrate.quad

在这里是可以接受的。我的主要困难是构建程序。

这是一个旧的尝试(失败了)

# import c
fn = 'cooltemp.dat'
c = loadtxt(fn,unpack=True,usecols=[1])

I=[]
for n in range(len(c)):

# equation
eqn = 2*x*c[n]

# integrate
result,error = integrate.quad(lambda x: eqn,0,1)

I.append(result)

I = array(I)

最佳答案

例如计算 [0, 9] 中 c 的给定积分:

[scipy.integrate.quadrature(lambda x: 2 * c * x, 0, 1)[0] for c in xrange(10)]

这是使用 list comprehensionlambda functions .

或者,您可以定义函数,该函数返回给定 c 的积分作为 ufunc (感谢vectorize)。这或许更符合 numpy 的精神。

>>> func = lambda c: scipy.integrate.quadrature(lambda x: 2 * c * x, 0, 1)[0]
>>> ndfunc = np.vectorize(func)
>>> ndfunc(np.arange(10))
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])

关于python - 数值积分循环 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com