MATLAB Answers

dr/dt* ln(a*r*dr/dt)=b/r^7 how to solve this equation

1 view (last 30 days)
vishal  vyas
vishal vyas on 20 Feb 2018
Commented: Torsten on 21 Feb 2018
kindly help me to solve this equation a = 0.5, b=2, r(0)=1.2
  2 Comments
Walter Roberson
Walter Roberson on 20 Feb 2018
There is no easy solution for that. The rule is:
r(t) = RootOf(int(P^7*LambertW(1/P^6), P = Z .. 6/5)+2*t)
which is to say that at each point, t, r(t) is the lower bound of the integral P^7*LambertW(1/P^6) such that integrating over P from lower bound to 6/5, plus 2*t, gives 0. (P is an arbitrary variable name here.)

Sign in to comment.

Answers (1)

Roger Stafford
Roger Stafford on 20 Feb 2018
Here is how I would approach your problem. First we write
a*r*dr/dt*log(a*r*dr/dt) = a*b/r^6
Now define w:
w = log(a*r*dr/dt)
and therefore
a*r*dr/dt = exp(w)
Thus
exp(w)*w = a*b/r^6
Hence
w = lambertw(a*b/r^6)
a*r*dr/dt = exp(lambertw(a*b/r^6))
dr/dt = 1/(a*r)*exp(lambertw(a*b/r^6))
Now finally you have a differential equation in the form that Matlab's ode functions can evaluate numerically, provided you have the lambertw function available.
  1 Comment
Torsten
Torsten on 21 Feb 2018
Alternatively, by setting
y1 = r
y2 = dr/dt,
you can use ODE15S to solve the differential-algebraic system
y1' = y2
y2*log(a*y1*y2)-b/y1^7 = 0
Best wishes
Torsten.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by