《MATLAB基础教程薛山第二版课后习题复习资料.docx》由会员分享,可在线阅读,更多相关《MATLAB基础教程薛山第二版课后习题复习资料.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB及应用实验指导书MATLAB及应用实验指导书班 级: T1243-7 姓 名: 柏 元 强 学 号: 20120430724 总评成绩: 汽车工程学院电测及汽车数字应用中心目录实验04051001 MATLAB语言基础1实验04051002 MATLAB科学计算及绘图13实验04051003 MATLAB综合实例编程31第 15 页实验04051001 MATLAB语言基础操作成绩报告成绩1实验目的1) 熟悉MATLAB的运行环境2) 掌握MATLAB的矩阵和数组的运算3) 掌握MATLAB符号表达式的创建4) 熟悉符号方程的求解2实验内容第二章1. 创建double的变量,并进行
2、计算。(1) a=87,b=190,计算 a+b、a-b、a*b。clear,clca=double(87);b=double(190);a+b,a-b,a*b(2) 创建 uint8 类型的变量,数值及(1)中相同,进行相同的计算。clear,clca=uint8(87);b=uint8(190);a+b,a-b,a*b2计算:(1) (2) e3(3) clear,clca=sind(60)b=exp(3)c=cos(3*pi/4)3设,计算:(1) (2) (3) clear,clcu=2;v=3;a=(4*u*v)/log(v)b=(exp(u)+v)2)/(v2-u)c=(sqrt(
3、u-3*v)/(u*v)4计算如下表达式:(1) (2) clear,clc (3-5*i)*(4+2*i) sin(2-8*i)5判断下面语句的运算结果。(1) 4 20(2) 4 = 20(3) 4 = 20(4) 4 = 20(5) bBclear,clc4 20 , 4 = 20,4 = 20,4 = 20,bb,ab&bc,a=d,a|bc,d7编写脚本,计算上面第2题中的表达式。clear,clcdisp(sin(60)=);disp(sind(60) disp(exp(3)=);disp(exp(3)disp(cos(3*pi/4)=); disp(cos(3*pi/4)8编写脚
4、本,输出上面第6题中的表达式的值。clear,clca=39;b=58;c=3;d=7;disp(ab);disp(ab) disp(ac);disp(ab&bc);,disp(ab&bc) disp(a=d);disp(a=d)disp(a|bc);disp(a|bc) disp(d);disp(d)第三章1. 在命令提示符下输入以下两条命令: x = 9 3 0 6 3 y = mod(sqrt(length(x+5).*1 2 3 4 5)*5),3)求y值为多少?2. 在MATLAB中运行以下命令:a = 3, 7, 2, 7, 9, 3, 4, 1, 6;b = 7;a(4) = ;
5、vec1 = a=b;vec2 = mod(a,2)=0;c = sum(vec1);vec3 = vec1+vec2;d = vec3.*a;vec4 = find(a 5);e = a(vec4) + 5;vec5 = find(a 5);e = a(vec4) + 5;vec5 = find(a 5);f = vec5.2;disp(c=);disp(c)disp(d=);disp(d)disp(e=);disp(e)disp(f=);disp(f)3. 向量操作时MATLAB的主要部分,使用给出的向量来做下面的练习。注意:不要直接给出下列问题中任何一个的最终结果,不要在问题的任何部分使
6、用迭代。vec=4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343(1)创建一个新的向量vecR,使其为vec的转置。(2)创建一个新的向量vecB,使其为vec中的前半部分及后半部分对换的结果,这样vecB包含的元素为vec的后半部分紧接着vec的前半部分。(3)创建一个新的向量vecS,使其包含vec中所有小于45的元素,且元素按照vec中的顺序排列。(4)创建一个新的向量vec3R,使其从vec中从最后一个元素开始,并且间隔三个元素取一个元素,直到第一个元素为止。(5)创建一个新的向量vecN,使其包含vec中所
7、有等于2或4的元素的索引值。(6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素。clear,clcvec=4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343;vecR=vec;disp(vecR=);disp(vecR)a=length(vec);vecB=vec(a/2+1:a) vec(1:a/2);disp(vecB=);disp(vecB)C=find(vec6 56 8 445 7 357 4注意: 不能直接将相关数值输入答案中,如果再命令提示符下输入:newNu
8、mEx=6 56 8 445 7 357 4 将不能得分。提示:对于3个向量而言,其解决方法应当是一样的,只是变换向量名称而已。clear,clcnums1=7 1 3 5 32 12 1 99 10 24;nums2=54 1 456 9 20 45 48 72 61 32 10 94 11;nums3=44 11 25 41 84 77 998 85 2 3 15;newNums1=nums1(1:2:end)newNums2=nums2(1:2:end) newNums3=nums3(1:2:end)思考题1. MATLAB中,数组及矩阵在表示及应用上有哪些区别。一维数组相当于向量,二维
9、数组相当于矩阵.所以矩阵是数组的子集数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运算符前特别加了一个点。矩阵是一个二维数组,所以矩阵的加、减、数乘等运算及数组运算是一致的。但有两点要注意:(1)对于乘法、乘方和除法等三种运算,矩阵运算及数组运算的运算符及含义都不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;(2)数及矩阵加减、矩阵除法在数学是没有意义的,在MATLAB中为简便起见,定义了这两类运算实验04051002 MATLAB科学计算及绘图操作成绩报告成绩1
10、实验目的1) 熟悉MATLAB所提供的常用数值计算的函数(方程(组)的求解、插值、拟合);2) 掌握MATLAB二维图形绘制命令及其图形控制(plot、loglog、contour、polar等);3) 熟悉MATLAB三维图形绘制命令及其图形控制(mesh、surf等)。2实验内容第四章1. 有如下数据:x11.11.21.31.4y1.000001.233681.552711.993722.61170利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。clear,clcx=1 1.1 1.2 1.3 1.4;y=1.00000 1.23368 1.55271 1.99372 2
11、.61170;scalar_x=x(1):0.05:x(end);y_nearest=interp1(x,y,scalar_x,nearest);y_linear =interp1(x,y,scalar_x,linear);y_spline =interp1(x,y,scalar_x,spline);y_cubic =interp1(x,y,scalar_x,cubic);subplot(2,2,1),plot(x,y,*),hold on,plot(scalar_x,y_nearest),title(method=nearest);subplot(2,2,2),plot(x,y,*),hol
12、d on,plot(scalar_x,y_linear),title(method=linear);subplot(2,2,3),plot(x,y,*),hold on,plot(scalar_x,y_spline),title(method=spline);subplot(2,2,4),plot(x,y,*),hold on,plot(scalar_x,y_cubic),title(method=cubic);2. 求下列函数的解,并绘制图形。(1) ,初始点为(2) clear,clc%第一小题y_1=(x)exp(x)-x5; x0 =8;subplot(1,2,1), hold on,
13、fplot(y_1,x0,x0+10),title(exp(x)-x5);%第二小题y_2=(x)x*sin(x);subplot(1,2,2), hold on,fplot(y_2,-pi,pi),title(x*sin(x);3. 求下列函数的极值。(1) (2) clear,clcz_1 = (x)x(1)2-(x(2)-1)2;x,fvalue,flag,output=fminsearch(z_1,0,0)disp(第二小题)z_2 = (x)(x(1)-x(2)+1)2;x,fvalue,flag,output=fminsearch(z_2,0,0)4. 计算下列积分。(1) (2)
14、 clear,clcfun1=(x)x+x.3+x.5;q = quad(fun1,-1,1)fun2=(x,y)sin(y).*(x+y)./(x.2+4);q = dblquad(fun2,1,10,1,10)第八章1. 编写程序,该程序在同一窗口中绘制函数在 之间的正弦曲线和余弦曲线,步长为 ,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记。clear,clcx=0:pi/10:2*pi;f=(x)(cos(x)-sin(x);x1=fzero(f,0,pi);x2=fzero(f,pi,2*pi);plot(x,sin(x),b-
15、,LineWidth,4),hold on,plot(x,cos(x),r:,LineWidth,4); plot(x1,sin(x1),rh,markerfacecolor,y,markersize,10); plot(x2,sin(x2),rh,markerfacecolor,y,markersize,10); 2 绘制下列图像(1),(2)三维曲线:,(3)双曲抛物面:,clear,clcx = 0:pi/100:10*pi;y=x.*sin(x);subplot(1,3,1),plot(x,y,b),title(y=x*sinx)%2X,Y = meshgrid(-10:0.2:10)
16、;Z = X.2 + 6*X*Y + Y.2 + 6*X + 2*Y -1;subplot(1,3,2),mesh(X,Y,Z),title(三维曲面)%3X,Y = meshgrid(-16:0.2:16,-4:0.1:4);Z = X.2/16 - Y.2/4;subplot(1,3,3),mesh(X,Y,Z),title(双曲线抛物面)3. 绘制下列图像(1)绘制电脑磁盘使用情况的饼状图(2)生成 100 个从 0 到 10 之间的随机整数,绘制其直方图(3)生成 10个从 0 到 10 之间的随机整数,绘制其阶跃图clear,clcx=37 63;subplot(1,3,1),pie
17、(x,可用空间37%,已用空间63%),title(饼状图);subplot(1,3,2),hist(round(rand(100,1)*10),title(直方图);subplot(1,3,3),stairs(round(rand(10,1)*10),title(阶跃图);4. 分别通过界面交互方式和函数方式在第 1 题生成的图形中添加注释,至少应包括:标题,文本注释,图例。clear,clcx=0:pi/10:2*pi;f=(x)(cos(x)-sin(x);x1=fzero(f,0,pi);x2=fzero(f,pi,2*pi);plot(x,sin(x),b-,LineWidth,4)
18、,hold on,plot(x,cos(x),r:,LineWidth,4); plot(x1,sin(x1),rh,markerfacecolor,y,markersize,10); plot(x2,sin(x2),rh,markerfacecolor,y,markersize,10);title(正弦曲线和余弦曲线及其交点);xlabel(x),ylabel(y=sinx y=cosx);text(3,0.3,sin(x)text(1.0,-0.2,cos(x)text(1.0,0.7,x=pi/4,sin(x)=cos(x)text(4.1,-0.7,x=3*pi/4,sin(x)=co
19、s(x)legend(sin(x),cos(x)5.对第 2 题中绘制的双曲抛物面尝试进行视点控制和颜色控制。clear,clcx = 0:pi/100:10*pi;y=x.*sin(x);subplot(1,3,1),plot(x,y,b),title(y=x*sinx)%第二小题X,Y = meshgrid(-10:0.2:10);Z = X.2 + 6*X*Y + Y.2 + 6*X + 2*Y -1;subplot(1,3,2);mesh(X,Y,Z),title(三维曲面),view(50,60);colormap(jet);%第三小题X,Y = meshgrid(-16:0.2:1
20、6,-4:0.1:4);Z = X.2/16 - Y.2/4;subplot(1,3,3),mesh(X,Y,Z),title(双曲面抛物线),view(30,60);colormap(flag); 思考题1. MATLAB求多项式的根是用什么方法,及传统方法相比有何优点用roots(a)函数,a是所要求根的多项式函数,相比传统方法更方便2. 画出横坐标在(-15,15)上的函数的曲线,应该使用什么命令。 Plot(-15,15,sin(x);3. 请思考网络线有什么作用,为什么要对图形进行标注。网格线可以使图像具有更好的可读性;标注使图形表达信息更加清晰。实验04051003 MATLAB综
21、合实例编程操作成绩报告成绩1实验目的1) 了解Windows界面编程的基本概念和方法掌握MATLAB程序设计的方法;2) 熟悉MATLAB/GUI的基本特点;掌握MATLAB/GUI编制的基本步骤;3) 掌握MATLAB/Simulink的使用方法和基本步骤;4) 将MATLAB应用到所学专业。2 实验内容第十一章2. 求解微分方程,初始条件x1=x2=0。4. 在水平角度30方向,以100 m/s的速度来投掷一个抛射物。建立一个Simulink模型以求解这个抛射物的运动方程,其中,x和y分别是这个抛射物的水平和垂直位移。= 0 x(0) = 0 (0) = 100 cos 30= -gy(0
22、) = 0 (0) = 100 sin 30使用这个模型来绘制这条抛射物轨迹y相对于x的图形,其中,0t10 s。plot(simout(:,1),simout(:,2),hold on,title(抛物线轨迹Y相对X图形);xlabel(0-10秒内水平方向位移X),ylabel(0-10秒内竖直方向位移Y);5. 考虑图中所示的系统。运动方程是:m1 + (c1 + c2) + (k1 + k2)x1 - c2 - k2x2 = 0m2+ c2 + k2x2 - c2 - k2x1 = f (t)假设m1 = m2 = 1, c1 = 3, c2 = 1, k1 = 1和k2 = 4。 (
23、1). 开发这个系统的Simulink模型。在开发系统模型的时候,考虑是使用模型的状态-变量表示法还是传递-函数表示法。(2) 使用Simulink模型,针对以下输入绘制响应x1(t)的图形。其初始条件为0。f (t) = 方法一:线性状态变量模型令:z1=x1,z2=x1,z3=x2,z4=x2;z1=z2;Z2=-5z1-4z2+4z3+z4;Z3=z4;Z4=4z1+z2-4z3-z4+f(t);A=0,1,0,0;-5,-4,4,1;0,0,0,1;4,1,-4,-1,B=0;0;0;1,C=1,0,0,0;0,0,1,0,D=0;0方法二:传递函数模型状态变量模型及传递函数模型相比,
24、传递函数模型得到的结果更接近真实情况,结果更精确。两图中虚线为X1(t)图形。思考题:结合本次试验,谈谈学习MATLAB的心得体会:以前数学建模,初步了解到了MATLAB,但仅处于了解阶段。本学期比较系统地学习了MATLAB,掌握了一些编程及应用技巧。在上MATLAB课之前,打算在课上好好学习这个软件,然后上课了发现,大学还是得靠自己,老师教你基本的使用,想深层次的去运用软件解决问题,还是得平时多花时间。在其它课程的学习中,我应用MATLAB解决了一些比较复杂的计算问题,这开始让我认识到MATLAB的重要性。通过进一步的学习,我逐渐体会到MATLAB功能强大,应用广泛。作为工科生,掌握MATL
25、AB已经成为一项重要的技能。这些课后习题,让我注意了平时没有注意到的细节,这样在以后学习MATLAB就能够更加的得心应手,让他更好的为我们的工作带来方便和高效。第一题Clear,clcz=(x)x(1)2-(x(2)-1)2;x,fvalue,flag,output=fminsearch(z,0,0)y=x(2);x=x(1);z=x2-(y-1)2;x,y,z第二题Clear,clcfun=(x,y)sin(2.*y).*(x+y)./(x.3+5);q=dblquad(fun,1,20,1,10)第三题function dydt=vdp1(t,y)dydt=y(2);100*(1-y(1)2)*y(2)-y(1)-5;新建脚本t,y=ode45(vdp1,0 16,5;10);第四题Clc,cleara=10000;t=0while a1000000 a=a*1.06+10000t=t+1;endt第五题Clc,clearX,Y=meshgrid(-16:0.4:16,-4:0.4:4)Z=X.2/16-Y.2/4subplot(2,2,1),mesh(X,Y,Z)subplot(2,2,2),surf(X,Y,Z)第六题
限制150内