问题标签 [ode45]

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 投票
2 回答
705 浏览

matlab - Matlab:ode45 和 4 阶 Runge-Kutta 方法产生不同的值

我正在尝试在 Matlab 中模拟仓本振荡。我尝试使用 ode45 来解决系统问题。我还看到其他人使用 Runge-kutta 方法。我知道 ode45 使用 Runge-kutta 方法,但是,我从每个方法中获得的值可疑地不同。

这两种方法都输出一个包含 N 行(每行代表不同的振荡器)和 M 列(其中 M 代表给定时间的解)的矩阵,我让 ode45 以 0.1 的间隔提供从 0 到 0.5 的解。为了比较这些方法,我将从 Runge-Kutta 获得的矩阵与使用 ode45 获得的矩阵相减。理想情况下,两者应该具有相同的值,结果应该是一个 zeor 矩阵,但我得到的值如下:

两个矩阵之间存在微小差异(以较大的时间间隔增长)。但不同寻常的是,每次计算的总值(即每一列)是相同的。无论振荡器的数量如何,这都是一致的。

我不确定这是数学问题还是编程问题(可能两者兼而有之),并且我认为我错误地调用了 ode45,但我不确定并且几天来一直无法弄清楚出了什么问题。任何帮助,将不胜感激。

0 投票
1 回答
351 浏览

python - Python ODE45 IndexError: list assignment out of range

I am trying to duplicate an ODE script I have running in Matlab to Python. Here is the Matlab script:

hw1SS Function:

The Matlab code works perfectly fine. When I try to replicate this in Python, I receive the following error: IndexError: list assignment index out of range

Here is my attempted solution in Python:

Error message:

0 投票
1 回答
95 浏览

matlab - ode45 Matlab 中的 NaN 响应

我使用 ode45 来解决位置变量与时间的关系,但在初始条件之后,我只得到所有 4 个变量的 NaN 响应。这是我的功能代码:

以及实现代码:

0 投票
0 回答
116 浏览

matlab - 为什么我在 Matlab ode45 求解器中出现“使用 vertcat 时出错”?

我有以下函数要由 Matlab 的 ODE45 求解器求解:

这应该解决具有 12 个初始条件的 12 个 ODE 的系统,但是当我运行代码时,我收到以下错误:

它指的是矩阵B。这里可能出了什么问题?

B11, B12, ...是矩阵的组成部分,它们是基于函数变量定义的,例如“y”向量。

0 投票
0 回答
87 浏览

matlab - 如何从 MATLAB ode45 中提取参数向量?

我正在尝试在 MATLAB 中执行闭环系统,它使用以下 ode:

我正在调用另一个函数[u,V1]=ip(y)来计算每个时间步的输入和我的 Lyapunov 函数。我需要绘制输入和 Lyapunov 函数的时间响应以供进一步使用,那么有什么方法可以从我的 ode 中提取uV1向量?

要运行 ode 我正在调用以下脚本

0 投票
0 回答
132 浏览

matlab - 初始点的 ODE45 奇点

对于给定的微分方程,

图片

初始条件y(0) = 1

我正在尝试在区间[0 5]上使用 MATLAB 的 ODE45 方法找到解决方案。但是,我注意到给定的方程在给定的初始点实际上是奇异的。鉴于这种情况,你建议我如何进行?

我尝试过的是,对于某些 δ < 1e-5 ,我可以从0 + δ开始区间。然而,这将是一个粗略的近似。方程在点 0 处不可微。

太感谢了,

0 投票
1 回答
2100 浏览

matlab - 如何使用ode45在matlab中求解耦合微分方程

我有两个微分方程:da/dt=a(.3/a^3+.7)^1/2 和 dτ/dt=1/a。初始条件为t=0;a=1 和 τ=0,分别。Matlab中的方程怎么解?我需要计算 a、t 和 τ 的不同值,还绘制 τ 与 a。谢谢。

0 投票
1 回答
49 浏览

matlab - 用 MatLab 求解这个微分方程组

我正在尝试用 Matlab 求解以下微分方程组。

以下系统

我使用的参数在这里

在这里找到.

我遇到的问题是,当我运行我的代码时,无论我为 d1 和 d2 设置的值如何,我都会得到相同的结果。准确地说,我得到的结果与系统的简化版本相同,其中 d1,d2 = 0。由于我试图复制其他人的结果,我知道情况不应该如此。有谁知道为什么会这样?

0 投票
1 回答
85 浏览

matlab - 为什么我的第三个 MATLAB 函数在使用 ode45 时只输出零?

我需要使用 MATLAB 为我的系统生物学课模拟基因的负、正和简单调控。问题是负调节功能和简单调节功能有效,而正调节功能仅输出零。

我的脚本如下:

我的功能是:

第三个函数“autoregulation_f2(t,X)”是输出零的函数,因此在绘制图形时我只得到一条直线。

有谁知道这可能是什么原因造成的?

提前致谢!

0 投票
1 回答
2373 浏览

matlab - Matlab - ode45 - 如果不将步长减小到时间 t 处允许的最小值 (1.136868e-13) 以下,则无法满足积分容差。

我正在从一篇关于血管生成的文章中编写一个数学模型,但是当我尝试使用给定的参数和初始值绘制函数时,程序不会在我定义的整个时间跨度内运行,显示了图形的一部分但结束了突然并显示消息:

包含所有功能和我要复制的图形的完整文章的链接是https://www.sciencedirect.com/science/article/pii/S0022519316001429

我试过除 ode45 之外的其他 ode,但这是唯一一个显示出一些希望的 ode...

我目前的代码是这样的:

图 3 的第一个想象的功能

图 3 的第二个想象的功能

实际需要的图表和最终方程: