中南大学系统仿真实验报告.docx
《中南大学系统仿真实验报告.docx》由会员分享,可在线阅读,更多相关《中南大学系统仿真实验报告.docx(32页珍藏版)》请在冰豆网上搜索。
中南大学系统仿真实验报告
实验一MATLAB中矩阵与多项式的根本运算
实验任务
1.了解MATLAB命令窗口和程序文件的调用。
2.熟悉如下MATLAB的根本运算:
①矩阵的产生、数据的输入、相关元素的显示;
②矩阵的加法、乘法、左除、右除;
③特殊矩阵:
单位矩阵、“1〞矩阵、“0〞矩阵、对角阵、随机矩阵的产生和运算;
④多项式的运算:
多项式求根、多项式之间的乘除。
根本命令训练
1、>>eye
(2)
ans=
10
01
>>eye(4)
ans=
1000
0100
0010
0001
2、>>ones
(2)
ans=
11
11
>>ones(4)
ans=
1111
1111
1111
1111
>>ones(2,2)
ans=
11
11
>>ones(2,3)
ans=
111
111
>>ones(4,3)
ans=
111
111
111
111
3、>>zeros
(2)
ans=
00
00
>>zeros(4)
ans=
0000
0000
0000
0000
>>zeros(2,2)
ans=
00
00
>>zeros(2,3)
ans=
000
000
>>zeros(3,2)
ans=
00
00
10
4、随机阵>>rand(2,3)
ans=
0.27850.95750.1576
0.54690.96490.9706
>>rand(2,3)
ans=
0.95720.80030.4218
0.48540.14190.9157
5、>>diag(5)
ans=
5
>>diag(5,5)
ans=
000005
000000
000000
000000
000000
000000
>>diag(2,3)
ans=
0002
0000
0000
0000
6、
〔inv〔A〕为求A的逆矩阵〕>>B=[531;238;111],inv(B)
B=
531
238
111
ans=
0.62500.2500-2.6250
-0.7500-0.50004.7500
0.12500.2500-1.1250
>>A=[23;44],B=[53;38],inv(A),inv(B);A\B,A/B,inv(A)*B,B*inv(A)
A=
23
44
B=
53
38
ans=
-1.00000.7500
1.0000-0.5000
ans=
-2.75003.0000
3.5000-1.0000
ans=
0.22580.2903
0.64520.2581
ans=
-2.75003.0000
3.5000-1.0000
ans=
-2.00002.2500
5.0000-1.7500
7、>>p=[1,-6,-72,-27],roots(p)
p=
1-6-72-27
ans=
12.1229
-5.7345
-0.3884
>>p=[2,3,6],roots(p)
p=
236
ans=
-0.7500+1.5612i
-0.7500-1.5612i
8、〔A为n*n的方阵〕>>A=[010;-440;-212],poly(A),B=sym(A),poly(B)
A=
010
-440
-212
ans=
1-612-8
B=
[0,1,0]
[-4,4,0]
[-2,1,2]
ans=
x^3-6*x^2+12*x-8
9,、〔conv是多项式相乘,deconv是多项式相除〕
>>u=[1246],v=[500-67],conv(u,v)
u=
1246
v=
500-67
ans=
5102024-5-10-842
>>v=[1246],u=[500-67],deconv(u,v)
v=
1246
u=
500-67
ans=
5-10
10、〔点乘是数组的运算,没有点的乘是矩阵运算〕
>>a=[25;34],b=[31;47],a.*b,a*b
a=
25
34
b=
31
47
ans=
65
1228
ans=
2637
2531
>>a=[23];b=[47];
a.*b=[821];
a*b%错误
a*b'=29;
11、〔who可以看到你用过的一些变量,whos是把该变量及所存储的大小等信息都显示出来了〕>>who
Yourvariablesare:
ABaansbpuv
>>whos
NameSizeBytesClassAttributes
A2x232double
B2x232double
a1x216double
ans1x216double
b1x216double
p1x324double
u1x540double
v1x432double
12、>>A=[253;654],disp(A),size(A),length(A)
A=
253
654
253
654
ans=
23
ans=
3
实验二MATLAB绘图命令
实验任务
熟悉MATLAB根本绘图命令,掌握如下绘图方法:
1.坐标系的选择、图形的绘制;
2.图形注解〔题目、标号、说明、分格线〕的参加;
3.图形线型、符号、颜色的选取。
根本命令训练
1、>>t=[0:
pi/360:
2*pi];
x=cos(t)+cos(t*4);
y=sin(t)+sin(t*4);
xlabel('x轴');ylabel('y轴');
plot(y,x),grid;
2、>>t=0:
0.1:
100;
x=3*t;y=4*t;z=sin(2*t);
plot3(x,y,z,'g:
')
3、>>x=linspace(-2*pi,2*pi,40);
y=sin(x);
stairs(x,y)
4、>>t=[0:
pi/360:
2*pi];
x=cos(t)+cos(t*4)+sin(t*4);
y=sin(t)+sin(t*4);
plot(y,x,'r:
');
xlabel('x轴');ylabel('y轴');
5、>>th=[0:
pi/1000:
2*pi]';
r=cos(2*th);
polar(th,r);
title('四叶草图')
6、>>th=[0:
pi/20:
2*pi];
x=exp(j*th);
plot(real(x),imag(x),'r-.');
grid;text(0,0,'中心');
7、>>x=-2:
0.01:
2;
8、y=-2:
0.01:
2;
9、[X,Y]=meshgrid(x,y);
Z=Y.*exp(-X.^2-Y.^2);
[C,h]=contour(X,Y,Z);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
8、>>x=0:
0.2:
10;
y=2*x+3;
subplot(411);plot(x,y);
grid;title('y的原函数');
subplot(412);semilogy(x,y);
grid;title('对y取对数');
subplot(413);semilogx(x,y);
grid;title('对x取对数');
subplot(414);loglog(x,y);grid;
title('对xy均取对数');
9、>>x=-3:
0.3:
3;
bar(x,exp(-x.*x),'g')
实验三MATLAB程序设计
实验任务
1.熟悉MATLAB程序设计的方法和思路;
2.掌握循环、分支语句的编写,学会使用lookfor、help命令。
程序举例
1、>>f=[1,1];
i=1;
whilef(i)+f(i+1)<1000
f(i+2)=f(i)+f(i+1);
i=i+1;
end
f,i
f=
Columns1through14
1123581321345589144233377
Columns15through16
610987
i=
15
2、>>m=3;
n=4;
fori=1:
m
forj=1:
n
a(i,j)=1/(i+j-1);
end
end
formatrat
a
a=
11/21/31/4
1/21/31/41/5
1/31/41/51/6
(分数格式形式。
用有理数逼近显示数据)
>>m=5;
n=4;
fori=1:
m
forj=1:
n
a(i,j)=1/(i+j-1);
end
end
formatrat
a
a=
11/21/31/4
1/21/31/41/5
1/31/41/51/6
1/41/51/61/7
1/51/61/71/8
3、程序中没有formatrat命令时,如果上次运行结果没有去除,输出的结果就是上次运行的结果!
但是运用clear命令清楚之前的运行结果之后就会正常运行。
4、>>x=input('请输入x的值:
');
ifx==10
y=cos(x+1)+sqrt(x*x+1);
else
y=x*sqrt(x+sqrt(x));
end
y
请输入x的值:
2
y=
2391/647
x=input('请输入x的值:
');
ifx==10
y=fprintf('不在定义域内,请重新输入:
');return
else
y=1/(x-10);
end
y
请输入x的值:
2
y=
-1/8
5、>>p=[0001302009];
fori=1:
length(p),ifp
(1)==0,p=p(2:
length(p));
end;
end;
p
p=
Columns1through5
13020
Columns6through7
09
>>p=[0001302009];p(p==0)=[];p
p=