# Nonlinear matrix differential equation

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?

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

• Any nonlinear ODE can be solved for its equilibrium points by a Newton-Rhapson type numerical method. Are you looking for something more ? – Piyush Grover May 13 '15 at 13:05
• 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. – 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.

• 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! – varantir May 13 '15 at 13:33
• Yes but $\text{diag}(x)Bx=\text{diag}(Bx)x$ as in general $\text{diag}(x)y=\text{diag}(y)x$. – user35593 May 13 '15 at 17:08
• Newton-Raphson is not a particularly good method when you don't know how many solutions you're looking for. – 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.