好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

黄金搜索法无约束最优化.docx

16页
  • 卖家[上传人]:工****
  • 文档编号:485629676
  • 上传时间:2023-08-19
  • 文档格式:DOCX
  • 文档大小:322.14KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第一题:编程实现以下科学计算算法,并举一例应用之参考《精通 MATLAB 科学计算》,王正林等著,电子工业出版社,2009 年)“黄金搜索法无约束最优化”1 算法说明 :1.在MATLAB中编程实现的黄金搜索算法为:Opt_Golden2.功能:黄金搜索算法求区间上的无约束最优化解3.调用格式: [x0,f0]=Opt_Golden(f,a,b,TolX,TolFun,K)其中,f为函数名;a 为搜索区间的起始点;b 为搜索区间的终止点;TolX 为最优值点区间的误差阈值;TolFun为函数的阈值;k 为最大跌代次数;x0 为最优化点值;f0 为函数在 x0 处的函数值Q算法原理黄金搜索法也叫 0.618 法,适用于求解如下形式的最优化问题:minf(x), x G [a,b]其中a,b已知,且f(x)在区间内为单峰函数【1】,也就是说在区间内最多改变一次,因此 该类最优化问题可等价于求解x *,使f(x)分别在区间[a, x * ]上单调减,在[x *,b] 上单调增显然x*是f(x)在区间L*, b】上的唯一的极小值点⑥算法设计思路:①:设f(x)是区间la, b]上的(下)单峰函数,x*是f(x)在区间[„, b]上的唯一的 极小值点,对任意x (i = 1,2,3) g [a, b], x < x < x,右i 1 2 3f (x ) > f (x ), f (x ) > f (x ),则必有 x * g [x , x ];1 2 3 2 1 3©:设f (x)是区间[a, b]上的(下)单峰函数,x*是f (x)在区间[a, b]上的唯一的极 小值点,对任意 x (i = 1,2) g [a, b], x < x,若 f (x ) < f (x ),贝U必有 x* g [a, x ];i 1 2 1 2 2若f (x ) > f (x ),则必有x* g [x , b]。

      如此反复进行迭代,缩小最优值范围,直至两1 2 1点区间长度小于给定的最优点间的误差阀值以及两端点函数值之差的绝对值小于给定的函 数误差阀值Q算法步骤黄金搜索法的基本求解流程如下步骤 1:在空间[a,b]中取两点 c=a-rh和 d=a+rh,其中 r=(sqrt(5)-l)/2,h=b-a;步骤2 f(x)在这两点的值几乎相等并且区间的宽度充分小,则停止跌代跳出循环;并令 x*=c.(f(c) f(d)) 或 x*=d (f(c)>f(d)) ,否则跳到步骤 3;步骤3:如果f (c)

      黄金搜索法的 MATLAB 编程现如下:Function [x0,f0]=Opt_Golden(f,a,b,TolX,TolFun,k)%黄金搜索算法求在区间[a,b]上的最优化解;%f 为函数名;%a 为搜索区间的起始点;%b 为搜索区间的终止点;%TolX为最优值点区间的误差阈值;%TolFun为函数的阈值;%k 为最大跌代次数;%x0 为最优化点值;%f0 为函数在 x0 处的函数值r=(sqrt(5)-1)/2; %r 为黄金分割点h=b-a; %区间宽度rh=r*h;%取两点c,d,并计算相应的函数值fc和fd c=b-rh;d=a+rh;fc=feval(f,c);fd=feval(f,d);%%%算法第二步判断是否停止跌代if k<=0 | (abs(h)

      采用黄金搜索法求解如下 表达式的最小值:f(x)=x2-2x+3, x [0,3]A:流程图B:应用举例程序源代码:编写M文件 :exam1.mfunction f=exam1(x)fl二inline('x.“2-2 *x+3','x');a=0;b=3;TolX=le-4;TolFun=le-4;k=l00;[x0,f0]=Opt_Golden(fl,a,b,TolX,TolFun,k)File Edit Text Cell Tools Debug Desktop Window Help ? x□ 為■魏门c|寻|風化|昌老]|* ■■淫]■ Stack: | Base~h5 -6 -function f=examl(x)f l = inline C x. ”2一2*超+$' /x);a=0;b=3;TolX=le-4;TolFun=le_4;k=100;[xOj f 0] =0pt_Golden (fl, a, b TolX, TolFun^ k)M 文件如上图x Command Windowexaml>>TxO1. 0000fO2. 0000运行结果如上图所示:2. 源代码:work2.mfunctionppx=[10013416418019819518616013610066351505173263100];y=[503525514.3451326.5188.692.259.662.2102.7147.1191.6236280.5324.9369.4413.8458.3503];i=[0:pi/9:pi*2];xx=csape(i,x,'periodic'); % 生成周期性边界条件(不用给边界值)下的三次样条插值.其中,(I,x)为数据向量□ tlsln'wJ_®€0 厳仝砸3的口 dQjIIMOPU 一51cle-vscdqisooi tCDsuj Mcu>l4-pljjiCD-'IZI—— I 巴 nmirF^s张氷g>mx¥_-s(>)a5qewsa5qe_xA ;「>_><—二 dd>>ddx)10-d =三 xx)-e>ddudd>==>ddHddxF7*dGcxlcxl、doT:=呱叵M % Mnpo」① cvmardesuHXX方法二:1. 流程图2. 源代码function pp132 63 100];191.6 236x=[100 134 164 180 198 195 186 160 136 100 66 35 15 0 5 17y=[503 525 514.3 451 326.5 188.6 92.2 59.6 62.2 102.7 147.280.5 324.9 369.4 413.8 458.3 503];i=[0:pi/9:pi*2];ii=[0:pi/225:pi*2];xpp=spline(i,x,ii);ypp=spline(i,y,ii);plot(xpp,ypp,'r-',x,y,'o');xlabel('x'),ylabel('y') title('x 与 y 的关系曲线');3. 结果:获得封闭曲线如图2.2 电容器电压与时间关系曲线:1. 流程图2. 源代码Work22.mclear;clc;t=[0.5 1 2 3 4 5 7 9];V=[6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63]; V1=log(10-V);p=polyfit(t, V1, 1);t0= -1/p(1)V0 = 10 - exp(p(2))t1=0:0.1:10;V1=10 - (10 - V0)*exp(-t1/t0);plot(t, V, '+-', t1, V1,'r');legend('实验值','拟合值');xlabel('时间t'),ylabel('电容器上t时刻上的电压');title('电容器V-t关系图,);3. 结果:File Edit View Insert Tools Desktop Window Help□ Q 口冒「亦題Q运1口 PTb- 口5 9 5 89.&7 56.。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.