How to solve equations for the MMSE receiver? Given the following equations for the achievable rate of the Minimum Mean-Squared Error Receiver [1]:

$$\mu = \frac{1}{K-1} \sum_{i=1, i \neq k}^{K}{\frac{1}{Mpd_{i}\left(1 - \frac{K-1}{M}+ \frac{K-1}{M}\mu \right) + 1}}$$

and

$$\kappa \left(1 + \sum_{i=1, i \neq k}^{K}{\frac{pd_{i}}{ \left(  Mpd_{i}\left(1 - \frac{K-1}{M}+ \frac{K-1}{M}\mu \right) + 1 \right)^2} } \right) = \sum_{i=1, i \neq k}^{K}{\frac{pd_{i}\mu + 1}{ \left(  Mpd_{i}\left(1 - \frac{K-1}{M}+ \frac{K-1}{M}\mu \right) + 1 \right)^2} }$$

I've got to find, $\mu$ and $\kappa$. I'm trying to solve these equations with matlab, firstly I tried with solve and then vpasolve, however, when $d$ is a vector with different numbers (i.e., random) it seems matlab never finds a solution. For the case when $d$ is a vector with all values equal to 1 for example, it finds the solution quickly.

This is the script I'm using to find the solution:
https://pastebin.com/AWDwyR0U

Am I doing something wrong? Is there a faster way to find a solution to these equations?

Reference:

[1] Hien Quoc Ngo, Erik G. Larsson, and Thomas L. Marzetta, "Energy and Spectral Efficiency of Very Large Multiuser MIMO Systems", IEEE Transactions on Communications, vol. 61, no. 4, April 2013.
I doubt there is general closed-form solution. For the first equation, you essentially want to solve $$\mu=\sum_k \frac{1}{a_k+b_k \mu}$$ for $\mu$ which equals to search for the zeros of a $k+1$th order polynomial, which is impossible for $k&gt;3$. So, I fear you need to do a numeric solution. Once you have $\mu$ you can go for a simple calculation of $\kappa$. 

Regarding a numerical solution, here's a plot of $$\mu-\sum_k \frac{1}{a_k+b_k \mu}$$ which should become $0$ for the solution:

N = 7
d = np.random.rand(N)
K = N+1
M = 16
p = 1

f = lambda mu: mu - 1/(K-1)*sum(1/(M*p*d_i*(1-(K-1)/M+(K-1)/M*mu)+1) for d_i in d)

mu = np.linspace(-5,5,10000)
plt.grid(True)

plt.plot(mu, f(mu))
plt.ylim((-0.5,0.5))




So, there are multiple solutions. Maybe you need to pick to positive one?