matlab实验指导书.docx
《matlab实验指导书.docx》由会员分享,可在线阅读,更多相关《matlab实验指导书.docx(19页珍藏版)》请在冰豆网上搜索。
matlab实验指导书
MATLAB实验指导书
机电工程学院
实验一熟悉MATLAB环境认识MATLAB
一、实验目的
熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。
二、实验设备与仪器
1.微机
2.matlab仿真软件
三、实验步骤
1.了解matlab的硬件和软件必备环境;
2.启动matlab;
3.熟悉标题栏,菜单栏,工具栏,元素选择窗口,状态栏,控制栏以及系统布局区;
4.学习优化建模过程。
四、实验报告要求
1.写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部分的功能;
2.优化建模过程应用举例
五、实验内容
(一)、Matlab操作界面
1.命令窗口(commandwindow)
2.命令历史窗口(commandhistory)
3.工作空间管理窗口(workspace)
4.当前路径窗口(currentdirectory)
(二)、实现下列优化建模过程
1、简单矩阵
的输入步骤。
2、矩阵的分行输入。
A=[1,2,3
4,5,6
7,8,9]
3、指令的续行输入
S=1-1/2+1/3-1/4+...
1/5-1/6+1/7-1/8
4、画出
所表示的三维曲面。
的取值范围是
。
6、复数矩阵的生成及运算
A=[1,3;2,4]-[5,8;6,9]*i
B=[1+5i,2+6i;3+8*i,4+9*i]
C=A*B
实验二MATLAB运算基础
一、实验目的及要求
1.掌握建立矩阵的方法。
2.掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验设备与仪器
1.微机
2.matlab仿真软件
三、实验原理
1.矩阵的建立方法
(1)直接输入法:
将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。
(2)利用M文件建立矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。
(3)用MATLAB函数建立矩阵,MATLAB提供了许多产生特殊矩阵的函数,可以利用他们去建立矩阵
2.常用数学函数
sin:
正弦函数
cos:
余弦函数
sqrt:
平方根函数
exp:
自然指数函数
abs:
绝对值函数
rem:
求余数或模运算
mod:
模除求余
fix:
向零方向取整
floor:
大于自变量的最大整数
round:
四舍五入到最邻近的整数
四、实验内容及步骤:
1.计算表达式的值
,
,
2.矩阵的直接建立及矩阵的运算
(1)请利用直接建立矩阵的方法,采用两种方式建立如下矩阵:
;
(2)将矩阵A第2至3行中第1,3,4列元素赋给矩阵B;
(3)将矩阵A的每个元素加30,并且将第1行和第3行进行交换。
3.
(1)建立一个
的零矩阵、单位矩阵和元素全为1的方阵。
(2)请使用直接建立矩阵的方法,并结合MATLAB中建立矩阵的函数,生成如下矩阵
。
4.当=0.2,0.4,0.6,0.8时,分别求
的值。
五、实验结果讨论
1.如何访问数组中的元素?
设一个矩阵a,访问其第i个元素则为a[i-1],其中以列为主顺序依次查询
2.如何输出显示字符型变量?
Sprintf(‘%c’,x)
实验三MATLAB矩阵分析和处理
一、实验目的
1.掌握生成特殊矩阵的方法。
2.掌握矩阵分析的方法。
4.用矩阵求逆法解线性方程组。
二、实验内容
1.设有分块矩阵
,其中E,R,O,S分别为单位矩阵、随机矩阵、零矩阵和对角矩阵,试通过数值计算验证
。
2.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵性能更好,为什么?
3.建立一个5x5矩阵,求它的行列式的值、迹、秩和范数
4.已知
,求特征值和特征向量,并分析其数学意义
5.下面是一个线性方程组
(1)求方程的解
(2)将方程右边向量第三个元素0.52改为0.53,并比较解的变化
(3)计算系数矩阵A的条件数并分析结论
6.建立A矩阵,试比较sqrtm(A)和sqrt(A),并分析他们的区别
实验四求余弦的积分并绘出图像
一、实验目的
1、了解绘图工具的使用。
二、实验要求(选作下列习题)
1.(不定积分)用int计算下列不定积分,并用diff验证
,
,
,
,
程序:
clear;symsx;
int(x.*sin(x.^2))
diff(-cos(x^2)/2)
int(1/(1+cos(x)))
diff(tan(x/2))
int(1/(exp(x)+1))
diff(x-log(exp(x)+1))
int(asin(x))
diff(x*asin(x)+(1-x^2)^(1/2))
int((sec(x))^3)
diff(log(tan(pi/4+x/2))/2+tan(x)/(2*cos(x)))
结果:
ans=
-cos(x^2)/2
ans=
x*sin(x^2)
ans=
tan(x/2)
ans=
tan(x/2)^2/2+1/2
ans=
x-log(exp(x)+1)
ans=
1-exp(x)/(exp(x)+1)
ans=
x*asin(x)+(1-x^2)^(1/2)
ans=
asin(x)
ans=
log(tan(pi/4+x/2))/2+tan(x)/(2*cos(x))
ans=
(tan(x)^2+1)/(2*cos(x))+(tan(pi/4+x/2)^2/2+1/2)/(2*tan(pi/4+x/2))+(sin(x)*tan(x))/(2*cos(x)^2)
2.(定积分)用trapz,int计算下列定积分
程序:
clear;symsxyh;h=0.01;y=sin(x)/x;x=0:
h:
1;
z=trapz(y).*h
y=x.^x;z=trapz(y).*h
y=exp(-x.^2);z=trapz(y).*h
x=0:
0.01:
2*pi;y=(exp(-x.^2)).*sin(2.*x);z=trapz(x,y)
结果:
z=
0
z=
0.7835
z=
0.7468
z=
0.5381
3.(椭圆的周长)用定积分的方法计算椭圆
的周长
程序:
symsxyt;t=0:
0.01:
2*pi;
x=3*sin(t);y=2*cos(t);
z=(x.^2)/9+(y.^2)/4-1;
p=trapz(z,t)
结果:
p=
5.9952e-01
4.(二重积分)计算积分
程序:
clear;symsxyz;
iy=int(1+x+y,y,(-sqrt(1-x^2))+1,(sqrt(1-x^2))+1);
z=int(iy,x,-1,1)
结果:
z=
2*pi
5.(广义积分)计算广义积分
程序:
clear;symsxyz;
y=int((exp(-x.^2))/(1+x^4),-inf,inf);z=vpa(y,10)
y=int((tan(x))/sqrt(x),0,1);z=vpa(y,10)
y=int(sin(x)/sqrt(1-x^2),0,1);z=vpa(y,10)
结果:
z=
1.434846558
z=
0.7968288892
z=
0.8932437408
实验五matlab求解多项式(常微分方程)
一、实验目的
1、了解MATLAB中主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。
注释:
s=dsolve(‘方程1’,‘方程2’,…,’初始条件1’,’初始条件2’…,’自变量’)
用字符串方程表示,自变量缺省值为t。
导数用D表示,2阶导数用D2表示,以此类推。
S返回解析解。
在方程组情形,s为一个符号结构。
[tout,yout]=ode45(‘yprime’,[t0,tf],y0)采用变步长四阶Runge-Kutta法和五阶Runge-Kutta-Felhberg法求数值解,yprime是用以表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0表示初始向量值。
输出向量tout表示节点(t0,t1,…,tn)T,输出矩阵yout表示数值解,每一列对应y的一个分量。
若无输出参数,则自动作出图形。
ode45是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。
ode23与ode45类似,只是精度低一些。
ode12s用来求解刚性方程组,是用格式同ode45。
可以用helpdsolve,helpode45查阅有关这些命令的详细信息.
二、实验要求(选作下列习题)
1.求下列微分方程的解析解
(1)程序:
clear;symsxy;
s=dsolve('D2y+Dy*2-3*y=exp(-3*x)','x')
s=dsolve('Dy=y^3/(y^2*x-x^2)/2','x')
s=dsolve('D3y+D2y*2+Dy','y(0)=2','Dy(0)=0','D2y(0)=-1','x')
结果:
s=
C3*exp(x)-x/(4*exp(3*x))-1/(16*exp(3*x))+C4/exp(3*x)
s=
0
x^(1/2)/(exp(wrightOmega(-2*C9-log(x)+pi*i)/2)*exp(C9+log(x)/2))
s=
1/exp(x)+x/exp(x)+1
2.求方程
的解析解和数值解,并进行比较
程序:
fun8:
functionf=fun8(x,y)
f=y-x^3+3*x^2-3*x+2
主程序:
clear;
close;x=0:
0.1:
1;
y=1+x.^3+3*x;plot(x,y)
holdon;
[x,y]=ode45('fun8',[0,1],1);plot(x,y,'ro')
实验七函数文件
一、实验目的
1、理解函数文件的概念。
2、掌握定义和调用MATLAB函数的方法。
二、实验内容(选作2题)
1、定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。
2、一个物理系统可用下列方程组来表示:
从键盘输入m1、m2和
的值,求a1、a2、N1、N2的值。
其中g取’9.8,输入
时以角度为单位。
要求:
定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。
3、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称是绝对素数。
例如13是绝对素数。
试求所有两位绝对素数。
要求:
定义一个判断素数的函数文件。
4、设
,编写一个MATLAB函数文件fx.m,使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。
5、已知
(1)当f(n)=n+10ln
时,求y的值。
(2)当
时,求y的值。
实验八,九MATLAB程序设计(循环、选择)
一、实验目的
1、掌握利用if语句实现选择结构的方法;
2、掌握利用switch语句实现多分支选择结构的方法;
3、掌握循环结构的程序书写方法。
二、实验内容
1、硅谷公司员工的工资计算方法如下:
(1)工作时数超过120小时者,超过部分加发15%;
(2)工作时数低于60小时者,扣发700元;
(3)其余按每小时84元计发。
编程按输入的工号和该号员工的工作时数,计算应发工资。
2、用switch…case语句得出各月份的季节(如3,4,5月输出为春季)。
3、计算1+3+5+…+99的值,当和大于1000的时候终止计算,要求显示终止时候的求和结果以及最后一位计算的整数值。
4、分别采用循环语句和sum语句实现
的计算。
5、编写一个函数文件,实现两个矩阵的乘积和点乘,并在命令文件中调用该函数。
三、实验要求
1、预习,写出自己设计的实验步骤;
2、按照实验室规范使用计算机;
3、做好实验记录(包括程序和结果)。
四、思考题
1、break语句和continue语句有什么区别?
2、函数文件和命令文件有何异同?
3、写出书中82页第10题的程序运行结果。
4、*和.*运算有什么区别?
5、如何产生0~20均匀分布的随机整数?
实验十采用SIMULINK的系统仿真
一、实验目的:
1、熟悉SIMULINK工作环境及特点
2、掌握线性系统仿真常用基本模块的用法
3、掌握SIMULINK的建模与仿真方法
4、子系统的创建和封装设计
二、实验基本知识:
1.了解SIMULINK模块库中各子模块基本功能
2.SIMULINK的建模与仿真方法
(1)打开模块库,找出相应的模块。
鼠标左键点击相应模块,拖拽到模型窗口中即可。
(2)创建子系统:
当模型大而复杂时,可创建子系统。
(3)设置仿真控制参数。
三、实验内容
练习
SIMULINK仿真实际应用.
1.
(1)在Simulink集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰动信号点输入单位阶跃响应信号。
并绘制相应的响应曲线。
(2)计算仿真结果的超调量、上升时间、峰值时间、稳态误差。
实验十一菜单设计
一、实验目的
1.了解图形用户界面的特点。
2.掌握菜单设计的方法。
3.掌握对话框设计的方法。
二、实验内容
设计菜单
菜单条仅有File菜单项,File下有New、Plot和Exit等3个选项。
选择New时利用Edit命令建立一个新的M文件。
选择Plot将显示下一级菜单,其中有SineWave和CosineWave两个子菜单项,且若选择了其中的SineWave子菜单项,则将打开一个新的图形窗口并显示出正弦曲线。
若选择了其中的CosineWave子菜单项,则将打开一个新的图形窗口并显示出余弦曲线。
如果选择Exit菜单项,则将关闭窗口并推出用户系统回到MATLAB命令窗口。
设计一个对话框,其中有一个编辑框和按钮,当单击按钮时,使编辑框的内容加5。