-1-/6一维搜索方法——黄金分割法实验目的:1.熟悉一维搜索的方法——黄金分割法,掌握其基本原理和迭代过程;2.利用计算语言(Matlab语言或C语言)编制优化迭代程序,并用给定实例进行迭代验证
实验设备:计算机、WindowsXP、Matlab软件或C语言(任选一种)实验内容:1.根据黄金分割算法的原理,画出程序计算流程框图;2.应用黄金分割算法,计算:函数F(x)=x2-10x+36,在搜索区间-10≤x≤10,ε=0
0001时,求解其极小点minF(x)
实验原理:黄金分割法适用于[a,b]区间上的任何单谷函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续
因此,这种方法的适应面非常广
黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,a2,并计算其函数值
a1,a2将区间分成三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小
然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解
调用格式—function[x,minf]=minHJ(f,a,b,eps)其中:f目标函数;a为初始收缩区间左端点;b为初始收缩区间右端点;eps为精度;x为目标函数取最小值时的自变量;minf为目标函数的最小值
实验步骤:黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点A的一种方法
它的优点是算法简单、收敛速度均匀、效果较好等,是许多算法的基础,它只适用于一维区间上的单谷图1原理图-2-/6函数,具体步骤是:1、a1,a2把[a,b]分为三段;2、判断f(a1)与f(a2)的大小
如果F(a1)=r1>F(a2)=r2,令a=a1,a1=a2,a2=a+r*(b-a);F(a1)=r1eps&&kfua=l;l=u;u=a+0