问题标签 [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.
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 的幂吗?
matlab - 当函数作为离散值给出时求解 ODE -matlab-
我有以下 ODE:
我ode45
用来解决它。我的解决方案是作为 dim(kx 1) 的向量给出的(通常是 k = 41,由 给出tspan
)。
另一方面,我已经制作了一个与 (1) 中的模型近似的模型,但是为了比较第二个模型的准确度,我想通过 求解它(求解第二个 ODE)ode45
。我的问题是这第二首颂歌是离散的:
f
是离散的,而不是像 (1) 中的连续函数。我的价值观f
是:
我现在想要的是使用ode45
. 希望我能得到一个与(1)中的解决方案非常相似的解决方案。如何解决离散 ode 应用ode45
?可以使用ode45
吗?否则我可以使用Runge-Kutta
,但我想公平地比较这两种方法,这意味着我必须以同样的方式解决它们。
c - 在另一个函数中调用一个函数作为变量
我对 c 编程有点陌生,我正在尝试将函数与梯形规则集成。我的功能是这样的:
我的问题是如何将通用函数传递给该函数?我希望这个集成梯形函数能够集成我需要的任何功能..
谢谢!奥马尔
matlab - 在 Matlab 中前向 Euler 求解一阶 ODE 系统
我有两个从二阶 ODE 得到的一阶 ODE:
我的问题是如何设置正向欧拉?我有这个:
wolfram-mathematica - NMinimize 与数值积分
我试图通过最小化一个我知道使用 Mathematica 为零的方程来找到函数的系数。我的代码是:
我在最后一行之后得到的错误是:
有什么想法为什么我会出错?
谢谢
matlab - 如何更改 Matlab 的 ode45 求解器中的参数值
ode45
我正在尝试在 Matlab中求解一个微分方程。我正在运行两个脚本:
然后在第二个脚本中,我有
我正在尝试使用 的三个值来求解方程omega1
,但它给了我一个错误:
我尝试将其定义omega1
为参数:function xdot=linearproblem(t,x,omega1)
,但这没有帮助。
matlab - Matlab的ode45没有将初始条件发送到函数中
我有一个快速的问题,我希望有一个相当简单的解决方案。我有一个看起来像这样的函数:
其中x
是一个包含系统配置(位置和动量)的四个元素的列向量。我正在尝试ode45
在此配置空间中对一些粒子进行数值积分,如下所示:
每次我尝试这个我都会失败,收到以下错误:
ode45
将单个元素 , 传递给x=0
,而不是预期myFunction
的四个元素的向量。myFunction
这导致索引错误。为什么会发生这种情况,我该如何解决?看来我没有ode45
正确使用。
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))
不能完全让我的头脑使任何一个工作。任何帮助/建议将不胜感激。我需要确保我的集成错误尽可能低。
r - R中的数值二重积分
我正在尝试在 R 中以数值方式计算双积分的值。我的代码和我尝试编写的方程式如下:
当我编译并运行代码时,出现以下错误:
有人可以帮我解决错误或建议另一种解决问题的方法。
谢谢。
matlab - 插值函数内的 MATLAB 积分变量
我希望执行如下所示的集成。
我面临一个错误,因为我在插值函数中使用积分变量“u”。(如果我用某个常数替换插值函数内的 'u',则集成运行良好。)
您能否提供一些解决方法。
PS:为澄清起见, y=f(x) [分段函数] 这就是我插值以确定中间值的原因。
非常感谢 !!