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}}$$


$$\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?


[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.

  • $\begingroup$ Have you tried a symbolic math package such as SymPy? I've used them successfully a few times I've had to deal with hairy equations. $\endgroup$
    – MBaz
    Commented Jun 23, 2018 at 22:20
  • $\begingroup$ Felipe, I am sorry for not answering your ques for long time. I just had some personal issue done. If you are working on massive MIMO. I suggest you read the book:"Massive MIMO Networks: Spectral, Energy, and Hardware Efficiency"-Emil Bjornson, it has some closed-form MMSE and SINR user so that you can calculate and simulate the achievable rate very quick. For your equation, I am sorry I can't have because in my opinion, it's just mathematical problem, you should find an tight bound or approximation. $\endgroup$
    – Dao Hieu
    Commented Aug 16, 2018 at 7:05
  • $\begingroup$ Thanks Dao, in fact, I was able to solve those equations with matlab, see the answer below. $\endgroup$ Commented Aug 16, 2018 at 11:14

2 Answers 2


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>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.plot(mu, f(mu))

enter image description here

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


I've found a way to solve numerically. First we change the equations to

$$\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}} = 0$$


$$\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} } = 0$$

Next, by using fzero from Matlab we find $\mu$, finally, using $\mu$ and fzero again we can find $\kappa$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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