⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab无约束优化中的应用.txt

📁 MATLAB绘制出权值wv和阀值bv确定的误差曲面
💻 TXT
字号:
无约束优化中的应用2007/06/02 23:56
求在-5<=xj<=5,j=1,2区间内,求解min f(x1,x2)
当n=2时,
[x1,x2] = meshgrid(-5:0.1:5);
f=-20*exp(-0.2*sqrt(0.5*(x1.^2+x2.^2)))-exp(0.5*(cos(2*pi*x1)+cos(2*pi*x2)))+22.71282;
mesh(x1,x2,f); 
xlabel('x1');
ylabel('x2');
zlabel('f(x1,x2)');
如图




遗传算法的参数设置如下:
种群大小 pop_size=10
最大代数   gen_max=1000
变异率     pm=0.1
交叉率     pc=0.3
function [eval]=griewangk(sol)
numv = size(sol,2);
x=sol(1:numv);
eval=-20*exp(-0.2*sqrt(sum(x.^2)/numv))-exp(sum(cos(2*pi*x))/numv)+22.71282;
function [sol,eval]=Ackleymin(sol,options)
numv = size(sol,2)-1;
x=sol(1:numv);
eval=griewangk(x);
eval=-eval;
%维数n=2
%设置参数边界
bounds = ones(2,1)*[-5   5];
%遗传算法优化
[p,endPop,bestSols,trace]=ga(bounds,'Ackleymin');
%性能跟踪
plot(trace(:,1),trace(:,3),'b-')
hold on
plot(trace(:,1),trace(:,2),'r-')
xlabel('Generation');
ylabel('Fittness');
legend('解的变化','种群平均值的变化');
p =
     0.0000    -0.0000     0.0055
即最优解围p=0.0000 0.0000 
最小值为:
Ackley(p)=0.0055


 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -