MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度
生活随笔
收集整理的這篇文章主要介紹了
MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MAT之PSO:利用PSO+ω參數實現對一元函數y = sin(10*pi*x) ./ x進行求解優化,找到最優個體適應度
?
?
?
目錄
輸出結果
實現代碼
?
?
?
輸出結果
?
實現代碼
x = 1:0.01:2;????????? y =?sin(10*pi*x) ./ x; figure plot(x, y) title('繪制目標函數曲線圖—Jason niu'); hold?onc1 = 1.49445; c2 = 1.49445;maxgen = 50;???? sizepop = 10;??Vmax = 0.5;??? Vmin = -0.5; popmax = 2;???? popmin = 1;ws = 0.9;?? we = 0.4;for?i?= 1:sizepoppop(i,:) = (rands(1) + 1) / 2 + 1;???V(i,:) = 0.5 * rands(1);?fitness(i) = fun(pop(i,:)); end[bestfitness bestindex] =?max(fitness); zbest = pop(bestindex,:);? gbest = pop;??? fitnessgbest = fitness;?? fitnesszbest = bestfitness;??for?i?= 1:maxgenw = ws - (ws-we)*(i/maxgen);??for?j?= 1:sizepopV(j,:) = w*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,:)<Vmin)) = Vmin;pop(j,:) = pop(j,:) + V(j,:);pop(j,find(pop(j,:)>popmax)) = popmax;pop(j,find(pop(j,:)<popmin)) = popmin;fitness(j) = fun(pop(j,:));endfor?j?= 1:sizepop??if?fitness(j) > fitnessgbest(j)gbest(j,:) = pop(j,:);?????fitnessgbest(j) = fitness(j);endif?fitness(j) > fitnesszbestzbest = pop(j,:);fitnesszbest = fitness(j);endendyy(i) = fitnesszbest;???? end[fitnesszbest zbest] plot(zbest, fitnesszbest,'r*')figure plot(yy) title('PSO:PSO算法(快于GA算法)+ω參數實現找到最優個體適應度—Jason niu','fontsize',12); xlabel('進化代數','fontsize',12);ylabel('適應度','fontsize',12);?
相關文章
PSO:利用PSO+ω參數實現對一元函數y = sin(10*pi*x) ./ x進行求解優化,找到最優個體適應度
?
?
?
?
總結
以上是生活随笔為你收集整理的MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAT之PSO:利用PSO算法优化二元函
- 下一篇: MAT之ACA:利用ACA解决TSP优化