三九宝宝网宝宝百科宝宝知识

我QQ是534193499想向你请教matlab的粒子群算法

02月15日 编辑 39baobao.com

[谁有用MFC编的科学计算器的详细算法啊]MFC做的话不难. 1,制作基本筐架: 建立工作区并且起名“我们的计算器”;然后建立 MFC AppWizard(exe) 工程起名“作业”,选择“基本对话筐”选项,点击完成; 开始创建按扭,“1 2 3 4...+阅读

我是做这方面的研究的,我给你一个我编的代码,完全可以运行,是求函数极值的。

%% 该代码为基于变异粒子群算法的函数极值寻优算法

%% 清空环境

clc

clear

%% 参数初始化

%粒子群算法中的两个参数

c1 = 1.49445;

c2 = 1.49445;

maxgen=500; % 进化次数

sizepop=100; %种群规模

Vmax=1;

Vmin=-1;

popmax=5;

popmin=-5;

%% 产生初始粒子和速度

for i=1:sizepop

%随机产生一个种群

pop(i,:)=5*rands(1,2); %初始种群

V(i,:)=rands(1,2); %初始化速度

%计算适应度

fitness(i)=fun(pop(i,:)); %染色体的适应度

end

%% 个体极值和群体极值

[bestfitness bestindex]=min(fitness);

zbest=pop(bestindex,:); %全局最佳

gbest=pop; %个体最佳

fitnessgbest=fitness; %个体最佳适应度值

fitnesszbest=bestfitness; %全局最佳适应度值

%% 迭代寻优

for i=1:maxgen

for j=1:sizepop

%速度更新

V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));

V(j,find(V(j,:)>Vmax))=Vmax;

V(j,find(V(j,:)

%种群更新

pop(j,:)=pop(j,:)+0.5*V(j,:);

pop(j,find(pop(j,:)>popmax))=popmax;

pop(j,find(pop(j,:)

if rand>0.98

pop(j,:)=rands(1,2);

end

%适应度值

fitness(j)=fun(pop(j,:));

end

for j=1:sizepop

%个体最优更新

if fitness(j) gbest(j,:) = pop(j,:);

fitnessgbest(j) = fitness(j);

end

%群体最优更新

if fitness(j) zbest = pop(j,:);

fitnesszbest = fitness(j);

end

end

yy(i)=fitnesszbest;

end

%% 结果分析

plot(yy)

title('最优个体适应度','fontsize',12);

xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);

以下为关联文档:

布料的克重算法是什么面料克重一般指平方米克重,最常用的用克重测试器,一切就是10平方厘米,用天平称完,得到的克数乘以1000,就是克重。针织面料算克重:就是面料长度1米*宽度1米的重量,如果手上没有那么...

幼儿园大班手指速算法开始怎样学一、采用游戏形式,引发幼儿兴趣:数学是一门枯燥的学科,而幼儿普遍心智尚未成熟,他们永远都只喜欢自己感兴趣的东西。因此,教好任何一门课堂的第一步都是先引发幼儿的兴趣,吸引幼儿...

pascal的高精度算法高精度加法 var a,b,c:array[1..201] of 0..9; n:string; lena,lenb,lenc,i,x:integer; begin write('Input augend:'); readln(n);lena:=length(n); for i:=1 to lena do a...

pascal高精度算法加法:program exam1; const max=200; var a,b,c:array[1..max] of 0..9; n:string; lena,lenb,lenc,i,x:integer; begin write('Input augend:'); readln(n); lena:=length(n...

一道关于日期的数学题目这样的题有简便算法是有简便的算法的有一个公式叫做Zeller公式很有名(我不会证明),假设某一天是y年m月d日,可以按照下面的步骤算出是星期几:1.如果m=1或者m=2,y减一,m加122.算出s=(y%100)+[[(y%100)]...

Bresenham算法使能产生实线虚线点划线 w宽度的线宽CPen 为画笔类 CPen( int nPenStyle, int nWidth, COLORREF crColor ); nPenStyle 线形 nWidth 宽度,以像素为单位 crColor 颜色 实线画笔: CPen SolidPen(PS_SOLID, 1, RGB(0...

在直线Bresenham生成算法中确定y的值取yi 1还是yi的依据是假设我们需要由 (x0, y0) 这一点,绘画一直线至右下角的另一点(x1, y1), x,y分别代表其水平(horizontal)及垂直(vertical)座标.(这是一般电脑常用之设定.) 因此x及y之值分别向下及向右增...

一道有关算法初步的数学题i=1 n=0 s=0 count=0 WHILE i<=50 INPUT x s=s+x IF x>=60 THEN n=n+x count=count+1 END IF i=i+1 WEND s=s/60 n=n/count PRINT "及格人数:";count PRINT"及格同学的平均分:";n PR...

高一数学必修三算法初步算法语句练习题必修三,我们没有讲 但是我们信息技术课有个算法与程序设计(选修) 我正好选修这个,教你啦 MOD是求余 1. 26/7=3……5 ——选B 2. 23/3=7……2 2不等于0 所以y=0 运行结果是 0 (这...

推荐阅读
图文推荐