这一部分主要讲解如何写自己的目标函数。什么事目标函数呢?你使用遗传算法工具箱主要是想找到某一个函数的最优解吧,那么这个函数就是目标函数。这个函数你必须写成一个M文件的形式。这样才能符合遗传算法工具箱的要求,当然要求不仅仅这些,还有下面的一些要求:
该函数应该接受一个矢量作为输入参数,该矢量的长度应该等于目标函数中独立变量的个数,该函数应该返回一个标量,这个标量应该是这个输入参数相对应的函数值。下面就演示一个目标函数的写法。假设你想优化下面的函数。
这个函数有两个独立的变量x1,x2.所以你的函数的输入参数应该是一个1X2的矢量。好了,理解清楚了,下面就开始写函数了
1.点击"File",选择"new"中的"Function M-File",出现matlab的文本编辑器界面,将你的内容改成下图的样子,呵呵。
2.保存文件,一定要保存呀。
3.测试你编写的函数。
在matlab中输入myTest([2 3]),回车。出现
ans =
-5
恭喜你,你编写的函数正确,不然,你就要好好检查你刚才的目标函数的M文件了。
顺便也画出这个目标函数的图形。
遗传算法工具箱在使用的时候,对目标函数的最优化方向是什么?也就是这些工具对目标函数是求最大值还是求最小值呢?答案是:最小值。所以你如果相求一个函数的最大值的话,那么你必须修改原有的目标函数,让这个目标函数的最小值恰恰就是你想要的最大值,这个很简单了,前面加一个负号(-),一下子就变过来了。当然方法还有很多,相信自己,你会有更加绝妙的办法,哈哈。详细的就不说了,等着下一次的文章吧。