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

swift - Swift Rope Verlets

我正在尝试快速实现 verlet 绳索。我遇到了一个问题,当试图从约束中修复点质量的位置时,它们会非常迅速地分开,然后坐标变成 NaN。知道我的代码有什么问题吗?

0 投票
2 回答
12153 浏览

python - Python中的Verlet算法实现

我在 Python 中实现 verlet 算法时遇到问题。我试过这段代码:

但它不能正常工作。怎么了?我正在寻找 Verlet 算法的通用代码。

0 投票
1 回答
4081 浏览

python - Lennard-Jones 势模拟

我想通过 Lennard-Jones 势模拟粒子。我对这段代码的问题是我不知道如何使用 Verlet 算法。

  1. 我不知道应该在哪里实现 Verlet 算法;课内还是课外?
  2. 如何在move方法中使用 Verlet 算法的速度?
  3. 我对 Verlet 算法的实现是否正确,还是应该使用数组来保存结果?
  4. 我还应该改变什么才能让它工作?
0 投票
1 回答
79 浏览

c - 编程 C 的段错误

我很想用 C 语言制作速度 Verlet 方法。我以为我做得很好。但是,每当我增加向量或数组 x 和 y 的大小时,都会弹出“分段错误(核心转储)”。对于大小 n 等于且小于 1e3,这很好,但在 n = 1e4 时,程序会出错。

请任何人帮助我。谢谢你。

0 投票
1 回答
6744 浏览

algorithm - MATLAB:Verlet 算法 -

下面是我的 Verlet 函数代码,可以从我的主脚本中调用。

我做了一个脚本来测试这个功能。上下文是简谐运动,与其他算法相比,将测试 Verlet 算法的相对准确性。

这是我的测试脚本:

生成的情节在 0.001 步长的 200 次运行中急剧上升 - http://i.imgur.com/GF2Zdvu.png

这是 0.0001 步长的 200 次运行:http: //i.imgur.com/u0zCUWS.png

正如你很容易看出的那样,它同样会爆炸。我的代码中一定有问题(我看不到)。

提前致谢!

0 投票
1 回答
532 浏览

matlab - 简谐运动 - Verlet - 外力 - Matlab

我在没有力的情况下运行了我之前为 Verlet 方法完成的代数 - 这导致与您在下面看到的代码相同,但是当我忽略外力时缺少“+(2*F/D)”项. 正如预期的那样,该算法准确地工作,但是对于以下参数:

米 = 7 ; k = 8 ; b = 0.1;参数 = [m,k,b];

(步长 h = 0.001)

远高于 0.00001 之类的力太大了。我怀疑我错过了代数的把戏。

我的问题是是否有人可以发现我在 Verlet 方法中添加力项的缺陷

0 投票
0 回答
626 浏览

constraints - Verlet Integration 2D Physic,实现角度约束

我正在尝试将角度约束实现到一个简单的基于 verlet 集成的 2D 物理引擎中。这是我目前使用的代码:

CGPointRotate函数如下所示:

我正在用一排通过远距离约束连接的粒子来测试这个实现。没有角度限制,它们就像一根绳子。我试图通过角度约束给“绳索”一些刚度。但是我上面的实现是在几毫秒后获得能量并炸毁系统。为什么这种约束实施正在获得能量?

0 投票
1 回答
439 浏览

javascript - Verlet / Euler 积分不准确

我想为游戏创建一些 physx,我从小例子开始了解它是如何工作的。在此期间,我遇到了一些问题,但我解决了 90%。

为了创建我的示例,我研究了一些其他示例并创建了我使用的示例:codeflow.org/entries/2010/aug/28/integration-by-example-euler-vs-verlet-vs-runge-kutta/

起初 - 这是肮脏和低效的代码,我只对两个问题感兴趣:

#1有“时间步长”循环来创建准确的椭圆,但是如果我移动 1 个对象(第二个是静态的),例如步骤 = 5,椭圆是准确的,但如果两个对象都是动态的,曲线完全不准确。

但是以 step = 1 运行,我的对象更准确(什么?)此外,如果 1 个对象是静态的,我的椭圆几乎不准确。

带有 1 个静态的jsfiddle 示例- http://jsfiddle.net/hnq8eqta/ 更改 window.steps(1 或 5)以进行测试。

带有 2 个动态的jsfiddle 示例- http://jsfiddle.net/agbhwe9g/ 也更改了步骤。

#2我认为这不是正常行为 - 如果 1 个对象具有更大的初始向量,则两个对象的轨迹都很奇怪,它们会从屏幕上跑开。这个算法正常吗?我们可以在这里进行非常相似的模拟:phet.colorado.edu/sims/my-solar-system/my-solar-system_en.html 但这不一样......

示例- jsfiddle.net/hr1ebq3c/

我的 verlet 集成有什么问题?

0 投票
1 回答
138 浏览

performance - Haskell:Verlet 集成的慢速无限列表

我正在使用 Haskell 制作一个 Verlet 积分器来模拟重力。积分器使用对象的前两个位置作为种子,然后生成其余位置。

我认为在 Haskell 中实现这一点的一个好方法是使用无限列表。但是,当实现时,我发现它运行很慢很长时间(Haskell 1700 时间步:12 秒,Python 1700 时间步:< 1 秒)

以下是具有类似性能的一维积分器的相关代码:

我也尝试使用zipWith来生成无限列表,但它具有相似的性能。

为什么这需要这么长时间?垃圾收集本身大约需要 5 秒。有没有一种好方法可以让这个运行更快?

0 投票
3 回答
2277 浏览

math - 时间校正的 Verlet 数值积分公式

Johnathan Dummer 在网上有一个常用的 Verlet积分公式,称为 Time-Corrected Verlet。但是我读过几篇论坛帖子,人们在某些情况下会得到奇怪或意想不到的结果。

Johnathan Dummer 的公式:

还有一个stackoverflow answer,其中指出 Dummer 的时间校正公式被破坏,并且发布者将他自己的推导作为正确的推导。

通过stackoverflow答案建议的正确公式

那么,Dummer 的公式真的被打破了吗?如果是,海报的推导是否更好?

PS:Dummerx1 = x - x0 + a * dt^2在他的网站上使用 verlet 积分公式而不是正确的x1 = 2x - x0 + a * dt^2.