# Is it possible to obtain explicit symbolic solutions to such linear ordinary differential equations?

The ordinary differential equations to solve have symbolic parameters $k_1,k_2,k_3,k_4,k_5,k_6 \in \mathbb{R}$. $$\left\{ \begin{array}{l} {y_1}'(t)=-{k_1} {y_1}(t)-{k_2} {y_1}(t),\\ {y_2}'(t)={k_2} {y_1}(t)-{k_3} {y_2}(t),\\ {y_3}'(t)={k_1} {y_1}(t)+{k_3} {y_2}(t)-{k_4} {y_3}(t),\\ {y_4}'(t)={k_4} {y_3}(t)-{k_5} {y_2}(t) {y_4}(t)+{k_6} {y_5}(t),\\ {y_5}'(t)={k_5} {y_2}(t) {y_4}(t)-{k_6} {y_5}(t)\\ \end{array} \right.$$

The ODE system itself seems simple when all $k_i$ are numerical numbers. How to solve it symbolically ? Is it possible to obtain explicit solutions?

Update:

Expressions in MMA:(DSolve does not work for such nonlinear ODE system)

  DSolve[{D[y1[t], t] == -k1*y1[t] - k2*y1[t],
D[y2[t], t] == k2*y1[t] - k3*y2[t],
D[y3[t], t] == k1*y1[t] + k3*y2[t] - k4*y3[t],
D[y4[t], t] == k4*y3[t] - k5*y2[t]*y4[t] + k6*y5[t],
D[y5[t], t] == k5*y2[t]*y4[t] - k6*y5[t]}, {y1[t], y2[t], y3[t],
y4[t], y5[t]}, t]

• Did you already try DSolve? It would be good if you could provide the equations in Mathematica input form. It would let potential answerers try their solutions. Aug 9, 2014 at 23:28

This ODE system can't be solved symbolically with the given information.
First let's define the differential equations:

dg1 = y1'[t] == -k1 y1[t] - k2 y1[t]
dg2 = y2'[t] == k2 y1[t] - k3 y2[t]
dg3 = y3'[t] == k1 y1[t] + k3 y2[t] - k4 y3[t]
dg4 = y4'[t] == k4 y3[t] - k5 y2[t] y4[t] + k6 y5[t]
dg5 = y5'[t] == k5 y2[t] y4[t] - k6 y5[t]


Now the first three differential equations can be solved, because these are independent of the last two.

pSol = DSolve[{dg1, dg2, dg3}, {y1[t], y2[t], y3[t]}, t]

{{y1[t] -> E^((-k1 - k2) t) C[1],
y2[t] -> (E^(-k3 t) (-1 + E^((-k1 - k2) t + k3 t)) k2 C[1])/(-k1 - k2 + k3) + E^(-k3 t) C[2],
y3[t] -> (E^(-k3 t - k4 t) (E^(k3 t) k1^2 k3 -
E^((-k1 - k2) t + k3 t + k4 t) k1^2 k3 +
2 E^(k3 t) k1 k2 k3 - E^(k4 t) k1 k2 k3 -
E^((-k1 - k2) t + k3 t + k4 t) k1 k2 k3 + E^(k3 t) k2^2 k3 -
E^(k4 t) k2^2 k3 - E^(k3 t) k1 k3^2 +
E^((-k1 - k2) t + k3 t + k4 t) k1 k3^2 - E^(k3 t) k2 k3^2 +
E^((-k1 - k2) t + k3 t + k4 t) k2 k3^2 - E^(k3 t) k1^2 k4 +
E^((-k1 - k2) t + k3 t + k4 t) k1^2 k4 - E^(k3 t) k1 k2 k4 +
E^((-k1 - k2) t + k3 t + k4 t) k1 k2 k4 + E^(k3 t) k1 k3 k4 -
E^((-k1 - k2) t + k3 t + k4 t) k1 k3 k4 +
E^(k4 t) k2 k3 k4 -
E^((-k1 - k2) t + k3 t + k4 t) k2 k3 k4) C[1])/((k1 + k2 - k3) (k1 + k2 - k4) (k3 - k4)) -
(E^(-k3 t - k4 t) (-E^(k3 t) + E^(k4 t)) k3 C[2])/(k3 - k4) +
E^(-k4 t) C[3]
}}


From the last differential equation we get

Solve[dg5, y5[t]]

{{y5[t] -> (k5 y2[t] y4[t] - y5'[t])/k6}}


This (or even easier to see k6 y5[t]) can be inserted into the fourth differential equation

dg4 /. (First@%)

y4'[t] == k4 y3[t] - y5'[t]


(Note that there is no y5[t] left.)
Inserting also pSol and applying Simplify provides the remaining equation

% /. (First@pSol) // Simplify

(E^(-(k3 + k4) t) k4 (E^((-k1 - k2 + k3 + k4) t) (k1 + k2) (k1 - k3) (k3 - k4) C[1] -
E^(k4 t) k3 (-k1 - k2 + k4) ((k1 - k3) C[2] + k2 (C[1] + C[2])) -
E^(k3 t) (k1 + k2 - k3) (k4 (k4 C[3] - k3 (C[2] + C[3])) +
k2 (-k4 C[3] + k3 (C[1] + C[2] + C[3])) +
k1 (-k4 (C[1] + C[3]) + k3 (C[1] + C[2] + C[3])))))/((k1 + k2 - k3) (k1 + k2 - k4) (k3 - k4)) +
y4'[t] + y5'[t] == 0


If one tries to solve this equation using

DSolve[%, {y4[t], y5[t]}, {t}]


DSolve::underdet: There are more dependent variables than equations, so the system is underdetermined. >>

The remaining equation can be solved for y4[t], though.

DSolve[%%, {y4[t]}, {t}]

{{y4[t] ->
C[4] + (E^(-(k1 + k2) t) (k1 - k3) (k3 - k4) k4 C[1] +
E^(-(k3 + k4) t) (-E^(k4 t) k4 (-k1 - k2 + k4) ((k1 - k3) C[2] + k2 (C[1] + C[2])) -
E^(k3 t) (k1 + k2 - k3) (k4 (k4 C[3] - k3 (C[2] + C[3])) +
k2 (-k4 C[3] + k3 (C[1] + C[2] + C[3])) +
k1 (-k4 (C[1] + C[3]) +
k3 (C[1] + C[2] + C[3])))) - (k1 + k2 - k3) (k1 + k2 - k4) (k3 - k4) y5[t])/((k1 + k2 - k3) (k1 + k2 - k4) (k3 - k4))
}}


The ODE system can also be solved, e.g. if y5'[t] is a constant.

With the solutions of the first three equations (pSol), the remaining equations can be rewritten as
y4'[t] == k6 y5[t] - a[t] y4[t] + b[t]

• I also tried the same methods. I originally was trying to fit $k_i$s via measured data as below {{30.0, 9.1300, 0.0931, 0.0899, 0.1000, 0.0000}, {60.0, 8.9261, 0.1270, 0.1229, 0.2272, 0.0049}, {90.0, 8.6006, 0.1509, 0.1392, 0.4917, 0.0153}, {120.0, 8.2823, 0.1537, 0.1491, 0.7783, 0.0249}, {150.0, 7.9652, 0.1537, 0.1567, 1.0716, 0.0329}, {180.0, 7.8637, 0.1536, 0.1603, 1.1659, 0.0348}, {210.0, 7.8120, 0.1530, 0.1532, 1.2140, 0.0404}, {240.0, 7.7652, 0.1403, 0.1417, 1.2795, 0.0432}}, columns represents $t$ and $y_i$ respectively Aug 10, 2014 at 2:24
• @LCFactorization at least you can use pSol to fit k1, k2, k3, and k4. Aug 10, 2014 at 11:39