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

📄 goldmethod2.m

📁 计算二维无约束优化的Powell法和坐标轮换法,以及一维搜索的黄金分割法和搜索区间确定的两个子程序.
💻 M
字号:
function alpha=goldmethod2(x01,x02,d,h0)

% 输入分割比gama
gama=0.618; 

% 确定搜索区间[a,b]
[a,b]=search2(x01,x02,d,h0); 

%计算a1,a2和函数值y1,y2, 确定最优步长 alpha
a1=b-gama*(b-a);y1=ff(x01+d(1)*a1,x02+d(2)*a1);
a2=a+gama*(b-a);y2=ff(x01+d(1)*a2,x02+d(2)*a2);
for n=1:100
    if y1>=y2
        x1(n)=a1;x2(n)=a2;yp1(n)=y1;yp2(n)=y2;
        a=a1;a1=a2;y1=y2;
        a2=a+gama*(b-a);y2=ff(x01+d(1)*a2,x02+d(2)*a2);
    else
        x1(n)=a1;x2(n)=a2;yp1(n)=y1;yp2(n)=y2;
        b=a2;a2=a1;y2=y1;
        a1=b-gama*(b-a);y1=ff(x01+d(1)*a1,x02+d(2)*a1);
    end
    
    aa(n)=(a+b)/2;  %输出极值点
    y(n)=ff(x01+d(1)*aa(n),x02+d(2)*aa(n));  %输出极值点函数值
    e(n)=abs(b-a);
    alpha=(a+b)/2;
    if abs(b-a)<1e-5
        break;
    end
end


  

⌨️ 快捷键说明

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