我正在研究数值分析,并且还在解决书中描述的算法。我的问题是关于牛顿的方法。一般来说,如果给出了一些函数并且我们必须找到root,我们如何确定代码中函数的导数?甚至限制?因为你知道牛顿的方法涉及导数并且像这样进行迭代。
假设某个函数f(x)
和初始猜测,p0,
然后p(n)=p(n-1)+f(p(n-1))/f'(p(n-1))
此处f'
表示f
的派生。
我如何在代码中对其进行近似?非常感谢。
答案 0 :(得分:2)
如果你想使用牛顿方法,你需要知道函数的衍生物并将其编码。
否则,你可以使用不需要知道衍生物的Secant Method。但它的收敛速度较慢。
答案 1 :(得分:1)
根据功能的给定方式,你可以做几件事
所有选项都可行。哪个最适合您的问题取决于功能以及您希望投入编码和/或阅读如何操作的时间。
编辑:如果您在执行时间之前已经知道了该功能,那么请手动计算差异并将其作为一个函数实现。您还应该已经将f(x)
实现为此功能
float f (float x) {
// ...
}
因此:
float df_dx (float x) {
// ...
}