问题标签 [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 投票
1 回答
55 浏览

matlab - 求解方程组以获得所需的阶跃响应

我需要在下面的方程中获得a、b和c的值,以便系统的阶跃响应与下图的响应相匹配。

其中 x_dot 是 x 的一阶导数。

图 1:所需的输出

我一直在尝试通过 Matlab 来实现这一点,到目前为止,我已经实现了以下目标,仅使用 a、b 和 c 的任意值进行测试:

0 投票
1 回答
831 浏览

matlab - 在 MATLAB 中使用 ode45 时如何更改函数中的参数

我有一个函数(对于 SIR 模型),然后是一个脚本来解决这个函数并将它与我试图拟合这个模型的数据进行比较。因此,我试图运行一个 for 循环来更改函数中的参数以优化拟合。我想知道如何在 for 循环中更改我的 (r) 和 (a) 参数,而无需手动更改它们:

谢谢

0 投票
1 回答
72 浏览

matlab - 与 ode45 一致的 MATLAB 错误

我试图让 matlab 显示猎物与捕食者的图表

重点是展示生活在同一环境中的两个物种的种群之间的动态关系。

两个导数(dxdt(1) 和 dxdt(2))模拟每个总体的变化率

我尝试使用 Runge-Kutta 积分方法来获得两个物种的种群与时间的关系图

错误只是说:

我很难过任何帮助都会很棒

0 投票
1 回答
1608 浏览

matlab - Matlab ode45 输入参数太多

我正在尝试编写一个简单的 Matlab 代码来模拟射弹。每当我尝试运行代码时,都会收到一条错误消息,提示输入参数太多。我正在运行代码

模型1(44.7, 45)


我会很感激任何建议!

0 投票
0 回答
135 浏览

matlab - ode45 向量值函数

我有一个名为 theRas 的列向量。它代表了最优控制问题中的约简伴随系统。它是一个 [10 * 1] 列向量。它的形式theRas(z1, z2, z3, z4, z5, lam1, lam2, lam3, lam4, lam5) =......

它基本上是 10 SYMBOLIC 微分方程的形式

z1dot = ... z2dot = ... . . lam5dot = ...

它真的很大,这就是为什么我试图解释它而不是仅仅发布它。

所以现在我不是所有 10 个变量的初始值,我想使用 ode45 来解决它。这是我试图做到这一点的功能:

它给了我错误:

我感觉我在 ode45 中定义我的函数的方式是错误的,但我不知道如何修复它。任何帮助,将不胜感激。

0 投票
1 回答
120 浏览

matlab - 在 Matlab 中使用 @ 或 '' 表示 ode45?

我对何时使用 ode45(@functionname, tspan, initialvalues,...) 或 ode45('functionname', tspan, initial values,...) 感到有些困惑。我已经看到使用这两种方法的示例,但有时一种有效,另一种无效。

例如 [t,y]=ode45(@MM2, tspan, y0,[],k1,k2,k3)有效,但[t,y]=ode45('MM2', tspan, y0,[],k1,k2,k3)无效。

提前谢谢了。

0 投票
1 回答
131 浏览

matlab - 用 ODE 45 求解器求解六个微分方程而不定义 y 项?MATLAB

我正在尝试使用 ode45 求解器求解微分方程。但是,它没有按预期工作。

MATLAB 不断返回以下错误消息:

没有足够的输入参数。

Untitledrt 中的错误(第 24 行)

ydot(1)=y(2)

我了解该错误是由于未定义 y 术语。ODE45 求解器代码的其他一些示例也没有定义 y 项。有什么我想念的吗?或者有人可以在不定义 y 术语的情况下提出一些建议以使此代码正常工作。先感谢您。

0 投票
0 回答
96 浏览

matlab - MATLAB 在 ode 中绘制依赖变量

我在 MATLAB 中遇到问题。我尝试在 ode 函数中绘制一个变量。我用以下代码调用我的 ode Funktion:

问题是雷诺数 Re。雷诺数取决于速度。在阻力期间速度正在减小。阻力取决于雷诺数。使用 matlab 中的 ode45 求解器计算速度。函数文件如下所示:

我想做的是绘制雷诺数 Re,因为我真的需要知道这个数字。我不知道我该怎么做。我需要将 Re 保存在工作区中,例如变量 z。

0 投票
1 回答
112 浏览

matlab - matlab中带有ode45的微分方程组

我有这个葡萄糖和胰岛素模型,以及微分方程组:

微分方程组

在哪里:

G(t)- 时间 t 的血浆葡萄糖浓度
I(t)- 时间 t 的血浆胰岛素浓度
X(t)- 时间 t 的间质胰岛素
Gb- 基础血浆葡萄糖浓度
Ib- 基础血浆胰岛素浓度

描述模型。我必须做一个算法来估计参数在matlab中使用ode45。

测试数据如下:

测试数据截图

我不确定如何为 ode45 编写函数,我的想法如下:

0 投票
1 回答
225 浏览

matlab - Matlab ode45内部步骤

我对如何使用有疑问,ode45因为我知道它使用内部可变步长。例如,在我的特定情况下,我有一个 ODE 模型,我使用 5 分钟的采样时间。因此,在我的主模拟循环中,我有以下行来通过使用求解它来获得我的模型的输出ode45

其中u是模型的输入,data是带参数的结构,x0是当前时间步的初始条件,[t t+scenario.Ts]是初始时间和最终时间。我的疑问是 betweent和-solver 使用可变时间步长,因此我引入输入操作的方式可能会受到影响。因此,我了解特定输入的值在. 然后,如果我有例如通量,即水进入水箱,时间步长对此有直接影响。t+scenario.Tsode45uu[t t+scenario.Ts]u

让我用一个例子来解释一下。如果结束[t t+scenario.Ts]我就知道了u(1) = 10。那么我应该使用的真正输入是u(1)=10/(# of time steps between [t0 tend]). 但是,由于内部步骤是可变的,我必须使用哪个输入?

我希望你能理解我的问题并能帮助我。