在Haskell中,我使用以下函数来查找多项式的根:
<PropertyGroup>
<TargetFrameworks>netstandard1.0;netstandard1.3;net45</TargetFrameworks>
</PropertyGroup>
其中polyValue是一个函数,它找到多项式p的y值,x值x,而polyDeriv是一个返回多项式p的导数的函数。
此代码适用于大多数情况,除非多项式没有任何实际根(函数在x轴之上)或者给出了错误的初始猜测。无论如何要确定牛顿的方法是否会事先失败,以便我的函数不会无限期地运行?
答案 0 :(得分:8)
要大致确定度 N 的多项式的根源 - 如果有的话 - 知道它的所有极值就足够了,因为你必须只有一个根
极值本身就是导数的根,它很方便地是度 N -1的多项式,所以你可以递归下去,直到你得到线性(或二次)情形,其中&找到根源(事实上确实如此)是微不足道的。