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

📄 danchunxing.m

📁 单纯型搜索MATLAB程序
💻 M
字号:
u=1.6;v=0.4;h=0.1;
x0=[10 11 10 1];
e1=[1 0 0 0];
e2=[0 1 0 0];
e3=[0 0 1 0];
e4=[0 0 0 1];
x1=x0+h*e1;
x2=x0+h*e2;
x3=x0+h*e3;
x4=x0+h*e4;
A=[x0 x1 x2 x3 x4];                                 %设初值
N=0;qh=1;ql=2;                                      %循环次数
while abs(qh-ql)>0.001*abs(ql) | N<=100
    q1=Q(A(1),A(2),A(3),A(4));
    q2=Q(A(5),A(6),A(7),A(8));
    q3=Q(A(9),A(10),A(11),A(12));
    q4=Q(A(13),A(14),A(15),A(16));
    q5=Q(A(17),A(18),A(19),A(20));
    q=[q1,q2,q3,q4,q5];                             %计算目标函数值
    [xh,i]=max(q);[xl,j]=min(q);                    %计算最好点和最坏点
    [xg,m]=second(q1,q2,q3,q4,q5);                  %计算次坏点
    k=1;
    xG=[];xH=[];xL=[];
    for k=1:4
        xH(k)=A(4*i-4+k);
    end;
    for k=1:4
        xG(k)=A(4*m-4+k);
    end;    
    for k=1:4
        xL(k)=A(4*j-4+k);
    end;   
    for k=1:4            
        xc(k)=(A(k)+A(k+4)+A(k+8)+A(k+12)+A(k+16)-xH(k))/4;  
    end;
    xR=2*xc-xH;                                     %计算反射点
    qr=Q(xR(1),xR(2),xR(3),xR(4));  
    ql=Q(xL(1),xL(2),xL(3),xL(4));
    qg=Q(xG(1),xG(2),xG(3),xG(4));  
    qh=Q(xH(1),xH(2),xH(3),xH(4)); 
    if qr<qg                                        %扩展
        xE=(1-u)*xH+u*xR;
        for k=1:4
            A(4*i-4+k)=xE(k);
        end;
    end;
    if qr>qg                                        %压缩
        xS=(1-v)*xH+u*xR;
        qs=Q(xS(1),xS(2),xS(3),xS(4));
        if qs>qg
            for k=1:4
                A(k)=(xL(k)+A(k))/2;
                A(k+4)=(xL(k)+A(k+4))/2;
                A(k+8)=(xL(k)+A(k+8))/2;
                A(k+12)=(xL(k)+A(k+12))/2;
                A(k+16)=(xL(k)+A(k+16))/2;
            end;
        end;
    end;                                            %得到新的单纯形
    N=N+1;
end

⌨️ 快捷键说明

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