《MATLAB程序设计与应用 .doc》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用 .doc(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 实验一 MATLAB运算基础 第二题:已知 A= B=求下列问题:1) A+6*B和A-B+I2) A*B和A.*B3) A3 A.34) A/B BA5) A,B A(1,3),:B.2解: A=12 34 -4;34 7 87;3 65 7; B=1 3 -1;2 0 3;3 -2 7; I=1 0 0;0 1 0;0 0 1; (1) A+6*Bans = 18 52 -10 46 7 105 21 53 49 A-B+Ians = 12 31 -3 32 8 84 0 67 1(2) A*Bans = 68 44 62 309 -72 596 154 -5 241 A.*Bans =
2、 12 102 4 68 0 261 9 -130 49(3) A3ans = 37226 233824 48604 247370 149188 600766 78688 454142 118820 A.3ans = 1728 39304 -64 39304 343 658503 27 274625 343(4) A/Bans = 16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000 BAans = 109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.
3、0000 -61.6000 89.8000 -186.2000(5) A,Bans = 12 34 -4 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7 A(1,3,:);B2ans = 12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 40第三题:设有矩阵A和B A= B=1) 求他们的乘积C2) 将矩阵C的右下角3*2子矩阵赋给D3) 查看matlab工作空间的使用情况解: 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
4、 23 -4;9 7 0;4 13 11;(1) C=A*BC = 93 150 77 258 335 237 423 520 397 588 705 557 753 890 717(2) D=C(3:5,2:3)D = 520 397 705 557 890 717第四题: 完成下列操作:1) 求【100,999】之间能被21的数的个数 2)建立一个字符串向量,删除其中的大写字母解:(1) A=100:999; B=rem(A,21); C=length(find(B=0)C =43(2) A=lsdhKSDLKklsdkl; k=find(A=A&A A(k)=A =Lsdhklsdkl
5、实验二 MATLAB矩阵分析与处理 第三题: 建立一个55矩阵,求它的行列式的值,迹,秩,和范数。解: A=1 8 9 4 7;45 89 26 17 0;95 85 23 13 6;75 65 70 54 63;57 26 19 11 2; H=det(A)H = Trace=trace(A)Trace = 169 Rank=rank(A)Rank = 5 Norm=norm(A)Norm = 218.5530第四题: 已知 A=求A的特征值及特征向量,并分析其数学意义。解: A=-29 6 18;20 5 12;-8 8 5; V,D=eig(A)V = 0.7130 0.2803 0.2
6、733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351第五题:下面是一个线性方程组: (1) 求方程的解。(2) 将方程右边向量元素改为0.53,再求解,并比较的变化和解的相对变化。(3) 计算系数矩阵A的条件数并分析结论。解:(1) A=1/2 1/3 1/4;1/3 1/4 1/5;1/4 1/5 1/6; b=0.95,0.67,0.52; x=inv(A)*bx = 1.2000 0.60000.6000 (2) B=0.95,0.67,0.53; x=inv(A)
7、*B x = 3.0000 -6.60006.6000 (3) cond(A)ans = 1.3533e+003 实验三 选择程序结构设计 第一题:求分段函数的值 Y=用if语句实现,分别输入x=-5.0,3.0,1.0,2.5,3.0,5.0时的y值解: x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0; y=; for x0=x if x0=0&x0 xx = -5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 yy = 14.0000 11.0000 2.0000 1.0000 -0.2500 5.0000 19.0000第
8、二题: 输入一个百分制的成绩,要求输出成绩等级A B C D E。其中9080为A,8089为B,7079为C,6069为D 60以下为E要求1) 分别写入if语句和switch语句实现2) 输入百分制成绩要判断该成绩的合理性,对不合理的成绩应输出出错的信息 解: x=input(请输入一个百分制成绩:); 请输入一个百分制成绩: if x100|x0 disp(您输入的成绩不是百分制成绩,请重新输入。); else if x=90 disp(A); elseif x=80 disp(B); elseif x=70 disp(C); elseif x60 disp(D); else disp(
9、E); end end 第三题: 硅谷公司员工的工资计算方法为1) 工作时间超过120小时者,超过的部分加15%2) 工作时数低于60小时的,扣发700元3) 其余按每小时84元 解: n=input(请输入员工工号:);请输入员工工号: h=input(该员工工作时数是:);该员工工作时数是: if h120 x=(h-120)*84*(1+0.15)+120*84; elseif h a=fix(10+(99-10)*rand(1,2) x=a(1); y=a(2); t=input(请输入运算符号:,s); if t=+ z=x+y; elseif t=- z=x-y; elseif t
10、=* z=x*y; elseif t=/ z=x/y; end disp(num2str(x),t,num2str(y),=,num2str(z)a = 81 22请输入运算符号:第五题:建立5*6矩阵,要求输出第n行元素。当n超过矩阵的行数时,自动转入输出矩阵最后一行的元素,并给出出错信息。解: a=rand(5,6); n=input(请输入您要输出矩阵的第几行:);请输入您要输出矩阵的第几行: if n5 disp(超出了矩阵的行数,矩阵的最后一行为:) a(5,:) else disp(矩阵的第,num2str(n),行为:) a(n,:) end 矩阵的第行为:ans = Empty
11、 matrix: 0-by-6 实验四 循环结构程序设计 第一题: 根据公式,求的近似值。当n分别取100,1000,10000时,结果是多少?(要求是:分别用循环结构和向量运算(使用sum函数)来实现。)解: s=0; n=100; for i=1:n s=s+1/i/i; end PI=sqrt(6*s) pi PI =3.1321 s=0; n=1000; for i=1:n s=s+1/i/i; end PI=sqrt(6*s) pi PI =3.1406 s=0; n=10000; for i=1:n s=s+1/i/i; end PI=sqrt(6*s) pi PI =3.1415
12、第二题:根据,求:(1) y y=0; n=1; while(y a=input(a=?);a=? b=input(b=?); b=? Xn=1; Xn1=a/(b+Xn); n=0; while abs(Xn1-Xn)1e-5 Xn=Xn1; Xn1=a/(b+Xn); n=n+1; if n=500 break; end end n Xn1 r1=(-b+sqrt(b*b+4*a)/2 r2=(-b-sqrt(b*b+4*a)/2n = 0Xn1 = r1 = r2 = 第四题:已知: 求-中:(1) 最大值,最小值,各数之和。(2) 正数,零,负数的个数。解:(1) for i=1:10
13、0if i=1f(i)=1;elseif i=2 f(i)=0; elseif i=3 f(i)=1; else f(i)=f(i-1)-2*f(i-2)+f(i-3); end end max(f)ans = 4.3776e+011 min(f)ans = -8.9941e+011 sum(f)ans = -7.4275e+011 (2) length(find(f0) ans = 49 length(find(f=0)ans = 2 length(find(f s=0; n=0; for i=2:49b=i*(i+1)-1;m=fix(sqrt(b);for j=2:mif rem(b,j
14、)=0 break end end if j=m n=n+1; s=s+b; end end n s n = 28s = 21066 实验六 高层绘图操作 第二题: 已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作1) 在同一坐标系中的不同颜色和线型绘制三条曲线2) 以子图像绘制三条曲线 3)分别用条形图,阶梯图,杆图和填充图绘制三条曲线解:(1) x=linspace(-2*pi,2*pi,100); y1=x.2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,b-,x,y2,r:,x,y3,y-); text(4,16,leftarrow y1=
15、x2); text(6*pi/4,-1,downarrow y2=cos(2*x); text(-1.5*pi,-2.25*pi*pi,uparrow y3=y1*y2); (2): x=linspace(-2*pi,2*pi,100); y1=x.2; y2=cos(2*x); y3=y1.*y2; subplot(1,3,1); plot(x,y1); title(y1=x2); subplot(1,3,2); plot(x,y2); title(y2=cos(2*x); subplot(1,3,3); plot(x,y3); title(y3=x2*cos(2*x); (3) x=lin
16、space(-2*pi,2*pi,20); y1=x.2; subplot(2,2,1); bar(x,y1); title(y1=x2的条形图); subplot(2,2,2); stairs(x,y1); title(y1=x2的阶梯图); subplot(2,2,3); stem(x,y1); title(y1=x2的杆图); subplot(2,2,4); fill(x,y1,r); title(y1=x2的填充图);(2) x=linspace(-2*pi,2*pi,20);y2=cos(2*x);subplot(2,2,1);bar(x,y2);title(y2=cos(2*x)的
17、条形图);subplot(2,2,2);stairs(x,y2);title(y2=cos(2*x)的阶梯图);subplot(2,2,3);stem(x,y2);title(y2=cos(2*x)的杆图);subplot(2,2,4);fill(x,y2,r);title(y2=cos(2*x)的填充图);(3) x=linspace(-2*pi,2*pi,20);y1=x.2;y2=cos(2*x);y3=y1.*y2;subplot(2,2,1);%分区bar(x,y3);title(y3=y1.*y2;的条形图);%设置标题subplot(2,2,2);stairs(x,y3);tit
18、le(y3=y1.*y2;的阶梯图);subplot(2,2,3);stem(x,y3);title(y3=y1.*y2;的杆图);subplot(2,2,4);fill(x,y3,r);%如果少了r则会出错title(y3=y1.*y2;的填充图); 第三题:已知 Y=在-5x5区间绘制曲线。解: x=-5:0.01:5; y=; for x0=x if x0 第五题: 绘制函数的曲面图形和等高线。 Z=cosxcosy 其中x的21个值均匀分布在【-5,5】范围,y的31的值巨晕分布在【0,10】,要求用subplot(2,1,1)和subpolt(2,1,1)将曲面图画在一个窗口上。解:
19、 x=linspace(-5,5,21); y=linspace(0,10,31); x,y=meshgrid(x,y); z=cos(x).*cos(y).*exp(-sqrt(x.2+y.2)/4); subplot(2,1,1); surf(x,y,z); subplot(2,1,2); contour3(x,y,z,50); 实验七 低层绘图操作 第一题: 建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且按下列鼠标器的左键之后显示出left botton pressed 字样解: h=figure(MenuBar,figure,color,r,WindowButt
20、onDownFcn,disp(Left Button Pressed)h = 1Left Button Pressed第二题:先利用默认属性绘制曲线y=x2 *e2x,然后通过图形句柄操作改变曲线的颜色,线性和线宽,并利用文字对象添加文字标注。解: x=-2:0.01:2; y=x.2.*exp(2*x); h=line(x,y); set(h,color,r,linestyle,:,linewidth,2) text(1,exp(2),y=x2*exp(2*x) 实验八 数据处理与多项式运算 第一题: 利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性
21、质:(1) 均值和标准方差。(2) 最大元素和最小元素。(3) 大于0.5的随机数个数占总数的百分比。解:(1) A=rand(1,30000); b=mean(A)b = 0.4988 std(A,0,2)ans =0.2890 (2) max(A)ans = 1.0000 min(A)ans = 4.8345e-005(3) n=0; for i=1:30000if A(i)0.5 n=n+1; end end p=n/30000p =0.5006 第二题: 将100个学生的5门功课的成绩存入矩阵P中,进行如下处理:(1) 分别求每门课的最高分,最低分,以及相应学生序号。(2) 分别求每门
22、课的平均分和标准方差。(3) 5门课总分的最高分,最低分,以及相应的学生序号。(4) 将5门课总分按照从大到小的顺序存入zcj中,相应的学生序号存入xsxh。提示:上机调试时,为避免学生输入成绩的麻烦,可用取值范围在45,95之间的随机矩阵来表示学生成绩。解:(1) A=45+51*rand(100,5); Y,U=max(A) Y = 95.9985 95.9656 95.5020 95.7032 95.5696U = 29 66 55 47 69 a,b=min(A)a = 45.2423 45.8828 45.0092 45.2530 45.6793b =36 85 2 67 48(2)
23、 m=mean(A) s=std(A) m = 70.9171 69.7859 73.5350 72.8288 71.6800s = 15.1378 14.1296 15.0116 15.1622 14.8254 (3) sum(A,2) Y,U=max(ans) a,b=min(ans)ans = 310.9073 300.1903 381.2853 399.3692 367.1891 360.3795 353.3803 302.8869 399.8438 427.2878 336.4110 358.9261 351.2553 331.9469 413.0334 344.4165 361.9
24、468 337.9836 340.1552 382.3467 337.6998 329.6321 290.0841 335.4717 413.6694 387.8507 348.4086 320.4340 418.2465 416.0586 371.3836 356.8309 384.2258 317.6676 351.3684 342.2732 339.9799 393.7629 401.0900 387.0595 354.1276 398.4044 369.0955 368.0804 358.5997 350.1610 384.3793 340.3847 270.1099 351.2449
25、 390.4362 355.4126 343.7438 348.7042 429.4294 348.9054 389.0234 376.0627 346.3973 338.2912 366.0568 343.0276 358.4005 335.2967 275.2407 381.5512 373.2066 362.1673 382.3756 388.9117 401.5248 347.8608 360.8734 362.0857 394.7853 368.3532 390.2871 377.0796 396.6192 380.7487 374.4978 372.7407 370.7008 41
26、0.8179 279.0636 333.6823 293.9671 359.9178 400.2025 274.0383 404.8475 354.2595 334.9726 364.8144 389.8509 315.2819 280.7866 358.9722 316.9236 322.5536Y = 429.4294U = 55a = 270.1099b =49(4) zcj,xsxh=sort(ans)zcj = 270.1099 274.0383 275.2407 279.0636 280.7866 290.0841 293.9671 300.1903 302.8869 310.90
27、73 315.2819 316.9236 317.6676 320.4340 322.5536 329.6321 331.9469 333.6823 334.9726 335.2967 335.4717 336.4110 337.6998 337.9836 338.2912 339.9799 340.1552 340.3847 342.2732 343.0276 343.7438 344.4165 346.3973 347.8608 348.4086 348.7042 348.9054 350.1610 351.2449 351.2553 351.3684 353.3803 354.1276
28、354.2595 355.4126 356.8309 358.4005 358.5997 358.9261 358.9722 359.9178 360.3795 360.8734 361.9468 362.0857 362.1673 364.8144 366.0568 367.1891 368.0804 368.3532 369.0955 370.7008 371.3836 372.7407 373.2066 374.4978 376.0627 377.0796 380.7487 381.2853 381.5512 382.3467 382.3756 384.2258 384.3793 387
29、.0595 387.8507 388.9117 389.0234 389.8509 390.2871 390.4362 393.7629 394.7853 396.6192 398.4044 399.3692 399.8438 400.2025 401.0900 401.5248 404.8475 410.8179 413.0334 413.6694 416.0586 418.2465 427.2878 429.4294xsxh = 49 90 65 85 97 23 87 2 8 1 96 99 34 28 100 22 14 86 93 64 24 11 21 18 60 37 19 48
30、 36 62 53 16 59 72 27 54 56 46 50 13 35 7 41 92 52 32 63 45 12 98 88 6 73 17 74 68 94 61 5 44 76 43 83 31 82 67 81 58 78 80 3 66 20 69 33 47 40 26 70 57 95 77 51 38 75 79 42 4 9 89 39 71 91 84 15 25 30 29 1055第五题 :有三个多项式试进行下列操作:(1) 求p(x)=p1(x)+p2(x)+p3(x);(2) 求p(x)的根。(3) 当x取矩阵A的每一元素时,求p(x)的值。其中: A=(
31、4) 当以矩阵A为自变量时,求P(x)的值。其中A的值与第(3)题相同。解:(1) p1=1,2,4,0,5; p2=1,2; p3=1,2,3; p=p1+0,conv(p2,p3)p = 1 3 8 7 11(2) A=roots(p)A = -1.3840 + 1.8317i -1.3840 - 1.8317i -0.1160 + 1.4400i -0.1160 - 1.4400i(3) A=-1 1.2 -1.4;0.75 2 3.5;0 5 2.5; polyval(p,A)ans = 1.0e+003 * 0.0100 0.0382 0.0125 0.0223 0.0970 0.41220.0110 1.2460 0.1644(4) polyvalm(p,A)ans = 1.0e+003 * 0.0076 -0.1281 -0.0775 0.1328 1.3900 1.1644 0.1824 1.7364 1.5198实验九 数值微积分与方程数值求解第一题:求函数在指定点的数值导数。 f(x)=, x=1,2,3.解: a=x x.2 x.3;1 2*x 3*x.2;0
限制150内