我有这种功能
f(x)=alpha+beta \sum_i A_i/(x-B_i)
其中alpha
,beta
,A_i
和B_i
是实数。我想在数字上找到f(x)
的所有零(我想只考虑实轴上的零)。
为此目的,最佳策略/算法是什么?
对于此函数x=B_i
是渐近线,所以我可以说我可以在[B_i,B_{i+1}]
区间内限制搜索(我假设B_1 < B_2 <...< B_N
)。通常,f(x)
在[B_i,B_{i+1}]
区间内将有多个零。
答案 0 :(得分:1)
使用简单代数重铸函数,因此整个事物是一个公共分母上的单个多项式:
denominator(x) = \product_i (x-B_i)
分子将是多项式,并且该多项式的根将是整个函数的根。然后,您可以使用该简单多项式的各种根查找方法中的任何一种:
https://en.wikipedia.org/wiki/Root-finding_algorithm#Finding_roots_of_polynomials
你的见解是,根将在分母的零之间的间隔中无疑将是有用的。确保分子的根没有与分母中的根相符,在这种情况下,你将不得不取消一个公因子并重试。