问题标签 [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 投票
3 回答
598 浏览

matlab - 不带计数器的自定义周期函数

ode45用来解决一个简单的 ODE:

我用 then 来解决:

我想在不使用这些语句的情况下创建一个周期函数,例如图片中的那个Q,...有什么想法吗?0<t<3600if

在此处输入图像描述

0 投票
1 回答
50 浏览

matlab - 曲线也需要多长时间才能达到特定的 x 坐标?

如何计算曲线到达特定x坐标所需的时间(在 Matlab 中)。假设我们有:dx/dt = x^2 + y^2 和 dy/dt = 5.xy,曲线从点 (a,b) 开始。在我的帮助下,ode45我能够得到曲线的图形。我还需要计算曲线到达 x = c, (c>a) 所需的时间。有人告诉我这可以通过插值来完成,但我不知道如何编写代码。

0 投票
0 回答
541 浏览

matlab - MATLAB:ODE45 Events,控制 MATLAB 检查事件的时间

ode45我有一个基本的轨迹方程,当它在一系列点的特定距离内时,我的事件就会停止。这在大多数情况下都可以正常工作,但是,通常它只是直接通过点。

使用调试工具,我看到我创建的特定事件函数不会每次都运行ode45计算一个新点,在我上面描述的情况下,它会在设定的停止距离之前运行一次,然后在它之后运行一次已经过去通过点停止。有什么方法可以确保它在每个时间步之后运行事件函数?

0 投票
1 回答
1800 浏览

matlab - 在 Matlab 的 ode45 中使用“优化”选项

我正在尝试ode45在 MAtlab 中使用并希望修复 MAtlab 使用的点数(时间步数)。使用'refine'选项 inode45似乎没有帮助。例如,如果我设置'refine'为 10,Matlab 会返回一个 101 的数组。更改'RelTol''AbsTol'无济于事。我知道可以写tspanas并且可以解决这个问题,但我想通过该选项[0,t1,t2,t3,...,tn]来修复点数。'refine'

0 投票
1 回答
364 浏览

c++ - 将成员函数传递给任意精度的 C++ 正交库 (Quadpack++)

我正在尝试对一类特别讨厌的函数进行数值积分,最初我使用的是 GSL,但舍入误差对于我想要的公差来说太大了。在快速谷歌搜索任意精度正交库之后,我找到了 quadpack++,它似乎可以满足我的要求,但我无法让它工作,特别是我似乎无法传递这种形式的函数:

作为输入,它希望以这种形式:

我对 C++ 很陌生,所以它可能很简单,但我已经尝试了基于Q1Q2可以想到的指针和 std::bind 的所有组合,但无济于事。对此的任何帮助,或对更好测试和记录的任意精度正交库的建议将不胜感激。

0 投票
2 回答
49841 浏览

python - Python中的梯形规则

我正在尝试在 Python 2.7.2 中实现梯形规则。我写了以下函数:

但是, f(lambda x:x**2, 5, 10, 100) 返回 583.333(它应该返回 291.667),所以很明显我的脚本有问题。不过我看不出来。

0 投票
1 回答
1424 浏览

matlab - Matlab ODE求解器的多个输出

我有以下 Matlab ODE 代码:

我希望 ODE 求解器也可以给我结果 z,它是 y 和 dy/dt 的函数,使得 z = f(y,dy/dt)。

有谁知道如何将这样的 z 添加到求解器的输出中?

0 投票
1 回答
913 浏览

matlab - 问题在 ode45 循环内集成

当我尝试使用这个 Matlab 代码时,它进入了一个无限循环。我正在尝试在内部执行集成ode45

0 投票
1 回答
1046 浏览

matlab - matlab/octave 随机事件 ode45

我在理解如何在 octave/matlab 中实现事件,在微分方程的解析中遇到了一些麻烦。

例如,考虑这个解决微分方程 y' = -y 的简单代码:

现在我想介绍一个随机事件。例如,在某个固定时间步长,我想随机改变 的值,y然后根据微分方程继续进化。我怎样才能做到这一点?

0 投票
2 回答
2411 浏览

matlab - Matlab中的欧拉方法

我正在研究一个问题,涉及我使用欧拉方法来逼近微分方程 df/dt= af(t)−b[f(t)]^2,无论是当 b=0 还是当 b 不为零时;当b = 0时,我将解析解与近似解进行比较。

当b=0时,微分方程的解为f(t)=c*exp(at)。当我应用初始条件 f(0) = 1000 时,微分方程变为 f(t)=1000*exp(at)。现在,我的教授说微分方程有一个解析解,无论您使用什么时间步长,解析解的图形和近似值(欧拉方法)都会重合。所以,我预计这两个图表会重叠。我附上了一张我得到的照片。

为什么会这样?为了让图表重叠,我将 1000 更改为 10,即 a=10,只是为了它。当我这样做时,两者重叠。我不明白。我做错了什么?