Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB中嵌套非线性常微分方程的定义与求解_Matlab_Differential Equations - Fatal编程技术网

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)
@这是一个很好的答案。我愿意接受它而不是我的。我可能是第一个,但这个更好。这是一个很好的答案。我愿意接受它而不是我的。我可能是第一个,但这个更好。