在 MATLAB 中定义和求解嵌套非线性 ODE

Define and solve nested non-linear ODE in MATLAB

我得到了 y'' = -g + a(t)/ma(t) = k*y'^2 的微分方程,其中 yt(时间)的函数。我的初始条件是 y(0) = 600;y'(0) = 0;

在 MATLAB 中我知道如何定义 y''

ydd = diff(y,t,2) == -g + a(t)/m;

但我不知道这是一个 'nested' 非线性微分方程,我不太确定如何定义它,更不用说在 MATLAB 中求解它了。

这是两个耦合的一阶 ODE。

z = y'。那么你有:

z' = -g + a(t)/m
y' = sqrt(a(t)/k)

您需要初始条件 y(0)=600z(0)=0

等式 z(0)=0 意味着 a(0)/m = g。求解 a(0) = gm.

这些是您需要求解的方程式。

更好的一阶系统是

v' = -g + k/m*v^2
y' = v

因为不再涉及第三个未知函数 a(t)


挑战:通过变量分离和部分分数分解手动求解第一个方程,或将面积正切双曲线的缩放确定为 v 侧边的积分。