Matlab实验指导书含参考程序.docx

上传人:b****5 文档编号:7518380 上传时间:2023-01-24 格式:DOCX 页数:20 大小:192.30KB
下载 相关 举报
Matlab实验指导书含参考程序.docx_第1页
第1页 / 共20页
Matlab实验指导书含参考程序.docx_第2页
第2页 / 共20页
Matlab实验指导书含参考程序.docx_第3页
第3页 / 共20页
Matlab实验指导书含参考程序.docx_第4页
第4页 / 共20页
Matlab实验指导书含参考程序.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Matlab实验指导书含参考程序.docx

《Matlab实验指导书含参考程序.docx》由会员分享,可在线阅读,更多相关《Matlab实验指导书含参考程序.docx(20页珍藏版)》请在冰豆网上搜索。

Matlab实验指导书含参考程序.docx

Matlab实验指导书含参考程序

实验一:

Matlab操作环境熟悉

一、实验目的

1.初步了解Matlab操作环境。

2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容

熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:

1.单函数运算操作。

Ø求下列函数的符号导数

(1)y=sin(x);

(2)y=(1+x)^3*(2-x);

Ø求下列函数的符号积分

(1)y=cos(x);

(2)y=1/(1+x^2);

(3)y=1/sqrt(1-x^2);

(4)y=(x-1)/(x+1)/(x+2);

Ø求反函数

(1)y=(x-1)/(2*x+3);

(2)y=exp(x);

(3)y=log(x+sqrt(1+x^2));

Ø代数式的化简

(1)(x+1)*(x-1)*(x-2)/(x-3)/(x-4);

(2)sin(x)^2+cos(x)^2;

(3)x+sin(x)+2*x-3*cos(x)+4*x*sin(x);

2.函数与参数的运算操作。

Ø从y=x^2通过参数的选择去观察下列函数的图形变化

(1)y1=(x+1)^2

(2)y2=(x+2)^2

(3)y3=2*x^2

(4)y4=x^2+2

(5)y5=x^4

(6)y6=x^2/2

3.两个函数之间的操作

Ø求和

(1)sin(x)+cos(x)

(2)1+x+x^2+x^3+x^4+x^5

Ø乘积

(1)exp(-x)*sin(x)

(2)sin(x)*x

Ø商

(1)sin(x)/cos(x);

(2)x/(1+x^2);

(3)1/(x-1)/(x-2);

Ø求复合函数

(1)y=exp(u)u=sin(x)

(2)y=sqrt(u)u=1+exp(x^2)

(3)y=sin(u)u=asin(x)

(4)y=sinh(u)u=-x

三、设计提示

1.初次接触Matlab应该注意函数表达式的文本式描述。

2.在使用图形函数计算器funtool时,注意观察1号和2号窗口中函数的图形。

四、实验报告要求

1.针对图形函数计算器funtool,对每一类型计算记录其中一个图形的曲线。

2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验二:

M文件和Mat文件操作

一、实验目的

1.定制自己的工作环境。

2.编写简单的M文件。

3.保存内存工作区中的变量到.mat文件。

4.学会只用Matlab帮助。

二、实验内容

1.使用format命令和File|Peferences菜单定制自己的工作环境。

2.编写如下M文件,试调整参数a的大小,观察并记录y1、y2的波形特征。

%example1.m

t=0:

pi/100:

4*pi;

a=3;

y2=exp(-t/a);

y1=y2.*sin(a*t);

plot(t,y1,'-r',t,y2,':

b',t,-y2,':

b');

3.保存内存工作区变量a、t、y1、y2到example1.mat文件;关闭Matlab,再重新启动;观察内存工作区;重新根据.mat文件恢复原来的工作区变量。

4.在命令窗口中查看exp函数的帮助;运行helpwin查看超文本格式的帮助文件,试翻译并记录下信号处理工具箱(SignalProcessingToolbox)中的函数分类(Functions--CategoricalList)。

三、设计提示

1.可以用命令语句、菜单或按钮等多种方式执行命令。

2.用于编辑M文件的文本编辑器还可以执行和调试程序。

3.不同的工具箱可能包含同名的函数,查看帮助时应注意在左侧栏选择相应的工具箱类别。

四、实验报告要求

1.对实验内容2,说明参数a的大小对y1、y2波形特征的影响。

2.翻译命令窗口中的exp函数的帮助信息。

3.运行helpwin,试翻译并记录下信号处理工具箱(SignalProcessingToolbox)中的函数分类(Functions--CategoricalList)。

4.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验三:

矩阵运算与元素群运算

一、实验目的

1.掌握数组与矩阵的创建。

2.掌握矩阵运算与数组运算。

3.掌握基本元素群运算。

4.掌握向量与矩阵的特殊处理。

二、实验内容

1.“:

”号的用法。

用“:

”号生成行向量a=[12345678910]、b=[531-1-3-5];

a=1:

1:

10

b=5:

-2:

-5

2.用线性等分命令linspace重新生成上述的a和b向量。

a=linspace(1,10,10)

b=linspace(5,-5,6)

3.在100和10000之间用对数等分命令logspace生成10维的向量c。

C=logspace(2,4,10)

4.生成范围在[0,10]、均值为5的3×5维的均匀分布随机数矩阵D。

D=10*rand(3,5)

5.利用magic函数生成5×5维的魔方矩阵,取其对角向量e,并根据向量e生成一个对角矩阵E。

(所谓魔方矩阵就是各行、各列、各对角线元素之和相等。

e=magic(5)

E=diag(e)

6.另AA是3×3维魔方矩阵,BB是由A旋转180°得到。

CC是一个复数矩阵,其实部为AA,虚部为BB。

DD是CC的转置,EE是CC的共轭。

分别计算CC和EE的模和幅角。

aa=magic(3)

bb=rot90(aa)

bb=rot90(bb)

cc=aa+bb*i

dd=conj(cc)'

ee=conj(cc)

cc=abs(cc)

ee=abs(ee)

cc=angle(cc)

ee=angle(ee)

7.f是一个首项为20,公比为0.5的10维等比数列;g是一个首项为1,公差为3的10维等差数列。

试计算向量f和g的内积s。

f=zeros(1,10);

f

(1)=20;

forn=2:

10;

f(n)=f(n-1)*0.5;

end

g=zeros(1,10);

g

(1)=1;

form=2:

10;

g(m)=g(m-1)-3;

end

s=dot(f,g)

8.生成一个9×9维的魔方矩阵,提取其中心的3×3维子矩阵M,利用sum函数检验其各行和各列的和是否相等。

a=magic(9)

m=a(4:

6,4:

6)

sum(a)

sum(a')

9.已知

,利用函数生成左上三角矩阵

t=[1,2,3,4;2,3,4,5;3,4,5,6;4,5,6,7]

t=flipud(t)

t=tril(t)

t=flipud(t)

 

三、设计提示

1.等比数列可利用首项和公比的元素群的幂乘积生成。

2.提取子矩阵,可灵活应用“:

”号或空阵[]。

3.尽量用Matlab函数生成上述矩阵或向量,不要用手工逐个输入。

四、实验报告要求

1.编写实现第二节实验内容中所使用的函数命令,并记录相应的生成结果。

2.思考题:

是否存在2×2维的魔方矩阵?

3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验四:

线性方程组的求解

一、实验目的

1.掌握恰定方程组的解法。

2.了解欠定方程组、超定方程组的解法。

3.掌握左除法求解线性方程组。

4.学会测试程序的运行时间。

二、实验内容

1.用两种方法求下列方程组的解,并比较两种方法执行的时间。

左除法

a=[7,14,-9,-2,5;3,-15,-13,-6,-4;

-11,-9,-2,5,7;5,7,14,16,-2;-2,5,12,-11,-4];b=[100,200,300,400,500]';

>>x=a\b

逆阵法

a=[7,14,-9,-2,5;3,-15,-13,-6,-4;-11,-9,-2,5,7;5,7,14,16,-2;-2,5,12,-11,-4];

>>b=[100,200,300,400,500]';

>>inv(a)*b

 

2.判定下列方程是恰定方程组、欠定方程组还是超定方程组,并求其解。

a=[6,9,14,-11,5;1,14,-7,-15,-6;-2,1,-7,12,-1;6,11,11,-9,-13];

b=[68,294,-441,103]';

x=a\b

3.用网孔电流法求如下电路的各支路电流。

a=[4,-1,0;-2,6,4;0,-1,2];

b=[2,1,1]’;

x=a\b

4.用结点电压法求如下电路的结点电压un1、un2。

a=[3,-1;-9,11];

b=[20000,0]’;

x=a\b

三、设计提示

1.在计算程序的执行时间之前,应注意用clear命令将内存变量清空。

2.求得线性方程组的解之后,代入原方程验证是否正确。

四、实验报告要求

1.编写实现第二节实验内容中所使用的函数命令,并记录相应的生成结果。

2.对于电路的求解,应列出相应的网孔方程和结点方程,并注意方向。

3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验五:

函数编写与程序设计

一、实验目的

1.掌握函数的编写规则。

2.掌握函数的调用。

3.会用Matlab程序设计实现一些工程算法问题。

二、实验内容

1.编写一个[y,y1,y2]=mwave(f1,m1,f2,m2)函数,实现以下功能,并绘出y1、y2、y在t∈[0,2π]区间500个样点的图形。

(其中调用参数2≤f1、f2≤20Hz;0.5≤m1、m2≤2)

function[y,y1,y2]=mwave(f1,m1,f2,m2)

%根据给定的频率和幅值计算标准正弦函数y1、y2及其叠加y的波形。

if(f1<2)|(f1>20)error('f1超出范围!

'),return,end

if(f2<2)|(f1>20)error('f2超出范围!

'),return,end

if(m1<0.5)|(m1>2)error('m1超出范围!

'),return,end

if(m2<0.5)|(m2>2)error('m2超出范围!

'),return,end

%---------------------------------------------------

t=0:

2*pi/(500-1):

2*pi;

y1=m1*sin(2*pi*f1*t);

y2=m2*sin(2*pi*f2*t);

y=y1+y2;

figure

subplot(311);plot(t,y1);title('y1波形');

subplot(312);plot(t,y2);title('y2波形');

subplot(313);plot(t,y);title('y=y1+y2波形');

%===================================================

2.程序设计:

相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?

达依尔回答:

“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放二粒麦子,以后每个格子的麦子数都按前一格的两倍计算。

如果陛下按此法给我64格的麦子,就感激不尽,其他什么也不要了。

”国王想:

“这还不容易!

”让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请你为国王算一下共要给达依尔多少小麦?

(1袋小麦约1.4×108粒)。

a=1;

s=0

fori=1:

64

s=s+a;

a=2*a;

end

n=s/1.4/10^8

3.程序设计:

公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。

百钱买百鸡,问鸡翁、母、雏各几何?

forx=0:

19

fory=0:

33

forz=0:

100

if(x+y+z==100)&(5*x+3*y+z/3==100)

d=[x,y,z]

end

end

end

end

三、设计提示

1.函数名和函数文件名应相同;对调用参数的取值范围要检验是否符合要求,如不符合要求,应给出出错信息(用if和error函数实现)。

2.程序设计——“百鸡问题”答案不唯一。

提示:

设x:

鸡翁数,则x的范围:

0~19;y:

鸡母数,则y的范围:

0~33;z:

鸡雏数,则z的范围:

0~100。

四、实验报告要求

1.编写实现第二节实验内容

(1)所使用的函数文件。

2.程序设计用M文件编写,并记录执行结果。

“百鸡问题”答案不唯一,要给出所有答案。

3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

实验六:

二维图形和三维图形的创建

一、实验目的

1.掌握二维图形的绘制。

2.掌握图形的标注

3.了解三维曲线和曲面图形的绘制。

二、实验内容

1.生成1×10维的随机数向量a,分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。

a=rand(1,10)

subplot(221);plot(a,'r');

title('连线图');

subplot(222);stem(a,'y');

title('脉冲图');

subplot(223);stairs(a,'b');

title('阶梯图');

subplot(224);bar(a,'g');

title('条形图');

2.在同一个图形窗口中,绘制两条曲线

;并分别在靠近相应的曲线处标注其函数表达式。

x=-5:

0.1:

5;

y1=2.^x;

y2=(1/2).^x;

plot(x,y1,'r');text(2,10,'y1=2^x');

hold;

plot(x,y2,'b');text(-3,10,'y2=(1/2)^x');

3.编写一个mcircle(r)函数,调用该函数时,根据给定的半径r,以原点为圆心画一个如图所示的红色空心圆。

(图例半径r=5)

function[y,t]=mcircle(r)

r=5

t=linspace(0,2*pi,65);

y=ones(size(t));

subplot(121),polar(t,y,'*r')

X=r*cos(t);

Y=r*sin(t);

subplot(122),plot(X,Y,'*r')

axisequal

axissquare

4.

(1)绘一个圆柱螺旋线(形似弹簧)图。

圆柱截面直径为10,高度为5,每圈上升高度为1。

如左图所示。

(2)利用

(1)的结果,对程序做少许修改,得到如右图所示图形。

t=0:

pi/180:

2*pi*5;

r1=5;

x1=r1*cos(t);

y1=r1*sin(t);

z=t/(2*pi);

subplot(121),plot3(x1,y1,z);

gridon

r2=linspace(5,0,length(t));

x2=r2.*cos(t);

y2=r2.*sin(t);

subplot(122),plot3(x2,y2,z)

gridon

三、设计提示

1.Matlab允许在一个图形中画多条曲线:

plot(x1,y1,x2,y2,……)指令绘制

等多条曲线。

Matlab自动给这些曲线以不同颜色。

标注可用text函数。

2.绘图时可以考虑极坐标和直角坐标的转换。

3.三维曲线绘图函数为plot3。

四、实验报告要求

1.编写实现第二节实验内容中所使用的函数命令,并对二-2记录相应的生成结果。

2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验七:

Matlab多项式和符号运算

一、实验目的

1.掌握Matlab多项式的运算。

2.了解符号运算。

二、实验内容

1.将多项式

化为x的降幂排列。

A=[2,-3,7,-1]

AA=poly(A)

即:

P(x)=X^4+(-5)^3+(-19)^2+29x+42

 

2.求一元高次方程的根。

P=[1,-5,-30,150,273,-1365,-820,4100,576,-1880];

R=roots(P)

3.求一元高次方程的根,并画出左边多项式函数在

区间内的曲线。

P2=[10-201];

x2=roots(P2)

n=1;

forx=-2:

0.01:

2

y(n)=sum(P2.*(x.^[(length(P2)-1):

-1:

0]));

%或者y(n)=x^4-2*x^2+1;

n=n+1;

end

x=-2:

0.01:

2;

plot(x,y)

4.求多项式

的乘积

;并求

的商和余式。

f1=[1357];f2=[8-64-2];

f=conv(f1,f2)

f11=[zeros(1,length(f)-length(f1)),f1]%补0,与f同维

[q,r]=deconv(f-f11,f2)

5.求

的符号导数。

y='x^5+tan(4*x^2)+3';

diff(y)

6.用符号运算求实验内容4中的

的表达式。

f1=sym('x^3+3*x^2+5*x+7');

f2=sym('8*x^3-6*x^2+4*x-2');

f=f1*f2

collect(f)

(f-f1)/f2

collect(ans)

三、设计提示

1.关于多项式运算的函数有poly、roots等。

2.多项式做加减运算时要注意等长度。

3.符号表达式的输入可以用字符串方式,也可以用sym函数。

四、实验报告要求

1.编写实现第二节实验内容中所使用的函数文件,并记录相应的生成结果和图形。

2.对于多项式的结果应以多项式向量和多项式表达式两种方式记录。

3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

 

实验八:

线性时不变系统的时域响应

一、实验目的

1.掌握线性时不变系统的三种描述形式——传递函数描述法、零极点增益描述法、状态空间描述法。

2.掌握三种描述形式之间的转换。

3.掌握连续和离散系统频率响应的求解。

二、实验内容(边做实验,边将生成结果和图形拷贝到Word文档中)

1.生成20个点的单位脉冲信号、单位阶跃信号,并记录下函数命令和波形。

2.生成占空比为30%的矩形波。

Jnbbnn

3.将连续系统

转化为传递函数的形式,并显示其表达式。

4.将离散系统

转化为零极点增益的描述形式,并显示其表达式。

5.分别求实验内容3和4的频率响应(对离散系统取256样点,采样频率取8000Hz)。

6.分别求实验内容3和4的单位冲激响应(对离散系统,作60样点图)。

三、设计提示

1.显示传递函数模型用tf(b,a);显示零极点增益模型用zpk(z,p,k)。

注意:

z、p为列向量。

2.连续系统频率响应用freqs函数;离散系统用freqz函数。

3.连续系统冲激响应用impulse函数;离散系统用impz函数。

四、实验报告要求

1.编写实现第二节实验内容中所使用的函数文件,并记录相应的生成结果。

2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。

五、参考答案

第3题:

k=0.5;

z=[1,-3]';

p=[-1,-2,-4]';

sys_zpk=zpk(z,p,k)

[b,a]=zp2tf(z,p,k);

sys_tf=tf(b,a)

结果:

Zero/pole/gain:

0.5(s-1)(s+3)

-----------------

(s+1)(s+2)(s+4)

Transferfunction:

0.5s^2+s-1.5

----------------------

s^3+7s^2+14s+8

第4题:

b=[352];

a=[1-1.61.3-.9.5];

systf=tf(b,a,'variable','z^-1')

[z,p,k]=tf2zp(b,a);

syszpk=zpk(z,p,k,'variable','z^-1')

结果:

Transferfunction:

3+5z^-1+2z^-2

---------------------------------------------

1-1.6z^-1+1.3z^-2-0.9z^-3+0.5z^-4

Samplingtime:

unspecified

Zero/pole/gain:

3z^-2(1+z^-1)(1+0.6667z^-1)

-------------------------------------------------------------

(1-1.685z^-1+0.8654z^-2)(1+0.08497z^-1+0.5778z^-2)

Samplingtime:

unspecified

第5题:

k=0.5;

z=[1,-3]';

p=[-1,-2,-4]';

[b,a]=zp2tf(z,p,k);

freqs(b,a)

结果:

b=[352];

a=[1-1.61.3-.9.5];

freqz(b,a,256,8000)%Fs=8000

结果:

第6题:

k=0.5;

z=[1,-3]';

p=[-1,-2,-4]';

sys3=zpk(z,p,k);

impulse(sys3)

结果:

b=[352];

a=[1-1.61.3-.9.5];

impz(b,a,60)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1