I have to solve numerically an equation of the following form:

$$ \sum_{n=0}^m c_n x^n = f(x) x^k $$

Where the $c_n$ are real values, $k$ is an integer and $f$ can only be evaluated numerically.

The current implementation in our code is using a numerical approach (specifically using scipy.optimize.brentq) but I wondered:

  • If I could find all the roots somehow
  • If there was known strategies that exploit the polynomial parts.

EDIT: I realized I have a few properties on $f$:

  • $f$ is in $C^\infty(\Bbb{R}, \Bbb{R})$
  • $f$ is monotonous (non increasing)
  • $\lim_{x\rightarrow+\infty} f(x) = -\infty$
  • $\lim_{x\rightarrow-\infty} f(x) = +\infty$
  • 1
    $\begingroup$ So on LHS it is a known polynomial function, on RHS something that is just a "black box" function, we don't know the properties of f(x), only numerical values? Then in general we cannot find all the roots because we don't even know how many of them are there; also, it can be an infinite number of roots . $\endgroup$ Commented Feb 23, 2023 at 17:53
  • 1
    $\begingroup$ Are you maybe trying to find a representation of $f(x)$ with monomials, is this really a root finding problem? $\endgroup$
    – Bort
    Commented Feb 23, 2023 at 18:38
  • $\begingroup$ @MaximUmansky ok, I expected that actually, but had hope that I didn't know something. I think I can actually prove some useful things, namely it should change sign and may even be monotonous. I also think it is continuous but I have to prove it. $\endgroup$
    – WIP
    Commented Feb 24, 2023 at 9:18
  • $\begingroup$ @Bort It is really a root finding problem, I'm not actually concerned about $f$. $\endgroup$
    – WIP
    Commented Feb 24, 2023 at 9:19
  • 1
    $\begingroup$ Unfortunately, even if the function f is monotonic this does not rule out the possibility of infinite number of roots; consider the example x = f(x) where f(x)=x+$\epsilon$sin(x). $\endgroup$ Commented Feb 24, 2023 at 16:44


Your Answer

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