Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-07-01, 09:34   #1
sxlhch
初级会员
 
注册日期: 2009-05-22
帖子: 4
声望力: 0
sxlhch 正向着好的方向发展
默认 遗传算法求极值

Griewangk函数的Matlab代码:
function [eval]=griewangk(sol)
numv=size(sol,2);
x=sol(1:numv);
multi=1;
for i=1:numv
multi=multi*cos(x(i)/sqrt(i));
end
eval=sun(x.^2/4000)-multi+1;

计算Griewangk函数适值的Matlab代码:
function [sol,eval]=griewangkmin(sol,options)
numv=size(sol,2)-1;
x=sol(1:numv);
eval=griewangk(x);
eval=-eval;

遗传算法求解的Matlab代码:
%维数n=6
%设置参数边界
bounds=ones(6,1)*[-512 512];

%遗传算法优化
[p,endPop,bestSols,trace]=ga(bounds,'griewangkmin');

%性能跟踪
plot(trace(:,1),trace(:,3),'b-')
hold on
plot(trace(:,1),trace(:,2),'r-')
xlabel('Generation');
ylabel('Fittness');
legend('解的变化','种群平均值的变化');

运行时提示:
??? Error using ==> ga at 238
Fitness function must be a function handle.
请高手帮忙看看是哪里出了问题,如何解决?
谢谢!
sxlhch 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 18:36


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.