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

📄 dtp.m

📁 用一阶梯度法
💻 M
字号:
%变尺度法,多变量寻优
%允许迭代的最大次数M,变量数N,

x0=[-3;-1;-3;-1];
n=4;        %变量数
I=eye(n);
H1=I;       %初始近似矩阵
x1=x0;      %代表k次迭代点
M=5000;
e=0.0001;
df1=dfm(x1);

tic

for i=1:M
    df1=dfm(x1);
    
    if norm(df1)<e
        break;
    end
    
    s=-H1*df1;        %搜索方向
    a=fpart618(x1,s);     %采用618法进行单变量寻优
    x2=x1+a*s;            %代表k+1次迭代点
    g=dfm(x2)-dfm(x1);    %导数差向量
    xc=x2-x1;             %点间距,向量
    
    x1g=xc'*g;            
    xg1=xc*g';
    A=(xc*xc')/x1g;
    B=H1*g;
    H2=H1+A-B*B'/(g'*B);    %H矩阵一定时对称的
%     H2=(I-xg1/x1g)*H1*(I-xg1/x1g)+xg1/x1g;
    
    x1=x2;
    H1=H2;
    %df1=dfm(x1);
end

i
x1
fm(x1)
toc

⌨️ 快捷键说明

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