三分法
三分法一般用来求某一个单峰函数的最值。
和二分的区别
二分是要求某个问题满足单调性,只有这样才可以二分。
也就是说:二分法是适用于单调函数的,而三分法则适用于单峰函数。
实现:给定上下界,每次将上下界这个区间平均分成三份,取两个三等分点比较,并缩小范围。
代码:
while(r-l>eps)
{
double midl=l+(r-l)/3.0,midr=r-(r-l)/3.0;
if(getsum(midl)<getsum(midr))
{
l=midl;
}else{
r=midr;
}
}
printf("%.5lf
",r);