竞赛:| 全国大学生数模竞赛 | 全国研究生数模竞赛 | 全国大学生电工数模竞赛 | 美国"MCM/ICM" 竞赛 |
 资讯:| 数学理论 | 交叉学科 | 基础教育 | 考研数学 | 学术动态 | 编程交流 | 网络安全 | 经验技巧 |
 下载:| 数 学 篇 | 算 法 篇 | 建 模 篇 | 编 程 篇 | 数 据 篇 | 软 件 篇 | 考 研 篇 | 交叉学科 |
 视频:| 大学数学 | 大学英语 | 计 算 机 | 法律课程 | 政治课程 | 经济管理 | 数学建模 | 高考数学 |
 功能:| 矩阵论坛 | 学校协会 | 挑 战 赛 | 人才招聘 | 数学问吧 | "MC"理工浏览器 | "MCQ"即时通讯 |

 
会员中心
社区论坛
加入收藏
联系我们
您现在的位置: 数学中国 >> 资讯无限 >> 计算机技术 >> 编程交流 >> 正文
【字体:           
 
遗传算法求函数最大值
作者:佚名    文章来源:本站原创    点击数:    更新时间:2006-6-20
 

遗传算法求函数最大值

%举一实例   利用遗传算法计算下列函数的最大值
%     f(x)=x+10*sin(5x)+7*cos(4x)         x
属于[0,9]
%
编写目标函数
function [sol, eval] =gaDemo1Eeval(sol,options)
x=sol(1);
eval = x + 10*sin(5*x)+7*cos(4*x);

%
参数说明
%eval
:个体的适应度;
%sol
:当前个体,n+1个元素的行向量。

%
遗传算法求最大值
clc
fplot('x + 10*sin(5*x)+7*cos(4*x)',[0 9])
%
生成初始种群,大小为10
initPop=initializega(10,[0 9],'gademo1eeval1');
plot (initPop(:,1),initPop(:,2),'b*')
%
调用遗传函数
% 1
次遗传迭代
[x endPop] = ga([0 9],'gademo1eeval1',[],initPop,[1e-5...
1 1],'maxGenTerm',1,'normGeomSelect',[0.08],['arithXover'], ... [20], 'nonUnifMutation',[2 1 3]);

plot (endPop(:,1),endPop(:,2),'bo')
% 25
次遗传迭代
[x endPop bpop trace] = ga([0 9],'gademo1eeval1',[],initPop, [1e-6 1 1],'maxGenTerm',25, 'normGeomSelect',[0.08], ['arithXover'],[2],'nonUnifMutation',[2 25 3]);

plot (endPop(:,1),endPop(:,2),'y*')
figure(2)
plot(trace(:,1),trace(:,3),'y-')
hold on
plot(trace(:,1),trace(:,2),'r-')
xlabel('Generation'); ylabel('Fittness');
legend('
解的变化','种群平均值的变化');

文章录入:lizuyi    责任编辑:madio  
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    推 荐 文 章
    更多内容
     
    热 门 文 章  
    更多内容
     

    费马小定理
    相 关 文 章
    更多内容
     
    面向对象编程
    VC实用小知识总结
    C++面向对象编程入门:类(c…
    基于遗传算法的图像模式识别
    一个遗传算法程序
    神经网络遗传算法
    路由基础概念解析
    Cisco路由技术基础知识详解
    VPN的基本配置.doc
    考研英语强化班作文电子版教…
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |