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

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

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)

Better ?
v(t) = v(0) - g*t - v0*log(m0/(m0-k*t))

Categories

Find more on Programming in Help Center and File Exchange

Products

Release

R2024b

Tags

Asked:

on 17 Nov 2024

Commented:

on 17 Nov 2024

Community Treasure Hunt

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

Start Hunting!