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

📄 powellmethod.m

📁 计算二维无约束优化的Powell法和坐标轮换法,以及一维搜索的黄金分割法和搜索区间确定的两个子程序.
💻 M
字号:
clear;
% 给定初始值
h0=0.1;
x0=[0,0];
e=[1,0;0,1];
n=2;

for k=1:20  
    k  % k 代表第轮计算
    
    % 111111111111111111 第 1 到 n 次搜索计算111111111111111111
    for i=1:1  % 第1次搜索
        i
        x01=x0(1);x02=x0(2);d=e(i,:);  
        F0=ff(x0(1),x0(2));
        alpha=goldmethod2(x01,x02,d,h0);  % 确定最优步长 alpha 
        alpha
        x(i,:)=x0+alpha*d; 
        F(i)=ff(x(i,1),x(i,2));
        Delta(i)=F(i)-F0;
    end
    for i=2:n  % 第2到n次搜索
        i
        x01=x(i-1,1);x02=x(i-1,2);d=e(i,:);
        alpha=goldmethod2(x01,x02,d,h0);  % 确定最优步长 alpha 
        alpha
        x(i,:)=x(i-1,:)+alpha*d; 
        F(i)=ff(x(i,1),x(i,2));
        Delta(i)=F(i-1)-F(i);
    end
    % 1111111111111111111111111111111111111111111111111111111111
    
    % 22222222222222222 精度是否满足要求 22222222222222222222222
    if abs(x(n,:)-x0)<1e-3
        break;
    end
    % 2222222222222222222222222222222222222222222222222222222222
    
    % 3333333333333333333 第n次结束参数计算 33333333333333333333
    d=x(n,:)-x0;
    x(n+1,:)=2*x(n,:)-x0;
    [Delta_m,j]=max(Delta);
    F2=F(n);F3=ff(x(n+1,1),x(n+1,2));
    % 3333333333333333333333333333333333333333333333333333333333
    
    
    % 44444444444444444 搜索方向是否进行替换 44444444444444444444
    if F3<F0 & (F0-2*F2+F3)*(F0-F2-Delta_m)^2>=Delta_m/2*(0-F3)^2
        x01=x(n,1);x02=x(n,2);
        alpha=goldmethod2(x01,x02,d,h0);  % 确定最优步长 alpha
        alpha
        x(n+1,:)=x(n,:)+alpha*d;
        e(j,:)=[];
        e(n,:)=d;
        x0=x(n+1,:);
    else 
        if F2<F3
            x0=x(n,:);
        else
            x0=x(n+1,:);
        end    
    end
    % 44444444444444444444444444444444444444444444444444444444444
    
    x0 
    x
end










⌨️ 快捷键说明

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