A particular differential equation... why can't I solve it?

11 views (last 30 days)
the differential equation: dy/dt = (t-e^-t)/(y+e^y) was assigned by my teacher and supposedly dsolve() can solve it, resulting in an implicit solution. No matter what I try, I think the teacher is wrong because I just get the empty matrix, which according to the documentations means that no solution could be found. Any thoughts? I'm getting nowhere digging in the documentation.

Accepted Answer

John D'Errico
John D'Errico on 13 Sep 2019
Easier than you might think to solve, even with pencil and paper. But sometimes a computer won't see the trick, at least, not without help. I've seen cases where that happens, but not here. Of course, since this is now an 8 year old, unanswered question. it may also be that dsolve has become smarter since it was originally posed too.
Here, I think it is possible the transcription error was Walter's fault in what he tried, because dsolve succeeds.
syms t y(t)
>> dsolve(diff(y(t), t) == (t-exp(-t))/(y(t)+exp(y(t))))
Warning: Unable to find explicit solution. Returning implicit solution instead.
> In dsolve (line 208)
ans =
solve(2*exp(y) + y^2 == 2*C8 + 2*exp(-t) + t^2, y)
So the solution is indeed an implicit euation. How would we arrive at it without the help of MATLAB? This is a separable equation, if you multiply by the denominators (y + exp(y))*dt. So we have the problem...
(y + exp(y)) dy = (t - exp(-t)) dt
Integrating each side, we get
y^2 / 2 + exp(y) = t^2 /2 + exp(-t) + C
If you now multiply by 2, you should see it is the same implicit problem returned by dsolve. C is of course an unknown constant of integration.
  3 Comments
John D'Errico
John D'Errico on 13 Sep 2019
Yes. I thought it may have been a transcription error indeed. Its an easy mistake to make too, because the eye sees the exponential, and one mentally puts in a t there to match the numerator.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 25 Sep 2011
In Maple,
dsolve(diff(y(t), t) = (t-exp(-t))/(y(t)+exp(t)));
returns empty as well. That suggests that perhaps the equation is not transcribed correctly.

Community Treasure Hunt

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

Start Hunting!