matlab在科学计算中的应用9(修).ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab在科学计算中的应用9(修)

数学问题的非传统解法选讲 遗传算法及其在最优化问题中的应用 神经网络及其在数据拟合中的应用 9.1遗传算法 9.1.1遗传算法及其在最优化问题中的应用 遗传算法是基于进化论,在计算机上模拟生命进化机制而发展起来的一门新学科,它根据适者生存、优胜劣汰等自然进化规则搜索和计算问题的解。 美国 Michigen 大学的 John Holland 于 1975 年提出的。 遗传算法最优化工具箱 MATLAB 7.0的遗传算法与直接搜索工具箱 遗传算法的基本思想 从一个代表最优化问题解的一组初值开始进行搜索,这组解称为一个种群,这里种群由一定数量的、通过基因编码的个体组成,其中每一个个体称为染色体,不同个体通过染色体的复制、交叉或变异又生成新的个体,依照适者生存的规则,个体也在一代一代进化,通过若干代的进化最终得出条件最优的个体。 简单遗传算法的一般步骤 选择 n 个个体构成初始种群 ,并求出种群内各个个体的函数值。 设置代数为 i=1,即设置其为第一代。 计算选择函数的值,所谓选择即通过概率的形式从种群中选择若干个个体的方式。 通过染色体个体基因的复制、交叉、变异等创造新的个体,构成新的种群 。 i=i+1,若终止条件不满足,则继续进化。 遗传算法和传统优化算法比较 不同于从一个点开始搜索最优解的传统的最优化算法,遗传算法从一个种群开始对问题的最优解进行并行搜索,所以更利于全局最优化解的搜索。 遗传算法并不依赖于导数信息或其他辅助信息来进行最优解搜索。 遗传算法采用的是概率型规则而不是确定性规则,所以每次得出的结果不一定完全相同,有时甚至会有较大的差异。 9.1.2 遗传算法在求解最优化问题中的应用举例 GAOT 工具箱(目标求最大) bound=[xm,xM]为求解上下界构成的矩阵。a由最优解与目标构成,b为搜索的最终种群,c中间过程参数表。 MATLAB 7.0 GA工具箱界面, gatool() 例: 绘制目标函数曲线: ezplot(x*sin(10*pi*x)+2,[-1,2]) 测试不同的初值: f=inline(-x.*sin(10*pi*x)-2,x); v=[]; for x0=[-1:0.8:1.5,1.5:0.1:2] x1=fmincon(f,x0,[],[],[],[],-1,2); v=[v; x0,x1,f(x1)]; end v v = -1.0000 -1.0000 -2.0000 -0.2000 -0.6516 -2.6508 0.6000 0.6516 -2.6508 1.4000 1.4507 -3.4503 1.5000 0.2540 -2.2520 1.6000 1.6506 -3.6503 1.7000 1.2508 -3.2504 1.8000 1.8505 -3.8503 1.9000 0.4522 -2.4511 2.0000 2.0000 -2.0000 编写函数: function [sol,y]=c10mga1(sol,options) x=sol(1); y=x.*sin(10*pi*x)+2; %调用gaopt( )函数 [a,b,c,d]=gaopt([-1,2],c10mga1); a,c a = 1.85054746606888 3.85027376676810 c = 1.0e+002 * 0.01000000000000 0.01644961385548 0.03624395818177 0.02000000000000 0.01652497353988 0.03647414028140 0.16000000000000 0.01850468596975 0.03850268083951 0.23000000000000 0.01850553961009 0.03850273728228 1.00000000000000 0.01850547466069 0.03850273766768 比较: ff=optimset; ff.Display=iter; x0=1.8; x1=fmincon(f,x0,[],[],[],[],-1,2,,ff); f(x1) ans = -3.85027376676808 f(a(1)) % 遗传算法结果 ans = -3.85027376676810 ezplot(‘x*sin(10*pi

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档