我给出了带有y'' = -g + a(t)/m
的微分方程a(t) = k*y'^2
,其中y
是t
(时间)的函数。我的初始条件是y(0) = 600;
和y'(0) = 0;
在MATLAB中,我知道如何用
定义y''
ydd = diff(y,t,2) == -g + a(t)/m;
但我很遗憾这是一个'嵌套'非线性微分方程,我不太清楚如何定义它,更不用说在MATLAB中解决它了。
答案 0 :(得分:1)
这是两个耦合的一阶ODE。
让z = y'
。然后你有:
z' = -g + a(t)/m
y' = sqrt(a(t)/k)
您需要初始条件y(0)=600
和z(0)=0
。
等式z(0)=0
意味着a(0)/m = g
。解决a(0) = gm
。
这些是你需要解决的方程式。
答案 1 :(得分:1)
更好的一阶系统是
v' = -g + k/m*v^2
y' = v
因为不再涉及第三个未知函数a(t)
。
挑战:通过分离变量和部分分数分解手动解决第一个方程,或者将区域切线双曲线的缩放识别为v
边的积分。