问题标签 [runge-kutta]

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 回答
422 浏览

c++ - 龙格库塔方法圆周运动

我被要求解决这个微分方程:

(x,y,vx,vy)'=(vx,vy,vy,-vx)

它应该返回一个带有2*pi周期的圆周运动。我实现了这个功能:

其中_alpha等于0。现在,这适用于欧拉方法:如果我将此 ODE 积分为2 * pi * 10,给定初始条件(1, 0, 0, -1),并具有一定的0.003精度,我得到的位置与(1, 0)的范围内相当1 ± 0.1,正如我们所期望的那样。但是,如果我将相同的 ODE 与 Runge Kutta 的方法(0.003精确到2 * pi * 10几秒钟)集成,实现如下:

对于四阶龙格库塔方法,该程序返回一个近似x等于的位置,当理论上精度应该是,大约。我检查并发现 Runge_Kutta 的时期似乎几乎是一式四份(因为在一段时间内,从到),但我不明白为什么。这是我的主要内容:0.391E-62 * pix10.48

先感谢您。

0 投票
1 回答
871 浏览

system - Runge-Kutta 代码不与内置方法收敛

我正在尝试实现 runge-kutta 方法来解决 Lotka-Volterra 系统,但代码(波纹管)无法正常工作。我遵循了我在 StackOverflow 的其他主题中找到的建议,但结果与内置的 Runge-Kutta 方法不收敛,例如 Pylab 中可用的 rk4 方法。有人可以帮助我吗?


我刚刚在评论之后更新了代码。所以,功能meurk4

现在变成(更正):

然而,结果如下:

在此处输入图像描述

而buitin方法rk4(来自Pylab)的结果如下:

在此处输入图像描述

所以,当然我的代码仍然不正确,因为它的结果与内置的 rk4 方法不同。拜托,有人可以帮助我吗?

0 投票
1 回答
7017 浏览

python - runge kutta 第二种方法的python代码是什么?

这段代码可以吗?

0 投票
1 回答
88 浏览

python - 绘图python显示空值

我正在尝试绘制一个 runge kutta 方程,但它显示一个空值。我在逻辑上哪里出错了?

也许我尝试简化一点

我试过运行上面的简化脚本,它为打印提供了价值,但它只是不会出现在情节中。所以这个问题最终可能与 runge kutta 无关,只是绘图中的一些逻辑。对于那个很抱歉。

0 投票
0 回答
301 浏览

performance - 来自 Skyfield 的轨道与太阳系重力场的整合 - 速度问题

在下面显示的时间测试中,我发现Skyfield需要几百微秒到一毫秒才能返回obj.at(jd).position.km单个时间值jd,但较长对象(时间点列表)的增量成本JulianDate仅为每点大约 1 微秒. 我使用Jplephem和两种不同的星历表看到了相似的速度。

我的问题是:如果我想随机访问时间点,例如作为使用自己的变量步长的外部 Runge-Kutta 例程的奴隶,有没有办法可以在 python 中更快地做到这一点(无需学习编译代码)?

我知道这根本不是 Skyfield 的典型使用方式。通常我们会加载一个JulianDate包含一长串时间点的对象,然后一次计算它们,并且可能会像轨道积分器那样做几次,而不是数千次(或更多)。

解决方法:我可以想象一种解决方法,我NumPy通过使用具有精细时间粒度的对象运行 Skyfield 一次来构建自己的数据库JulianDate,然后编写我自己的 Runge-Kutta 例程,该例程通过离散量上下改变步长,这样时间步长总是直接对应 NumPy 数组的跨步。

或者我什至可以尝试重新插值。我没有进行高度精确的计算,所以简单的 NumPy 或 SciPy 2 阶可能没问题。

最终我想尝试在太阳系重力场的影响下整合物体的路径(例如深空卫星、彗星、小行星)。在寻找轨道解决方案时,可能会在 6D 相空间中尝试数百万个起始状态向量。我知道我应该使用ob.at(jd).observe(large_body).position.km方法之类的东西,因为重力像其他一切事物一样以光速传播。这似乎花费了大量时间,因为(我猜)它是一个迭代计算(“让我们看看......木星会在哪里让我现在感觉到它的引力”)。但是,让我们一次剥一层宇宙洋葱。

Skyfield 和 Jplephem 速度测试

图 1.我的笔记本电脑上针对 de405 和 de421 的不同长度JulianDate对象的 Skyfield 和 JPLephem 性能。它们都差不多——(非常)第一个点大约是半毫秒,每个附加点大约是一微秒。此外,脚本运行时要计算的第一个点len(jd) = 1(地球(蓝色),带有)还有一个额外的毫秒伪影。

地球和月球较慢,因为它是内部的两步计算(地球-月球质心加上围绕质心的各个轨道)。水星可能更慢,因为它与星历时间步长相比移动得如此之快,以至于它在(昂贵的)切比雪夫插值中需要更多的系数?

SKYFIELD DATA 脚本 JPLephem 脚本位于更下方

JPLEPHEM 数据 的脚本 Skyfield 脚本在上面

0 投票
1 回答
345 浏览

matlab - 如何实现 newton-raphson 来计算隐式 runge kutta 的 k(i) 系数?

我正在尝试使用 fdm_2nd 和高斯屠夫系数实现 RK 隐式 2 阶对流扩散方程 (1D): 'u_t = -uu_x + nu .u_xx' 。

我的目标是比较显式与隐式方案。显式 rk 在少量粘度下效果很好。显式方案的曲线向我们展示了一个非常好的冲击波。

我需要您的帮助来正确实现 k(i) 系数的求解器。我看不到如何为所有 k(i) 实现牛顿法。我是否需要为所有时空步骤实施它?还是及时?雅可比可能是错的,但我不知道在哪里。或者,也许我在错误的方向使用雅可比......

实际上,我的代码有效,但我认为它在某个地方是错误的......而且隐式曲线也不会从初始值移动。

这是我的功能:

雅可比人:

这是我的牛顿代码:

0 投票
1 回答
251 浏览

python - 钟摆集成。溢出。Python

我编写了一个使用四阶龙格-库塔积分计算钟摆的速度和力的代码,不幸的是我无法运行它,因为我收到了这个错误:

我不确定我错过了什么或我的错误是什么。任何想法都会有所帮助。谢谢!

这是我的代码:

0 投票
0 回答
513 浏览

python - Runge-Kutta 的 Python 代码 (GLONASS Ephemeris)

我正在寻找有关如何使用 Runge-Kutta 4 技术推断 GLONASS 卫星的解释。我的问题基本上是关于如何通过将输入应用于函数来从 K1 跳到 K2 步骤及以后。我无法确切地弄清楚该功能应该是什么。这是我的代码:

有很多关于如何推断 GPS 卫星的文献,但不幸的是,GLONASS 似乎更加有限。欢迎所有反馈。

0 投票
1 回答
85 浏览

c - Runge Kutta 评估不适用于 1 以外的步长

我一直在将 4 个链接微分方程的欧拉方法实现转换为四阶龙格库塔实现。我有理由确定我的一般方法是正确的,并且我已经了解如何应用 RK4,但是我可能已经有 6 年没有做过任何半认真的数学了,所以我可能会遗漏一些东西。当我使用步长 1 时,我的 RK4 计算给出了合理的输出,但如果我使用任何其他步长,我的计算很快就会崩溃到零。我希望有一双新的眼睛能够迅速发现我做错了什么。请不要发布完整的解决方案——我更喜欢指出我可能犯的错误——无论是代码还是对 RK4 的理解,因为我希望自己能够理解这一点。

所以这是我的欧拉实现。效果很好

这是我的 RK4 实现

0 投票
1 回答
557 浏览

python - 4 阶 Runga Kutta 方法 - 扩散方程 - 图像分析

这是速度问题。我正在尝试求解具有三种行为状态的扩散方程,其中:

  • Lambda == 0 平衡
  • Lambda > 0 最大扩散
  • Lambda < 0 分钟扩散

瓶颈是扩散算子函数中的 else 语句

平衡态有一个简单的 T 算子和扩散算子。对于其他两个州来说,情况变得相当复杂。到目前为止,我还没有耐心等待代码运行时间。据我所知,方程是正确的,平衡状态的输出看起来是正确的,也许有人有一些技巧可以提高非平衡状态的速度?

(我想欧拉解决方案(FTCS)而不是龙格库塔会更快。还没有尝试过。)

您可以导入任何黑白图像来试用代码。

简而言之,f_out_equil 的计算速度相对较快,而 min 和 max 的情况既昂贵又缓慢。

这是我一直在使用的图像的链接:http: //4.bp.blogspot.com/_KbtOtXslVZE/SweZiZWllzI/AAAAAAAAAIg/i9wc-yfdW78/s200/Zebra_Black_and_White_by_Jenvanw.jpg

改进我的编码的提示表示赞赏,非常感谢,

这是输出的快速绘图脚本