问题标签 [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 回答
7191 浏览

c - 从 0 到无穷大的数值积分

我的目标是在 C 编程语言中计算电子到氢原子核的距离的概率分布函数 (PDF) 的数值积分。我已经编写了一个示例代码,但是由于我无法根据需要增加限制,因此无法正确找到数值。我还包含了该库,但我不能将以下帖子中所述的值用作整数边界:C 中数据类型的最小值和最大值。在这种情况下有什么补救措施?也许应该切换到另一种编程语言?任何帮助和建议表示赞赏,在此先感谢。

编辑:经过一些值后,我得到了错误分段错误。我已经用 Wolframalpha 检查了积分的实际结果为 0.0372193。除此之外,如果我以较小的量增加 k,我会得到零,这就是我定义 r[k]=k 的原因,我知道它应该更小以提高精度。

最后代码:

编辑最后工作的代码:

特别是,我通过在除法运算中使用浮点数来更改 r[k] 的定义,结果得到一个长双精度数,而且正如我在上一条评论中所说,我不能选择大于 LONG_MAX/100 的 Ns我认为我应该进一步调查代码和 malloc 以解决问题。我找到了通过限制分析获得的确切值;除了我自己做之外,我已经用 TI-89 Titanium 和 Wolframalpha(数值和分析)确认了结果。当间隔大小减小时,梯形规则效果很好。非常感谢这里所有的海报提出他们的想法。顺便说一句,具有 2147483647 LONG_MAX 的值并没有我预期的那么大,限制不应该是 10 到 308 的幂吗?

0 投票
1 回答
3809 浏览

matlab - 当函数作为离散值给出时求解 ODE -matlab-

我有以下 ODE:

ode45用来解决它。我的解决方案是作为 dim(kx 1) 的向量给出的(通常是 k = 41,由 给出tspan)。

另一方面,我已经制作了一个与 (1) 中的模型近似的模型,但是为了比较第二个模型的准确度,我想通过 求解它(求解第二个 ODE)ode45。我的问题是这第二首颂歌是离散的:

f是离散的,而不是像 (1) 中的连续函数。我的价值观f是:

我现在想要的是使用ode45. 希望我能得到一个与(1)中的解决方案非常相似的解决方案。如何解决离散 ode 应用ode45?可以使用ode45吗?否则我可以使用Runge-Kutta,但我想公平地比较这两种方法,这意味着我必须以同样的方式解决它们。

0 投票
1 回答
63 浏览

c - 在另一个函数中调用一个函数作为变量

我对 c 编程有点陌生,我正在尝试将函数与梯形规则集成。我的功能是这样的:

我的问题是如何将通用函数传递给该函数?我希望这个集成梯形函数能够集成我需要的任何功能..

谢谢!奥马尔

0 投票
1 回答
5950 浏览

matlab - 在 Matlab 中前向 Euler 求解一阶 ODE 系统

我有两个从二阶 ODE 得到的一阶 ODE:

我的问题是如何设置正向欧拉?我有这个:

0 投票
1 回答
671 浏览

wolfram-mathematica - NMinimize 与数值积分

我试图通过最小化一个我知道使用 Mathematica 为零的方程来找到函数的系数。我的代码是:

我在最后一行之后得到的错误是:

有什么想法为什么我会出错?

谢谢

0 投票
1 回答
917 浏览

matlab - 如何更改 Matlab 的 ode45 求解器中的参数值

ode45我正在尝试在 Matlab中求解一个微分方程。我正在运行两个脚本:

然后在第二个脚本中,我有

我正在尝试使用 的三个值来求解方程omega1,但它给了我一个错误:

我尝试将其定义omega1为参数:function xdot=linearproblem(t,x,omega1),但这没有帮助。

0 投票
1 回答
355 浏览

matlab - Matlab的ode45没有将初始条件发送到函数中

我有一个快速的问题,我希望有一个相当简单的解决方案。我有一个看起来像这样的函数:

其中x是一个包含系统配置(位置和动量)的四个元素的列向量。我正在尝试ode45在此配置空间中对一些粒子进行数值积分,如下所示:

每次我尝试这个我都会失败,收到以下错误:

ode45将单个元素 , 传递给x=0,而不是预期myFunction的四个元素的向量。myFunction这导致索引错误。为什么会发生这种情况,我该如何解决?看来我没有ode45正确使用。

0 投票
0 回答
1639 浏览

python - 3d Trapz(或 Simps),如 Matlab

我有一个 3D 数组,我需要使用 Python 进行数值积分。我的阵列是波长、深度和时间的函数。这是我使用另一个软件包进行数字建模的数据,没有函数的分析形式,只是另一个包的 3d 数组输出。我需要找到这个数组的三重积分。在 Matlab 中,我使用 trapz(my_array, 3) 其中 3 是要集成的 ndim。Scipy trapz 似乎只适用于单个积分。

我想我可能有两个选择,但我需要一些建议。

选择 1. 在 scipy 中使用 3d 插值返回函数句柄,这些存在吗?1d 版本返回一个函数,然后使用 scipy.integrate.tplquad 对插值函数进行积分,其中我使用数组中的最大值和值作为积分限制。

选择 2. 使用三个嵌套的 trapz 调用,就像我在另一个站点上找到的 2d 建议一样。--> sp.trapz(sp.trapz(f, y[np.newaxis,:], axis=1), x, axis=0))

不能完全让我的头脑使任何一个工作。任何帮助/建议将不胜感激。我需要确保我的集成错误尽可能低。

0 投票
2 回答
576 浏览

r - R中的数值二重积分

我正在尝试在 R 中以数值方式计算双积分的值。我的代码和我尝试编写的方程式如下:

方程

当我编译并运行代码时,出现以下错误:

有人可以帮我解决错误或建议另一种解决问题的方法。

谢谢。

0 投票
2 回答
809 浏览

matlab - 插值函数内的 MATLAB 积分变量

我希望执行如下所示的集成。

我面临一个错误,因为我在插值函数中使用积分变量“u”。(如果我用某个常数替换插值函数内的 'u',则集成运行良好。)

您能否提供一些解决方法。

PS:为澄清起见, y=f(x) [分段函数] 这就是我插值以确定中间值的原因。

非常感谢 !!