Solve a system of non linear equations

121 Views Asked by At

Let $A$ be a $n\times n$ circulant matrix which only diagonal are strictly positive and all others are strictly negative, and the sum of elements in first column is $0$. Consider non linear system: $$ A\pmatrix{x_1\\ x_2\\\dots\\x_n}=\pmatrix{x_1\log x_1\\ x_2\log x_2\\\dots\\x_n\log x_n} $$ Is there any numerical or analytic method to find all solution of this system? I want check if all solutions lie outside of unit open ball of $\mathbb{R}^n$.

A non-trivial example is $$ A=\frac{3\log(2)}{2} \pmatrix{2/3&-1/3&-1/3\\-1/3&2/3&-1/3\\-1/3&-1/3&2/3}, $$ and the solution is $(1/\sqrt{2},1/\sqrt{2},\sqrt{2})$

2

There are 2 best solutions below

3
On

If we look at the 2d case, the system becomes $$ \begin{cases} a x - a y = x \log x\\ -a x + a y = y \log y \end{cases} $$

The solutions correspond to the intersections between the graphics of $y = x -\dfrac xa \cdot \log x $ and $x = y- \dfrac ya \cdot \log y$, as can be seen in the graphic.

As it turns out, when $a \ge \frac 12$ there is a single solution $(1,1)$ but, when $a<\frac 12$ we have two additional solutions, symmetric with respect to $y=x$.

In higher dimension, there can be a break of symmetry, that will affect the solution count, but the maximum number of solutions should be easy to obtain.

enter image description here

enter image description here

0
On

I have implemented Newton's method and it works really well. I have \begin{align} \mathbf{F}(\mathbf{x})&=\frac{\log(2)}{2}\left[ \begin{array}{c} 2x_1-x_2-x_3\\ -x_1+2x_2-x_3\\ -x_1-x_2+2x_3\\ \end{array}\right]-\left[ \begin{array}{c} x_1\log(x_1)\\ x_2\log(x_2)\\ x_3\log(x_3)\\ \end{array}\right],\\ \frac{\partial \mathbf{F}(\mathbf{x})}{\partial\mathbf{x}}&=\left[ \begin{array}{ccc} \log\left(\frac{2}{x_1}\right)-\frac{1}{\ln10}&-\frac{\log(2)}{2}&-\frac{\log(2)}{2}\\ -\frac{\log(2)}{2}&\log\left(\frac{2}{x_2}\right)-\frac{1}{\ln10}&-\frac{\log(2)}{2}\\ -\frac{\log(2)}{2}&-\frac{\log(2)}{2}&\log\left(\frac{2}{x_3}\right)-\frac{1}{\ln10}\\ \end{array}\right]. \end{align} I have observed different solutions:

Starting value: $[0.600000000; 0.600000000; 1.300000000], ||DX|| = 0, ||F|| = 0$

  1. iteration , $[0.685391436; 0.685391436; 1.449223647], ||DX|| = 0.1919663815587447, ||F|| = 0.07387878737021526$
  2. iteration , $[0.705551059; 0.705551059; 1.416433238], ||DX|| = 0.043451487050763224, ||F|| = 0.005056858146135287$
  3. iteration , $[0.707094011; 0.707094011; 1.414229733], ||DX|| = 0.0031011020887194243, ||F|| = 0.00024263811031216946$
  4. iteration , $[0.707106780; 0.707106780; 1.414213564], ||DX|| = 2.4239397712926187E-05, ||F|| = 1.2754657203824253E-06$
  5. iteration , $[0.707106781; 0.707106781; 1.414213562], ||DX|| = 2.015243404527542E-09, ||F|| = 8.139990694146139E-11$ Solution has converged (your solution)

Starting value: $[1.000000000; 1.000000000; 1.000000000], ||DX|| = 0, ||F|| = 0$

  1. iteration , $[1.000000000; 1.000000000; 1.000000000], ||DX|| = 0, ||F|| = 0$

Solution has converged

Starting value: $[0.800000000; 0.800000000; 1.100000000], ||DX|| = 0, ||F|| = 0$

  1. iteration , $[0.885653352; 0.885653352; 1.208743412], ||DX|| = 0.1627824412431874, ||F|| = 0.06403961428272138$
  2. iteration , $[0.869116240; 0.869116240; 1.221346188], ||DX|| = 0.026566560401792005, ||F|| = 0.0035376373763615146$
  3. iteration , $[0.866291309; 0.866291309; 1.225080591], ||DX|| = 0.005468659429440759, ||F|| = 9.956776942671692E-05$
  4. iteration , $[0.866272741; 0.866272741; 1.225094648], ||DX|| = 2.9785773627405017E-05, ||F|| = 3.755445036151626E-06$
  5. iteration , $[0.866272737; 0.866272737; 1.225094653], ||DX|| = 7.196109920077658E-09, ||F|| = 1.271456847964598E-10$ Solution has converged