-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&&k<100000fl=subs(f,findsym(f),l);fu=subs(f,findsym(f),u);iffl>fua=l;l=u;u=a+0.618*(b-a);elseb=u;u=l;l=a+0.382*(b-a);endk=k+1;tol=abs(b-a);endifk==100000disp('找不到最优点!');x=NaN;minf=NaN;return;endx=(a+b)/2;minf=subs(f,findsym(f),x);formatshort;-3-/6一维搜索方法——二次插值法实验目的:1.熟悉一维搜索的方法——二次插值法,掌握其基本原理和迭代过程;2.利用计算语言(Matlab语言或C语言)编制优化迭代程序,并用给定实例进行迭代验证.实验设备:WindowsXP,Matlab软件或C语言(任选一种)实验内容:1.根据二次插值法的原理,画出计算框图;2.应用二次插值法算法,计算:函数F(x)=sin(x),在搜索区间4≤x≤5,ε=0.000001时,求解其极小点minF(x).实验原理:二次插值法是多项式逼近法的一种.所谓多项式逼近,就是在目标函数f(x)的极小点所在的区间[a,b]上,利用若干点处的函数值构成一个低次插值多项式,以近似表达原目标函数,然后用该多项式的最优解作为原目标函数最优解的一种近似值.其基本思想为:在给定的单峰区间[a,b]中,设定一点c,利用函数上的a、b、c三点来构造一个二元插值函数p(x),以近似表达原目标函数f(x),该插值函数的极小点pa就近似看成原目标函数的极小点.调用格式function[x,minf]=minPWX(f,a,b,eps)其中:f目标函数;a为初始收缩区间左端点;b为初始收缩区间右端点;eps为精度;x为目标函数取最小值时的自变量;minf为目标函数的最小值.实验步骤:1、设定一个点c,在已知区间[a,b],并给定迭代计算精度ε;(c的选取有等距、非等距取法,即(a+b)/2,(2a+b)/3);2、计算三点函数的值f(a)、f(c)、f(b),并通过公式:C1=[f(b)-f(a)]/(b-a),C2={[f(c)-f(a)]/(c-a)-C1}/(c-b)求出C1、C2;3、由pa=1/2(a+b-C1/C2)计算二次插值多项式的极小点pa以及对应极小值f(pa);-4-/64、精度的检验,cap,若为真,输出结果并停止,反之重复步骤1.思考题:1、试分析黄金分割法和进退式算法的异同之处?附录:function[x,minf]=minPWX(f,a,b,eps)formatlong;ifnargin==3eps=1.0e-6;endt0=(a+b)/2;k=0;to...