Matlab实验及答案.docx
《Matlab实验及答案.docx》由会员分享,可在线阅读,更多相关《Matlab实验及答案.docx(31页珍藏版)》请在冰豆网上搜索。
![Matlab实验及答案.docx](https://file1.bdocx.com/fileroot1/2022-10/29/d0bf718e-8e1d-49eb-b942-ce26f916dea4/d0bf718e-8e1d-49eb-b942-ce26f916dea41.gif)
Matlab实验及答案
实验一、MATLAB基本操作
一、实验目的
2.学习使用图形函数计算器命令funtool及其环境。
3.学习使用help命令进行帮助
4.掌握向量与矩阵的创建以及矩阵的基本操作
5.掌握数组与矩阵的概念
二、实验内容
熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;掌握数组与矩阵的概念;学会使用help命令进行帮助;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool;
1.命令窗口的简单使用
(1)简单矩阵的输入(自由创建)
x=[135;246]
x=
135
246
(2)求[12+2×(7-4)]÷32的算术运算结果,总结算术运算符先级
[12+2*(7-4)]/3^2
ans=
2
2.有关向量、矩阵或数组的一些运算
(1)设A=15;B=20;求C=A+B与c=a+b的区别
A=15;B=20;
>>C=A+B
C=
35
>>c=a+b
?
?
?
Undefinedfunctionorvariable'a'.
(2)设A=[123;456;789],B=[987;654;321];求A*B与A.*B,分析原因?
(A*B是两个矩阵相乘,A.*B是对应元素相乘)
A=[123;456;789];
B=[987;654;321];
>>A*B
ans=
302418
846954
13811490
>>A.*B
ans=
91621
242524
21169
(3)设a=10,b=20;求i=a/b与j=a\b
a=10;
>>b=20;
>>i=a/b
i=
0.5000
>>j=a\b
j=
2
(4)设a=[1-23;45-4;5-67]
请设计出程序,分别找出小于0的矩阵元素的线性索引以及行列索引(sub2ind/ind2sub)。
(find())
并将其单下标转换成全下标。
clear,clc
a=[1-23;45-4;5-67];
b=find(a<0)
[x,y]=ind2sub(size(a),find(a<0))
Y=sort(a,1,‘descend’)
2.对矩阵按列从大到小排列(sort())
(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?
如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?
>>A=[1,2;3,4]+i*[5,6;7,8]
A=
3.50005.0000
6.50008.0000
>>A=[1,2;3,4]+i[5,6;7,8]
?
?
?
A=[1,2;3,4]+i[5,6;7,8]
Error:
Unbalancedormisusedparenthesesorbrackets.
前面那个是虚数矩阵,后面那个出错
(6)请写出完成下列计算的指令:
a=[123;342;523],求a^2=?
a.^2=?
a^2=221616
252623
262428
a.^2=
149
9164
2549
(7)有一段指令如下,请思考并说明运行结果及其原因
clear
X=[12;89;36];
X(:
)转化为列向量
>>clear
>>X=[1,2;8,9;3,6];
>>X(:
)
ans=
1
8
3
2
9
6
(8)使用help命令,明白什么是稀疏矩阵sparse(),并用采用两种方法创建下面的稀疏矩阵(其中一种方法采用help所提供的三元组方法创建稀疏矩阵
(S=SPARSE(i,j,s,m,n)))
2080
0001
0400
6000
另:
1.B=该稀疏矩阵上下反转
2.该矩阵变维,C为2*8矩阵,D为3*8矩阵,C?
D?
方法一:
clear,clc
data=[28146];
ir=[11234];
jc=[13421];
s=sparse(ir,jc,data,4,4);
full(s)
方法二:
不用三元组法
clear,clc
a=zeros(4,4);
a(1,[1,3])=[2,8];
a(2,4)=1;
a(3,2)=4;
a(4,1)=6;
a
B=flipud(a)
C=reshape(a,2,8)
(9)学会使用图形函数计算器(funtool命令),并进行下列计算:
1.求函数的符号导数
y=sin(x);
2.求下列函数的符号积分
(1)y=1/sqrt(1-x^2);
3.求两个函数之间的操作
求和
(1)sin(x)+cos(x)
乘积
(1)exp(-x)*sin(x)
商
(2)
(1)sin(x)/cos(x);
求复合函数
(1)y=exp(u)u=sin(x)
(10)总结who,whos,clc,clear命令
三、设计提示
1.初次接触Matlab应该注意函数表达式的文本式描述。
2.在使用图形函数计算器funtool时,注意观察1号和2号窗口中函数的图形。
3.help帮助命令的使用
3.向量与矩阵的创建
实验二:
数组运算及线型方程组的求解
二、实验内容
1.“:
”号的用法。
用“:
”号生成行向量a=[12345678910]、b=[531-1-3-5];用线性等分命令linspace重新生成上述的a和b向量。
另,在100和10000之间用对数等分命令logspace生成10维的向量c。
ak=logspace(2,4,10)linspace(1,10,10)linspace(5,-5,6)
2.已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b的积并微分。
>>a=[1,2,3];b=[4,5,6];polyder(a,b)
ans=
16395627
>>poly2str(ans,'x')
ans=
16x^3+39x^2+56x+27
3.生成下列矩阵,取出方框内的数组元素
a(2,2:
3)
a(2:
4,4)
a(4:
5,1:
3)
4.生成一个9×9维的魔方矩阵,提取其中心的3×3维子矩阵M,利用sum函数检验其各行和各列的和是否相等。
并且实现上述中心矩阵左旋90°或右旋90°,左右翻转,上下翻转
a=magic(9)
>>b=a(4:
6,4:
6)
b=
203142
304152
405162
>>sum(b,1)
ans=
90123156
>>sum(b,2)
ans=
93
123
153
rot90(b)
rot90(b,-1)
fliplr(b)
flipud(b)
5.已知a=[123;456;780],求其特征多项式并求其根、特征值和特征多项式
>>a=[123;456;780]
a=
123
456
780
>>poly(a)
ans=
1.0000-6.0000-72.0000-27.0000
>>poly2sym(ans)
ans=
x^3-6*x^2-72*x-/6710656
>>[dv]=eig(a)
d=
-0.2998-0.7471-0.2763
-0.70750.6582-0.3884
-0.6400-0.09310.8791
v=
12.122900
0-0.38840
00-5.7345
6.计算二重不定积分
>>symsxy
>>f=int(int(x*exp(-x*y),x),y)
或
>>x=sym('x')
x=
x
>>y=sym('y')
y=
y
>>f=int(int(x*exp(-x*y),x),y)
f=
1/y*exp(-x*y)
8.求解微分方程。
y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')
9.求其解。
>>a=[6914-115;114-7-15-6;-21-712-1;61111-9-13]
a=
6914-115
114-7-15-6
-21-712-1
61111-9-13
>>b=[68294-441103]'
b=
68
294
-441
103
>>ra=rank(a)
ra=
4
>>rb=rank([a,b])
rb=
4
%4<5
>>x1=null(sym(a))
x1=
27713/253
-11117/506
-8394/253
1
1619/506
>>a\b
ans=
0
-26.3759
-5.4126
-38.3960
-8.2392
X=K*x1+ans
实验三:
二维图形和三维图形的创建
一、实验目的
1.掌握二维图形的绘制。
2.掌握图形的标注
3.了解三维曲线和曲面图形的绘制。
二、实验内容
1.生成1×10维的随机数向量a,在同一幅图片上分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
>>x=rand(1,10)
x=
Columns1through7
0.95010.23110.60680.48600.89130.76210.4565
Columns8through10
0.01850.82140.4447
>>subplot(141);
>>plot(x)
>>subplot(142);
>>stem(x)
>>subplot(143);
>>stairs(x)
>>subplot(144);
>>bar(x)
2.绘制向量x=[130.52.52]的饼形图,并把3对应的部分分离出来。
x=[130.52.52];
>>pie(x,[01000])
3.用holdon命令在同一个窗口绘制曲线y=sin(t),y1=sin(t+0.25)
y2=sin(t+0.5),其中t=[010]。
t=0:
2*pi/100:
10;
y1=sin(t);
plot(t,y1)
holdon
y2=sin(t+0.25);
plot(t,y2)
holdon
y3=sin(t+0.5);
plot(t,y3)
4.绘制曲线x=tcos(3t)
y=tsin2t其中-π≤t≤π,步长取π/100。
要求:
要图形注解、标题、坐标轴标签,并在曲线上截取一点,将相对应的坐标值文本标注出来(ginput())。
;
t=-pi:
pi/100:
pi;
x=t.