matlab 中的 ODE 系统
System of ODEs in matlab
我不确定如何在 Matlab 上将以下 ODE 系统实现为单个函数:
dy/dt = y(t) - y(t)x(t)
dx/dt = -x(t) + y(t)x(t)
任何帮助将不胜感激,因为多年来我一直在解决我的整体问题的这一部分。谢谢
如果您不熟悉创建和仿真 ODE 的命令行工具,那么只需使用 Simulink,然后尝试通过 lsim
从命令行操作模型,最后尝试在 m 中创建模型文件。
这是一个 2 分钟的 simulink 练习,它允许您从下拉列表中选择您喜欢的求解器。
在定义要使用的常量之前,它应该如下所示:
function dzdt = odefunc(t,z)
x = z(1); y=z(2);
dzdt = [ -x + x*y; y - x*y ];
end
T, Z = ode45(odefunc, [T0 Tf], [ x0; y0 ])
作为
F(x,y) = x+log(1/x) + y+log(1/y)
是有界水平集的第一个积分,对于正初始值 x0,y0
,解将保持有界(并且是周期性的)。
我不确定如何在 Matlab 上将以下 ODE 系统实现为单个函数:
dy/dt = y(t) - y(t)x(t)
dx/dt = -x(t) + y(t)x(t)
任何帮助将不胜感激,因为多年来我一直在解决我的整体问题的这一部分。谢谢
如果您不熟悉创建和仿真 ODE 的命令行工具,那么只需使用 Simulink,然后尝试通过 lsim
从命令行操作模型,最后尝试在 m 中创建模型文件。
这是一个 2 分钟的 simulink 练习,它允许您从下拉列表中选择您喜欢的求解器。
在定义要使用的常量之前,它应该如下所示:
function dzdt = odefunc(t,z)
x = z(1); y=z(2);
dzdt = [ -x + x*y; y - x*y ];
end
T, Z = ode45(odefunc, [T0 Tf], [ x0; y0 ])
作为
F(x,y) = x+log(1/x) + y+log(1/y)
是有界水平集的第一个积分,对于正初始值 x0,y0
,解将保持有界(并且是周期性的)。