amotsa.m

来自「本程序实际上是把模拟退火过程引入单纯形法来求多元函数的极值」· M 代码 · 共 25 行

M
25
字号
function [ytry,yhi,pb]=amotsa(p,yb,ihi,yhi,ndim,psum,fac)
global idum;
global tt;
fac1=(1.0-fac)/ndim;
fac2=fac1-fac;
for j=1:ndim
    ptry(j)=psum(j)*fac1-p(ihi,j)*fac2;
end
ytry=funk(ptry)%%
if ytry<=yb   %存储至今最好的
    for j=1:ndim
        pb(j)=ptry(j);
    end
    yb=ytry;
end
yflu=ytry-tt*log(ran1(idum));%?
if yflu<yhi
    y(ihi)=ytry;
    yhi=yflu;
    for j=1:ndim
        psum(j)=psum(j)+ptry(j)-p(ihi,j);
        p(ihi,j)=ptry(j);
    end
end
ytry=yflu;

⌨️ 快捷键说明

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