⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 golden_sect.m

📁 优化理论与方法的黄金分割法matlab程序
💻 M
字号:
%  Program: golden_sect.m%  Title: Golden-Section Search%  Description: Implements the golden-section search.%  Input:%       fname: objective function%   [xL1,xU1]: initial interval of uncertainty %         rou: final range of uncertainty%  Output:%    xs: minimum point%    fs: minimum value of objective function%     k: number of iterations at convergence%  Example: %  Find the minimum of %     fs=sin(xs)%  over the range 0.5*pi<= xs <= 2*pi.%  Solution: %  =============================================================clear;clcfeval=@(x) 2*x^2-x-1;xL1=-1;xU1=1;rou=0.00000001;disp(' ')disp('Program golden.sect.m')% Generate xa1, xb1, f(xa1), and f(xb1)K = 0.5*(1+sqrt(5));k = 1;I1 = xU1 - xL1;I2 = I1/K;xak = xU1 - I2;xbk = xL1 + I2;fak = feval(xak);fbk = feval(xbk);Ik1 = I2;xLk = xL1;xUk = xU1;% Perform Golden-Section searchwhile Ik1 >= rou & xak <= xbk,   Ik2 = Ik1/K;   if fak >= fbk,      xLk1 = xak;      xUk1 = xUk;      xak1 = xbk;      xbk1 = xLk1 + Ik2;      fak1 = fbk;      fbk1 = feval(xbk1);      xw = 0.5*(xak1 + xUk1);   else      xLk1 = xLk;      xUk1 = xbk;      xak1 = xUk1 - Ik2;      xbk1 = xak;      fbk1 = fak;      fak1 = feval(xak1);      xw = 0.5*(xLk1 + xbk1);   end   xLk = xLk1;   xUk = xUk1;   xak = xak1;   xbk = xbk1;   fak = fak1;   fbk = fbk1;   Ik1 = Ik2;   k = k + 1;end% Display resultsformat longdisp('Minimum point:')xs = xwdisp('Minimum value of objective function:')fs = feval(xw)format shortdisp('Number of iterations performed:')k

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -