double solve(double MIN,double MAX)
{
double Left, Right;
double mid, midmid;
double mid_value, midmid_value;
Left = MIN;
Right = MAX;
while (Left +eps < Right)
{
mid = (Left + Right) / 2;
midmid = (mid + Right) / 2;
mid_value = Calc(mid);
midmid_value = Calc(midmid);
///求最大值改成>= 最小值改成<=
if (mid_value >= midmid_value) Right = midmid;
else Left = mid;
}
return Left;
}三分法可以求解有在区间内有单峰极值的函数,Calc是要进行三分法的函数,MIN和MAX是区间的左界和右界,也就是范围了。
本文介绍了一种利用三分法求解在指定区间内具有单峰极值的函数方法。通过递归缩小搜索范围,最终定位到极值点。适用于数值分析和最优化问题。
593

被折叠的 条评论
为什么被折叠?



