上机实验报告完整实验代码.docx
《上机实验报告完整实验代码.docx》由会员分享,可在线阅读,更多相关《上机实验报告完整实验代码.docx(29页珍藏版)》请在冰豆网上搜索。
上机实验报告完整实验代码
《MATLAB程序设计与应用》
实验一matlab集成环境使用与运算基础
1,先求下列表达式的值,然后显示matlab工作空间的使用情况并保存全部变量。
(1)
程序:
.>>z1=2*sin(85*pi/180)/(1+exp
(2))
结果:
z1=
0.2375
(2)
程序:
>>x=[2,1+2*i;-0.45,5];
>>z2=0.5*log(x+sqrt(1+x*x))
结果:
z2=
0.7114-0.0253i0.8968+0.3658i
0.2139+0.9343i1.1541-0.0044i
(3)
提示:
利用冒号表达式生成a向量,求各点函数值时用点乘运算。
程序:
>>a=-3.0:
0.1:
30;
>>z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin((a+0.3)*pi/180)+log((0.3+a)/2)
结果:
z3=
1.0e+003*
Columns1through4
0.0003+0.0031i0.0003+0.0031i0.0003+0.0031i0.0002+0.0031i
Columns5through8
0.0002+0.0031i0.0001+0.0031i0.0001+0.0031i0.0000+0.0031i
Columns9through12
-0.0000+0.0031i-0.0001+0.0031i-0.0001+0.0031i-0.0002+0.0031i
Columns13through16
-0.0003+0.0031i-0.0003+0.0031i-0.0004+0.0031i-0.0005+0.0031i
Columns17through20
-0.0006+0.0031i-0.0007+0.0031i-0.0008+0.0031i-0.0009+0.0031i
Columns21through24
-0.0010+0.0031i-0.0012+0.0031i-0.0014+0.0031i-0.0016+0.0031i
Columns25through28
-0.0019+0.0031i-0.0023+0.0031i-0.0030+0.0031i-0.0370
Columns29through32
-0.0030-0.0023-0.0019-0.0016
Columns33through36
-0.0014-0.0012-0.0010-0.0009
Columns37through40
-0.0008-0.0007-0.0006-0.0005
Columns41through44
-0.0004-0.0003-0.0003-0.0002
Columns45through48
-0.0001-0.0001-0.00000.0000
Columns49through52
0.00010.00010.00020.0002
Columns53through56
0.00030.00030.00030.0004
Columns57through60
0.00040.00050.00050.0005
Columns61through64
0.00060.00060.00060.0007
Columns65through68
0.00070.00070.00080.0008
Columns69through72
0.00080.00080.00090.0009
Columns73through76
0.00090.00100.00100.0010
Columns77through80
0.00110.00110.00110.0011
Columns81through84
0.00120.00120.00120.0013
Columns85through88
0.00130.00130.00130.0014
Columns89through92
0.00140.00140.00150.0015
Columns93through96
0.00150.00160.00160.0016
Columns97through100
0.00170.00170.00170.0018
Columns101through104
0.00180.00180.00190.0019
Columns105through108
0.00200.00200.00200.0021
Columns109through112
0.00210.00220.00220.0023
Columns113through116
0.00230.00240.00240.0025
Columns117through120
0.00250.00260.00260.0027
Columns121through124
0.00270.00280.00290.0029
Columns125through128
0.00300.00310.00310.0032
Columns129through132
0.00330.00340.00340.0035
Columns133through136
0.00360.00370.00380.0039
Columns137through140
0.00400.00410.00420.0043
Columns141through144
0.00440.00450.00460.0047
Columns145through148
0.00490.00500.00510.0053
Columns149through152
0.00540.00560.00570.0059
Columns153through156
0.00600.00620.00640.0066
Columns157through160
0.00680.00690.00710.0074
Columns161through164
0.00760.00780.00800.0083
Columns165through168
0.00850.00880.00900.0093
Columns169through172
0.00960.00990.01020.0105
Columns173through176
0.01080.01120.01150.0119
Columns177through180
0.01230.01270.01310.0135
Columns181through184
0.01390.01440.01480.0153
Columns185through188
0.01580.01630.01680.0174
Columns189through192
0.01800.01850.01910.0198
Columns193through196
0.02040.02110.02180.0225
Columns197through200
0.02330.02410.02490.0257
Columns201through204
0.02650.02740.02840.0293
Columns205through208
0.03030.03130.03240.0335
Columns209through212
0.03460.03580.03700.0382
Columns213through216
0.03950.04090.04230.0437
Columns217through220
0.04520.04670.04830.0500
Columns221through224
0.05170.05340.05520.0571
Columns225through228
0.05910.06110.06320.0654
Columns229through232
0.06760.06990.07230.0748
Columns233through236
0.07730.08000.08270.0856
Columns237through240
0.08850.09150.09470.0979
Columns241through244
0.10130.10470.10830.1121
Columns245through248
0.11590.11990.12400.1282
Columns249through252
0.13260.13720.14190.1467
Columns253through256
0.15180.15700.16240.1679
Columns257through260
0.17370.17960.18580.1921
Columns261through264
0.19870.20550.21250.2198
Columns265through268
0.22730.23510.24310.2514
Columns269through272
0.26000.26890.27810.2876
Columns273through276
0.29740.30760.31800.3289
Columns277through280
0.34010.35170.36370.3761
Columns281through284
0.38890.40210.41580.4299
Columns285through288
0.44460.45970.47530.4915
Columns289through292
0.50820.52540.54330.5617
Columns293through296
0.58070.60040.62080.6418
Columns297through300
0.66360.68610.70930.7333
Columns301through304
0.75810.78380.81030.8377
Columns305through308
0.86600.89520.92540.9567
Columns309through312
0.98901.02231.05681.0924
Columns313through316
1.12921.16731.20661.2472
Columns317through320
1.28921.33261.37741.4237
Columns321through324
1.47151.52101.57211.6249
Columns325through328
1.67941.73571.79401.8541
Columns329through331
1.91631.98052.0468
(4)
提示:
用逻辑表达式求分段函数值。
程序:
>>t=0:
0.5:
2.5;
>>z1=(t>0&t<=1).*t.^2;
>>z2=(t>=1&t<2).*(t.^2-1);
>>z3=(t>=2&t<3).*(t.^2-2*t+1);
>>z=z1+z2+z3
z=
00.25001.00001.25001.00002.2500
2,已知
求下列表达式的值:
(1)A+6*B和A-B+I(其中I为单位矩阵)
(2)A*B和A.*B
(3)A^3和A.^3
(4)A/B及B\A
(5)[A,B]和[A([1,3],:
);B^2]
程序:
(1)
>>A=[12,34,-4;34,7,87;3,65,7];
>>B=[1,3,-1;2,0,3;3,-2,7];
>>I=eye(3);
>>D=A+6*B
结果:
D=
1852-10
467105
215349
程序:
>>D=A-B+I
结果:
D=
1231-3
32884
0671
(2)
程序:
>>D=A*B
结果:
D=
684462
309-72596
154-5241
程序:
>>D=A.*B
结果:
D=
121024
680261
9-13049
(3)
>>D=A^3
D=
3722623382448604
247370149188600766
78688454142118820
>>D=A.^3
D=
172839304-64
39304343658503
27274625343
(4)
>>D=A/B
D=
16.4000-13.60007.6000
35.8000-76.200050.2000
67.0000-134.000068.0000
>>D=B\A
D=
109.4000-131.2000322.8000
-53.000085.0000-171.0000
-61.600089.8000-186.2000
(4)
>>D=[A,B]
D=
1234-413-1
34787203
36573-27
>>D=[A([1,3],:
);B^2]
D=
1234-4
3657
451
11019
20-540
3,设有矩阵A和B
(1)求它们的乘积C;
(2)将矩阵C的右下角3*2子矩阵赋给D;
(3)察看matlab工作空间的使用情况。
程序:
(1)
>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25];
>>B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];
>>C=A*B
结果:
C=
9315077
258335237
423520397
588705557
753890717
(2)
>>D=C(3:
5,2:
3)
结果:
D=
520397
705557
890717
4,完成下列操作:
(1)求[100,999]之间能被21整除的数的个数。
提示:
先利用冒号表达式,再利用find和length函数。
(2)建立一个字符串向量,删除其中的大写字母。
提示:
利用find函数和空矩阵
程序:
(1)
>>A=100:
1:
999;
>>B=rem(A,21)==0;
>>C=find(B==1);
>>D=length(C)
结果:
D=
43
(2)
>>x=input('请输入字符串向量:
','s');
请输入字符串向量:
cToOmPpuIter
>>y=find(x>='A'&x<='Z');
>>x(y)=[];
>>x
x=
computer
实验二matlab矩阵分析与处理
1,设有分块矩阵
,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证
。
>>E=eye(3);
>>R=rand(3,2);
>>O=zeros(2,3);
>>S=diag(1:
2);
>>A=[E,R;O,S]
A=
1.0000000.95010.4860
01.000000.23110.8913
001.00000.60680.7621
0001.00000
00002.0000
>>A^2
ans=
1.0000001.90031.4579
01.000000.46232.6739
001.00001.21372.2863
0001.00000
00004.0000
2,建立一个5×5矩阵,求它的行列式的值、迹、秩和范数。
>>A=[-29,6,18;20,5,12;-8,8,5];
>>b=eig(A)
b=
-25.3169
-10.5182
16.8351
>>[v,b]=eig(A)
v=
0.71300.28030.2733
-0.6084-0.78670.8725
0.34870.55010.4050
b=
-25.316900
0-10.51820
0016.8351
3,下面是一个线性方程组:
(1)求方程的解;
(2)将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。
(1)
>>A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
>>C=[0.95;0.67;0.52];
>>B=A\C
B=
1.2000
0.6000
0.6000
>>A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];C=[0.95;0.67;0.52]
C=
0.9500
0.6700
0.5200
(2)
>>A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
>>C=[0.95;0.67;0.53];
>>B=A\C
B=
3.0000
-6.6000
6.6000
3,建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。
>>A=magic(3);
>>sqrtm(A)
ans=
2.7065+0.0601i0.0185+0.5347i1.1480-0.5948i
0.4703+0.0829i2.0288+0.7378i1.3739-0.8207i
0.6962-0.1430i1.8257-1.2725i1.3511+1.4155i
>>sqrt(A)
ans=
2.82841.00002.4495
1.73212.23612.6458
2.00003.00001.4142
区别:
sqrt是求矩阵里每个元素的平方根,并组成一个新的矩阵,而sqrtm是求矩阵的方根并组成一个新的矩阵。
实验三选择结构程序设计
1,求分段函数的值。
用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。
程序:
>>m=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
forx=m
ifx<0&x~=-3
y1=x^2+x-6;
disp(['y=',num2str(y1)])
elseifx>=0&x<5&x~=2&x~=3
y2=x^2-5*x+6;
disp(['y=',num2str(y2)])
else
y3=x^2-x-1;
disp(['y=',num2str(y3)])
end
end
y=14
y=11
y=2
y=1
y=-0.25
y=5
y=19
2,输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90分~100分为A,80分~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:
(1)分别用if和swtich语句实现;
(2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息。
(1)if语句
程序:
>>x=input('请输入一个分数:
');
请输入一个分数:
90
>>ifx>=90
y='A';
elseifx>=80
y='B';
elseifx>=70
y='C';
elseifx>=60
y='D';
elsey='E';
end
>>y
y=
A
程序:
>>x=input('请输入一个分数:
');
请输入一个分数:
120
>>ifx>100|x<0
x=input('输入错误,请重新输入成绩:
');
end
输入错误,请重新输入成绩:
80
>>ifx>=90
y='A';
elseifx>=80
y='B';
elseifx>=70
y='C';
elseifx>=60
y='D';
elsey='E';
end
>>y
y=
B
(2)
>>x=input('请输入成绩:
');
请输入成绩:
102
>>while(x>100|x<0)
x=input('输入错误,输入错误请重新输入成绩');
end
输入错误,输入错误请重新输入成绩68
>>switchfix(x/10)
case{9,10}
y='A';
case{8}
y='B';
case{7}
y='C';
case{6}
y='D';
case{0,1,2,3,4,5}
y='E';
end
>>y
y=
D
4,建立5×6矩阵,要求输出矩阵