基于模拟退火和粒子群算法结合的MATLAB

clear all
clc
x=zeros(1,10);
[x1,x2,f] = PSO_im(@imF,60,2,2,0.8,800,5,0.0000001,10,0.6,0.0000000000000000001,0);
%得到出计算结果
disp('*************************************************');
disp('目标函数取最小值时的自变量:');
x1
x2
disp('目标函数的最小值为:')
f
disp('**************************************************');
function y=imF(x)
   y=(cos(x(1)^2-x(2)^2)-3)/((2+ (x(1)^2+x(2)^2))^2)+0.8;
end

function [x,y,Result]=PSO_immu(func,N,c1,c2,w,MaxDT,D,eps,DS,replaceP,minD,Psum)
format long;
%%%%%%给定初始化条件%%%%%%%%%%%%%%%%%%%%%%%%%%%
c1=1.2;             %学习因子1
c2=1.2;             %学习因子2
w=0.8;            %惯性权重
MaxDT=800;        %最大迭代次数
D=2;              %搜索空间维数(未知数个数)
N=60;            %初始化群体个体数目
eps=10^(-10);     %设置精度(在已知最小值时候用)
DS=8;             %每隔DS次循环就检查最优个体是否变优
replaceP=0.5;     %粒子的概率大于replaceP将被免疫替换
minD=1e-10;   
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值