Matlab实验指导书.docx
《Matlab实验指导书.docx》由会员分享,可在线阅读,更多相关《Matlab实验指导书.docx(20页珍藏版)》请在冰豆网上搜索。
![Matlab实验指导书.docx](https://file1.bdocx.com/fileroot1/2022-11/18/2d14fd67-7061-413f-add5-bb56cf235cca/2d14fd67-7061-413f-add5-bb56cf235cca1.gif)
Matlab实验指导书
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.程序设计:
相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?
达依尔回答:
“陛下只要在国际象棋棋盘的第一个