问题标签 [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.
matlab - 使用 ODE45 求解 ODE 系统
我正在尝试学习如何使用 MATLAB 求解微分方程组(洛伦兹方程)并将每个解绘制为 t 的函数
其中σ = 10
, β = 8/3
, 和ρ = 28
, 以及x(0) = −8
, y(0) = 8
, 和z(0) = 27
.
这是我正在使用的代码:
但是,这会产生错误,我该如何解决?我不确定缺少哪些输入参数或哪里出错了。我感谢任何帮助,谢谢。
没有足够的输入参数。
示例中的错误(第 9 行) xprime=[-sig x(1) + sig x(2); rho*x(1) - x(2) - x(1) x(3); -β x(3) +
x(1)*x(2)];
matlab - 数学建模 - Matlab ode45-for 循环
我需要编写一个代码来获取具有“历史”的数学模型的相图。我会在代码之后解释。
详细清单:
S
=健康人群I
=感染人群N
=总人口b
=出生率(15年前S
)m
=死亡率l
=接触感染机会u
=疾病死亡率
P
并且S
仅在不同的时间段(P
= 15 年前S
)表示相同的事物,并且所有P
值都已给出。
代码需要返回 和 的相S
图。我绝对不是 100% 确定我的代码是否适合我的目标,但这就是我想出的。当前代码运行但永不结束。欢迎对我的代码提出任何建议或帮助修复错误。I
N
如有必要,我还考虑在 ode45 和 plot 之间的 for 循环中添加以下内容:
matlab - 在 MATLAB ode45 中,如何解决参数依赖于其他参数而不依赖于时间的 ODE 系统?
考虑运载火箭的方程
dv/dt = T/m - D/m - g*sin(gam)
v*d(gam)/dt = -g(-v^2/W)*cos(gam) 其中 W 是一个常数
dh/dt = v*sin(gam)。
其中 v 代表速度,T 是推力。
我的推力值是离散的,因此我必须使用interp1,这很简单。
但是,我的阻力 D ** 取决于 **velocity本身,我该如何合并呢?
如您所见,一个参数是另一个参数的函数。
matlab - 将参数传递给函数句柄时出错
假设我们有以下函数:
为了运行这个程序,让我们使用以下测试文件:
我尝试将参数传递给函数句柄,
但它给了我以下错误:
一种解决方案涉及使用全局变量,如下所示:
但是运行时间太长了。
我还能如何解决这个问题?我想要的是传递不同的参数,如果我在里面写这样的代码
然后这将重复几次。
matlab - 我无法解决的 ODE45
我在使用 ODE45 时遇到问题。我在下面给出了matlab代码。我无法启动求解器。可能是语法错误。如果你能找到问题,我会很高兴。
它是填充床反应器的建模和仿真。然而; 在开始真正的模拟之前我得到了错误:)
matlab - 如何调试这个 Matlab 代码来模拟滑翔机下降?
我有这个 Matlab 项目,但由于某种原因,我无法停止思考它,因为我无法让它工作。
客观的:
这是一个 MATLAB 脚本,可以计算从 10000 英尺高空坠落的滑翔机的压力、温度和密度变化。当它下降时,我们想要使用计算出的这些新值,然后插入一个函数,该函数有 4 个方程,需要使用 ode45 以及 PT 和 Rho 的新值在每个点进行微分。
这是主要代码:
这是功能
我对 Matlab 不是很好,但我已经尽力了!我去找我的教授寻求帮助,但他们说他们太忙了。我什至跟踪了我认识的每一位学长,他们都说他们不知道该怎么做。我的下一个项目将很快被分配,我认为如果我不能做到这一点,那么我将无法进行下一个项目。
matlab - MatLab ode45 最小时间步长
我正在尝试使用 MatLab 和 ode45 函数求解微分方程。问题是如何更改最小步长?我想让它更大以避免太小的步骤。我正在尝试这样做:
- t - 时间
- q - 找到的解决方案
- dqdt2 - 我的文件功能
- q0 - 初始条件
arrays - MATLAB ODE45:只保存最后一个解决方案
我只想让 ODE45 保留最后一个解决方案。而是从 tspan = [t0 tf]; 返回所有解决方案 我只希望返回的向量成为 tf.
我想这样做的原因是为了避免以下错误:
使用 horzcat 时出错 请求的 442368x1828 (6.0GB) 数组超出了最大数组大小首选项。创建大于此限制的数组可能需要很长时间并导致 MATLAB 变得无响应。有关更多信息,请参阅数组大小限制或首选项面板。
ode45 错误(第 428 行)yout = [yout, zeros(neq,chunk,dataType)];
matlab - 将变量传递给PARFOR内的ODE求解器中使用的函数
我有一个 ODE 函数,我试图用不同的参数多次求解。这是功能
这是我用来通过更改函数中的变量来多次求解的求解器。
在这种情况下,我正在更新 R0。在其他情况下,我正在更新 f 或 ps (全局变量)。我正在尝试使用 PARFOR 来加快速度,但是在使用 PARFOR 时我找不到将这些全局变量传递给函数的方法。
提示 ?