MatLab中二元函数如何优化

这篇文章给大家分享的是有关MatLab中二元函数如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

我们提供的服务有:成都网站设计、网站建设、外贸网站建设、微信公众号开发、网站优化、网站认证、江北ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的江北网站制作公司

clc
clear 
close all
tic
figure(1);
fun_plot;
hold on
%% 参数设置
fishnum=100; %生成100只人工鱼
MAXGEN=50; %最多迭代次数
try_number=100;%最多试探次数
visual=1; %感知距离
delta=0.618; %拥挤度因子
step=0.1; %步长
%% 初始化鱼群
lb_ub=[-10,10,2;];
X=AF_init(fishnum,lb_ub);
LBUB=[];
for i=1:size(lb_ub,1)
    LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)];
end
gen=1;
BestY=-1*ones(1,MAXGEN); %每步中最优的函数值
BestX=-1*ones(2,MAXGEN); %每步中最优的自变量
besty=-100; %最优函数值
Y=AF_foodconsistence(X);
while gen<=MAXGEN
    for i=1:fishnum
        %% 聚群行为      [Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y);     
         %% 追尾行为      [Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y);    
        if Yi1>Yi2
            X(:,i)=Xi1;
            Y(1,i)=Yi1;
        else
            X(:,i)=Xi2;
            Y(1,i)=Yi2;
        end
    end
    [Ymax,index]=max(Y);
    figure(1);
    plot3(X(1,index),X(2,index),Y(index),'.','color',[gen/MAXGEN,0,0])
    if Ymax>besty
        besty=Ymax;
        bestx=X(:,index);
        BestY(gen)=Ymax;
        [BestX(:,gen)]=X(:,index);
    else
        BestY(gen)=BestY(gen-1);
        [BestX(:,gen)]=BestX(:,gen-1);
    end
    gen=gen+1;
end
plot3(bestx(1),bestx(2),AF_foodconsistence([bestx(1);bestx(2)]),'ro','MarkerSize',10)
xlabel('x')
ylabel('y')
title('鱼群算法迭代过程中最优坐标移动')
MatLab中二元函数如何优化  
%% 优化过程图      
   
figure
plot(1:MAXGEN,BestY)
xlabel('迭代次数')
ylabel('优化值')
title('鱼群算法迭代过程')
disp(['最优解X:',num2str(bestx','%1.5f')])
disp(['最优解Y:',num2str(besty,'%1.5f')])
MatLab中二元函数如何优化  
toc

感谢各位的阅读!关于“MatLab中二元函数如何优化”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


本文名称:MatLab中二元函数如何优化
分享网址:http://pwwzsj.com/article/pdchss.html