1、MATLAB基本实验指引书 漳州师范学院物电系10月目 录实验一 MATLAB环境熟悉与基本运算.2实验二MATLAB数值运算.8实验三 MATLAB语言程序设计.12实验四 MATLAB图形绘制.12实验五 MATLAB应用实例实验六 采用SIMULINK系统仿真.17实验七 控制系统频域与时域分析 .25实验一 MATLAB环境熟悉与基本运算 一、实验目: 1熟悉MATLAB开发环境2掌握矩阵、变量、表达式各种基本运算二、实验基本知识: 1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、协助信息浏览器、工作空间浏览器文献和搜索途径浏览器。2.掌握MATLAB惯用命令clc
2、 清除命令窗口中内容clear 清除工作空间中变量help 对所选函数功能、调用格式及有关函数给出阐明lookfor 查找具备某种功能函数但却不懂得该函数精确名称who查询工作空间中变量信息3.MATLAB变量与运算符变量命名规则如下: (1) 变量名可以由英语字母、数字和下划线构成(2) 变量名应以英文字母开头(3) 长度不不不大于31个(4) 区别大小写MATLAB中设立了某些特殊变量与常量,列于下表。表1 MATLAB特殊变量与常量变量名 功能阐明 变量名 功能阐明 ANS 默认变量名,以应答近来一次操作运算成果realmin 最小正实数i或j 虚数单位INF(inf) 无穷大pi 圆周
3、率NAN(nan) 不定值(0/0) eps 浮点数相对误差nargin 函数实际输入参数个数realmax 最大正实数nargout 函数实际输出参数个数 MATLAB运算符,通过下面几种表来阐明MATLAB各种惯用运算符表2 MATLAB算术运算符操作符 功能阐明 操作符 功能阐明 + 加 矩阵左除- 减. 数组左除* 矩阵乘/ 矩阵右除.* 数组乘./ 数组右除 矩阵乘方 矩阵转置. 数组乘方. 数组转置表3 MATLAB关系运算符操作符 功能阐明 = 等于= 不等于 不不大于= 不不大于等于= 不大于等于表4 MATLAB逻辑运算符逻辑运算符 逻辑运算 阐明 & And 逻辑与| Or
4、 逻辑或 Not 逻辑非Xor 逻辑异或表5 MATLAB特殊运算符号 功能阐明示例 符号 功能阐明示例 : 1:1:4;1:2:11 . ; 分隔行 . , 分隔列 () % 注释 构成向量、矩阵 ! 调用操作系统命令 构成单元数组= 用于赋值 4.MATLAB一维、二维数组寻访表6 子数组访问与赋值惯用有关指令格式指令格式 指令功能 A(r,c) 数组A中r指定行、c指定列之元素构成子数组A(r,:) 数组A中r指定行相应所有列之元素构成子数组A(:,c) 数组A中c指定列相应所有行之元素构成子数组A(:) 数组A中各列元素首尾相连构成“一维长列”子数组A(i) 一维长列子数组中第i个元素
5、A(r,c)=Sa 数组A中r指定行、c指定列之元素构成子数组赋值A(:)=D(:) 数组全元素赋值,保持A行宽、列长不变,A、D两组元素总合应相似5.MATLAB基本运算表7 两种运算指令形式和实质内涵异同表数组运算 矩阵运算 指令 含义 指令 含义 A 非共轭转置A 共轭转置A=s 把标量s赋给A每个元素s+B 标量s分别与B元素之和s-B,B-s 标量s分别与B元素之差s.*A 标量s分别与A元素之积s*A 标量s分别与A每个元素之积s./B,B.s 标量s分别被B元素除S*inv(B)B阵逆乘s A.n A每个元素自乘n次An A阵为方阵,自乘n次A.p 对A各元素分别求非整数幂Ap
6、方阵A非整数乘方A+B 相应元素相加A+B 矩阵相加A-B 相应元素相减A-B 矩阵相减A.*B 相应元素相乘A*B 内维相似矩阵相乘A./B A元素别B相应元素除A/B A右除B B.A 与上相似BA A左除B exp(A) 以自然数e为底,分别以A元素为指数,求幂expm(A)A矩阵指数函数log(A) 对A各元素求对数logm(A) A矩阵对数函数sqrt(A) 对A各元素求平方根sqrtm(A)A矩阵平方根函数 6.MATLAB惯用函数表8 原则数组生成函数指令 含义 指令 含义 diag 产生对角形数组(对高维不合用)rand 产生均匀分布随机数组eye 产生单位数组(对高维不合用)
7、 randn产生正态分布随机数组magic 产生魔方数组(对高维不合用) zeros产生全0数组ones 产生全1数组size()返回指定矩阵行数和列数表9 数组操作函数指令 含义 diag 提取对角线元素,或生成对角阵flipud以数组“水平中线”为对称轴,互换上下对称位置上数组元素fliplr 以数组“垂直中线”为对称轴,互换左右对称位置上数组元素reshape在总元素数不变前提下,变化数组“行数、列数” rot90 矩阵逆时针旋转90度det 方阵行列式值rank 矩阵秩三、实验内容 1、新建一种文献夹(自己名字命名) 2、启动MATLAB6.5,将该文献夹添加到MATLAB途径管理器中
8、。办法如下: 3、保存,关闭对话框 4、学习使用help命令,例如在命令窗口输入help eye,然后依照协助阐明,学习使用指令eye(其他不会用指令,依照此办法类推) 5、学习使用clc、clear,观测command window、command history和workspace等窗口变化成果。6、初步程序编写练习,新建M-file,保存(自己设定文献名,例如exerc1、exerc2、exerc3),学习使用MATLAB基本运算符、数组寻访指令、原则数组生成函数和数组操作函数。注意:每一次M-file修改后,都要存盘。练习A: (1) help rand,然后随机生成一种26数组,观测
9、command window、command history和workspace等窗口变化成果。(2)学习使用clc、clear,理解其功能和作用。(3)输入C=1:2:20,则C(i)表达什么?其中i=1,2,3,10。(4)输入A=7 1 5;2 5 6;3 1 5,B=1 1 1;2 2 2;3 3 3,在命令窗口中执行下列表达式,掌握其含义: A(2,3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A2 A.2 B/A B./A(5)二维数组创立和寻访,创立一种二维数组(48)A, 查询数组A第2行、第
10、3列元素,查询数组A第2行所有元素,查询数组A第6列所有元素。(6) 两种运算指令形式和实质内涵比较。设有3个二维数组A24,B24,C22,写出所有由2个数组参加合法数组运算和矩阵指令。(7) 学习使用表8列惯用函数(通过help办法) (8) 学习使用表9数组操作函数。 练习B(10)用reshape指令生成下列矩阵,并取出方框内数组元素。实验二 MATLAB数值及符号运算一、 实验目:1、理解随着矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵创立,掌握矩阵基本运算2、掌握矩阵数组运算3、掌握多项式基本运算4、会求解代数方程5、掌握创立符号表达式和矩阵办法6、掌握符号表达式微分和积分运算
11、二、 实验基本知识:1、创立矩阵办法:直接输入法;用matlab函数创立矩阵2、矩阵运算:矩阵加、减(,)运算矩阵乘(*)运算矩阵乘方inv 矩阵求逆det 行列式值eig 矩阵特性值diag 对角矩阵 矩阵转置sqrt 矩阵开方3、矩阵数组运算:数组加减(.+,.-):相应元素相加减数组乘(.*):a,b两数组必要有相似行和列,两数组相应元素相乘数组除(./,.):a./b=b.a 都是b元素被a相应元素除(a除以b)a.b=b./a 都是a元素被b相应元素除( 除以a)数组乘方(.):元素对元素幂数组点积(点乘):维数相似两个向量点乘,其成果是一种标量数组叉积:就是一种过两个相交向量交点且
12、垂直于两个向量所在平面向量数组混合积:先叉乘后点乘4、多项式运算 poly 产生特性多项式系数向量roots 求多项式根p=poly2str(c,x)(以习惯方式显示多项式)conv,convs多项式乘运算deconv多项式除运算多项式微分polyder(p):求p微分polyder(a,b):求多项式a,b乘积微分p,q=polyder(a,b):求多项式a,b商微分5、代数方程组求解1).恰定方程组解方程ax=b(a为非奇异)两种求解办法: x=inv(a)*b 采用求逆运算解方程 x=ab 采用左除运算解方程 2)超定方程组解方程 ax=b ,mn时此时不存在唯一解。 x=(a a)-1
13、 a b 求逆法 3)欠定方程组解matlab可求出两个解:用除法求解x是具备最多零元素解是具备最小长度或范数解,这个解是基于伪逆pinv求得。6、复数运算:复数实虚部、模和幅角计算real_z=real(z) image_z=imag(z)magnitude_z=abs(z)angle_z_radian=angle(z)%弧度单位angle_z_degree=angle(z)*180/pi%度数单位 7、符号矩阵创立1)用matlab函数sym创立矩阵(symbolic 缩写)命令格式:A=sym( ) 2)用字符串直接创立矩阵8、符号矩阵修改a.直接修改:可用、键找到所要修改矩阵,直接修改
14、b.指令修改:subs(A,new,old)来修改9、符号矩阵与数值矩阵转换将数值矩阵转化为符号矩阵,函数调用格式:sym(A)将符号矩阵转化为数值矩阵,函数调用格式: numeric(A)10、符号微积分与积分变换diff(f) 对缺省变量求微分diff(f,v) 对指定变量v求微分diff(f,v,n) 对指定变量v求n阶微分int(f) 对f表达式缺省变量求积分int(f,v) 对f表达式v变量求积分int(f,v,a,b) 对f表达式v变量在(a,b)区间求定积分11、符号代数方程求解solve(f) 求一种方程解solve(f1,f2,fn) 求n个方程解12、符号微分方程求解指令:
15、dsolve命令格式:dsolve(f,g): f 微分方程,可多至12个微分方程求 解;g为初始条件,默认自变量为 x,可任意指定自变量t,u等,微分方程各阶导数项以大写字母D表达 三、实验内容:1、生成一种3行3列随机矩阵,并逆时针旋转90,左右翻转,上下翻转。2、已知a=1 2 3,b=4 5 6, 求a.b和a./ b3、数组和矩阵有何不同?4、已知a=1 2 3;4 5 6;7 8 0,求其特性多项式并求其根。5、已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b积并微分。6、求解方程1)2) 3)7、用两种办法创立符号矩阵,A = a,2*b 3*a, 0 并
16、把其中a改为c。8、计算二重不定积分9、对符号方程f = ax2+bx+c 求解1)对x求解2)对a求解。10、求解微分方程。实验三 MATLAB语言程序设计一、实验目: 1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计办法 3、函数文献编写和设计 4、理解和熟悉跨空间变量传递和赋值 二、实验基本知识: 1、程序流程控制语句 for循环构造语法:for i初值:增量:终值 语句1 语句n end 阐明:1i初值:终值,则增量为1。 2初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。while 循环构造 语法:while 逻辑表达式 循环体语句
17、end 阐明:1、whiIe构造根据逻辑表达式值判断与否执行循环体语勾。若表达式值为真,执行循环体语句一次、在重复执行时,每次都要进行判断。若表达式值为假,则程序执行end之后语句。2、为了避免因逻辑上失误,而陷入死循环,建议在循环体语句恰当位置加break语句、以便程序能正常执行。(执行循环体次数不拟定;每一次执行循环体后,一定会变化while背面所跟关系式值。) 3、while循环也可以嵌套、其构造如下: while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end if-else-end分支构造if 表达式 1 语句1 else if 表达式
18、2(可选) 语句2 else(可选) 语句3 end end 阐明:1.if构造是一种条件分支语句,若满足表达式条件,则往下执行;若不满足,则跳出if构造。2else if表达式2与else为可选项,这两条语句可根据详细状况取舍。3注意:每一种if都相应一种end,即有几种if,记就应有几种end。switch-case构造语法:switch表达式case常量表达式1 语句组1 case常量表达式2 语句组2 otherwise 语句组n end 阐明:1switch背面表达式可以是任何类型,如数字、字符串等。2当表达式值与case背面常量表达式值相等时,就执行这个case背面语句组如果所有常
19、量表达式值都与这个表达式值不相等时,则执行otherwise后执行语句。程序流程控制指令break、return、pause 2、函数文献构造和编写办法 函数只能在函数体内对变量进行操作,也就是只能访问函数自身工作空间中变量。M函数文献构造(1) 函数定义行(function) (2) H1行(函数协助文本第一行) (3) 函数协助文本(4) 函数体(5) 注释函数文献编写后,保存时,其文献名必要与函数名相似。注意:函数名不要与MATLAB自身函数命令相似。三、实验内容: 练习A 1、熟悉MATLAB程序编辑与设计环境2、用for循环语句实现求1100和。3、用for循环语句实现编写一种求n阶
20、乘函数文献。4、Fibonacci数组元素满足Fibonacci 规则:且 ,现规定该数组中第一种不不大于10000元素。练习B 思考题4、已知一维数组A=2,4,5,8,10,B=4,6,9,3,4,用for循环语句实现。求和函数可用sum()。.5、运用for循环求1!+2!+3!+ +5!值。.实验四 MATLAB图形绘制 一、实验目: 1、学习MATLAB图形绘制基本办法; 2、熟悉和理解MATLAB图形绘制程序编辑基本指令; 3、熟悉掌握运用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形各种标注; 4、掌握plot、subplot指令格式和语法。二、实验基本知识: 1、plo
21、t(x,y)-绘制由x,y所拟定曲线; 2、多组变量绘图:plot(x1,y1,选项1,x2,y2,选项2,); 3、双Y轴绘图:plotyy()函数; 4、图形窗口分割; 5、图形编辑窗口使用。 三、实验内容 练习A 【1】二维曲线绘图基本指令演示。本例运作后,再实验plot(t),plot(Y),plot(Y,t) ,以观测产生图形不同。t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)plot指令基本操作演示【2】用图形表达持续调制波形Y=sin(t)sin(9t) 及其包络线。t=(0:pi/100:pi);y1=sin(t)*1,-1;
22、y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo) axis(0,pi,-1,1)【3】在一种图形窗口绘制正弦和余弦曲线,规定给图形加标题“正弦和余弦曲线”,X轴Y轴分别标注为“时间t”和“正弦、余弦”,在图形某个位置标注“sin(t)”“cos(t)”,并加图例,显示网格,坐标为正方形坐标系。【4】绘制向量x=1 3 0.5 2.5 2饼形图,并把3相应某些分离出来。【5】绘制参数方程x=t,y=sin(t),z=cos(t)在t=0 7区间三维曲线。【6】用hold on
23、命令在同一种窗口绘制曲线y=sin(t),y1=sin(t+0.25)y2=sin(t+0.5),其中t=0 10。【7】观测各种轴控制指令影响。演示采用长轴为3.25,短轴为1.15椭圆。注意:采用多子图(图6.2-4)体现时,图形形状不但受“控制指令”影响,并且受整个图面“宽高比”及“子图数目”影响。t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);subplot(2,3,1),plot(x,y),axis normal,grid on,title(Normal and Grid on) subplot(2,3,2),plot(x,y),axis equal,grid on,title(Equal) subplot(2,3,3),plot(x,y),axis square,grid on,title(Square) subplot(2,3,4),plot(x,y),axis image,box off,title(Image and Box off) subplot(2,3,5),plot(x,y),axis image fill,box off title(Image and Fill) subplot(2,3,6),plot(x,y),axis tight,box off,title(Tight)各种轴控制指令不同影响