您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > MATLAB实验指导书
实验一MATLAB工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。二、实验内容:MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单(Menu)、工具条(Toolbar)、命令窗口(CommandWindow)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。三、实验步骤:1、启动MATLAB,熟悉MATLAB的桌面。2、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。(1)(365-522-70)3;(2)area=pi*2.5^2;(3)已知x=3,y=4,在MATLAB中求z:232yxyxz;(4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。m1=11514412679810115133216执行以下命令m1(2,3)m1(11)m1(:,3)m1(2:3,1:3)m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)(5)执行命令helpabs查看函数abs的用法及用途,计算abs(3+4i);(6)执行命令x=0:0.1:6*pi;y=5*sin(x);plot(x,y)(7)运行MATLAB的演示程序,demo,以便对MATLAB有一个总体了解。四、思考题1、以下变量名是否合法?为什么?(1)x2;(2)3col;(3)_row;(4)for;2、求以下变量的值,并在MATLAB中验证。(1)a=1:2:5;(2)b=[a'a'a'];(3)c=a+b(2,:)s=(365-52*2-70)/3s=63.6667area=pi*2.5^2area=19.6350实验二MATLAB语言矩阵运算一、实验目的:掌握基本的矩阵运算及常用的函数。二、实验内容:654321a531142b201c063258741d1、下列运算是否合法,为什么?如合法,结果是多少?(1)result1=a';(2)result2=a*b;(3)result3=a+b;(4)result4=b*d;(5)result5=[b;c']*d;result5=[b;c'];result5=[b;c']*d;(6)result6=a.*b;(7)result7=a./b;(8)result8=a.*c;(9)result9=a.\b;(10)result10=a.^2;(11)result11=a^2;(12)result11=2.^a;2、用MATLAB求下面的的方程组。(1)017413231511222315921274321xxxx(2)56533332821wzyxwyxwzyxzyx3、已知1323151122231592127A(1)求矩阵A的秩(rank);(2)求矩阵A的行列式(determinant);(3)求矩阵A的逆(inverse);(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)[x,lamde]=eig(A);4、关系运算与逻辑运算已知a=20,b=-2,c=0,d=1(1)r1=ab;(2)r2=ab&cd;(3)r3=a==b*(-10);(4)r4=~b|c;三、思考题109910101022222nny,求y=?(用formatlong查看y的值)实验三MATLAB语言的程序设计一、实验目的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写和设计4、了解和熟悉跨空间变量传递和赋值二、实验基本知识:1、程序流程控制语句for循环结构语法:fori=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。while循环结构语法:while逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endif-else-end分支结构if表达式1语句1elseif表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。2.elseif表达式2与else为可选项,这两条语句可依据具体情况取舍。3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后面的表达式可以是任何类型,如数字、字符串等。2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。程序流程控制指令break、return、pause2、函数文件的结构和编写方法函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。M函数文件的结构(1)函数定义行(function)(2)H1行(函数帮助文本的第一行)(3)函数帮助文本(4)函数体(5)注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。三、实验内容:1、熟悉MATLAB程序编辑与设计环境2、用for循环语句实现求1~100的和。3、用for循环语句实现编写一个求n阶乘的函数文件。4、Fibonacci数组的元素满足Fibonacci规则:且,现要求该数组中第一个大于10000的元素。思考题1、已知一维数组A=[2,4,5,8,10],B=[4,6,9,3,4],用for循环语句实现niiniBA11。求和函数可用sum()。.2、利用for循环求1!+2!+3!+…+5!的值。.),2,1(k12kkkaaa121aa实验四函数的编写及调试一、实验目的:掌握MATLAB函数的编写及调试方法。二、实验内容:1、编写一个函数function[y]=myfun1(x),计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。选择一些数据测试你编写的函数。2、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。function[m_x,max_x,min_x,rms_x]=myfun2(x),均方根值(RootMeanSquare)的计算公式为:NiixNrms121用下面数据测试你写的函数:(1)x=sin(0:0.01:6*pi)(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。3、编写一个函数,给出一个向量],,[21nxxxx,生成如下范德蒙矩阵。function[v]=myvander(x)112112222121111nnnnnnxxxxxxxxx例如:v=myvander([2345])得v=1256427825169454321111生成一些数据测试你写的函数。三、思考题编写程序,用如下迭代公式求a,a的值分别为:3,17,113。迭代的终止条件为5n1n10xx,迭代初值0.1x0,迭代次数不超过100次。分别对迭代结果和准确值进行比较,并统计迭代次数。1n1n1n222x2a2xxaxx2ax3,630,0,sin)(xxxxxxxy实验五MATLAB的绘图1、在同一坐标系下绘制下面三个函数在t[0,4]的图象。)sin(41.0321teytytyt2、编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象。3、三维空间曲线绘制x=cos(z);y=sin(z);(z∈0~4*pi)4、用mesh或surf函数,绘制下面方程所表示的三维空间曲面,x和y的取值范围设为[-3,3]。101022yxz三、思考题在同一坐标系下,用不同颜色和线型绘制以下两个函数在t[-2,2]范围内的图象。t5.012yt2.02e2y3,630,0,sin)(xxxxxxxy实验六遗传算法工具箱的应用一、实验目的1、熟悉遗传算法中的基本参数以及设置方法。2、了解遗传算法如何用于函数优化工作。3、掌握使用MATLAB遗传算法工具箱进行函数优化。二、实验设备1、PC机2、Matlab软件三、实验原理GADST为用户提供了友好的GUI使用界面及清晰的命令行调用语句,使用极为简单方便。MATLAB7.0版本开始自带GADST,GADST是一个函数库,里面包括了遗传算法的主函数、各个子函数以及一些绘图函数。在MATLAB中,可以通过在“CommandWindow”中输入optimtool(‘ga’)或者gatool打开GADST工具箱,GADST工具箱界面如下图所示。(图片要修改)可以看到,该界面包括以下三部分:1、ProblemSetupandResults(问题建立与结果板块)。从上至下依次为:输入适应度函数句柄(Fitnessfunction)、个体所含的变量数目(Numberofvariables)、约束[线性不等式约束(Linearinequalities)、线性等式约束(Linearequalities)、上下限约束(Bounds)、非线性约束函数(Nonlinearconstraintfunction)],待设置完中间板块的Options后,单击Start按钮,遗传算法开始运行,运行完之后结果显示于该板块下部。2、Options(遗传算法选项设置板块)。在运行遗传算法之前,需要在该板块内进行设置,包括如下几项:1)种群(Population)。包括种群类型(Populationtype)、种群大小(Populationsize)以及一些与种群相关的设定,后者可采用默认设置。2)适应度排序(Fitnessscaling)。默认使用函数fitscalingrank(等级排序),也可从下拉菜单中选用其它排序函数。3)选择(Selection)。默认使用函数selectionstochunif(随机一致性选择),也可从下拉菜单中选用其它排序函数。4)繁殖(Reproduction)。遗传算法为了繁殖下一代,需要设置精英数目(EliteCount)和交叉后代比例(CrossoverFraction),默认值为2和0.8。5)变异(Mutation)。根据所优化函数约束的不同,变异函数有所差异,一般选用默认的即可。6)交叉(Crossover)。默认使用函数crossoverscattered(分散交叉),也可从下拉菜单中选用其它排序函数。7)终止条件(Stoppingcriteria)。终止条件有以下几个,满足其中一个遗传算法就会停止:①最大进化代数(Generations),即遗传算
本文标题:MATLAB实验指导书
链接地址:https://www.777doc.com/doc-2887415 .html