3
$\begingroup$

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]
$\endgroup$
1
  • $\begingroup$ 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. $\endgroup$
    – C. E.
    Commented Aug 9, 2014 at 23:28

1 Answer 1

6
$\begingroup$

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}]

the following message is received

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.


Additional note:
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]
y5'[t] == a[t] y4[t] - k6 y5[t]

Therefore the remaining problem is to solve this non-homogeneous first-order linear differential equation with variable coefficients.

$\endgroup$
5
  • $\begingroup$ 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 $\endgroup$ Commented Aug 10, 2014 at 2:24
  • $\begingroup$ Is it to solve the prolbem mathoverflow.net/questions/178192/… via MMA? $\endgroup$ Commented Aug 10, 2014 at 2:42
  • $\begingroup$ @LCFactorization at least you can use pSol to fit k1, k2, k3, and k4. $\endgroup$
    – Karsten7
    Commented Aug 10, 2014 at 11:39
  • $\begingroup$ so it is still impossible to obtain them all? $\endgroup$ Commented Aug 11, 2014 at 1:46
  • $\begingroup$ @LCFactorization It isn't impossible. The remaining problem (see my additional note) generally has a formal solution, but it is in general not a simple function that would be suitable for a fitting procedure. So far I didn't encounter this class of equations in my experimental systems and therefore can't give you any further advice on how to tackle it. $\endgroup$
    – Karsten7
    Commented Aug 11, 2014 at 8:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.