I want to solve the equilibrium of the following differential equation:

$\dot{x_i} = \sum_j A_{ij} x_j + x_i \sum_j B_{ij}x_j$

which is essentiall in matrix notation:

$\dot{\mathbf{x}} = A\mathbf{x} + \mathrm{diag}(\mathbf{x)}B\mathbf{x}$ with $x\in \mathbb{R}^n$ and $A,B\in \mathbb{R}^{n\times n}$.

I wondered if you had any idea how to approach the nonlinear part? I found the paper (1) which gives some hints for approximations, but essentially it is of no help. Maybe you know how to deal with it?

Thanks in Advance!

(1) Elliot W.Montroll: On coupled Rate Equations with Quadratic Nonlinearities

  • 1
    $\begingroup$ Any nonlinear ODE can be solved for its equilibrium points by a Newton-Rhapson type numerical method. Are you looking for something more ? $\endgroup$ – Piyush Grover May 13 '15 at 13:05
  • $\begingroup$ Piyush Grover: I am looking for analytical insights, if there are any. For instance, I tried to diagonalize A and look into equation with respect to the eigenvectors, but this did not go anywhere. $\endgroup$ – varantir May 13 '15 at 14:08

Sorry if my notation will be a bit sloppy. I assume you want to find $x$ such that $$Ax+diag(x)Bx=Ax+diag(Bx)x=0.$$ I dont know if there is an explicit expression but we can certainly do Newton. Linearising we get $$Ax+diag(x)Bx+(A+diag(x)B+diag(Bx))dx+O(|dx|^2)=0.$$ Hence the Newtoniteration is $$\phi(x)=x-(A+diag(x)B+diag(Bx))^{-1}(Ax+diag(x)Bx).$$

I tested the iteration in Matlab and it seemed to converge: n=5; A=eye(n); B=eye(n); x=-rand(n,1); for i=1:10 (A*x+diag(x)Bx) x=x-(A+diag(x)B+diag(Bx))(A*x+diag(x)Bx); end x

However I am not sure if it will converge to the correct equilibrium. There can be many equilibria, for example if $A=B=I$ any vector $x=(x_1,\dots,x_n)$ with $x_i \in \{-1,0\}$ is an equilibrium.

  • $\begingroup$ I think $\mathrm{diag}(x)B\neq \mathrm{diag}(Bx)$ as you can verify easily with pen and paper. With $\mathrm{diag}(x)$ I mean a matrix with the vector $x$ on the diagonal! $\endgroup$ – varantir May 13 '15 at 13:33
  • $\begingroup$ Yes but $\text{diag}(x)Bx=\text{diag}(Bx)x$ as in general $\text{diag}(x)y=\text{diag}(y)x$. $\endgroup$ – user35593 May 13 '15 at 17:08
  • $\begingroup$ Newton-Raphson is not a particularly good method when you don't know how many solutions you're looking for. $\endgroup$ – Robert Israel May 13 '15 at 22:31

Of course $x=0$ is always a solution. There may be others. I suspect the number of (complex) solutions is generically $2^n$. I don't know how many of these can be real. If $n$ is not too big, you might find the solutions by using methods involving polynomial ideals (Groebner bases, regular chains, ...).

For example, it might amuse you to try $$ A = \pmatrix{-2 & -1 & -1\cr -2 & -1 & 2\cr 2 & -2 & -2\cr},\ B = \pmatrix{1 & 2 & -1\cr 0 & 2 & -2\cr -2 & -2 & 1\cr}$$ where there are $8$ real solutions.


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.