最优化求解实际问题_小拓君的建模快学课巧用Matlab遗传算法求解最优化问题(1)...

本文介绍了如何使用Matlab内置的遗传算法工具箱解决最优化问题。通过建立适应度函数并设置参数,以一个简单例子展示了遗传算法在目标函数最小化中的应用,最终得出求解结果。
摘要由CSDN通过智能技术生成
bfaa4fb4e047f6005a7ae08ecde117c0.gif

点击蓝字  关注我们

小拓君的建模快学课开课啦!

今天给大家讲的是:

巧用Matlab遗传算法求解最优化问题(1)

3c9e68cef38423c50439d46d27f82793.png

好好做笔记啦~

8b7047fd6f52b535fead2ffe5113d11d.gif

遗传算法

模拟达尔文进化论的自然选择和遗产学机理的生物进化构成的计算模型,一种不断选择优良个体的算法。通俗理解就是用类生物的办法对数学模型逐代择优。

关于遗传算法的通俗解释,小拓君推荐知乎文章一篇:

https://www.zhihu.com/question/23293449

此文中的第一篇和第二篇,第一篇偏向于就理解,很详细的解释了遗传算法的大概原理。而第二篇偏向理论,更加清楚的阐述了遗传算法的程序实现,两篇结合,基本可以实现遗传算法在求解最优中的应用。

在常见的Matlab版本中,都内嵌有优化工具箱(GA工具箱),其中就有遗传算法的计算功能,交互式操作界面极大简化了遗传算法的使用流程。小拓君在这里就以一个简要的例子说明该工具箱的具体用法,让同学们能够方便快速的求解目标函数的最优化问题。

要使用遗传算法,首先得按照自己的建模需求建立自适应度函数。在这里,可以是数学模型目标函数的变形,在Matlab中,遗传算法所求的都是最小值,因此只要将目标函数转化为求最小值函数即可,下面假设自适应度函数已经建立完成如下:

function z=fu(x)

z=x+10*sin(5*x)+7*cos(3*x);

我们将其保存为fu.m文件,如图所示

cdcbf4c89711eb8831ab0c5f2fee1a2d.png

接着在命令行中输入optimtool打开优化工具箱

60fad07dae556600f355dc3c2fee118e.png

接着在Solver中选择ga遗传算法

a1cf97e37acb90168627431d2afd0222.png

最后设置如下

58e305ce2a949d7ffc8fe257681c6d41.png

Bounds:求解边界(即求解变量X的范围)为-10到10

Number of variable:求解的变量个数

Plot functions :设置画图选项

862b893393729429ffcac30c9336c640.png

点击 Start 进行运算,得到逼近的求解结果为-23.79,求解完成,同时得到适应度函数值与遗传代数的图像:

12e202f0cacf5b7c41830e4408a1173c.png

至于用遗传算法求多个变量最优的方法嘛,其实原理完全一样,这就留到下一次遗传算法课再讲啦~

近期预告:数模算法,获奖经验,国赛与美赛的比较,最新版office,lingo等等,敬请关注!

-END-

8446c7f57cd934111cfbe371629515f1.gif 3edd40ade6496faabc1a7c1d504edbbe.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值