问一下求最小值
已知函数f,但无法求导,只能给出任意f(x),x属于(-a,a),
且知道存在x0,x <x0,f '(x) <0;x> x0,f '(x)> 0;x=x0,f '(x)=0;
在求尽可能少次数f(x)的情况下给出比较好的最小值及对应x。
如果是收敛到最小值的方法当然更好 :)
[解决办法]
由题设知道,这是一个下凸函数,且必存在极小值点。
可以做出一个示意图帮助分析……
然后用所谓的二分法。
伪代码:
left=-a;
right=a;
mid=(left+right)/2;
min=f(mid);
for(k=0;k <MAX_ITERATE;k++)
{
if(k%2==0)
{
left=mid;
mid=(left+right)/2;
min=(min <f(mid)?min:f(mid));
else
{
right=mid;
mid=(left+right)/2;
min=(min <f(mid)?min:f(mid));
}
}
[解决办法]
当然我们只要判断导数的正负就可以了,
所以你只要关心f(x+t)和f(x)那个大就可以了.