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