问题标签 [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.
matlab - Matlab中Runge-Kutta延拓法的运动方程
- 运动方程由下式给出:
, 其中 m, b 是质量和阻尼的固定值。时变项 f(t) 是激励功率,q(t) 是广义位移。
- 我解决了这个问题:
- 我应该通过 [t,x]=ode23('rightside',tspan,x0) 在 MatLab 中求解。
- f(t) 和 k(t) 我通过傅里叶级数求解复数,就像在 Matlab 中那样:
f(t) 的 % 复数傅立叶级数
k(t) 的 % 复数傅立叶级数
- 我们知道:
谢谢你。
- 它应该是类似的原则:
- 和:
- 但我不知道如何到达那里 f(t) 和 k(t)。
python - 如何将函数传递给 Python 中的函数?
我是 Python 的初学者/中级者。我已经将一个四阶龙格-库塔方法 (RK4)编码到 Python 中。它基本上是在解决一个钟摆,但这不是重点。
我想通过以下方式改进 RK4 方法:我希望能够将函数 f 直接传递给 RK4 函数,即 RK4(y_0, n, h) 应该变为 RK4(f,y_0,n,h)。这将具有很大的优势,我可以将 RK4 用于描述其他系统的其他 f 函数,而不仅仅是这个钟摆。
我只是将简单的函数传递给 RK4,但我做错了。我如何在 Python 中做到这一点?
matlab - 使用龙格库塔求解贝塞尔函数
我正在为我的一个班级做作业,我应该使用我选择的程序(我选择 Matlab)编写代码,以使用四阶龙格-库塔方法求解贝塞尔函数微分方程。作为参考,贝塞尔函数 DE 是:
x^2*(J_n)''+x*(J_n)'+(x^2-n^2)*J_n=0。
我可以通过以下方式将其分成两个耦合的一阶 DE:
(J_n)'=Z_n 和
(Z_n)'+(1/x)*Z_n+[(x^2-n^2)/x^2]*J_n=0。
在此任务之前,我没有使用 Matlab 或任何其他编程语言的经验。我知道 Matlab 有“ode45”命令,但我应该自己编写代码,而不是依赖于 Matlab 的命令。到目前为止,我一直在研究 Bessel 函数的 n=0 情况,但是当我尝试绘制函数时,我一直收到错误消息。我说的当前错误是:“'double' 类型的输入参数的未定义函数或方法 'J'。” 但我不知道如何解决这个错误,也不知道我的代码是否正确。有人可以告诉我哪里出了问题或者编写此代码的正确方法是什么?
提前感谢您的帮助
python - Runge-Kutta RK4 不比 Verlet 好?
我只是在游戏中测试几种轨道动力学的集成方案。我在这里采用了恒定和自适应步骤的 RK4 http://www.physics.buffalo.edu/phy410-505/2011/topic2/app1/index.html
我将它与简单的verlet集成(和欧拉,但它的性能非常差)进行了比较。看起来恒定步长的RK4并不比verlet好。具有自适应步长的 RK4 更好,但不是很多。我想知道我是不是做错了什么?或者说 RK4 比 verlet 优越得多是什么意思?
认为 Force 每 RK4 步骤评估 4 次,但每个 verlet 步骤仅评估 1 次。因此,为了获得相同的性能,我可以将 verlet 的 time_step 设置为小 4 倍。使用 4 倍更小的时间步长,verlet 比具有恒定步长的 RK4 更精确,并且几乎可以与具有附加步长的 RK4 相媲美。
见图片: https ://lh4.googleusercontent.com/-I4wWQYV6o4g/UW5pK93WPVI/AAAAAAAAA7I/PHSsp2nEjx0/s800/kepler.png
10T 表示 10 个轨道周期,后面的数字 48968,7920,48966 是需要的力评估数
python代码(使用pylab)如下:
matlab - 四阶龙格-库塔方法 (RK4) 在几次迭代后崩溃
我正在尝试解决:
使用四阶龙格-库塔算法。
起点:x(0) = 8000, y(0) = 300
范围:[0,15]
这是完整的功能:
我通过执行来运行它:[xx yy time] = rk4_m(8000,300,10)
问题是在 2-3 次迭代后一切都崩溃了,返回了无用的结果。我究竟做错了什么?或者只是这种方法不适合这种方程?
分号被有意省略。
看起来我没有注意实际h
大小。现在可以了!谢谢!
python - python中用于解决SHM的Runge-Kutta 4算法中可能的错误来源是什么
我在 python 中编写了一个简单的 RK4 程序来求解 SHM 方程:
通过写作:
以下是 RK4 代码:
结果图几乎呈正弦曲线,但值超出 -1 和 1 的量很小。
为什么值y
或z
超出范围[-1,1]
?是否有任何type-casting
错误正在传播?
c - 在 C 中使用 Runge Kutta 求解二阶 PDE 系统
我有一个使用 Runge Kutta 算法求解微分方程组的问题。到目前为止,我已经将二阶 PDE 重写为一组两个耦合方程,其中
是两个方程,A、B、C 和 D 是常数。为了获得下一步的值,我对每个时间步 dt 进行如下操作:
我使用当前时间步的 L1 和 L2 的值并迭代计算系数。
结果,我通过在最后对系数求和和加权得到 L1 和 L2。我的问题是,整个算法在 4 个时间步后变得不稳定。
有人知道实现在技术上是否正确吗?谢谢!
c++ - C++ 中的 Runge-Kutta (RK4) 导数
您好,我在 C++ 中创建了一个小型运动模拟。我想向学生展示欧拉法、龙格-库塔法和中点法之间的差异。
但是当我切换到 Rungy-Kutta 模式时,我在某个地方犯了一个错误,所有材料点都消失了。我犯的错误是在solveRK4 方法中。附件中的 MinGW Developer Studio 项目,还有库文件夹放入 mingw 编译器目录。: http ://speedy.sh/CvDHj/LABO3.zip
当您按下“R”按钮时,当“E”到欧拉时,当“M”到中点时,它会切换到 RK4。
问题是我在solveRK4函数中哪里出错了?
结果(发布)如下所示:http://speedy.sh/h28VP/zad3.exe按 R 键会从屏幕上消失。
Punkt - Point Wektor - 矢量图
主要的:
结构:
vba - Subscript out of range in Runge Kutta method
I am programming the Runge Kutta method with adaptive step size in VBA and I have encountered an Error 9 "Subscript out of range". Can someone please help me figure out why and how to fix it?
I am attaching the three separate sub routines I was required to write as well as the beginning of the macro that runs all three programs.
python - 为什么我的四阶 Runge-Kutta 方法的实现不起作用?
在这个网站和我的参考书上搜索后,我发现我不知道为什么我的代码不起作用。
正如我的教授在课堂上向我们展示的那样,我为质量弹簧系统(具有摊销)做了一个四阶 Runge-Kutta 实现。但是,如您所见,生成的图形非常奇怪。
我最终写的代码是这样的:
这是由 main.py 文件导入的,该文件仅包含程序的 GUI 和绘图部分,并且该函数是在课堂上推导出来的,所以我相信错误出在 Runge-Kutta 本身。(可能是我搞砸了一些愚蠢的事情。)
我尝试在“xn”和“vn”中切换 K,在 f() 中强制“F”和“c”值,重写所有内容并手动编写每个 K 的每个元素(如 K11、K12、K21 ,等等),但它只给出指数结果。此外,将 f() 的返回切换为 numpy 数组并没有任何帮助。
我发现了一些关于RK4方法的问题,但是我无法解决这个问题,也不明白哪里出了问题。我对这个方法有一些了解,但这实际上是我第一次实现它,所以请大家帮忙。
如果重要的话,我正在为 python3 使用 Anaconda 发行版。