1樓:
%pso標準演算法 其中w c1 c2 a可以改變%包含初始化函式 迭代函式 還有總體的pso演算法函式function [result,online,offline,minmaxmeanadapt]=pso_stand(swarmsize,particlesize,particlescope,isstep,isdraw,loopcount,isplot)
%function [result,online,offline,minmaxmeanadapt]=pso_stand(swarmsize,particlesize,particlescope,initfunc,stepfindfunc,adaptfunc,isstep,isdraw,loopcount,isplot)!
在執行matlab為什麼會出現??? in an assignment a(i) = b, the number of elements in b and i must be
2樓:這是為什麼哦
貼上了你的**執行了一下,未出現你所說的情況。
但對於你所出現的問題:向量運算時如果等式兩邊向量結構不同就會出現。比如下面的語句:
a(3:6)=1:5
本句表示要對a矩陣中3~6號元素進行賦值,共需四個數,但等式右邊是個1行5列的矩陣,有五個輸入元素,兩邊不匹配,出錯。如改正如下形式可避免此錯誤:
a(3:7)=1:5 或 a(3:6)=1:4
求助:粒子群演算法matlab程式的一點疑問 65
3樓:賞雪瑤
%不知道你具體的問題是什麼,下面是乙個最基本的pso演算法解決函式極值問題,如果是一些大型的問題,需要對速度、慣性常數、和自適應變異做進一步優化,希望對你有幫助
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;
%下面是主程式
%% 清空環境
clcclear
%% 引數初始化
%粒子群演算法中的兩個引數
c1 = 1.49445;
c2 = 1.49445;
maxgen=200; % 進化次數
sizepop=20; %種群規模
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,:)popmax))=popmax;
pop(j,find(pop(j,:)0.8
k=ceil(2*rand);%ceil朝正無窮大方向取整
pop(j,k)=rand;
end%適應度值
fitness(j)=fun(pop(j,:));
%個體最優更新
if fitness(j) < fitnessgbest(j)
gbest(j,:) = pop(j,:);
fitnessgbest(j) = fitness(j);
end%群體最優更新
if fitness(j) < fitnesszbest
zbest = pop(j,:);
fitnesszbest = fitness(j);
endend
yy(i)=fitnesszbest;
end%% 結果分析
plot(yy)
title(['適應度曲線 ' '終止代數=' num2str(maxgen)]);
xlabel('進化代數');ylabel('適應度');
基於粒子群演算法的函式優化問題matlab程式設計,用於函式。畢業**,求助
4樓:法若南
好的,只要程式設計的嗎。
5樓:匿名使用者
目標函式是什麼 還有約束條件
最小化的粒子群演算法為什麼越優化結果越大
6樓:俠魂萬里
它是每進化一代就差找一次,能否找到結果是看你設定的最大迭代次數和終止條件是否滿足。你可以看pso演算法的兩個公式。 演算法執行和用什麼語言沒關係。
pso的具體實現步驟如下: step1: 引數初始化。
在初始範圍內,隨機初始化一群粒子。
粒子群演算法用matlab做,要把粒子初始化為矩陣要怎麼做
7樓:匿名使用者
可以參考一下這段**
c1=1.8; %學習因子1
c2=1.8; %學習因子2
wmax=1.6; %慣性權重
wmin=0.8; %慣性權重
maxdt=100; %最大迭代次數
d=3; %搜尋空間維數(未知數個數)
n=30; %初始化群體個體數目
xup=20/(2^0.5); %初始化位移上限
xdown=-20/(2^0.5); %初始化位移下限
vup=0.5; %初始化速度上限
vdown=0.0; %初始化速度下限
eps=10^(-6); %設定精度(在已知最小值時候用)
%------初始化種群的個體(可以在這裡限定位置和速度的範圍)------------
x=((xup-xdown).*rand(n,2*d)+xdown); %隨機初始化位置
v=((vup-vdown).*rand(n,2*d)+vdown); %隨機初始化速度
8樓:匿名使用者
rand是隨機生成數值 然後根據你的問題編寫程式即可
matlab 粒子群演算法改錯
9樓:
y=abs(u2-u2)/abs(u2);
10樓:葉綠素
你這錯一般人改不了,誰知道你的fitness是怎麼定義的!
matlab 粒子群優化問題 10
bp神經網路演算法在matlab中的實現
bp神經網路是最基本 最常用的神經網路,matlab有專用函式來建立 訓練它,主回要就是newff train sim 這三個函式,當然其答他如歸一化函式mapminmax 其他net的引數設定 lr goal等 設定好,就可以通過對歷史資料的學習進行 附件是乙個最基本的 例項,本來是電力負荷 的例...
在matlab中如何輸出函式的影象
如果要畫y x 3 x 2 x 5在 20,20 上的影象,可利用以下方法,繪畫區間可以自己定義 方法一 利用plot函式來繪畫影象 x 0 0.1 20 規定繪畫區間 從 20畫到20,中間以0,1為間隔 y x.3 x.2 x 5 確定要繪畫的函式,注意不要漏了 plot x,y 方法二 利用e...
在matlab的simulink中執行時間只有10秒,為何啊
上面有個設定 時間的地方,你設定乙個你想要的時間就行了,預設的是10s 在matlab中如何改變示波器顯示的橫軸的座標 示波器中右鍵 縮放選項 水平縮放 如果你是說simulink裡的示波器,那麼在paremeter視窗裡的 time range裡輸入橫軸顯示的時間,比如100 預設是auto,10...