# solving system of non-homogeneous advection equation using mathematica?

This question is followed up from this question How to solve a certain coupled first order PDE system

Here I consider the non-homogeneous advection system

\begin{equation} \displaystyle\left\{\begin{array}{l} \frac{\partial U}{\partial t}+b_1\frac{\partial U}{\partial x}=(r+l_1)U-l_1V, \\ \frac{\partial V}{\partial t}+b_2\frac{\partial V}{\partial x}=(r+l_2)V-l_2 U, \\ \end{array}\right. t\in [s,T] \end{equation}

with the following boundary conditions (where $W$ could be $U$ and $V$)

\begin{equation} \left\{\begin{array}{l} W(x,t)=0 \ \ \text{as} \ \ x\to-\infty,\\ W(x,t)\sim S_0e^x \ \ \text{as} \ \ x\to\infty,\\ W(x,T)=\max \{ S_0e^x-100,0\} \\ \end{array}\right. \end{equation}

First I tried it with mathematica using DSolve

DSolve[{
D[u[x, t], t] + b1*D[u[x, t], x] - (r + l1)*u[x, t] + l1*v[x, t] ==0,
D[v[x, t], t] + b2*D[u[x, t], x] - (r + l2)*v[x, t] + l2*u[x, t]==0
}, {u[x, t], v[x, t]}, {x, t}  ];


No things come out. I then tried it with Maple 12

sys := [diff(u(x,t),t)+b1*diff(u(x,t),x)=(r+l1)*u(x,t)-l1*v(x,t),
diff(v(x,t),t)+b2*diff(v(x,t),x)=(r+l2)*v(x,t)-l2*u(x,t)]:

sol:=pdsolve(sys,[u,v]) assuming b1>b2;


here what I got It seems for me that Maple 12 can find the solution but I don't know what does the symbol $_c_{1}$ in the output mean ?

My questions here are :

1) Can we tell mathematica does the same job as Maple 12 does ?

One of my friends recommended the following approach: we assume that solution is of the form $u=u_0e^{d_1 t+d_2x}, v=v_0e^{d_1 t +d_2x}$, then I find $u_t, v_t, u_x, v_x$,---> plug them into the system---> collecting terms in terms of $(u_0, v_0)$, we have a linear system whose determinant must be zeros in order to have a solution for the advection system. At the end, you can find infinitely many $(d_1,d_2)$, hence the solution can be represented in term of an infinite series ( which is not likable :))) )

My next questions are :

1) How can he guess such a form of the solution? (I am not saying friend is incorrect but I am not sure whether we can assume such a form )

2) Using the asymptotic limit: $U, V\sim S_0 e^x$, can I assume that $d_2\equiv 1$?

3) Is there any other simple way to solve the above system ?

Thank you so much for your time . I really appreciate it.

• edited . thanks Jul 12 '15 at 17:54
• The formal solution u=u0 Exp[d1 t + d2 x] and v = v0 Exp[d1 t + d2 x]. is a standard method for non-homogeneous linear PDEs with constant coefficients. Jul 12 '15 at 22:24

As noted in comments on question 87963, a formal solution to these coupled equations can be obtained from the substitution, {u[x, t] -> u0 Exp[d1 t + d2 x], v[x, t] -> v0 Exp[d1 t + d2 x]}

eq1 = Collect[(Unevaluated[D[u[x, t], t] + a1 D[u[x, t], x] - (c + k1) u[x, t] +
k1 v[x, t]] /. {u[x, t] -> u0 Exp[d1 t + d2 x],
v[x, t] -> v0 Exp[d1 t + d2 x]}) Exp[-d1 t - d2 x], {u0, v0}, Simplify]
(* (-c + d1 + a1 d2 - k1) u0 + k1 v0 *)

eq2 = Collect[(Unevaluated[D[v[x, t], t] + a2 D[v[x, t], x] - (c + k2) v[x, t] +
k2 u[x, t]] /. {u[x, t] -> u0 Exp[d1 t + d2 x],
v[x, t] -> v0 Exp[d1 t + d2 x]}) Exp[-d1 t - d2 x], {u0, v0}, Simplify]
(* k2 u0 + (-c + d1 + a2 d2 - k2) v0 *)


The determinant of these two algebraic equations,

Coefficient[eq1, u0] Coefficient[eq2, v0] -
Coefficient[eq1, v0] Coefficient[eq2, u0]) // Simplify;


provides a relationship between the two coefficients d1 and d2. As noted by the OP, the boundary conditions in x can be satisfied by setting d2 -> 1, which is a substantial simplification.

Flatten@Solve[{%/.d2 -> 1) == 0, d1]
(* {d1 -> 1/2 (-a1 - a2 + 2 c + k1 + k2 - Sqrt[
a1^2 - 2 a1 a2 + a2^2 - 2 a1 k1 + 2 a2 k1 + k1^2 + 2 a1 k2 -
2 a2 k2 + 2 k1 k2 + k2^2]),
d1 -> 1/2 (-a1 - a2 + 2 c + k1 + k2 + Sqrt[
a1^2 - 2 a1 a2 + a2^2 - 2 a1 k1 + 2 a2 k1 + k1^2 + 2 a1 k2 -
2 a2 k2 + 2 k1 k2 + k2^2])} *)


Finally, u0 can be chosen arbitrarily, and the corresponding expression for v0 is

First@Solve[(eq1 /. d2 -> 1) == 0, v0]
(* {v0 -> -(((a1 - c + d1 - k1) u0)/k1)} *)


which solves the problem. I am not aware of an easier solution.

As an aside, the argument of the Sqrt can be factored, if a1 == a2.

Factor[(a1^2 d2^2 - 2 a1 a2 d2^2 + a2^2 d2^2 - 2 a1 d2 k1 +
2 a2 d2 k1 + k1^2 + 2 a1 d2 k2 - 2 a2 d2 k2 + 2 k1 k2 + k2^2) /. a2 -> a1]
(* (k1 + k2)^2 *)


and the expresson for d2 becomes

Simplify[Simplify[% /. a2 -> a1, k1 ∈ Reals && k2 ∈ Reals] /. Abs[z_] -> z]
(* {d1 -> -a1 + c, d1 -> -a1 + c + k1 + k2} *)


consistent with a simplified form of the answer in 87963.

• Thank you so much Dr. Godfrey ! I truly appreciate it. Have a wonderful day. Jul 13 '15 at 3:23