1
实验一:Matlab操作环境熟悉
一、实验目的
1.初步了解Matlab操作环境。
2.学习使用图形函数计算器命令funtool及其环境。
二、实验内容
熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:
funtool (回车),出现三个窗口:
Figure No.1、Figure No.2为函数曲线视窗, Figure No.3为运算控制器。 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);
在3号窗口的第一排按键是单函数运算操作键 df/dx ------求函数f 对x的符号导数 int f ------求函数对x的符号积分 simple f ------对函数作尽可能的化简 num f ------取函数的分子表达式 den f ------取函数的分母表达式 1/f ------求函数的倒数1/f
finv ------f -1 求函数的反函数,即g(f(x))=x 2.函数与参数的运算操作。
? 从y=x^2通过参数的选择去观察下列函数的图形变化
(1) y1=(x+1)^2
《Matlab语言及其在电子信息科学中的应用》实验指导书
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号窗口的第二排按键是函数与参数的运算操作键 f+a -------求函数与a的和 f-a -------求函数与a的差 f*a -------求函数与a的积 f/a -------求函数除与a的商
f^a -------求函数以a为指数的值
f(x+a) -------作自变量的变换,以x+a代替x f(x*a) -------作自变量的变换,以a*x代替x
其中a的默认值为1/2,可以在控制栏中去修改参数a的数值。 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
在3号窗口的第三排按键是函数与函数的运算操作键 f+g ------计算f(x)+g(x),并将结果显现在1号窗口中 f-g ------计算f(x)-g(x) ,并将结果显现在1号窗口中 f*g ------计算f(x)*g(x) ,并将结果显现在1号窗口中 f/g ------计算f(x)/g(x) ,并将结果显现在1号窗口中
f(g)------求复合函数f(g(x)) ,并将结果显现在1号窗口中 g=f ------将f(x)赋给g ,并将结果显现在2号窗口中 swap ------交换1号和2号视窗的显示
三、设计提示
1.初次接触Matlab应该注意函数表达式的文本式描述。
2.在使用图形函数计算器funtool时,注意观察1号和2号窗口中函数的图形。
四、实验报告要求
《Matlab语言及其在电子信息科学中的应用》实验指导书
3
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查看超文本格式的帮助文件,试翻译并记录下信号处理工具箱(Signal Processing Toolbox)中的函数分类(Functions -- Categorical List)。
三、设计提示
1.可以用命令语句、菜单或按钮等多种方式执行命令。 2.用于编辑M文件的文本编辑器还可以执行和调试程序。
3.不同的工具箱可能包含同名的函数,查看帮助时应注意在左侧栏选择相应的工具箱类别。
四、实验报告要求
1.对实验内容2,说明参数a的大小对y1、y2波形特征的影响。 2.翻译命令窗口中的exp函数的帮助信息。
3.运行helpwin,试翻译并记录下信号处理工具箱(Signal Processing Toolbox)中的函数分类(Functions -- Categorical List)。
4.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。
《Matlab语言及其在电子信息科学中的应用》实验指导书
4
实验三:矩阵运算与元素群运算
一、实验目的
1.掌握数组与矩阵的创建。 2.掌握矩阵运算与数组运算。 3.掌握基本元素群运算。
4.掌握向量与矩阵的特殊处理。
二、实验内容
1.“:”号的用法。用“:”号生成行向量a=[1 2 3 4 5 6 7 8 9 10]、b=[5 3 1 -1 -3 -5]; a=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。(所谓魔方矩阵就是各行、各列、各对角线元素之和相等。)a=magic(5) e=diag(a) 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,2) CC=AA+j*BB DD=conj(CC') EE=conj(CC) abs(CC) angle(CC) abs(EE) angle(EE)
7.f是一个首项为20,公比为0.5的10维等比数列;g是一个首项为1,公差为3的10维等差数列。试计算向量f和g的内积s。f=20*0.5.^(0:9) g=(1:3:28) s=dot(f,g)
8.生成一个9×9维的魔方矩阵,提取其中心的3×3维子矩阵M,利用sum函数检验其各行和各列的和是否相等。
A=magic(9) M=A(4:6,4:6) sum(A) sum(conj(A')) conj(A')为A的转置
?1234??1234??2345??2340??,利用函数生成左上三角矩阵T1???。 9.已知T???3456??3400?????45674000????T=[1:4;2:5;3:6;4:7] T0=fliplr(T) T01=triu(T0) T1=fliplr(T01)
fliplr(A) 矩阵A左右翻转 flipud(A) 矩阵A上下翻转
v=diag(A) 提取A的对角线上的元素构造一个列向量v
M=diag(v) 用向量v的元素作对角元素,构造一个对角矩阵M L=tril(A) 取矩阵A的左下三角部分(基于主对角线),其它元素为零 U=triu(A) 取矩阵A的右上三角部分(基于主对角线),其它元素为零
《Matlab语言及其在电子信息科学中的应用》实验指导书
5
rot90(A) 矩阵A逆时针旋转90°
三、设计提示
1.等比数列可利用首项和公比的元素群的幂乘积生成。 2.提取子矩阵,可灵活应用“:”号或空阵[ ]。
3.尽量用Matlab函数生成上述矩阵或向量,不要用手工逐个输入。
四、实验报告要求
1.编写实现第二节实验内容中所使用的函数命令,并记录相应的生成结果。 2.思考题:是否存在2×2维的魔方矩阵?。
3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。
实验四:线性方程组的求解
一、实验目的
1.掌握恰定方程组的解法。
2.了解欠定方程组、超定方程组的解法。 3.掌握左除法求解线性方程组。 4.学会测试程序的运行时间。
二、实验内容
1.用两种方法求下列方程组的解,并比较两种方法执行的时间。
?7x1 ?14x2?9x3?2x4?5x5?3x ?15x?13x?6x?4x12345????11x1 ?9x2?2x3?5x4?7x5?5x ?7x?14x?16x?2x2345?1???2x1 ?5x2?12x3?11x4?4x5?100?200?300?400?500
方法一:逆阵法
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=inv(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]’; x=A\\b
2.判定下列方程是恰定方程组、欠定方程组还是超定方程组,并求其解。
《Matlab语言及其在电子信息科学中的应用》实验指导书