golden.asv

来自「matlab中GUI界面来实现运筹学中常用的几种最优算法」· ASV 代码 · 共 49 行

ASV
49
字号
function [x_label,y_label,time]=golden(fun,a,b,ess,tt)

if nargin<5
    tt=100;
end
if nargin<4
    ess=0.00001
    
end

t1=a+0.382*(b-a);
t2=a+b-t1;
%sub=feval(fun,a)-feval(fun,b)
%sub=abs(sub)
k=1
tic

while k<=tt
   
    if feval(fun,t1)>feval(fun,t2)
        
        if b-t1<ess
            x_label=t2
            break;
        else
           a=t1
           t1=t2;
           t2=a+b-t1;
           k=k+1;
       end
       
   else
       
       if t2-a<ess
           x_label=t1
           break
       else
           b=t2
           t2=t1
           t1=a+b-t2
           k=k+1
       end
   end 
   %sub=feval(fun,a)-feval(fun,b)
   %sub=abs(sub)
end 
k
time=toc
y_label=feval(fun,x_label)

⌨️ 快捷键说明

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