## Compute roots of sum_i c_i/(a_i + b_i x)^p

How to compute the (real) roots of

$$\sum_{i=1}^n \frac{c_i}{(a_i + b_i \cdot x)^p}$$

for given reals $a_i, b_i, c_i$, and positive integers $n, p$? The cases $p=1, ..., 5$ and $n=6, ..., 20$ would already be very useful for me. I actually just need any root in a given interval.

Multiplying by the denominators, this task can be reduced to finding roots of a polynomial, but this only works for very small $n$ whereas even for $n=8$ the coefficients in the polynomial are numerically unstable.

The only other method I could think of is using binary search (aka the bisection method). But this is too slow. Is there a faster method that is numerically stable?

-
If $p$ is even, I don't think you'll find many real roots! – Barry Cipra Feb 1 at 20:40
Sorry, I had set $c_i = 1$ to simplify the question. I have now put it back in so there may be roots even for even $p$. – Emanuele Viola Feb 1 at 20:48
With a $c_i$ in the numerator, you can simplify the denominator to just $(x-d_i)^p$. – Barry Cipra Feb 1 at 20:52
did you try Newton-Raphson? – S. Sra Feb 1 at 20:53
Thanks. I have not tried it because I was not sure what starting point to choose/whether the method would work in general. Do you see it? – Emanuele Viola Feb 1 at 21:49
show 1 more comment

This recent master thesis by Leonardo Robol treats the case $p=1$ in a numerically sound way. I think they are going to release some code soon, so you might want to contact the author.
 Thanks for the useful pointer. I wonder if something like that can be done for $p > 1$? – Emanuele Viola Feb 19 at 14:48