MATLAB课程设计报告

合集下载

Matlab课程设计报告

Matlab课程设计报告

至诚学院《 MATLAB 实践》课程设计学生姓名:学号:专业班级:(2)指导教师:二○一四年四月三十日目录1.设计目的 (3)2.题目分析 (3)3.总体设计 (3)4.具体设计 (4)5.小结和心得 (15)1、设计目的:使用MATLAB的GUI程序设计学生成绩管理系统。

完成需学生成绩的基本管理,包含对学生成绩的读入、修改、添加和查询等基本的功能。

本课题主要解决对学生成绩总体的客观评价,通过一系列数据的分析比较,例如平均值,成绩分布等整体数据的处理,以及matlab和excel在数据联动功能方面的应用,所绘制的直方图、正态分布图等图像信息使得分析成绩系统更直观、有效地反映学生此课程这一阶段的表现,进而研究今后的教学重点,以及从教学到考试等一连串过程中的薄弱环节,从而达到教学相长的目的。

不论是对学生的整体学习情况还是单独考虑每个学生的学习情况都能够进行较好的评价。

面比起单纯的"绝对分数"评价学生的学习状况,忽略了基础条件的差异,我们运用了各种方法和模型来去避免这类现象的发生,动态的分析每个学生的情况,并从定性和定量两方面分别给出了数值与建议。

2、题目分析根据课题的要求,分析成绩管理系统的现实需求,我们可以概括为设计的程序应该包含的几个基本模块及应该完成的功能如下:1.文件管理:完成成绩表格的导入(.xls文件),完成对修改后的成绩文件的保存。

2.成绩管理:完成对学生成绩、学号、成绩、总分的显示和修改,还有添加新的学生的信息。

3.查询管理:完成对姓名或者学号的查询的显示和删除,学生的信息显示在成绩管理里面的显示框里面。

4.在学生的姓名显示框点击学生姓名,成绩管理系统里面自动获取学生的基本信息。

5.统计出学生的最高分和最低分以及各科成绩的平均分情况。

6.通过各科成绩的统计分布直方图,直观地分析学生的各科的成绩状况。

3、总体设计围绕设计的题目范围,我们可以将起绘制成功能模块的总体模块图如下图1。

Matlab课程设计报告

Matlab课程设计报告

《MATLAB》课程设计报告设计课题:MATLAB综合实验学生姓名:学生学号:专业班级:指导教师:一、课程设计的目的及其意义了解matlab的窗口工具栏的使用以及作用、让matlab成为我们的日常好帮手,并为将来使用matlab进行信号处理领域的各种分析和实际应用打下基础。

二、课程设计原理matlab软件包有五大功能:数值计算功能、符号运算功能、数据化可视功能、数据图形文字统一处理功能和建模仿真可视化功能。

matlab在信号与系统中的主要功能是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、信号的S域分析和零极点图绘制等内容。

三、课程设计要求使用帮助功能,绘制出sinc和三角波的波形。

四、课程设计过程1、函数代码Sinc波的函数代码及图像t=—pi:0。

001:pi; x=sinc(t);plot(t,x);xlabel('t’),ylabel(’sinc(t);');三角波的函数代码及图像t=-2*pi:0。

001:2*pi;y=sawtooth(t);plot(t,y);xlabel(’t'),ylabel(’ y=sawtooth(t);’);五、课程设计体会刚开始拿到这个课程设计、并不知道该干些什么东西,不过还是决定先打开matlab软件看看,一下想到弄两个波形出来,看看会是怎么样的效果。

于是把两个程序输入,并得到了波形其实对于matlab的学习已经有一段时间了,可是发现自己对这个软件的认识还只是皮毛上的东西。

matlab是一个基于矩阵运算的软件,这是我们大家都知道的事情了,但是,在真正运用这个软件的时候(就是在编程的时候),很多人特别是我这样的初学者,很多时候往往没有注意到这个问题,所以就会有for循环(包括while循环)嵌套了十几层,这种做法浪费了大量资源,而且没有发挥matlab的长处,还浪费了大家宝贵的时间,就只见左下角一直busy。

matlab课程设计完整版

matlab课程设计完整版

matlab课程设计完整版一、教学目标本节课的教学目标是让学生掌握MATLAB的基本语法和操作,能够利用MATLAB进行简单的数学计算和数据分析。

具体来说,知识目标包括:了解MATLAB的历史和发展,掌握MATLAB的基本语法和数据类型,熟悉MATLAB的工作环境。

技能目标包括:能够使用MATLAB进行矩阵运算,编写简单的MATLAB脚本程序,进行数学计算和数据分析。

情感态度价值观目标包括:培养学生对科学计算软件的兴趣,增强学生的动手能力和团队协作能力。

二、教学内容本节课的教学内容主要包括MATLAB的基本语法和操作。

首先,介绍MATLAB的历史和发展,使学生对MATLAB有一个整体的认识。

然后,讲解MATLAB的基本语法和数据类型,如矩阵的创建和操作,数据的输入和输出等。

接着,介绍MATLAB的工作环境,包括命令窗口、变量浏览器和脚本文件等。

最后,通过实例演示和练习,使学生能够熟练使用MATLAB进行简单的数学计算和数据分析。

三、教学方法为了达到本节课的教学目标,将采用讲授法、实践法和讨论法等多种教学方法。

首先,通过讲授法向学生介绍MATLAB的基本概念和语法。

然后,通过实践法,让学生动手操作MATLAB软件,进行实际的数学计算和数据分析。

在实践过程中,引导学生进行讨论,分享自己的心得和经验,互相学习和进步。

最后,通过讨论法,对学生的学习情况进行总结和评价,及时调整教学策略。

四、教学资源为了保证本节课的教学质量,将准备教材、多媒体资料和实验设备等多种教学资源。

教材是学生学习的基础,多媒体资料可以丰富教学手段,实验设备则是学生进行实践操作的重要工具。

此外,还将利用网络资源,如在线教程和讨论区,为学生提供更多的学习资料和实践机会。

五、教学评估本节课的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。

评估方式包括平时表现、作业和考试等。

平时表现主要考察学生的课堂参与度和团队合作能力,通过观察和记录学生在课堂上的表现来进行评估。

matlab的教学课程设计

matlab的教学课程设计

matlab 的教学课程设计一、课程目标知识目标:1. 掌握MATLAB的基础知识,包括数据类型、矩阵运算、程序流程控制等;2. 学会使用MATLAB进行数据可视化、图像处理、数值计算等操作;3. 了解MATLAB在工程领域的应用,并能结合所学专业进行简单的数据分析。

技能目标:1. 能够熟练运用MATLAB编写程序,解决实际问题;2. 学会使用MATLAB进行数据导入、导出,以及与Excel、Word等软件的数据交互;3. 培养学生运用MATLAB进行科学计算和工程问题求解的能力。

情感态度价值观目标:1. 培养学生对MATLAB编程的兴趣和热情,激发学生主动探索精神;2. 培养学生严谨的科学态度,提高学生的团队协作能力;3. 引导学生认识到MATLAB在现代工程技术中的重要性,树立正确的价值观。

课程性质:本课程为实践性较强的课程,旨在培养学生的编程能力和实际应用能力。

学生特点:学生具备一定的数学基础和编程兴趣,但对MATLAB编程可能较为陌生。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,以案例教学为主,培养学生的实际操作能力。

在教学过程中,关注学生的个体差异,鼓励学生提问、讨论,提高学生的参与度和积极性。

通过课程学习,使学生能够独立完成MATLAB程序编写,解决实际问题。

二、教学内容1. MATLAB基础知识:数据类型、矩阵运算、程序流程控制等;教材章节:第一章 MATLAB概述,第二章 MATLAB基础知识。

2. 数据可视化与图像处理:绘图函数、图像处理基本操作等;教材章节:第三章 数据可视化,第四章 图像处理。

3. 数值计算:线性方程组求解、数值积分、插值等;教材章节:第五章 数值计算。

4. MATLAB在实际工程中的应用:结合所学专业,进行数据分析与处理;教材章节:第六章 MATLAB在工程中的应用。

5. MATLAB与其他软件的数据交互:数据导入、导出,与Excel、Word等软件的数据交互;教材章节:第七章 MATLAB与其他软件的数据交互。

《MATLAB课程设计》报告.DOC

《MATLAB课程设计》报告.DOC

《MATLAB课程设计》报告设计题目:基于MATLAB的语音信号采集与处理学生姓名:学生学号:********专业班级:光信息科学与技术答辩时间:2013年12月指导教师:冯明库广东技术师范学院电子与信息学院一、设计目的及意义1. MATLAB软件功能简介MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。

它是一种科学计算软件,专门以矩阵的形式处理数据。

MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。

MATLAB软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。

其中,符号运算功能的实现是通过请求MAPLE 内核计算并将结果返回到MATLAB命令窗口。

该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。

目前,Mathworks公司已推出30多个应用工具箱。

MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。

MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。

由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。

例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。

MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。

MATLAB课程设计报告(绝对完整)

MATLAB课程设计报告(绝对完整)

课程设计任务书学生姓名:董航专业班级:电信1006班指导教师:阙大顺,李景松工作单位:信息工程学院课程设计名称:Matlab应用课程设计课程设计题目:Matlab运算与应用设计5初始条件:1.Matlab6.5以上版本软件;2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”、线性代数及相关书籍等;3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成;2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。

具体设计要求包括:①初步了解Matlab、熟悉Matlab界面、进行简单操作;②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计;③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;④使用文本编辑器编辑m文件,函数调用;⑤能进行简单的信号处理Matlab编程;⑥按要求参加课程设计实验演示和答辩等。

3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:①目录;②与设计题目相关的理论分析、归纳和总结;③与设计内容相关的原理分析、建模、推导、可行性分析;④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;⑤课程设计的心得体会(至少500字);⑥参考文献(不少于5篇);⑦其它必要内容等。

时间安排:1.5周(分散进行)参考文献:[1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010.[2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011.[3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011.[4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010.指导教师签名:年月日系主任(或责任教师)签名:年月日目录1 MATLAB的简介 (1)2课程设计内容 (4)2.1 (5)2.2 (2)2.3 (2)2.4 (2)2.5 (2)2.6 (2)2.7 (2)2.8 (2)2.9 (2)2.10 (2)3课程设计心得体会 (1)4参考文献 (1)1 Matlab 软件简介1.1 MATLAB产生的历史背景MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

matlab自修课程设计报告(matlab实现傅立叶变换)

matlab自修课程设计报告(matlab实现傅立叶变换)

matlab实现信号的傅立叶变换一、设计目的1.熟悉和掌握matlab的基本使用方法,能够熟练运用matlab。

ﻩ2.巩固信号与系统中的傅立叶变换内容,加深对这部分内容的理解。

二、设计任务ﻩ1.掌握matlab的基本操作。

2.利用matlab实现典型非周期信号的傅立叶变换,画出信号的时域图和频域图。

3.利用matlab实现傅立叶变换的基本性质。

三、设计原理1.matlab简介MATLAB是MathWorks公司推出的一套高性能的数值计算和可视化软件,经过多年大量的、坚持不懈的改进,现在MATLAB已经更新至7.x版。

MATLAB集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。

在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以人们十分熟悉的数值或图形方式显示出来。

MATLAB可用来解决实际的工程和数学问题,其典型应用有:通用的数值计算,算法设计,各种学科(如自动控制、数字信号处理、统计信号处理)等领域的专门问题求解。

MATLAB语言易学易用,不要求用户有高深的数学和程序语言知识,不需要用户深刻了解算法及编程技巧。

MATLAB既是一种编程环境,又是一种程序设计语言。

这种语言与C、FORTRAN等语言一样,有其内定的规则,但MATLAB的规则更接近数学表示。

使用更为简便,可使用户大大节约设计时间,提高设计质量。

2.matlab2013b基本界面介绍matlab2013b主界面窗口基本分为五个部分:1)主菜单界面在此界面我们只需要用到新建命令文件和对程序进行间断调试的功能2)文件查看窗口,双击可快速打开文件3)写命令窗口及提示窗口在这个窗口可写入参数、写入公式、显示错误、显示帮助等功能,例如对a赋值、写入公式f =a*a、显示帮助:公式fft的使用方法4)历史命令查看窗口在该窗口可查看历史输入命令,双击历史命令可再次输入到命令窗口5)数值查看窗口在该窗口可查看所有参数详细数值3.理论原理:傅里叶变换的基本思想首先由法国学者傅里叶系统提出,所以以其名字来命名以示纪念。

matlab课程设计报告摘要

matlab课程设计报告摘要

matlab课程设计报告摘要一、教学目标本课程的教学目标是使学生掌握MATLAB的基本语法、编程技巧和应用方法,能够利用MATLAB进行简单的科学计算和数据分析。

具体目标如下:1.掌握MATLAB的基本语法和数据类型。

2.掌握MATLAB的矩阵运算和线性方程求解。

3.了解MATLAB的图形绘制和图像处理功能。

4.能够使用MATLAB进行简单的科学计算和数据分析。

5.能够编写MATLAB脚本文件和函数文件。

6.能够利用MATLAB绘制图形和图像。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。

2.培养学生的创新思维和实践能力。

3.培养学生的科学精神和责任感。

二、教学内容根据课程目标,教学内容主要包括MATLAB的基本语法、矩阵运算、线性方程求解、图形绘制和图像处理。

具体安排如下:1.MATLAB的基本语法和数据类型:变量定义、数据类型转换、运算符、函数等。

2.矩阵运算:矩阵的创建、矩阵的运算规则、矩阵的逆、矩阵的秩等。

3.线性方程求解:高斯消元法、矩阵的逆、线性方程组的解法等。

4.图形绘制:基本图形绘制、图形的属性设置、图形的编辑和修饰等。

5.图像处理:图像的读取和显示、图像的转换和处理、图像的分析和识别等。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。

主要包括:1.讲授法:通过讲解MATLAB的基本语法、矩阵运算、线性方程求解等内容,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解MATLAB在科学计算和数据分析中的应用。

3.实验法:通过上机实验,使学生亲自操作MATLAB,巩固所学知识,提高实际操作能力。

4.小组讨论法:通过小组讨论和合作,培养学生的团队合作意识和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《MATLAB入门教程》或《MATLAB实用教程》等。

2.参考书:提供一些相关的参考书籍,供学生课后自学。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华东交通大学MATLAB程序设计报告书课题名称:基于MATLAB的粒子群优化算法的实现姓名:学号:**************专业:控制科学与工程2016年 11月 20日基于MATLAB的粒子群优化算法的实现一、课程选题目的本次课程设计的课题为《基于MATLAB的粒子群优化算法的实现》,主要为学会运用MATLAB对实际算法编程,加深对粒子群优化算法的理解,并为今后熟练使用MA TLAB进行系统的分析仿真和设计奠定基础。

数值计算分析可以帮助更深入地理解理论知识,并为将来使用MA TLAB进行各领域数值分析分析和实际应用打下基础。

此次课程主要是为了进一步熟悉对MATLAB软件的使用,以及学会利用MA TLAB对数值运算这种实际问题进行处理,将理论应用于实际,加深对它的理解。

二、粒子群优化算法原理优化是科学研究、工程技术和经济管理等领域的重要研究工具。

它所研究的问题是讨论在众多的方案中寻找最优方案。

例如,工程设计中怎样选择设计参数,使设计方案既满足设计要求又能降低成本;资源分配中,怎样分配有限资源,使分配方案既能满足各方面的基本要求,又能获得好的经济效益。

在人类活动的各个领域中,诸如此类,不胜枚举。

优化这一技术,正是为这些问题的解决,提供理论基础和求解方法,它是一门应用广泛、实用性很强的科学。

近十余年来,粒子群优化算法作为群体智能算法的一个重要分支得到了广泛深入的研究,在路径规划等许多领域都有应用。

2.1 粒子群优化算法的起源粒子群优化(PSO)算法是由Kennedy和Eberhart于1995年用计算机模拟鸟群觅食这一简单的社会行为时,受到启发,简化之后而提出的。

设想这样一个场景:一群鸟随机的分布在一个区域中,在这个区域里只有一块食物。

所有的鸟都不知道食物在哪里。

但是他们知道当前的位置离食物还有多远。

那么找到食物的最优策略是什么呢。

最简单有效的方法就是追寻自己视野中目前离食物最近的鸟。

如果把食物当作最优点,而把鸟离食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作一个函数寻优的过程。

鱼群和鸟群的社会行为一直引起科学家的兴趣。

他们以特殊的方式移动、同步,不会相互碰撞,整体行为看上去非常优美。

生物学家CargiReynolds提出了一个非常有影响的鸟群聚集模型。

在他的模拟模型boids中,每一个个体遵循:避免与邻域个体相冲撞、匹配邻域个体的速度、试图飞向感知到的鸟群中心这三条规则形成简单的非集中控制算法驱动鸟群的聚集,在一系列模拟实验中突现出了非常接近现实鸟群聚集行为的现象。

该结果显示了在空中回旋的鸟组成轮廓清晰的群体,以及遇到障碍物时鸟群的分裂和再度汇合过程。

由此受到启发,经过简化提出了粒子群优化算法。

2.2粒子群优化算法的原理在粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。

所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。

然后粒子们就追随当前的最优粒子在解空间中搜索。

优化开始时先初始化为一群随机粒子(随机解)。

然后通过迭代找到最优解。

在每一次迭代中,粒子通过跟踪两个极值来更新自己。

第一个极值就是整个种群目前找到的最优解。

这个极值是全局极值。

另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。

第二个极值是粒子本身所找到的最优解,称为个体极值。

这是因为粒子仅仅通过跟踪全局极值或者局部极值来更新位置,不可能总是获得较好的解。

这样在优化过程中,粒子在追随全局极值或局部极值的同时追随个体极值则圆满的解决了这个问题。

这就是粒子群优化算法的原理。

在算法开始时,随机初始化粒子的位置和速度构成初始种群,初始种群在解空间中为均匀分布。

其中第i个粒子在n维解空间的位置和速度可分别表示为X i=(x i1,x i2,…,x id)和V i=(v i1,v i2,…,v id),然后通过迭代找到最优解。

在每一次迭代中,粒子通过跟踪两个极值来更新自己的速度和位置。

一个极值是粒子本身到目前为止所找到的最优解,这个极值称为个体极值Pb i=(Pb i1,Pb i2,…,Pb id)。

另一个极值是该粒子的邻域到目前为止找到的最优解,这个极值称为整个邻域的最优粒子Nbest i=(Nbest i1,Nbest i2,…,Nbest id)。

粒子根据如下的式(2-1)和式(2-2)来更新自己的速度和位置:V i=V i+c1·rand()·(Pbest i-X i)+c2·rand()·(Nbest i-X i) (2-1)X i= X i+ V i (2-2) 式中c1和c2是加速常量,分别调节向全局最好粒子和个体最好粒子方向飞行的最大步长,若太小,则粒子可能远离目标区域,若太大则会导致突然向目标区域飞去,或飞过目标区域。

合适的c1,c2可以加快收敛且不易陷入局部最优。

rand()是0到1之间的随机数。

粒子在每一维飞行的速度不能超过算法设定的最大速度V max。

设置较大的V max可以保证粒子种群的全局搜索能力,V max较小则粒子种群优化算法的局部搜索能力加强。

粒子群优化算法是在模拟鸟群觅食时受到启发提出的。

提出之后却发现用动物或人的认知来解释算法的原理更加完美。

在速度更新公式(2-1)中由3个部分构成。

第1个部分是V i,表示粒子在解空间有按照原有方向和速度进行搜索的趋势,这可以用人在认知事物时总是用固有的习惯来解释。

第2个部分是c1·rand()·(Pbest i-X i),表示粒子在解空间有朝着过去曾碰到的最优解进行搜索的趋势,这可以用人在认知事物时总是用过去的经验来解释。

第3部分是c2·rand()·(Nbest i-X i),表示粒子在解空间有朝着整个邻域过去曾碰到的最优解进行搜索的趋势,这可以用人在认知事物时总可以通过学习其他人的知识,也就是分享别人的经验来解释。

因此,粒子群优化算法实际上是借用了人或动物认知事物时的习惯,经验,及学习过程来进行寻优的。

粒子在优化过程中的运动轨迹见图1。

图1 粒子群算法优化搜索示意图3.3粒子群优化算法的优点粒子群优化算法具有以下主要优点:(1)易于描述;(2)便于实现;(3)要调整的参数很少;(4)使用规模相对较少的群体;(5)收敛需要评估函数的次数少;(6)收敛速度快粒子群优化算法很容易实现,计算代价低,由于其内存和CPU速度要求都很低。

而且,它不需要目标函数的梯度信息,只依靠函数值。

粒子群优化算法已被证明是解决许多全局优化问题的有效方法。

三、粒子群优化算法的实现粒子群优化算法具有编程简单,易实现的特点,粒子群优化算法的流程如图2所示。

下面给出其实现的具体步骤:步骤1:初始化。

初始搜索点的位置X0i及其速度V0i通常是在允许的范围内随机产生的,每个粒子的Pbest坐标设置为其当前位置,且计算出其相应的个体极值(即个体极值点的适应度值),而整个邻域的最优粒子就是该粒子邻域中个体极值中最好的,记录该最好值的粒子序号,并将Nbest i设置为该最好粒子的当前位置。

步骤2:评价每一个粒子。

计算粒子的适应度值,如果好于该粒子当前的个体极值,则将Pbest设置为该粒子的位置,且更新个体极值。

如果在该粒子的邻域内所有粒子的个体极值中最好的好于当前的Nbest i,则将Nbest i设置为该粒子的位置,记录该粒子的序号,且更新Nbest i的函数值。

步骤3:粒子的更新。

用式(2-1)和式(2-2)对每一个粒子的速度和位置进行更新。

步骤4:检验是否符合结束条件。

如果当前的迭代次数达到了预先设定的最大次数(或达到最小错误要求),则停止迭代,输出最优解,否则转到步骤2。

图2 粒子群算法优化算法流程图三、程序和结果3.1基本粒子群优化函数:PSO.mfunction [xm,fv] = PSO(fitness,N,c1,c2,w,M,D)format long;%------初始化种群的个体------------for i=1:Nfor j=1:Dx(i,j)=randn; %随机初始化位置v(i,j)=randn; %随机初始化速度endend%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------for i=1:Np(i)=fitness(x(i,:));y(i,:)=x(i,:);endpg = x(N,:); %Pg为全局最优for i=1:(N-1)if fitness(x(i,:))<fitness(pg)pg=x(i,:);endend%------进入主要循环,按照公式依次迭代------------for t=1:Mfor i=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));x(i,:)=x(i,:)+v(i,:);if fitness(x(i,:))<p(i)p(i)=fitness(x(i,:));y(i,:)=x(i,:);endif p(i)<fitness(pg)pg=y(i,:);endendPbest(t)=fitness(pg);endxm = pg';fv = fitness(pg);3.2目标函数:fitness.mfunction F = fitness(x)F = 0;for i=1:30;F=F+x(i)^2;end3.3程序结果在MATLAB命令窗口中输入:[xm,fv] = PSO(@fitness,40,2,2,0.5,1000,30) 可以得到结果:xm =0.078730243506451-0.1156041866676920.0967832542268840.044413221257582-0.0433670784658360.110431795894210-0.148375514833794-0.0678525135088100.054996689064950-0.037899962158029-0.1052444634883210.367616621329520-0.030907574829250-0.019441109411687-0.101832932702353-0.037872080224026-0.067869827703363-0.0411841305122990.0268196333001390.122345151839775-0.058153506170530-0.0440692800093460.187583216273750-0.103674713698693-0.044344990345638-0.023687143394873-0.0253556316853650.240306909129676-0.1090439459151960.117014752092513fv =0.395165177591029四、心得体会正所谓“纸上得来终觉浅,觉知此事要躬行。

相关文档
最新文档