Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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 numpy中的数值积分_Python_Arrays_Numpy_Numerical Integration - Fatal编程技术网

Python numpy中的数值积分

Python numpy中的数值积分,python,arrays,numpy,numerical-integration,Python,Arrays,Numpy,Numerical Integration,我想做一些非常简单的事情,但在numpy的深处找不到它。我想对一个由其值(而不是其公式)给出的函数进行数值连续积分。这意味着我只需要一个数组,它保存输入数组开头的和。例如: 输入: [ 4, 3, 5, 8 ] 输出: [ 4, 7, 12, 20 ] # [ sum(i[0:1]), sum(i[0:2]), sum(i[0:3]), sum(i[0:4]) ] 听起来很直截了当,所以我希望这一定很容易,因为我目前找不到一些numpy功能 我找到了类似于scipy.integrate.q

我想做一些非常简单的事情,但在
numpy
的深处找不到它。我想对一个由其值(而不是其公式)给出的函数进行数值连续积分。这意味着我只需要一个数组,它保存输入数组开头的和。例如:

输入:

[ 4, 3, 5, 8 ]
输出:

[ 4, 7, 12, 20 ]  # [ sum(i[0:1]), sum(i[0:2]), sum(i[0:3]), sum(i[0:4]) ]
听起来很直截了当,所以我希望这一定很容易,因为我目前找不到一些
numpy
功能

我找到了类似于
scipy.integrate.quad()
的东西,但它似乎在给定的范围内(从a到b)进行积分,并返回一个值。我需要一个数组作为输出。

您只需要


您正在寻找
numpy.cumsum

   >>> numpy.cumsum([ 4, 3, 5, 8 ])
   array([ 4,  7, 12, 20])
您可以使用(
pip install quadpy
),这是我的一个项目,它与
scipy.integrate.quad()
进行矢量化计算相对。为它提供许多区间,并返回这些区间上的所有积分值

导入numpy
导入四边形
a=0.0
b=3.0
h=1.0e-2
n=int((b-a)/h)
x0=numpy.linspace(a,b,num=n,endpoint=False)
x1=x0+h
间隔=numpy.stack([x0,x1])
VAL=四边形。直线\线段。积分(
λx:numpy.sin(x),
间隔,
四边形直线段GaussLegendre(5)
)
res=单位积数(VAL)
将matplotlib.pyplot作为plt导入
plt.plot(x1,numpy.sin(x1),label='f')
plt.绘图(x1,res,label='F')
plt.legend()
plt.show()

这种集成如何?输出是生成输入值的函数的stemfunction的值。啊,明白了。对于未来的读者来说,这就是stem函数的样子。然后我们使用黎曼和。数值积分是在给定一个域和一个函数的情况下逼近一个积分的过程。既然你已经有了STEM函数,这个问题不是关于数值积分的。@NicoSchlömer你错了。我没有可用的STEM功能;我想在这个过程中创建它。我指的是它的价值,而不是它的公式。因此,一体化。不过随你怎么说,很好!但事实上,我有一大堆数字想要不断地求和(现在我知道,
np.cumsum()
就是这样做的。然而,有人发现我对这个(数值积分)的措词太误导了,以至于他从根本上重新表述了我的问题,以至于最后看起来我在搜索函数。我解开了它(在我看来太严格了)改变。我想你的答案是在这段时间内给出的。@Nico你不能编辑一个问题,这样你就可以写一个答案,而这个问题的主要目标似乎是推广你的软件。@importanceofbeinger非常感谢你的回答。这个问题很不清楚,特别是它与数值积分的关系;请参阅讨论n位于原始帖子下方。从
我没有可用的stemfunction;我想在过程中创建它。[…]
,我发现问题确实与此有关。我开始相应地编辑这篇文章,经过一些修改后给出了一个答案,即创建反派生的答案。我确实使用了我编写的一个包,但我看不出有什么问题。
   >>> numpy.cumsum([ 4, 3, 5, 8 ])
   array([ 4,  7, 12, 20])