I am trying to find an analytical solution to the following system of ODEs:
uB'[t] == -a*uB[t]*uC[t] + b*uD[t],
uC'[t] == -a*uB[t]*uC[t] + b*uD[t],
uD'[t] == a*uB[t]*uC[t]-b*uD[t]
I can find the numerical solution readily with the following:
Assuming[uB > 0 && uC > 0 && uD > 0,
NumericalSol = NDSolve[{
uB'[t] == -uB[t] uC[t] + uD[t],
uC'[t] == -uB[t] uC[t] + uD[t],
uD'[t] == uB[t] uC[t] - uD[t] ,
uB[0] == 1,
uC[0] == 1,
uD[0] == 0},
{uB[t], uC[t], uD[t]}, {t, 0, 1}]];
And I can find the general closed-form solution with this:
ExactSol = DSolve[{
uB'[t] == -a*uB[t] uC[t] + b*uD[t],
uC'[t] == -a*uB[t] uC[t] + b*uD[t],
uD'[t] == a*uB[t] uC[t] - b*uD[t]},
{uB[t], uC[t], uD[t]}, t] // Simplify
But as soon as I include initial conditions to my analytical solution to reproduce the numerical solution:
ExactSol = DSolve[{
uB'[t] == -a*uB[t] uC[t] + b*uD[t],
uC'[t] == -a*uB[t] uC[t] + b*uD[t],
uD'[t] == a*uB[t] uC[t] - b*uD[t],
uB[0] == 1,
uC[0] == 1,
uD[0] == 0},
{uB[t], uC[t], uD[t]}, t] // Simplify
The code tries to evaluate but never finishes - is there a clear reason why the constrained solution would be difficult to obtain? What am I missing?
Thanks for any help.