【问题标题】:Define and solve nested non-linear ODE in MATLAB在 MATLAB 中定义和求解嵌套非线性 ODE
【发布时间】:2016-12-15 20:00:12
【问题描述】:

我得到了微分方程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;

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

【问题讨论】:

  • 只需定义a(t) 并调用dsolve ... ?
  • 我不知道我可以将y' 定义为y' = diff(y,t)... @TroyHaskin

标签: matlab differential-equations


【解决方案1】:

更好的一阶系统是

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

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


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

【讨论】:

  • 这是一个很好的答案。我会接受它而不是我的。我可能是第一个,但这个更好。
【解决方案2】:

这是两个耦合的一阶 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

这些是你需要解的方程。

【讨论】:

  • 我已经用初始条件更新了我的问题
  • @Ortix92 那么你为什么不在这些条件下解决它呢?从数学上讲,这就是你应该这样做的方式。
猜你喜欢
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多