runge-kutta

    2热度

    1回答

    工作我试图写的算法求解非线性ODE dr/dt = r(t)+r²(t) 其具有(一个可能的)溶液 r(t) = r²(t)/2+r³(t)/3 对于我在python中实现了euler方法和RK4方法。对于错误检查我使用的例子上rosettacode: dT/dt = -k(T(t)-T0) 与解决方案 T0 + (Ts − T0)*exp(−kt) 因此,我的代码现在看起来像 i

    6热度

    3回答

    在Python中实现经典Runge-Kutta方案有两种方式,显示here。第一个使用lambda函数,第二个没有它们。 哪一个会更快,为什么呢?

    1热度

    1回答

    我在尝试了解我的代码有什么问题时遇到了一些麻烦,任何帮助都会非常有帮助。 我想解决这个简单的公式 然而,我的代码给出的值不符合我的书的人或钨那些为y上升为x的增长相匹配。 import matplotlib.pyplot as plt from numpy import exp from scipy.integrate import ode # initial values y0, t0

    1热度

    1回答

    我一直在试图将RK4集成到我正在做的模拟中。下面的功能是我最好的尝试,使用RK4根据第12页上的方程在this网站上的三维力场进行积分。 在我的代码中,粒子类基本上存储速度和位置列表,并且可以计算给定位置的力(力与速度无关)。另外,我知道我的函数很长,并且可以使用for循环来减少,但我(当前)想要匹配我链接的论文中使用的结构。 当我尝试使用此方法模拟一个粒子时,该错误显着比我使用跳跃积分方法时更糟

    0热度

    1回答

    我有一个类的一些ODE求解器的自定义实现。我遇到问题,如果我的时间步dt小于.2,程序将停止。但是,如果我注释掉一个龙格 - 库塔求解器,它会很快执行,我可以切换哪一个被注释掉,这样我就可以从两个求解器中获得解决方案。我想知道如何解决这个问题。我一直在试图找到某种解决方法可能会干扰另一方的方法,但我不明白这是怎么发生的。 实现: global dt; dt = .5; % going below

    0热度

    1回答

    这里给出的代码工作正常,但是说当找到(-30,30)而不是(10,30)的ω时发现分叉点,从而改变'INT O' 从2000到6000在屏幕上显示以下消息,在在0x7665B802在Bifurcation_Plotter.exe 未处理的异常:微软C++异常:则为std :: bad_alloc在存储器位置0x012FF544。 时间步骤需要保持原样以确保结果的准确性。 所有帮助非常感谢:) //

    0热度

    1回答

    我需要绘制显示2个变量的图形,具有二阶常微分方程RK4,到目前为止,我已经做到了这一点 from numpy import arange from pylab import plot,xlabel,ylabel,show Qger = 400 K = 20 T1 = 150 T2 = 60 N = 1000 h = (T2-T1)/N rpoints = arange(6.0,8.

    0热度

    1回答

    作为我正在研究的项目的一部分,我需要使用四阶Runge-Kutta方法模拟恒星周围物体的轨道。我需要将该对象的位置和速度写入每个RK4方法实现的.dat文件中。 我的问题是,我无法弄清楚如何在后续的时间间隔内重复整个方法,或者如何在每个步骤中写入文件而不会将事情与静态和/或实例相混淆,而我没有太多经验。 This是我能找到的最一致的例子,虽然我知道它不是用于轨道,但我想用它作为获得框架工作的基础。

    4热度

    3回答

    下面是我的4阶Runge-Kutta算法来求解一阶ODE。我检查它反对维基百科例如发现here解决: \frac{dx}{dt} = tan(x) + 1 遗憾的是,通过了一点点。我玩了很长一段时间,但我找不到错误。答案应该是t = 1.1和x = 1.33786352224364362。下面的代码给出t = 1.1和x = 1.42223。 /* This code is a 1D cl

    -1热度

    1回答

    有人可以在我的代码中找到错误吗?它可以在特殊的点上工作,但容差不适合该方法。我的错误是非常简单的,所以我不认为它的问题。请帮忙。 #include <math.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <time.h> #include <iostream> #include <strin