Matlab实验指导书含参考程序文档格式.docx
- 文档编号:20630117
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:20
- 大小:192.30KB
Matlab实验指导书含参考程序文档格式.docx
《Matlab实验指导书含参考程序文档格式.docx》由会员分享,可在线阅读,更多相关《Matlab实验指导书含参考程序文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
(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,'
);
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:
g(m)=g(m-1)-3;
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)
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
逆阵法
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]’;
4.用结点电压法求如下电路的结点电压un1、un2。
a=[3,-1;
-9,11];
b=[20000,0]’;
1.在计算程序的执行时间之前,应注意用clear命令将内存变量清空。
2.求得线性方程组的解之后,代入原方程验证是否正确。
2.对于电路的求解,应列出相应的网孔方程和结点方程,并注意方向。
实验五:
函数编写与程序设计
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<
f2超出范围!
if(m1<
0.5)|(m1>
2)error('
m1超出范围!
if(m2<
0.5)|(m2>
m2超出范围!
%---------------------------------------------------
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);
y2波形'
subplot(313);
plot(t,y);
y=y1+y2波形'
%===================================================
2.程序设计:
相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?
达依尔回答:
“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放二粒麦子,以后每个格子的麦子数都按前一格的两倍计算。
如果陛下按此法给我64格的麦子,就感激不尽,其他什么也不要了。
”国王想:
“这还不容易!
”让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请你为国王算一下共要给达依尔多少小麦?
(1袋小麦约1.4×
108粒)。
a=1;
s=0
fori=1:
64
s=s+a;
a=2*a;
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
1.函数名和函数文件名应相同;
对调用参数的取值范围要检验是否符合要求,如不符合要求,应给出出错信息(用if和error函数实现)。
2.程序设计——“百鸡问题”答案不唯一。
提示:
设x:
鸡翁数,则x的范围:
0~19;
y:
鸡母数,则y的范围:
0~33;
z:
鸡雏数,则z的范围:
0~100。
1.编写实现第二节实验内容
(1)所使用的函数文件。
2.程序设计用M文件编写,并记录执行结果。
“百鸡问题”答案不唯一,要给出所有答案。
实验六:
二维图形和三维图形的创建
1.掌握二维图形的绘制。
2.掌握图形的标注
3.了解三维曲线和曲面图形的绘制。
1.生成1×
10维的随机数向量a,分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
a=rand(1,10)
subplot(221);
plot(a,'
r'
title('
连线图'
subplot(222);
stem(a,'
y'
脉冲图'
subplot(223);
stairs(a,'
阶梯图'
subplot(224);
bar(a,'
g'
条形图'
2.在同一个图形窗口中,绘制两条曲线
;
并分别在靠近相应的曲线处标注其函数表达式。
x=-5:
0.1:
5;
y1=2.^x;
y2=(1/2).^x;
plot(x,y1,'
text(2,10,'
y1=2^x'
hold;
plot(x,y2,'
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,'
axisequal
axissquare
4.
(1)绘一个圆柱螺旋线(形似弹簧)图。
圆柱截面直径为10,高度为5,每圈上升高度为1。
如左图所示。
(2)利用
(1)的结果,对程序做少许修改,得到如右图所示图形。
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)
1.Matlab允许在一个图形中画多条曲线:
plot(x1,y1,x2,y2,……)指令绘制
等多条曲线。
Matlab自动给这些曲线以不同颜色。
标注可用text函数。
2.绘图时可以考虑极坐标和直角坐标的转换。
3.三维曲线绘图函数为plot3。
1.编写实现第二节实验内容中所使用的函数命令,并对二-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;
x=-2:
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.对于多项式的结果应以多项式向量和多项式表达式两种方式记录。
实验八:
线性时不变系统的时域响应
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.编写实现第二节实验内容中所使用的函数文件,并记录相应的生成结果。
五、参考答案
第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,'
3+5z^-1+2z^-2
---------------------------------------------
1-1.6z^-1+1.3z^-2-0.9z^-3+0.5z^-4
Samplingtime:
unspecified
3z^-2(1+z^-1)(1+0.6667z^-1)
-------------------------------------------------------------
(1-1.685z^-1+0.8654z^-2)(1+0.08497z^-1+0.5778z^-2)
第5题:
freqs(b,a)
freqz(b,a,256,8000)%Fs=8000
第6题:
sys3=zpk(z,p,k);
impulse(sys3)
impz(b,a,60)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实验 指导书 参考 程序