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

35 views (last 30 days)
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 Comment
Paul
Paul on 17 Nov 2024 at 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?

Sign in to comment.

Answers (1)

Torsten
Torsten on 17 Nov 2024 at 14:32
Moved: Torsten on 17 Nov 2024 at 14:33
Better ?
v(t) = v(0) - g*t - v0*log(m0/(m0-k*t))
  3 Comments

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Tags

Products


Release

R2024b

Community Treasure Hunt

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

Start Hunting!