首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

问一下求最小值解决思路

2012-02-04 
问一下求最小值已知函数f,但无法求导,只能给出任意f(x),x属于(-a,a),且知道存在x0,x x0,f (x) 0x x0,f

问一下求最小值
已知函数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)那个大就可以了.

热点排行