寻找函数的零点

Finding zeros of a function

我有这种功能

f(x)=alpha+beta \sum_i A_i/(x-B_i)

其中 alphabetaA_iB_i 是实数。我想在数值上找到 f(x) 的所有零点(我只想考虑实轴上的零点)。

什么是最好的 strategy/algorithm 用于此目的?

因为这个函数 x=B_i 是渐近线,所以假设我可以将搜索限制在区间 [B_i,B_{i+1}](我假设 B_1 < B_2 <...< B_N)。一般来说,f(x)在区间[B_i,B_{i+1}].

中会多一个零

使用简单的代数重写函数,使整个函数成为公分母上的单个多项式:

denominator(x) = \product_i (x-B_i)

分子将是一个多项式,多项式的根将是整个函数的根。然后,您可以使用该简单多项式的多种求根方法中的任何一种:

https://en.wikipedia.org/wiki/Root-finding_algorithm#Finding_roots_of_polynomials

您认为根将位于分母的零之间的区间内的见解无疑是有用的。确保分子的根的 none 与分母的根重合,在这种情况下,您将不得不取消公因子并重试。