问题标签 [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.
c - 用 C 语言对 Runge Kutta 中的轨道积分运动微分方程
我正在尝试使用 C 中的四阶 runge-kutta 积分行星轨道的微分方程。我尝试积分的第一个方程是位置,dr/dt = sqrt((2/mu)*(E-( k/r)) - pow(l, 2)/(pow(mu, 2)*pow(r, 2)))。该程序编译正确但不断返回nan,我对C相当陌生,所以我想知道为什么会这样。我正在使用的源代码如下:
我的代码如下:
matlab - Matlab:ODE45+Shooting Method 似乎不起作用
我正在尝试以数值方式求解三个同时的 ODE 函数:
我正在解决一个分成两半的列,我想绘制 w 对 x1 并有一个正 w (现在似乎不可能的事情)。主要有以下三个功能:
- first_sec_w:使用 RK4 方法的那个,已经找到了 theta 的初始值(使用 shoot_first 和 shoot_second)。
- shoot_first:使用 RK4 求解函数的函数,假设 theta 的初始值,直到达到 L0/2 处的 0 边界条件并返回此初始值。
- shoot_second: 几乎和上面做的一样,但它从 L0 开始,一直到 L0/2。
谁能帮我吗?
我将上传代码,所以这里看起来不会太乱。
numerical-methods - ODE系统的数值稳定性
我必须对具有以下形式的 ODE 系统进行数值求解:
其中u_j(t)
和v_j(t)
是时间 的复值标量函数t
,f_i
和g_i
是给定的函数, 和j = -N,..N
。这是一个初值问题,任务是在某个时间找到解决方案T
。
如果,则可以独立求解g_i(t) = h_i(t) = 0
不同 值的方程。j
在这种情况下,我借助四阶 Runge-Kutta 方法获得了稳定且准确的解。然而,一旦我打开耦合,结果就时间网格步长和函数的显式形式而言变得非常不稳定g_i
,h_i
。
我想尝试使用隐式 Runge-Kutta 方案是合理的,在这种情况下它可能是稳定的,但如果我这样做,我将不得不评估一个巨大的 size 矩阵的逆矩阵4*N*c
,其中c
取决于顺序每个步骤的方法(例如c = 3
,对于 Gauss-Legendre 方法)。当然,该矩阵将主要包含零并具有块三对角形式,但它似乎仍然非常耗时。
所以我有两个问题:
g_i
有没有一种稳定的显式方法,即使在耦合函数h_i
(非常)大的情况下也能工作?如果隐式方法确实是一个很好的解决方案,那么最快的块三对角矩阵求逆方法是什么?目前我只是执行一个简单的高斯方法,避免由于矩阵的特定结构而出现的冗余操作。
可能对我们有帮助的其他信息和详细信息:
我使用 Fortran 95。
我目前考虑
g_1(t) = h_1(t) = g_2(t) = h_2(t) = -iAF(t)sin(omega*t)
,其中i
是虚数单位,A
并且omega
给定常数,并且F(t)
是一个平滑的包络线,首先从 0 到 1,然后从 1 到 0,所以F(0) = F(T) = 0
。最初
u_j = v_j = 0
除非j = 0
. 绝对值很大的函数u_j
和对所有 来说都非常小,因此初始峰值不会到达“边界”。v_j
j
t
python - 使用 Runge-Kutta 4 计算卫星位置
我的问题与 Runge-Kutta 4 (RK4) 方法和轨道卫星状态向量所需的正确迭代步骤有关。以下代码(在 Python 中)根据此链接(http://www.navipedia.net/index.php/GLONASS_Satellite_Coordinates_Computation)的描述描述了运动:
还有更多代码,但是我想限制我现在展示的内容,因为这是我最感兴趣解决的中间步骤。基本上,对于那些熟悉状态向量并使用 RK4 的人来说,您可以看到在中间步骤中更新了位置和速度,但没有更新加速度。我的问题与更新加速度所需的计算有关。它会开始:
...但究竟发生了什么还不是很清楚。欢迎任何建议。
以下是完整代码:
python - 如何在 Python 中根据其参数之一绘制已定义的函数
我只是想将 x0 = 1.0, t0 = 0.0 的 Rk4 函数绘制为 dt 的函数。我尝试通过对函数进行矢量化并为时间步长 dt 创建一个数组,但得到错误“ValueError: setting an array element with a sequence”。
python - 不同时间步长的龙格-库塔四阶误差近似
当我运行代码时,它会产生一个带有尖峰的锯齿状图,在许多 dt 值处产生零误差,中间有正误差。(抱歉,我无法嵌入图表的图像)。这些大尖峰不应该发生,因为随着时间步长 dt 的减小,误差应该会持续减小。但是,我不确定如何解决这个问题,也不知道错误是从哪里引起的。我尝试通过添加 while 循环来消除尖峰,希望它只在 dt 处的误差大于 dt+delta 处的误差时向我的 dtime 数组添加点,但它会产生完全相同的图表。
python - if 语句范围内的值不打印(Python 中的 Runge-Kutta 四阶)
我正在编写代码来执行具有自适应步长的四阶龙格-库塔数值逼近。
但是,当我运行代码时,它会打印:
因此,两种情况下的误差 E 都小于 10^-5,但它不会打印 x(1)。
matlab - MATLAB 如何在整个区间上绘制我的 Runge-Kutta4 ODE 解
我使用 Runge-Kutta4 为 ODE 解决方案编写了这段代码:
f
是函数y' = f(x,y),y0
是初始值,x0
是函数开始的地方,h
子区间,x_final
是函数停止的地方。
我尝试了我的代码,它为我正确地解决了 ODE,但我也想在 xy 轴上绘制我的函数到子间隔x0
的x_final
区间h
。当我尝试使用它来绘制它时,plot(x0:h:x_final,y)
我只得到一个空图。我知道(猜测)我必须将我的绑定y
到几个x
才能进行绘图,但是我怎样才能在不过多更改代码的情况下做到这一点?
如何绘制y
given y0
、 interval x0
tox_final
和 given的图表h
?
MATLAB新手,感谢我能得到的所有帮助!
编辑:明确我的代码的用途;
我需要这个 ODE 求解器来解决和绘图。我应该通过查看y
on的h
值来研究截断误差,并通过查看不同2*h
的图表来研究 Runge-Kutta4 的稳定性。 y
h
numerical-methods - Numerical method runge kutta
Solve the differential equation. dy/dx=xz+1, dz/dx=-xy for x=0.3 given that y=0 and z=1 when x=0 using runge kutta method of order four. I am unable to start this problem. Please help. I require mathematical solution using numerical analysis not the programming one.