寻找函数的零点
Finding zeros of a function
我有这种功能
f(x)=alpha+beta \sum_i A_i/(x-B_i)
其中 alpha
、beta
、A_i
和 B_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 与分母的根重合,在这种情况下,您将不得不取消公因子并重试。
我有这种功能
f(x)=alpha+beta \sum_i A_i/(x-B_i)
其中 alpha
、beta
、A_i
和 B_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 与分母的根重合,在这种情况下,您将不得不取消公因子并重试。