声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1547|回复: 5

[编程技巧] 向高手请教一个用遗传算法优化的问题.

[复制链接]
发表于 2007-6-11 21:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
先编写目标函数
     function[sol,eval]=fitness(sol,options)
       x=sol(1);
       eval=x+10*sin(5*x)+7*cos(4*x);
把上述函数存储为fitness.m文件并放在工作目录下

然后在命令窗口输入:
initPop=initializega(10,[0 9],'fitness');%生成初始种群,大小为10
   [x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
     [0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遗传迭代

结果却显示:
??? Error using ==> ==
Matrix dimensions must agree.

Error in ==> C:\MATLAB6p5p1\toolbox\遗传算法工具箱\Genetic Algorithms\GAOT\ga.m
On line 87  ==> if opts==[]

不知道是怎么回事,小弟是新手,肯綮各位大侠指教,万分感激啊!
回复
分享到:

使用道具 举报

发表于 2007-6-11 21:13 | 显示全部楼层
原帖由 awoo 于 2007-6-11 21:11 发表
先编写目标函数
     function[sol,eval]=fitness(sol,options)
       x=sol(1);
       eval=x+10*sin(5*x)+7*cos(4*x);
把上述函数存储为fitness.m文件并放在工作目录下

然后在命令窗口输入: ...



if isempty(opts)

试试
 楼主| 发表于 2007-6-11 21:55 | 显示全部楼层
还是不行啊!
改过后,一运行出现
??? Error using ==> ==
Matrix dimensions must agree.

Error in ==> C:\MATLAB6p5p1\toolbox\遗传算法工具箱\Genetic Algorithms\GAOT\ga.m
On line 87  ==> if isempty(opts)
发表于 2007-6-11 22:00 | 显示全部楼层
原帖由 awoo 于 2007-6-11 21:55 发表
还是不行啊!
改过后,一运行出现
??? Error using ==> ==
Matrix dimensions must agree.

Error in ==> C:\MATLAB6p5p1\toolbox\遗传算法工具箱\Genetic Algorithms\GAOT\ga.m
On line 87  ==> if isemp ...


自己调试一下吧,估计与工具箱函数 ga.m 的写法有关,另外,仔细看看该函数的输入格式是否与你的相符
 楼主| 发表于 2007-6-12 10:35 | 显示全部楼层

回复 #4 eight 的帖子

非常感谢,我搞清楚是什么问题了
发表于 2007-6-12 18:17 | 显示全部楼层
是不是加个转置就对了.我想是.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 05:25 , Processed in 0.067752 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表