三分查找
三分查找用于求单峰函数的极值。
速度快,但是结果并非准确值。
速度快,但是结果并非准确值。
方法
首先,在函数上标4个点: 。其中 是 与 的中点。
现在的任务是通过
迭代
缩小范围:- 如果
,则 一定在峰的右边。 - 如果
,则 一定在峰的左边。
证明: 1. 我们假设存在 且 在峰的左边。
由于 在峰的左边单调递增,且 ,所以 在 的右边。
然而 ,显然 在 左边。矛盾。
2. 我们假设存在 且 在峰的右边。
由于 在峰的右边单调递减,且 ,所以 在 的右边。
然而 ,显然 在 左边。矛盾。
由于
然而
2. 我们假设存在
由于
然而
食用姿势
首先我们要证明,需要三分的函数是个单峰函数。
然后就可以写三分了。
然后就可以写三分了。
如何控制精度?
两种办法。一种是
两种办法。一种是
控制迭代次数
,一种是直接控制精度
。控制迭代次数
:设一个直接控制精度
:设一个精度限制
具体用哪种方式由题目决定。
一般来说,如果题目要求控制相对精度,控制迭代次数比较好;如果题目要求控制绝对精度,直接去控制精确到小数点后多少位比较好。
一般来说,如果题目要求控制相对精度,控制迭代次数比较好;如果题目要求控制绝对精度,直接去控制精确到小数点后多少位比较好。
评论
发表评论