问题标签 [numerical-integration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
632 浏览

python - odeint <-> interp1d 相互作用中可能存在的错误?

作为 MATLAB 的转换者,我对 python 和 scipy 比较陌生。我正在对 scipy.integrate 中的 odeint 函数进行快速测试,并遇到了这个潜在的错误。考虑以下代码段:

我制作了一个图表来说明两种结果的差异,请单击此处

至少对我来说,你如何看待这种毫无根据的结果差异?我在 Python 2.6.6 之上使用 NumPy 版本 1.5.0 和 SciPy 版本 0.8.0

0 投票
3 回答
4682 浏览

python - 寻找用于在镶嵌域上进行数值积分的 Python 包

我想知道是否有人知道基于 numpy/scipy 的 python 包可以在曲面细分域(在我的特定情况下,一个由 voronoi 单元限制的二维域)上对复杂的数值函数进行数值积分?过去,我使用了 matlab 文件交换中的几个包,但如果可能的话,我想留在我当前的 python 工作流程中。matlab例程是

http://www.mathworks.com/matlabcentral/fileexchange/9435-n-dimensional-simplex-quadrature

对于正交和网格生成,使用:

http://www.mathworks.com/matlabcentral/fileexchange/25555-mesh2d-automatic-mesh-generation

任何关于网格生成以及对该网格进行数值积分的建议都将不胜感激。

0 投票
2 回答
808 浏览

numerical-methods - 在由离散点包围的区域上,函数与给定点集(有限和离散)处已知值的数值积分?

令 D 为由一系列点 {x_i,y_i} (1<=i<=N) 界定的区域。(该区域不必是凸的,并且这些点应该沿着边界曲线。)

令 f 是在 D 上定义的函数,但我们只知道它在给定点集(有限和离散)上的值,例如 {x'_i,y'_i,f(x'_i,y'_i)} (1<= i<=N')。(给定的数据集不需要在 D 中“密集”。)

如何进行 f 对 D 的数值积分?

这是我的想法:
1)首先我们应该通过这些点系列之间的线段来近似 D 的边界。
2)然后我们应该对给定的数据集做一些插值。然而,二维插值并不总是可行的。然后我就卡住了。

你能帮忙吗?谢谢你。

0 投票
1 回答
895 浏览

python - 在 Cython 的 cdef 语句中使用 scipy.integrate.quad?

我正在尝试通过将其转换为 Cython 来加速我的 Python。它使用函数 scipy.integrate.quad,它需要一个可调用的 Python 作为其参数之一。有什么方法可以在 Cython 的 cdef 语句中定义和传递函数,以便我可以使用它?

谢谢。

0 投票
3 回答
4733 浏览

python - Python中的数值积分与向量化函数的自适应求积

我正在寻找一个超级数字求积函数。它应该具有以下三个属性:

  • 自适应 - 它自动调整采样点的密度以适应被积函数。这是绝对必要的,因为我的被积函数非常不均匀且计算成本很高。
  • 向量化 - 为了提高效率,它调用样本点列表上的被积函数,而不是一次调用一个点。
  • 能够处理向量值函数 - 向量值被积函数的所有分量同时计算而无需额外成本,因此单独集成所有分量是没有意义的。

此外,它应该是:

  • 2D - 我要计算的积分是平面区域上的双积分,我希望能够为整个积分指定整体(相对)容差并让它适当地管理误差预算。

有人知道有这样功能的库吗?即使是四个属性中的两个或三个也总比没有好。

我正在使用 Python 和 SciPy,所以如果它已经可以与 Python 一起使用,那将是一个额外的好处。(但我也可以编写胶水代码让它在必要时调用我的被积函数。)

0 投票
2 回答
4626 浏览

matlab - Trapz 给出否定结果:为什么?

我正在尝试对Generalized Normal Distribution进行数值积分。我希望它下面的面积是1。我得到的是-1。为什么会这样?

0 投票
3 回答
4339 浏览

matlab - 求解受限于给出非负解的延迟微分方程 (DDE) 系统

在 MATLAB 中,ode45有一个名为的参数NonNegative将解约束为非负数。他们甚至写了一篇关于这种方法如何工作的论文,以及它如何不像将 y_i 设置为 0 那样愚蠢,因为它通常不会起作用。

现在,MATLAB 也有dde23用于求解延迟微分方程的功能,但NonNegative该积分器没有等效参数。

不幸的是,我的任务是向现有的 ODE 系统添加延迟,该系统可以使用ode45with NonNegativeenabled 解决。

任何想法我应该如何进行?

编辑:

我不确定这是否有帮助,但是...

我系统的 DDE 部分基本上如下所示:

其中X(第三个等式中的大写字母变量)是 的延迟版本x。然后,我将这个 DDE 系统链接到现有的(和更大的)ODE 系统,方法是在x和的方程中添加几个项z,然后将组合系统整合在一起。

0 投票
4 回答
9019 浏览

matlab - 如何克服数值积分中的奇点(在 Matlab 或 Mathematica 中)

我想在数字上整合以下内容:

eq1

在哪里

eq2

a,bβ是常量,为简单起见,都可以设置为1

Matlab usingdblquad和 Mathematica usingNIntegrate都不能处理分母产生的奇异性。由于它是一个双积分,我无法指定 Mathematica 中的奇点在哪里。

我确信它不是无限的,因为这个积分是基于微扰理论并且没有

在此处输入图像描述

以前发现过(只是不是我发现的,所以我不知道它是如何完成的)。

有任何想法吗?

0 投票
1 回答
1090 浏览

matlab - 这个积分可以在 Matlab 或 Mathematica 中以数值方式完成吗?

我希望能够完全以数字方式进行下面的积分。

方程

其中n,ε一种,b测试版是常量,为简单起见,都可以设置为1

可以手动或使用 Mathematica 解析地完成积分x,然后y可以使用 NIntegrate 数值地完成积分,但这两种方法给出不同的答案。

分析:

数值方法1:

数字 2:

所以这两种数值方法都没有给出-0.0160323. 我理解为什么——第一种方法对分母造成的无穷大有问题,而第二种方法有效地删除了导致问题的积分部分。但我希望能够整合另一个无法通过分析简化的积分(一个更难x的积分)。上面的积分为我提供了一种测试任何新方法的方法,因为我知道答案应该是什么。yz

0 投票
2 回答
360 浏览

numerical-integration - 数值积分

一般来说,当您进行数值评估和积分时,比如在 MATLAB 中,我只是选择一个较大的数字作为边界还是有办法告诉 MATLAB “取极限”?

我假设您只使用大数字,因为不同的机器将能够处理不同数量级的数字。

我只是想知道他们是否是改进我的代码的一种方法。我正在通过蒙特卡洛进行大量期望值计算,并且经常使用梯形方法来检查我自己的自由度是否足够小。