Solving the differential equation gives unexpected results. How to fix that?

29 次查看(过去 30 天)
When I solve the differential equation using Matlab, the result is as shown. It's correct, but entering input parameters such as m0 (initial mass), m0 > 0 but the resulting equation has log(- m0) leads to wrong results. Does anyone know how to fix this? Thank you very much everyone.
  1 个评论
Paul
Paul 2024-11-17,15:36
Hi Ly,
For future reference, please don't post screenshots of code. Instead, just copy/paste your code into the question, which makes it easier for someone else to then copy/paste your code to run it, debug it, etc. When inserting code, please use code formatting by clicking the left-most icon on the Code section of the ribbon.
What's supposed to happen in this system when t is large and m0 - k*t < 0? (asuming k > 0)
Is the sign on the k*v0 term correct (assuming k > 0)?
Is the equation for ysol correct? As written, the second term on the right is integrating backwards in time. Is that the intent?

请先登录,再进行评论。

回答(1 个)

Torsten
Torsten 2024-11-17,14:32
移动:Torsten 2024-11-17,14:33
Better ?
v(t) = v(0) - g*t - v0*log(m0/(m0-k*t))
  3 个评论

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

标签

产品


版本

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by