MATLAB实践

更新时间:2024-06-21 16:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 MATLAB环境及命令窗口的使用

一、实验目的

1.熟悉MATLAB的操作环境及基本操作方法。 2.熟悉MATLAB的通用参数设置。 3.熟悉MATLAB的搜索路径及设置方法。 4.熟悉MATLAB帮助信息的查阅方法。

二、实验内容及实验结果

1.熟悉MATLAB的开发环境,了解主菜单和工具栏的内容,工作空间窗口,命令历史窗口,当前路径窗口的功能。 2.利用菜单设置MATLAB的Command Window中字体大小,并更改输出格式。

3.在硬盘上新建一个以自己名字命名的文件夹,将当前路径修改为此文件夹。

4.在E盘根目录创建文件夹mypath,用菜单方法和path函数的方法将E:\\mypath加入到搜索路径中,指出两种方法的区别。

1

两种方式的区别:利用设置路径对话框来来修改搜索路径可以在任何MATLAB环境下有效,而用path命令设置搜索路径仅仅在当前的MATLAB环境下有效。 5.完成下列操作: (1)在MATLAB命令窗口输入以下命令:

x=0:pi/10:2*pi; y=sin(x);

(2)在工作空间窗口选择变量y,再在工作空间窗口选择绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形。

(3)利用帮助学习save、load命令的用法,将工作区中变量全部保存在mydata.mat中,清空工作区,重新载入变量

x,y

mydata1.mat

2

10.80.60.40.20-0.2-0.4-0.6-0.8-10510152025

6.计算y=1.3^3* sin(π/3)*√26,实现

(1)结果用format命令按不同格式输出。

(2)观察在进行上述计算后命令历史窗口的变化,用功能键实现回调刚才的计算语句。 (3)回调计算语句,把sin改为sn运行,观察反馈信息。若回调语句在语句号后面加“;”号,看输出有何不同。

3

4

三、实验心得

1.通过实验掌握了MATLAB的基本操作方法及参数设置。

2.了解了如何设置MATLAB中当前窗口的字体大小及输出格式。

3.了解了MATLAB的搜索路径的两种方法,即菜单设置和path函数的方法。

4.了解了如何在MATLAB中输入变量及输出的波形图,并学会如何保持变量及保存变量的途径。 5.学会里用format命令来输出不同的输出格式,并明白了“;”的作用,即不显示计算结果的命令。

5

实验二 MATLAB数值计算

一、实验目的

1.掌握MATLAB数据对象的特点以及数值的运算规则。

2.掌握MATLAB中建立矩阵的方法以及矩阵处理和分析方法。 3.掌握MATLAB中常量与变量的使用及各种表达式的书写规则。 4.熟悉MATLAB常用函数的使用以及多项式的运用。

二、实验内容及实验结果 实验内容:

1.求下列表达式的值。

(1)z1=(2sin85°)/(1+e^2)

(2) z2=(1/2)㏑(x+√(1+x)),x=[2 1+2*i]

[-0.45 5]

(3)z3=(e^0.3a-e^0.2a)/2*sin(a+0.3)+㏑((a+0.3)/2),a=-3.0,-2.9,-2.8,-2.7,.............2.8,2.9,3.0 2.创建一个由10个元素组成的等差数列,第一个元素是1,第10个元素是20. (1)计算其元素个数;

(2)取出其中第2个元素赋值给y。

(3)将数组X的前3个元素分别赋值为4,5,6。

(4)将数组X的前5个倒序后构成一个字数组赋值给z。 (5)取出X中第2到最后一个元素赋值给t。 3.已知

A= 12 34 -4 B= 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7 求下列表达式的值:

(1)A+6*B和A-B+I(其中I为单位矩阵) (2)A*B和A.*B。 (3)A^3和A.^3。 (4)A/B 和A\\B。

(5)[A B]和[A ([1,3],:);B^2]。

4.a=[-1,0.5,0],b=[-3.4,3,-6],求:a=b,a==b,a~=b,a<=0。 5.A= -5 0 1 B= 4 2.5 0

2.6 1 2 0 6 0

0 8 1 -1.2 0 1 ,计算A&B,A|B,~A。

6.求x^3+4*x-17*x-60=0的根。

7.求多项式2*x^4+4*x^2-5*x在1,2,3,4处的值,对于矩阵 [1 2 3 4]的值,以及在矩阵[1 2 3 4 ]中各点处的值。 8.求多项式G(x)=x^4-5*x^3-17*x^2+129*x-180,当x在0:1:20时多项式的值y上加上正态分布的随机行向量构成y1,对y1进行拟合,并对多项式y和y1分别进行插值,计算在5.5处的值。

实验结果:

1.

6

7

2.

8

3.

9

4.

10

5.

11

6.

7.

12

8.

13

三、实验心得

1.掌握了MATLAB的数值计算的书写规则和数据对象的特点。

2.掌握了矩阵的生成方法和赋值方法以及矩阵的基本算法和注意事项。 3.掌握了点运算的方法。

4.掌握了多项式的生成和拟合以及插值运算。

5.实验过程中遇到一些问题,比如一开始对矩阵赋值及提取数值不太理解导致实验进程有点慢,但后来了解后就顺利进行了。

14

实验三、MATLAB符号计算

一、实验目的

1.熟练掌握MATLAB符号表达式的创建。 2.熟练掌握符号表达式的代数运算。 3.掌握符号表达式的化简和替换。 4.熟练掌握符号微积分。 5.熟悉符号方程的求解。

二、实验内容及实验结果

1.根据运行结果分析下面三种表示方法有什么不同的含义? (1)f=3*x^2+5*x+2

(2)f=‵3*x^2+5*x+2′

(3)x=sym(‘x’);f=3*x^2+5*x+2

含义:第一个是变量表达式,x是变量,题中没有定义,第二个是符号表达式,第三个是定义里x 为符号常量,f就是关于x的一个表达式。 2.求矩阵A=a11 a12 a13

a21 a22 a23 的行列式的值,逆和特征值(只需写出求解表达式,无需结果) a31 a32 a33

15

3.因式分解x^4-5*x^3+5*x^2+5*x-6

4.合并(x+1)^3+(x-1)^2+5*x-6的同类项

5.求(x+1)^6的展开式

6.求f(x,y)=1/(x^3)+1/(x^2+y+1)+1/(x+y+1)+8的分子,分母

16

7.求下列极限

(1)lim ㏑(sinx)/( π-2*x)^2 x→π/2

(2)lim( (5*x^2)/(1-x^2)+2^(1/2)) x→∞

8求下列函数的导数dy/dx: (1)y=(1-√x)/(1+√x),求f′(4) (2)y=e^x*cosx,求y(4).

(3){x=㏑(1+t^2)

y=t-arctant (dy/dx=(dy/dt)/(dx/dt))

17

9.已知f= a x^2 1/x ,试用符号微分求dy/dx e^ax ㏒x sinx

10.求下列不定积分

(1)∫sin2xdx/√(1+sinx^2) (2)∫dx/√(x^2+5)

11.求下列定积分 π

18

(1)∫ √(sinx^3-sinx^5)dx 0

1

(2) ∫ e^(x^2/2)dx 0

12.用代数方程求解方程组 x1-x2+4*x3-2*x4=0 x1-x2-x3+2*x4=0

3*x1+x2+7*x3-2*x4=0 x1-3*x2-12*x3+6*x4=0

13.求微分方程的给定初值问题的解

19

(1)x^2+2*x*y-y^2+(y^2+2*x*y-x^2)dy/dx=0 y|(x=1)=1

(2)dx^2/dt^2+2*n*dx/dt+a^2*x=0 x|(t=0)=x0,dx/dt|(t=0)=Vo

三、实验心得

1.学会了MATLAB符号表达式的创建。 2.掌握了符号表达式的代数运算。 3.掌握了符号表达式的化简和替。

4.掌握了符号表达式的微积分计算以及符号方程的求解方法。

5.感觉这章的内容有点难,做起来有点吃力,不过习惯了之后觉得还行也就顺手多了。

20

实验四 MATLAB的计算可视化和GUI设计

一、实验目的

1.熟练掌握MATLAB二维曲线的绘制。 2.熟练掌握图形的修饰。 3.掌握三维图形的绘制。

4.熟练掌握各种特殊图形的绘制。

二、实验内容及实验结果

1.用polt命令绘制图形y(x)=x^2*sin(x^2-x-2)的图形,其中-2<=x<=2.步长0.01。 2.在同一坐标系中绘制函数y=1+㏑(x+2)的图形,其中,-2<=x<=2,步长0.001。

3.在同一图形窗口采用子图形的形式分别以条形图,实心图,阶梯图和火柴杆图绘制曲线y=2*e^(-0.5*x),其中,-10<=x<=10,步长0.01。

3003002002001001000-20300-10010200-10300-505102002001001000-10-505100-10-50510

21

4.已知函数z=f(x,y)=1/sqrt((1-x)^2+y^2)+1/sqrt((1+x)^2+y^2),试分别应用三维曲线图绘制命令plot3,三维网线图绘制命令mesh,三维曲面绘制命令surf在同一窗口中绘制出3个子图。其中,-2<=x<=2,步长0.1.

42021012-1-2-2-10100-1042240-2-4-4-20100-1042240-2-4-4-20

5.二阶系统的单位阶跃响应为y=1-(exp(-§t)*sin(sqrt(1-§^2)*t+a*cos§))/sqrt(1-§^2),在同一平面绘制§分别为0,0.3,0.5,0.707的单位阶跃曲线。要求:

(1)四条曲线的颜色分别为蓝,绿,红,黄,线型分别为“-----”,“.......”,“00000000”,“+++++++”; (2)添加横坐标和纵坐标轴名分别为“时间t”和”响应”,并在平面图上添加标题“二阶系统曲线”和网格; (3)在右上角添加图例(即用对应的字符串区分图形上的线),并分别在对应的响应曲线的第一个峰值处标示“zeta=0”,”zeta=0.3”,“zeta=0.5 ”,”zeta=0.707”。

二阶系统曲线21.81.61.41.2zeta=0.3zeta=0.5zeta=0.707zeta=0zeta=0zeta=0.3zeta=0.5zeta=0.707 响应y10.80.60.40.20 0246810时间t1214161820

22

三、实验心得

1.通过实验了解了MATLAB二维曲线的绘制。 2.通过实验了解了MATLAB三位曲线的绘制。

3.通过实验了解了MATLAB图形的修饰,包括,图形名称,x轴,y轴,图例等等。 4.通过实验掌握了各种特殊图形的绘制方法。

5.通过实验知道了MATLAB的计算机可视化和GUI设计的强大。

23

实验五、MATLAB程序设计

一、实验目的

(1)熟练掌握MATLAB的程序流程控制结构。 (2)熟练掌握M文件的结构。

(3)熟练掌握函数调用和参数传递。 (4)掌握内联函数的使用。

(5)掌握利用函数句柄进行数值分析。

二、实验内容及实验结果

1.求分段函数的值。

y=x^2+x-6,x<0且x≠-3

x^2-5*x+6,0<=x<5且x≠2及x≠3 x^2-x-1,其他 要求:

(1从键盘输入x的值。

(2)用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时y的值。

24

2.输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。

要求

(1)switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出错误信息。

25

3.根据pi^2/6=1/1^2+1/2^2+1/3^2+??+1/n^2,求pi的近似值。当n分别取100,1000,10000时,结果是多少? 要求:分别用循环结构和向量运算(使用sum函数)来实现。

26

4.编写一个函数名为fib的M文件,求小于自然数n的斐波那契数列各项。在命令窗口调用fib函数,求出fib(5),fib(10). Fibnacci数列定义如下: F1=1

F2=1

Fn=Fn-1+Fn-2,n>2

三、实验心得

1.通过实验了解的MATLAB的程序流程控制结构其中最常用到for…..end,while…..end,switch….end,if…..else….end。 2.通过实验掌握了M文件的结构和如何编写M文件。 3.通过实验里了如何定义函数和函数的调用。 4.通过实验了解了如何建立输出信息对话框。

5.在调用M函数文件时要注意在MATLAB命令窗口输入命令应该是函数名(输入变量)。

的是27

实验六 Simulink仿真环境

一、实验目的

1.熟悉Simulink的模型窗口。

2.熟练掌握Simulink模型的创建。

3.熟练掌握连续系统和离散系统的模型分析。 4.掌握子系统和封装。

二、实验内容和结果

1.使用Simulink模型窗口创建模型.

使用阶跃信号为输入信号,经过传递函数为1/(0.5s+1)的一阶系统. (1)创建模块,添加信号线,设置模块和信号线参数

(2)仿真

28

(3)封装子系统传递函数1/(0.5s+1),从对话框输入T

2.使用Simulink模型窗口创建状态方程模型

已经系统状态方程为Van der pol方程:y1=y1(1-y2^2)-y2,y2=y1,其中y1(0)=0.25,y2(0)=0.25 (1)连线图

29

(2)仿真

(3)使用XYGraph观察y1,y2构成的相轨迹

3.触发子系统.

建立1个用触发子系统控制正弦信号输出阶梯波形的模型。

30

4.试建立信号合成模型,观测方波,三角波,锯齿波信号的波形。其中,Um=1.

(1)u=4Um/pi*[sin(wt)+(1/3)sin(3wt)+(1/5)sin(5wt)+(1/7)sin(7wt)+(1/9)sin(9wt)]

(2)u=8Um/(pi^2)*[sin(wt)-(1/9)sin(3wt)+(1/25)sin(5wt)-(1/49)sin(7wt)+(1/81)sin(9wt)]

31

(3)u=Um[1/2-(1/pi)sin(wt)-(1/2pi)sin(2wt)-1/(3pi)sin(3wt)-1/(5pi)sin(5wt)]

32

三、实验心得

1.通过实验了解了Simulink的模型窗口。 2.通过实验掌握了Simulink模型的创建。

3.通过实验掌握了Simulink模型功能的基本操作包括模块的移动,复制,删除,转向,改变大小,模块命名,颜色设定,参数设定,属性设定,模块输入输出等 4.通过实验了解了连续系统和离散系统的模型分析。 5.通过实验掌握了子系统的创建和触发子系统的创建。 6.掌握了Simulink的仿真方法。

33

实验七、MATLAB在电路中的应用

一、实验目的

1.熟悉连续时间系统的单位冲激响应,阶跃响应的意义及求解方法。 2.熟悉连续(离散)时间系统在任意信号激励下响应的求解方法。 3.熟悉应用MATLAB实现求解响应的方法。

二、实验内容及实验结果

1.已知描述系统的微分方程和激励信号e(t)分别如下,使用解析方法求系统的单位冲激响应h(t)和零状态响应r(t),并用MATLAB绘出系统单位冲激响应,阶跃响应和系统零状态响应的波形,验证结果是否相同。 ①y’’(t)+4y’(t)+4y(t)=f’(t)+3f(t);f(t)=exp(-t)ε(t)

冲激响应1edutlip0.5mA000.511.522.533.54Time (sec)阶跃响应1edutlip0.5mA000.511.522.533.54Time (sec)零状态响应1edutlip0.5mA000.511.522.533.544.55Time (sec)

②y’’(t)+2y’(t)+26y(t)=f’(t);f(t)=ε(t)

34

冲激响应0.2Amplitude0-0.200.511.52Time (sec)2.533.54阶跃响应0.1Amplitude0.05000.511.52Time (sec)2.533.54零状态响应1Amplitude0.5000.511.522.5Time (sec)33.544.55

2.请用MATLAB分别求出下列差分方程所描述的离散系统,在0~20市静安范围内的单位函数响应,阶跃响应和系统零状态响应的数值解,并求出其波形。 ①y(k)+2y(k-1)+y(k-2)=f(k);f(k)=1/4ε(t)

单位响应40 Amplitude200-200124681012n (samples)阶跃响应14161820Amplitude0.5002468101214161820Time (sec)零状态响应105002468101214161820

35

②y(k+2)-0.7y(k+1)+0.1y(k)=7f(k+2)-2f(k+1);f(k)= ε(t)

单位响应10edutilp5mA 0024681012141618205n (samples)冲激响应4x 10edutlip2mA002468101214161820零状Tim态e (sec)响应400200002468101214161820

三、实验心得

1.通过实验了解了连续时间系统的单位冲激响应,阶跃响应和零状态响应的意义和求解方法。 2.通过实验了解了离散时间系统的单位冲激响应,阶跃响应和零状态响应的求解方法。

3.了解了用MATLAB求解系统响应的方法。

4.知道了冲激响应的调用函数是impluse(),阶跃响应的调用函数是step(),零状态响应调用函数是Isim().

36

实验八、MATLAB在信号与系统的应用

----连续时间信号的频谱分析

一、实验目的

1.熟悉傅里叶变换的定义与性质。 2.熟悉常见信号的傅里叶变换。

3.了解傅里叶变换的MATLAB实现方法。

二、实验内容及实验结果

1.编成实现求下列信号的幅度频谱。

(1)求出f1(t)=ε(2t+1)-ε(2t-1)的频谱函数F1(jw),请将它与上面门宽为2的门函数f(t)=ε(t+1)-ε(t-1)的频谱进行比较,观察两者的特点,说明两者的关系。 >> syms t w

>> Gt=sym('Heaviside(t+1)-Heaviside(t-1)'); >> Fw=simplify(fourier(Gt,t,w));

>> subplot(211),ezplot(Gt,[-2 2]);grid;

>> subplot(212),ezplot(Fw,[-10*pi 10*pi]);grid; >> axis([-10*pi 10*pi 0 2.2])

Heaviside(2 t+1)-Heaviside(2 t-1)10.50-2-1.5-1-0.500.5t2/w sin(1/2 w)11.5221.510.50-30-20-100w102030

37

Heaviside(t+1)-Heaviside(t-1)10.50-2-1.5-1-0.500.511.52t2/w sin(w)21.510.50-30-20-100102030w(2)三角脉冲f2(t)={1-|t| |t|<=1

{0 |t|>1 syms t w

>> Gt=sym('(1-abs(x))*(Heaviside(t+1)-Heaviside(t-1))'); >> Fw=fourier(Gt,t,w);

>> subplot(211),ezplot(Gt,[-2 2])

>> subplot(212),ezplot(Fw,[-10*pi 10*pi])

(1-abs(x)) (Heaviside(t+1)-Heaviside(t-1)) = 021x0-1-2-2-1.5-1-0.500.511.52t2/w sin(w) (1-abs(x)) = 020x0-20-30-20-100102030w(3)单边指数信号f3(t)=exp(-t)ε(t) >> syms t w

>> Gt=sym('exp(-t)*Heaviside(t)') Gt =

exp(-t)*Heaviside(t)

>> Fw=simplify(fourier(Gt,t,w))

38

Fw =

1/(1+i*w)

(4)高斯信号f4(t)=exp(-t^2) >> syms t w

>> Gt=sym('exp(-1*t^2)') Gt = exp(-1*t^2)

>> Fw=fourier(Gt,t,w) Fw =

pi^(1/2)*exp(-1/4*w^2)

2.利用ifourier()函数求下列频谱函数的傅里叶反变换。 (1)F(jw)=-j(2w/(16+w^2)) (2)F(jw)=((jw)^2+5jw-8)/((jw)^2+6jw+5)

三、实验心得

1.通过实验了解了傅里叶变换的定义及性质。 2.通过实验了解了常见的傅里叶变换。 3.通过实验了解了傅里叶变换的方法。

4.通过实验知道了在MATLAB里实现傅里叶变换的函数为fourier(f),傅里叶反变换为ifourier(f)。

39

《MATLAB实践》实验报告

学院:电子信息学院专业:电子信息工程学号:

姓名:沈丽沙

0940302104

40

本文来源:https://www.bwwdw.com/article/eoi3.html

Top