遗传算法解决函数最大值

时间:2024-10-22 03:24:36

1、以MATLAB R2019a为例,打开软件。由于MATLAB遗传算法只能求解函数最小值,所以求最大值时需要求函数相反数的最小值,再进行转化。

遗传算法解决函数最大值

2、以求解函数f(x)=-sinx-cosx的最大值为例,转换成求f(x)=sinx+cosx的最小值。在命令窗口输入“edit”并回车,调出“编辑器”窗口,并将目标函数保存为函数文件。

遗传算法解决函数最大值

3、在“APP(应用)”选项卡中选择“Optimization(优化)”工具箱。

遗传算法解决函数最大值

4、在优化工具箱中选择遗传算法,图中框起来的选项。

遗传算法解决函数最大值

5、以下便是“遗传算法”窗口界面,输入相关的参数即可进行求解,省去了编程的麻烦。

遗传算法解决函数最大值

6、这里输入的函数“@fu”是函数文件的名字,且前边必须加一个@符号;函数中有几个变量就在变量输入框中输入几,这里这有一个变量,输入1;约束条件根据题目输入即可,这里的自变量区间是(1,3)。

遗传算法解决函数最大值

7、其他的选项可以默认,也可以自己设置,完成之后单击“Start”按钮进行运算。结果会在左下方显示,迭代102次之后,最小值在x=3处为-0.8489. 转换成我们的问题就是原函数的最大值为0.8489,在x=3处取得。

遗传算法解决函数最大值

8、如果想要显示计算过程的动态变化,可以勾选图中的选项。

遗传算法解决函数最大值

9、计算过程中便会显示各个图表对应的变化情况。

遗传算法解决函数最大值
© 手抄报圈