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

📄 goldfind.txt

📁 用于单变量函数寻优的黄金分割法matlab程序,我试过了好用.
💻 TXT
字号:
一、	实验题目
分别用0.618法和Fibonacci法求解下列问题:
 
要求最终区间长度L=0.0005,取初始区间为[0,1]。

function [minx,miny,k]=GoldFind(a,b,ep)
%函数名:GoldFind--0.618法,搜索目标函数之极值
%参  数:confun--目标函数名   [a,b]--搜索区间(a<b) ep--精度要求
%返回值:minx--极值点  miny--极值点函数值  k--迭代次数  
if a>=b
    error('ERROR IN INPUTING!--a<b');
    break
end
t1=a+0.382*(b-a);
t2=a+0.618*(b-a);
f1=confun(t1);
f2=confun(t2);
k=1;
while 1
if f1<=f2
      if t2-a<ep
     minx=t1;
      break
      else
      b=t2;
      t2=t1;
      t1=b-0.618*(b-a);
      f2=f1;
      f1=confun(t1);
  end
elseif b-t1<ep
     minx=t2;
      break
   
   else
      a=t1;
      t1=t2;
      t2=a+0.618*(b-a);
      f1=f2;
      f2=confun(t2);
   end
   k=k+1;
  end
  miny=confun(minx);
求解:
a=0;
b=1;
ep=0.0005;
[minx,miny,k]=GoldFind(a,b,ep)
〉〉Gold
minx =
    0.3517
miny =
    0.8272
k =
    16

⌨️ 快捷键说明

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