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

📄 fibonacci.m

📁 优化理论与方法的斐波那契法的matlab程序
💻 M
字号:
%  Program: fibonacci.m%  Title: Fibonacci Search%  Description: Implements the Fibonacci search.%   [xL1,xU1]: initial interval of uncertainty %  Output:%     xs: minimum point %     fs: minimum value of objective function%      k: number of iterations at convergence%========================================================================clear;clcxL1=-2;xU1=2;delta=0.0001;feval=@(x) x^2+x+2;disp(' ')disp('Program fibonacci.m')% Generate a Fibonacci sequencef(1) = 1;f(2) = 1;while (xU1-xL1)/f(end)>=delta      f =[f,(sum(f(end-1)+f(end)))];endn=numel(f);F = f(1:n);% Generate xa1, xb1, f(xa1), and f(xb1)k = 1;I1 = xU1-xL1;I2 = (F(n-1)/F(n))*I1;xak = xU1 - I2xbk = xL1 + I2fak = feval(xak);fbk = feval(xbk);Ik1 = I2;xLk = xL1;xUk = xU1;% Perform Fibonacci searchwhile k < n-2 & xak <= xbk,   Ik2 = (F(n-k-1)/F(n-k))*Ik1;   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;endxs = 0.5*(xLk + xUk);fs = feval(xs);% Display resultsformat longdisp('Minimum point:')xsdisp('Minimum value of objective function:')fsformat shortdisp('Number of iterations performed:')k

⌨️ 快捷键说明

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