0
$\begingroup$

I am trying to solve a coupled system of differential-algebraic equations as follows.

First define a list of 6 equations

eqn = {f2[1, 1][t] f2[2, 1][t] == 0, f2[1, 2][t] f2[2, 2][t] == 0, 
  f2[1, 2][t] f2[2, 1][t] - μ[1, 2][t] == 0, -1 + f2[1, 1][t] f2[2, 2][t] + μ[1, 2][t] == 0, -Derivative[1][μ[0]][t] == 0, 
  f2[1, 2][t] f2[2, 1][t] - f2[1, 1][t] f2[2, 2][t] + f2[1, 2][t] Derivative[1][f2[2, 1]][t] - 
    f2[1, 1][t] Derivative[1][f2[2, 2]][t] - Derivative[1][μ[1, 2]][t] == 0}

Then list the 6 unknown functions

vars = Union[Flatten@ Array[f2[#1, #2][t] &, {2, 2}], {μ[0][t], μ[1, 2][t]}]

Naive use of DSolve seems futile as the following flags an error

DSolve[Union[eqn,vars /. a_[b__][t] -> a[b][0] == c[a[b]]], vars, t]

where I am setting the initial values to be some arbitrary constants of the form c[_].

Reduce does help but it treates the derivatives as being independent functions and is not able to simplify as much as it could.

Reduce[eqn, vars]


    (*(Derivative[1][\[Mu][0]][t] == 0 && f2[1, 1][t] == 0 && Derivative[1][f2[2, 1]][t] != 0 && 
   f2[1, 2][t] == (-1 + Derivative[1][\[Mu][1, 2]][t])/Derivative[1][f2[2, 1]][t] && f2[1, 2][t] != 0 && 
   f2[2, 1][t] == 1/f2[1, 2][t] && f2[2, 2][t] == 0 && \[Mu][1, 2][t] == 1) || 
  (Derivative[1][\[Mu][0]][t] == 0 && Derivative[1][f2[2, 2]][t] != 0 && 
   f2[1, 1][t] == (-1 - Derivative[1][\[Mu][1, 2]][t])/Derivative[1][f2[2, 2]][t] && f2[1, 2][t] == 0 && f2[2, 1][t] == 0 && 
   f2[1, 1][t] != 0 && f2[2, 2][t] == 1/f2[1, 1][t] && \[Mu][1, 2][t] == 0) || 
  (Derivative[1][\[Mu][1, 2]][t] == -1 && Derivative[1][\[Mu][0]][t] == 0 && Derivative[1][f2[2, 2]][t] == 0 && f2[1, 2][t] == 0 && 
   f2[2, 1][t] == 0 && f2[1, 1][t] != 0 && f2[2, 2][t] == 1/f2[1, 1][t] && \[Mu][1, 2][t] == 0) || 
  (Derivative[1][\[Mu][1, 2]][t] == 1 && Derivative[1][\[Mu][0]][t] == 0 && Derivative[1][f2[2, 1]][t] == 0 && f2[1, 1][t] == 0 && 
   f2[1, 2][t] != 0 && f2[2, 1][t] == 1/f2[1, 2][t] && f2[2, 2][t] == 0 && \[Mu][1, 2][t] == 1)*)

There are a lot of simplifications it can still do, once it understands that the derivative functions are not independent. How can I make mathematica completely solve this system? (note: this system has very simple solutions I can get by hand, using this as a sample example for applying to more complicated systems)

Any help will be appreciated.

Update: initial conditions added

$\endgroup$
4
  • 2
    $\begingroup$ Initial conditions are missing. $\endgroup$ Nov 28 '21 at 19:44
  • $\begingroup$ @DanielHuber adding arbitrary initial conditions gives errors $\endgroup$
    – qreus
    Nov 28 '21 at 20:00
  • $\begingroup$ If you want to get a solution then I think you will have a lot less trouble and a lot better chance if you stop trying to use Mathematica to transmogrificate some abstract form into some other abstract form. Perhaps closer to DSolve[{f11[t] f21[t]==0, f12[t] f22[t]==0, f12[t] f21[t]-μ12[t]==0, -1+f11[t] f22[t]+μ12[t]==0, -μ0'[t]==0, f12[t] f21[t]-f11[t] f22[t]+f12[t] f21'[t]-f11[t] f22'[t]-μ12'[t]==0, f11'[0]==c1,f12'[0]==c2,f21'[0]==c3,f22'[0]==c4, μ12'[0]==c5},{f11,f12,f21,f22,μ12,μ0},t] might help you get started. See if you can start with that style and get a correct answer. $\endgroup$
    – Bill
    Nov 28 '21 at 23:15
  • $\begingroup$ μ0'[t] and μ0[t] aren't used anywhere else so they can be eliminated to make it a little easier for Mathematica. $\endgroup$
    – Bill
    Nov 29 '21 at 4:47
0
$\begingroup$

The fifth equation is not coupled to any of the others, so we have that $\mu_{0}(t)=c$, a constant.

Consider the expression $\mu_{12}(1-\mu_{12})$. Use the first four equations to obtain

asmptns = {f11*f21 == 0,
           f12*f22 == 0,
           f12*f21 - μ12 == 0,
      -1 + f11*f22 + μ12 == 0};
Simplify[μ12 (1 - μ12), asmptns]   (*  0  *)

So, if the first 4 equations hold, we must have $\mu_{12}(1-\mu_{12})=0$ for all values of $t$ (in some domain). For the derivative $\dot{\mu}_{12}$ to exist, we must have have $\dot{\mu}_{12}=0$, which eliminates one derivative from the 6th equation.

That leaves four AEs, in which $\mu_{12}$ is either 0 or 1 and one DE containing derivatives of 2 functions. We can make progress by (A) picking one of the functions $f_{11}$, etc, at a time, (B) assuming it is either zero or not zero, and (C) using Reduce to see where that assumption, along with $\mu_{12}=0 \text{ or} 1$, leads. We use an abbreviated notation for the 4 functions and the 2 derivatives. We use Tuples to determine the 16 different combinations of assumptions.

eqns = Append[asmptns, f12 f21 - f11 f22 + f12 Df21 - f11 Df22 == 0];
vars = {Df21, Df22};
bsmptns = Tuples[{{μ12 == 0, μ12 == 1}, 
                  {f11 == 0, f12 == 0, f21 == 0, f22 == 0, 
                   f11 != 0, f12 != 0, f21 != 0, f22 != 0}}];

DeleteDuplicates@DeleteCases[Table[
   Reduce[Flatten[{eqns, case}], vars], {case, bsmptns}],
  False]

The result is one possible solution for $\mu_{12}=0$ and another for $\mu_{12}=1$.

(*  {  μ12 == 0 && f21 == 0 && f12 == 0 && f22 != 0 && f11 == 1/f22 && 
       Df22 == -f22, 

       μ12 == 1 && f22 == 0 && f21 != 0 && f12 == 1/f21 &&
       f11 == 0 && Df21 == -f21  }  *)
$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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