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

📄 powellshuxue.m

📁 这是仿真powell算法的简单程序
💻 M
字号:
%此程序为仿真书中的例子
%最后结果的精度要看过程中的步长
%从多次仿真结果可以看出,所得的结果很稳定
%在len=2时,得到的结果与书中完全相同
%目标函数是y=(x1+x2).^2+(x1-1).^2
clear;
clc;
D=[1 0;
    0 1];
d1=D(1,:);
d2=D(2,:);
x0=[2,1];
% y=(x0(1)+x0(2)).^2+(x0(1)-1).^2;
len=10;
for j=1:10
    m=0;
    n=0;
    l=0;
    for i=-len:0.01:len
        x1=x0+i*d1;
        m=m+1;
        x(m,:)=x1;
        y1(m)=(x1(1)+x1(2)).^2+(x1(1)-1).^2;
    end
    [MIN,index]=min(y1);
    x1=x(index,:);
    for i=-len:0.01:len
        x2=x1+i*d2;
        n=n+1;
        x(n,:)=x2;
        y2(n)=(x2(1)+x2(2)).^2+(x2(1)-1).^2;
    end
    [MIN,index]=min(y2);
    x2=x(index,:);
    d3=x2-x0;
    for i=-len:0.01:len
        x3=x1+i*d3;
        l=l+1;
        x(l,:)=x3;
        y3(l)=(x3(1)+x3(2)).^2+(x3(1)-1).^2;
    end
    [MIN,index]=min(y3);
    x3=x(index,:);
    x0=x3;
    d1=d2;
    d2=d3;
end
x0             %显示仿真求得的最佳结果

⌨️ 快捷键说明

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