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

c++ - 如何在 C++ 中使用 Thrust 和 odeint 求解简单 ODE

我正在尝试创建一个简单的程序来熟悉 Thrusts 的 GPU 计算能力和 odeint 的 ODE 求解能力。我希望能够在 GPU 上使用 Runge-Kutta 方法解决简单的 ODE(即 dy/dx = 3x^2y),希望以后可以解决更复杂的问题。我可以使用 odeint 相对轻松地做到这一点:

然而,我在理解推力如何发挥作用时遇到了麻烦。我遇到的大多数在线资源都以洛伦兹参数研究为例,但我觉得这对于我目前的水平来说太高级了。

我了解设备和主​​机向量的概念,但我不明白我的问题将如何适应使用 GPU 来解决。根据我自己的研究,我已经能够使用 CUDA(非推力)求解简单的代数(非微分)方程。然而,事实证明,结合我对 odeint 和推力的知识比我预期的要困难。

特别是,我对以下内容感到困惑:

1) 调整 Runge-Kutta 步进器

2) 适配系统函数本身(本例中为dydx = 3*x*x*y[0])。

3) 在程序中同时包含 odeint 和 Thrust/boost 目录

如果这个问题太基本或要求太多,我深表歉意;我是 StackOverflow 的新手,还没有学会所有的“提问”协议,也没有学会自己尝试解决问题的程度。

0 投票
1 回答
57 浏览

python - 使用 Runge Kutta 方法打印两个值

我正在尝试从此代码中打印 b 和 c ,但我没有任何运气。如果我是正确的,这段代码应该输出几个点,步长为 0.05,但我没有看到。有谁知道如何从此代码中打印两个值?

0 投票
1 回答
134 浏览

python - 对于非完整约束,我在 python 中实现 4 阶 runge kutta 有什么问题?

我正在尝试为类汽车机器人的非完整运动实施四阶龙格库塔。我不知道我做错了什么,基本上我正在通过 +-Pi/4 来计算硬左转和右转以获得不同的轨迹。但无论我将 +pi/4 或 -pi/4 传递给它,我都会得到相同的答案。我无法弄清楚我做错了什么。我使用的约束方程是:

其中 s 是速度,L 是像机器人一样的汽车的长度。

0 投票
1 回答
851 浏览

python - 尝试通过 Euler 和 Runge_Kutta 方法求解二阶 DE

我正在尝试使用 Euler 和 Range-Kutta 方法解决弹簧质量问题并比较这些图。我已经为 Euler 和 Runge-Kutta 编写了函数,但是在将函数调用到我的问题之后,我的绘图似乎没有显示任何数据。请帮我修复情节并检查我的代码中是否有任何错误,谢谢

这是我要解决的问题

0 投票
1 回答
785 浏览

fortran - Fortran 中五阶 Runge-Kutta 方法的自适应步长方法

我想使用 5 阶 Runge-Kutta 方法和自适应步长方法求解一组方程。我找到了由 Taner Akgun 编写的有用代码。这是代码:

不幸的是,我根本不熟悉 Fortran。我将使用此代码求解以下方程组。

  1. dy/dx=-x
  2. dy/dx=-1

在代码中,它说 nvar 变量是方程式的数量,在此代码中,它设置为 1。如果我想将其更改为 1 以外的值,我应该如何更改代码?

另外,我想将所有 x 和 y 的值保存在输出文件中。我怎么能做到?

0 投票
1 回答
225 浏览

matlab - 为什么数值结果不同(RK45)?

这是使用 runge-kutta45 对方程微分的测试: f(x,y)= (-5*x - y/5)^1/8 + 10

在此处输入图像描述

为什么数值结果不同?我用了 :

0 投票
0 回答
124 浏览

matlab - MATLAB 上的非线性微分方程组

我是 MATLAB 的新手,我正在尝试使用 Runge-Kutta 算法来解决弗里德曼方程。

如果你不知道,弗里德曼方程有以下形式:

膨胀宇宙的弗里德曼方程 在此处输入图像描述

,其中曲率k由值给出-1, 0 or 1

此外,压力的状态方程由下式p给出:

压力状态方程

在此处输入图像描述

所以,我有 Runge-Kutta 算法:

,但我有三个问题:

  1. 我不知道如何将密度象征性地\rho放在我的功能上。
  2. 我不知道定义第二个函数g=@(t,x,y),因为我有一个关于时间的导数。
  3. 最后一个,会发生什么k=sqrt(-1)?因为我象征性地需要那个结果,但我想要整个结果的数字。

对不起,如果我的问题是基本的,但我不知道该怎么做,我需要一些建议或帮助。

非常感谢 :)

0 投票
1 回答
636 浏览

function - 有效使用函数作为参数

我想用 Julia 语言实现一个通用的 Runge-Kutta 阶跃函数。在 Python 中,我可以只传递一个函数作为这个 RK4 函数作为输入的参数之一。如果我在 Julia 中这样做会不会有性能损失?

我的功能如下所示:

其中 Ps 是具有模型参数的 Julia 类型,Vs 是 ODE 变量的多维数组,rhs 是 ODE 的右手边(部分时间导数)。

0 投票
1 回答
680 浏览

julia - Julia 挑战 - FitzHugh–Nagumo 模型 PDE Runge-Kutta 求解器

我是 Julia 编程语言的新手,所以我不太了解如何优化代码。我听说 Julia 与 Python 相比应该更快,但我编写了一个简单的Julia 代码来解决 FitzHugh–Nagumo 模型,它似乎并不比 Python 快。

FitzHugh–Nagumo 模型方程为:

其中uv是变量,是二维字段(即二维数组),a0,a1,d,eps是模型的参数。参数和变量都是浮点类型。dx是控制网格点之间分离的参数,用于拉普拉斯函数,它是具有周期性边界条件的有限差分的实现。

如果你们中的一位 Julia 编码专家可以给我一个提示,告诉我如何在 Julia 中做得更好,我会很高兴听到。

龙格-库特阶跃函数为:

我使用了 PyPlot 包中的 imshow() 来绘制 u 字段。

0 投票
1 回答
87 浏览

c - 为什么这个简单的 C 代码集成代码会失败?

我一直在 C 中使用此代码与不同的方程集成,但今天我修改它以集成显示的一个,.dat 文件为我提供了所有充满“-nan”的列。这是一个错误的编码问题还是只是这个方程不打算通过这个程序来解决?

这是集成例程和主要代码。谢谢

首先是代码(我砍了它解释每个部分的作用,如果它看起来不愉快,我很抱歉)

参数

方程式

主要的

出口

初始状态

参数定义 aa.w1=1; aa.mu1=1;aa.w2=6; aa.mu2=1; aa.eps=0;

整合指挥

出口

这是集成程序(很好)