MATLAB程序设计与应用.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用
- 资源描述:
-
. 实验一 MATLAB运算基础 第二题:已知 A= B= 求下列问题: 1) A+6*B和A-B+I 2) A*B和A.*B 3) A^3 A.^3 4) A/B B\A 5) [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*B ans = 18 52 -10 46 7 105 21 53 49 >> A-B+I ans = 12 31 -3 32 8 84 0 67 1 (2) >> A*B ans = 68 44 62 309 -72 596 154 -5 241 >> A.*B ans = 12 102 4 68 0 261 9 -130 49 (3) >> A^3 ans = 37226 233824 48604 247370 149188 600766 78688 454142 118820 >> A.^3 ans = 1728 39304 -64 39304 343 658503 27 274625 343 (4) >> A/B ans = 16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000 >> B\A ans = 109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.0000 -61.6000 89.8000 -186.2000 (5) >> [A,B] ans = 12 34 -4 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7 >> [A([1,3],:);B^2] ans = 12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 40 第三题:设有矩阵A和B A= B= 1) 求他们的乘积C 2) 将矩阵C的右下角3*2子矩阵赋给D 3) 查看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 23 -4;9 7 0;4 13 11]; (1) >> C=A*B C = 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<='Z'); >> A(k)=[] A = Lsdhklsdkl 实验二 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 = 13739916 >> 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.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -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)*b x = 1.2000 0.6000 0.6000 (2) >> B=[0.95,0.67,0.53]'; >> x=inv(A)*B x = 3.0000 -6.6000 6.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~=-3 y=[y,x0*x0+x0-6]; elseif x0>=0&x0<5&x0~=2&x0~=3 y=[y,x0*x0-5*x0+6]; else y=[y,x0*x0-x0-1]; end end >> x x = -5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 >> y y = 14.0000 11.0000 2.0000 1.0000 -0.2500 5.0000 19.0000 第二题: 输入一个百分制的成绩,要求输出成绩等级A B C D E。其中90~80为A,80~89为B,70~79为C,60~69为D 60以下为E 要求 1) 分别写入if语句和switch语句实现 2) 输入百分制成绩要判断该成绩的合理性,对不合理的成绩应输出出错的信息 解: >> x=input('请输入一个百分制成绩:'); 请输入一个百分制成绩: >> if x>100|x<0 disp('您输入的成绩不是百分制成绩,请重新输入。'); else if x<=100&x>=90 disp('A'); elseif x<=89&x>=80 disp('B'); elseif x<=79&x>=70 disp('C'); elseif x<=69&x>60 disp('D'); else disp('E'); end end 第三题: 硅谷公司员工的工资计算方法为 1) 工作时间超过120小时者,超过的部分加15% 2) 工作时数低于60小时的,扣发700元 3) 其余按每小时84元 解: >> n=input('请输入员工工号:'); 请输入员工工号: >> h=input('该员工工作时数是:'); 该员工工作时数是: >> if h>120 x=(h-120)*84*(1+0.15)+120*84; elseif h<60 x=h*84-700; else x=h*84; end disp([num2str(n),'号员工','的应发工资为',num2str(x)]); 号员工的应发工资为 第四题:设计程序,完成两位数的加减乘除四则运算,即产生两位随机整数,再输入一个运算符号,作相应的运算,并显示相应的结果。 解: >> 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=='*' 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 n>5 disp('超出了矩阵的行数,矩阵的最后一行为:') a(5,:) else disp(['矩阵的第',num2str(n),'行为:']) a(n,:) end 矩阵的第行为: ans = Empty 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 第二题:根据,求: (1) y<3时的最大n值。 (2) 与(1)的n值对应的y值 。 解: >> y=0; >> n=1; >> while(y<3) y=y+1/(2*n-1); n=n+1; end y=y-1/(2*(n-1)-1) n=n-2 y = 2.9944 n = 56 第三题:考虑以下迭代公式: 其中a,b为正的常数。 (1) 编写程序求迭代的结果,迭代的终止条件为,迭代初值=1.0,迭代次数不超过500次。 (2) 如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1),(8,3),(10,0.1)时,分别对迭代结果和准确值进行比较。 解: >> 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))/2 n = 0 Xn1 = [] r1 = [] r2 = [] 第四题:已知: 求--中: (1) 最大值,最小值,各数之和。 (2) 正数,零,负数的个数。 解:(1) >> for i=1:100 if i==1 f(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(f>0)) ans = 49 >> length(find(f==0)) ans = 2 >> length(find(f<0)) ans = 49 第五题:若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如,23-1=5,由于5是素数,所以2和3 是亲密数对,5是亲密对数。求{2,50}区间内: (1) 亲密数对的对数。 (2) 与上述亲密数对对应的所有亲密素数之和。 解: >> s=0; n=0; >> for i=2:49 b=i*(i+1)-1; m=fix(sqrt(b)); for j=2:m if rem(b,j)==0 break end end if j==m n=n+1; s=s+b; end end n s n = 28 s = 21066 实验六 高层绘图操作 第二题: 已知y1=x^2,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=x^2'); >> 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=x^2'); >> subplot(1,3,2); >> plot(x,y2); >> >> title('y2=cos(2*x)'); >> subplot(1,3,3); >> plot(x,y3); >> >> title('y3=x^2*cos(2*x)'); (3) >> x=linspace(-2*pi,2*pi,20); >> y1=x.^2; >> subplot(2,2,1); >> bar(x,y1); >> >> title('y1=x^2的条形图'); >> subplot(2,2,2); >> stairs(x,y1); >> >> title('y1=x^2的阶梯图'); >> subplot(2,2,3); >> stem(x,y1); >> >> title('y1=x^2的杆图'); >> subplot(2,2,4); >> fill(x,y1,'r'); >> >> title('y1=x^2的填充图'); (2) >> x=linspace(-2*pi,2*pi,20); y2=cos(2*x); subplot(2,2,1); bar(x,y2); title('y2=cos(2*x)的条形图'); 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); title('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= 在-5《x《5区间绘制曲线。 解: >> x=-5:0.01:5; >> y=[]; >> for x0=x if x0<=0 y=[y,(x0+sqrt(pi))/exp(2)]; else y=[y,0.5*log(x0+sqrt(1+x0^2))]; end end plot(x,y) >> 第五题: 绘制函数的曲面图形和等高线。 Z=cosxcosy 其中x的21个值均匀分布在【-5,5】范围,y的31的值巨晕分布在【0,10】,要求用subplot(2,1,1)和subpolt(2,1,1)将曲面图画在一个窗口上。 解: >> 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','WindowButtonDownFcn','disp(''Left Button Pressed'')') h = 1 Left Button Pressed 第二题:先利用默认属性绘制曲线y=x^2 *e^2x,然后通过图形句柄操作改变曲线的颜色,线性和线宽,并利用文字对象添加文字标注。 解: >> 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=x^2*exp(2*x)') 实验八 数据处理与多项式运算 第一题: 利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质: (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:30000 if A(i)>0.5 n=n+1; end end >> p=n/30000 p = 0.5006 第二题: 将100个学生的5门功课的成绩存入矩阵P中,进行如下处理: (1) 分别求每门课的最高分,最低分,以及相应学生序号。 (2) 分别求每门课的平均分和标准方差。 (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.5696 U = 29 66 55 47 69 >> [a,b]=min(A) a = 45.2423 45.8828 45.0092 45.2530 45.6793 b = 36 85 2 67 48 (2) >> m=mean(A) s=std(A) m = 70.9171 69.7859 73.5350 72.8288 71.6800 s = 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.9468 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 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 410.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.5536 Y = 429.4294 U = 55 a = 270.1099 b = 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.9073 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 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.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.4294 xsxh = 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 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 10 55 第五题 :有三个多项式试进行下列操作: (1) 求p(x)=p1(x)+p2(x)+p3(x); (2) 求p(x)的根。 (3) 当x取矩阵A的每一元素时,求p(x)的值。其中: A= (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.4122 0.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*展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




MATLAB程序设计与应用.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4915500.html