用matlab实现的遗传算法
发布网友
发布时间:2022-04-22 03:16
我来回答
共4个回答
热心网友
时间:2024-03-13 20:33
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-03-13 20:33
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
热心网友
时间:2024-03-13 20:34
下个遗传算法工具箱,然后找本书<<matlab遗传算法工具箱及应用>>,这个问题就迎刃而解了.
热心网友
时间:2024-03-13 20:34
推荐你看看
《how to solve it : a modern heuristic》
前两章就有。
你的代码其实很简单。
不过不知道你的crossover mutation这些都是要求什么operator