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

python - RK4 给出错误的结果

我正在尝试数值求解一个简单的二阶 DE x'' = -x。我使用了一个新变量 x'=v,所以我有两个方程。虽然看起来很简单,但它以某种方式产生的结果与正确结果相差甚远。

奇怪的是,如果我使用 RK45 系数,一切正常。知道什么可能是错的吗?

0 投票
1 回答
140 浏览

matlab - Runge-Kutta 方法中的索引超出矩阵尺寸误差:Matlab

我正在尝试使用 4 阶 Runge-Kutta 方法制作时间步进代码,但我遇到了正确索引我的值之一的问题。我的代码是:

目前,第一次迭代的值似乎很好,但后来我Index exceeds matrix dimension在行计算中遇到了错误eta。我了解我没有正确索引 eta 值,但不确定如何更正此问题。

我的目标是为每个 t 循环更新 eta 的值,然后将新的 eta 值用于其余计算。

我对编程还是很陌生,并且正在尝试理解索引,尤其是在 3 或 4 维矩阵中,并且非常感谢有关正确计算此值的任何建议。

提前感谢您的任何建议!

0 投票
1 回答
855 浏览

matlab - 使用runge kutta求解非线性一阶ODE系统

我完全被我的一组问题困住了。

我应该使用 Matlab 解决以下 ODE 系统:

我应该使用我以前没有尝试过的 Runge Kutta 方法。我已经做了很长一段时间了,但甚至不知道从哪里开始——这就是为什么我真的没有任何代码可以给你看。我一直在做很多谷歌搜索,但没有结果。

如果有人可以帮我一把,将不胜感激!

0 投票
1 回答
505 浏览

python - 为什么我会收到我乘以非 int 类型“float”的错误?

我的代码有问题,该代码是一种用于数值求解谐波振荡器的 Runge Kutta 算法。不幸的是,我收到一个错误,说我不能将序列乘以浮点类型的非整数。考虑到这段代码几乎是来自教育文本的逐字记录,我看不出错误在哪里。有人可以帮我吗?感谢您友好的邻居蜘蛛侠。

错误在第 33 行。

TypeError:不能将序列乘以“float”类型的非整数

0 投票
2 回答
3654 浏览

python - 使用 Runge-Kutta 求解耦合微分方程

我有一个耦合方程组:流体静力平衡方程、质量连续性方程和理想气体的状态方程。这些是,在数学语法中,

  1. \frac{dP}{dr}=- \rho*g,

其中\rho是密度,g是重力加速度。

  1. \frac{dM}{dr}=4*pi* r^2*\rho

  1. p=\rho* k_B* T/(\mu *m_p),

其中k_B是玻尔兹曼常数,\mu是平均分子量,m_p是质子质量。

我想使用 Runge-Kutta 数值技术解决这些耦合方程,我在这里展示了我为解决这个问题而设计的 python 代码:

对于压力、p_atm半径、r_atm和质量的初始条件m_atm,我使用在 中显示的值h, r_atm, p_atm, m_atm = rk4_1(g,f, 6.991e7, 1e-6*1e5, 1.898e27, 2.0e7,10000000)。请注意,我正在从高层大气(给定初始条件的地方)处理这个边界值问题,并在大气中向下进展(注意 h 是负数)。我的目的是评估这种从10^-1帕斯卡到100000帕斯卡的数值积分。我从运行这段代码得到的结果是压力~1e+123在三个步骤中简单地爆炸,所以显然有一些非常错误的流媒体,但它会有助于有另一个眼睛或视角,因为这是我第一次表演Runga-Kutta 方法。

0 投票
1 回答
315 浏览

matlab - 使用 inline/subsref 的 MATLAB Runge Kutta 错误

有人可以帮助我使用功能A,为什么不运行?我无法理解错误,也许写得不好?因为在 B 中,图形没问题,请检查我的 Runge Kutta 2 Functions (f,g) 方法和 mathcad 的原始问题,抱歉我的英语不好

0 投票
2 回答
3316 浏览

python - Python中的Runge-Kutta方法

我在python中写了一个关于runge-kutta方法的代码,但是每次程序实现任何微积分时,程序都需要微分方程。

这是我的代码:

使用方程 dx/dt=x, x(0)=1, xf=1, h=0.1 的示例:

我应该怎么做才能只输入一次微分方程来编程计算全部?

0 投票
1 回答
1753 浏览

python - 在 Python 中使用 Runge-kutta 四阶的 ODE 系统

我正在编写一个 python 程序来解决给定两个初始条件的一阶微分方程的 2x2 系统。我的代码:

我知道我可以return (u, v),但我想以print "u ~ ", u不同的方式v在另一条线上,但似乎我只需要重复 trialu 来返回 v,有没有更好的方法?不重复def trialu()?我还想分别为 j = 1, 2, ... 打印 k?
一个例子是通过使用和的步长来解决u' = -3*u + 2*v和。v' = 3*u - 4*v[0,0.4]h = 0.1u[0] = 0v = 0.5

0 投票
1 回答
870 浏览

c++ - 用 Runge-Kutta 积分波动方程(二阶)

我尝试求解数值简单的方程 - 没有源的线性波动方程:u tt = v 2 u xx

其中 v - 波速。

我使用初始条件:

u(x, 0) = sin(x)
u x (x, 0) = -v * sin(x)

对应于沿 x 轴以速度 v 传播的初始波 sin(x)(sin(x-vt) 是该波动方程的解)。

因此,问题在于,在 2-3 次迭代期间,数值解与解析答案 (sin(x-vt)) 一致,但在第 3 次迭代后出现问题并且解增长得非常快(取值约为 128)。

我使用具有 2 阶导数的 4 阶近似的 Runge-Kutta 2nd oreder 方法(Euler 方法)。

这是关于 C++ 的代码:

所以,我不知道为什么会出错,原因是什么。

0 投票
1 回答
218 浏览

matlab - ODE Runge Kutta MATLAB 错误

所以我正在尝试创建一个 Runge Kutta 函数,这是我的代码:

其中 U 是 2 行和 n+1 列的矩阵,这是我尝试执行此函数时的问题,例如:

我收到错误not enough input arguments消息,但是当我尝试将代码作为脚本执行并用 sin 替换 f 时,一切正常,我得到了 U 矩阵 有人能告诉我解决方案是什么吗?