用matlab实现的遗传算法

具体问题:求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9我是第一次接触matlab,请高手写出详细代码,网上的我也看了些代码,不过运... 具体问题:求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9
我是第一次接触matlab,请高手写出详细代码,网上的我也看了些代码,不过运行出现错误,不会修改。想要个正确的代码,自己想仔细看看。谢谢啊 !
我想要详细代码,要运用到选择,交叉,变异
展开
 我来答
greatdju
2009-11-15 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4167万
展开全部
f=inline('-(x+10*sin(5*x)+7*cos(4*x))');
[x,val]=ga(f,1,[],[],[],[],0,9);
x,val=-val%注:由于遗传法的不确定性,每次得到的解可能不同。
————————————————————————————————
ga是matlab自带的遗传工具箱中的遗传算法函数,其中已经用到了选择、交叉、变异,你如果想知道其具体是怎么实现的,可以自己打开ga的源程序去看。
火丰科技
2024-11-28 广告
致力于从事惯性测量、卫星导航等产品的研发、生产的高新技术企业。公司旗下投资多条自动化生产线分别分布于西安、深圳、珠海等地,其中包括光纤陀螺、MEMS惯导、石英加速度计、电子对抗通信产品生产线,拥有中国先进的惯性导航产品及电子对抗产品生产条件... 点击进入详情页
本回答由火丰科技提供
怒怒怒沧海
2009-11-15
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
syms x
f=@(x)(x+10*sin(5*x)+7*cos(4*x));
[x0,y0]=fminbnd(f,0,9)
f是函数f(x)的句柄
x0为取得最小值时自变量的取值,y0为最小值
结果为:
x0 =

2.2441

y0 =

-13.8121
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwl376519306
2009-11-15
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
下个遗传算法工具箱,然后找本书<<matlab遗传算法工具箱及应用>>,这个问题就迎刃而解了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wiesome
2009-11-17 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:97.8万
展开全部
推荐你看看

《how to solve it : a modern heuristic》

前两章就有。

你的代码其实很简单。

不过不知道你的crossover mutation这些都是要求什么operator
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式