成功—失败法和0.618法结合求出局部极小值的C语言实现

 

要求:

编程实现:1.成功失败法找到存在局部极小值的区间[a,b]             

                  2.在该区间内用0.618法找到局部极小值点,精确度为0.01

                 测试函数为:函数f(x)=x^4+x^3-x^2+1;

 

成功失败法找到区间[a,b]:

     1.取x,步长l>0,令k=0,若f(x+l)<=f(x),转3.否则,令l=-l,转2;

      首先选取点x,和步长l,判断f(x+l)是否小于等于f(x),若是,则证明现在朝着函数值下降的方向移动,若不是,证明现在朝着函数值上升的方向移动,这样不能找到局部极小值,所以改变移动方向,令l=-l;

     2.若f(x+l)<=f(x),转3,否则,转4.

     判断f(x+l)是否小于等于f(x),若是,则证明现在朝着函数值下降的方向移动,转3继续沿此方向移动,否则,证明已经找到一个区间,在该区间内存在局部极小值,转4,找到该区间。

     3.更新x,l和k的值,令x=x+l,l=l*2,k=k+1,转2.

     若现在朝着函数值下降的方向移动,则继续向此方向移动,更新x的值

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值