求解:怎样使用MATLAB中的遗传算法计算器Optimization Tool中的GA——Genetic Algorithm,如图,重谢
比如通过MATLAB遗传算法的思想求解f(x)=x*sin(10pi*x)+2.0,-1<=x<=2的最大值问题,结果精确到3位小数。
首先在matlab命令窗口输入f=@(x)-(x*sin(10*pi*x)+2) 输出结果为
>> f=@(x)-(x*sin(10*pi*x)+2)
f =?
@(x)-(x*sin(10*pi*x)+2)
接着输入gatool会打开遗传算法工具箱
按上图所示设置,设置好了之后点击Start
运行结果如下
显示51代之后算法终止,最小结果为-3.85027334719567,对应的x为1.851,由于自定义函数加了负号,所以原式的最大值为3.85027334719567,对应的x为1.851。
不过这是遗传算法得到的结果,每次运行的结果可能会有所不同,而且不一定是确切的最大值。
遗传算法适合应用在一些求最优解比较复杂的问题(常规的算法运算时间过长,甚至无法解决)。