⑴ 雷英傑編著的《MATLAB遺傳演算法工具箱及應用》第七章的第一個例子
程序倒數第六行應該是variable',還有注釋掉倒數12行。把hold on的分號都去掉。
figure(1);
fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);
nind=40;
maxgen=25;
preci=20;
ggap=0.9;
trace=zeros(2,maxgen);
fieldd=[20;-1;2;1;0;1;1];
chrom=crtbp(nind, preci);
gen=0;
variable=bs2rv(chrom,fieldd);
objv=variable.*sin(10*pi*variable)+2.0
while gen<maxgen
fitnv=ranking(-objv);
selch=select('sus',chrom,fitnv,ggap);
selch=recombin('xovsp',selch,0.7);
selch=mut(selch);
variable=bs2rv(selch,fieldd);
objvsel=variable.*sin(10*pi*variable)+2.0;
[chrom objv]=reins(chrom,selch,1,1,objv,objvsel);
gen=gen+1;
[y,i]=max(objv);
hold on;
%plot(variable(i),y,'bo')
trace(1,gen)=max(objv);
trace(2,gen)=sum(objv)/length(objv);
end
variable=bs2rv(chrom,fieldd);
hold on
grid;
plot(variable',objv','b*');
figure(2)
plot(trace(1,:)');
hold on
plot(trace(2,:)','-.');grid;
legend('解的變化','種群均值的變化')
⑵ 如何調用MATLAB遺傳演算法工具箱
1、打開MATLAB軟體。
⑶ 有關怎麼應用matlab遺傳演算法工具箱GUI
GA就是鈣的意識,如果是CA 則是癌症的意識。
⑷ matlab 遺傳演算法工具箱怎麼用
推薦用shefiled的GA工具箱,裡面的子函數寫的很好,調用很方便。 配合一本gA的書內 學的很快;
另外 關於你這容個問題, 你的目標函數和約束函數是否在工作目錄下,還有 在調用的時候 在函數名前面加@試試, 希望能幫到你
⑸ 求解:怎樣使用MATLAB中的遺傳演算法計算器Optimization Tool中的GA——Genetic Algorithm,如圖,重謝
比如通過MATLAB遺傳演算法的思想求解f(x)=x*sin(10pi*x)+2.0,-1<=x<=2的最大值問題,結果精確版到3位小數。
首先在matlab命令權窗口輸入f=@(x)-(x*sin(10*pi*x)+2) 輸出結果為
>> f=@(x)-(x*sin(10*pi*x)+2)
f =
@(x)-(x*sin(10*pi*x)+2)
接著輸入gatool會打開遺傳演算法工具箱
顯示51代之後演算法終止,最小結果為-3.85027334719567,對應的x為1.851,由於自定義函數加了負號,所以原式的最大值為3.85027334719567,對應的x為1.851。
不過這是遺傳演算法得到的結果,每次運行的結果可能會有所不同,而且不一定是確切的最大值。
遺傳演算法適合應用在一些求最優解比較復雜的問題(常規的演算法運算時間過長,甚至無法解決)。
⑹ matlab工具箱在工具欄里怎樣調用
首先檢查是否安裝了所需的工具箱
比如:需調用遺傳演算法工具箱
則使用
a=ver('gatbx')
若返回非空信息,則已安裝好,若需使用
則(以遺傳演算法為例子)
>>optimtool('ga');
或者工作窗口左下角start > toolbox >選擇所需的工具箱即可