最优化方法编程.docVIP

  • 30
  • 0
  • 约4.23千字
  • 约 6页
  • 2019-06-21 发布于湖北
  • 举报
最优化方法编程 通过matlab编程,对老师上课讲的几种方法进行程序实现,并对算法的原理进行简要的描述。 (一)0.618法与Fibonacci法 0.618法和Fibonacci法都是分割方法,其基本思想是通过取试探点和进行函数值的比较,使包含极小值点的搜索区间不断缩短,当区间长度缩短到一定程度时,区间上各点的函数值均接近极小值,从而各点可以看做是极小值点的近似.这类方法只需计算函数值,不涉及导数,又称直接法.它们用途很广,尤其适用于非光滑及导数表达式复杂或写不出的种种情形.注意,这些方法要求所考虑区间上的目标函数是单峰函数,如果这个条件不满足,我们可以把所考虑的区间分成若干个小区间,在每个小区间是单峰的.这样,我们在每个小区间上期求小值点,然后选其中最小点. 0.618法 0.618法计算步骤: 步1:选取初始数据.确定初始搜索区间[a1,b1]和精度要求e0. 计算最初两个试探点 m(1)=a(1)+0.382*(b(1)-a(1)); n(1)=a(1)+0.618*(b(1)-a(1)); 计算f(m(1))和f(n(1)),令k=1. 步2:比较函数值.若f(n(k))f(m(k)),转步3,否则转步4. 步3:若b(k)-m(k)=e,停止计算,输出m(k);否则令 a(k+1)=m(k); b(k+1)=b(k);m(k+1)=n(k); n(k+1)=a(k+1)

文档评论(0)

1亿VIP精品文档

相关文档