MATLAB中嵌套非线性常微分方程的定义与求解
我得到了微分方程MATLAB中嵌套非线性常微分方程的定义与求解,matlab,differential-equations,Matlab,Differential Equations,我得到了微分方程y'=-g+a(t)/m和a(t)=k*y'^2,其中y是t(时间)的函数。我的初始条件是y(0)=600和y'(0)=0 在MATLAB中,我知道如何用 ydd = diff(y,t,2) == -g + a(t)/m; 但这是一个“嵌套”的非线性微分方程,我不知道如何定义它,更不用说在MATLAB中求解它了。这是两个耦合的一阶常微分方程 设z=y'。那么你有: z' = -g + a(t)/m y' = sqrt(a(t)/k) 您需要初始条件y(0)=600和z(0)=
y'=-g+a(t)/m
和a(t)=k*y'^2
,其中y
是t
(时间)的函数。我的初始条件是y(0)=600代码>和y'(0)=0代码>
在MATLAB中,我知道如何用
ydd = diff(y,t,2) == -g + a(t)/m;
但这是一个“嵌套”的非线性微分方程,我不知道如何定义它,更不用说在MATLAB中求解它了。这是两个耦合的一阶常微分方程
设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
这些是你需要解的方程。这是两个耦合的一阶常微分方程
设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
这些是你需要解的方程。一阶系统更好
v' = -g + k/m*v^2
y' = v
因为不再涉及第三个未知函数a(t)
挑战:通过分离变量和部分分式分解手动求解第一个方程,或将面积切线双曲线的标度识别为v
一侧的积分,最好的一阶系统是
v' = -g + k/m*v^2
y' = v
因为不再涉及第三个未知函数a(t)
挑战:通过分离变量和部分分数分解手动求解第一个方程,或将面积切线双曲线的比例确定为v
一侧的积分,我已用初始值更新了我的问题conditions@Ortix92那你为什么不用这些条件来解决呢?从数学上讲,这就是你应该做的。我已经用首字母更新了我的问题conditions@Ortix92那你为什么不用这些条件来解决呢?这就是你在数学上应该做的。只需定义a(t)
并调用dsolve
?我不知道我可以把y'
定义为y'=diff(y,t)
@Troyhaskin只需定义a(t)
并调用dsolve
?我不知道我可以把y'
定义为y'=diff(y,t)
@这是一个很好的答案。我愿意接受它而不是我的。我可能是第一个,但这个更好。这是一个很好的答案。我愿意接受它而不是我的。我可能是第一个,但这个更好。