MATLAB综合练习题.docx
MATLAB综合练习题一、填空题 1、在MATLAB中,清除所有变量的命令为_。 2、 在MATLAB中,保存和载入数据分别使用命令_、 _。 3、矩阵A的条件数记为_,定义为_。 4、在MATLAB中,对图形窗口进行灵活分割的命令为_,对函数自适应采样的绘图函数为_,绘制三维曲面的函数为_、_。 5、在MATLAB中,求矩阵特征值及对应的特征向量的命令为_。 6、A=2 1 3,B=1 2 1,A+B ,A.*B= 。 7、在MATLAB中,zeros(1,3)= ,ones(1,2)= 。 8、给定n+1个点可以唯一确定一个n阶多项式,在MATLAB中,利用命令_ 可以确定多项式的系数,对多项式求导的命令为_。 9、在MATLAB中,使用命令_可做线性插值。 10、在MATLAB中,输入命令:sum(2 1 5;9 8 5),1 输出结果: ans= 。 11、在MATLAB中,画二维图形的常用函数为_,画三维图形常用函数为_、_、_。 12、在MATLAB中,求矩阵A的逆矩阵可用命令_。 13、A=7 1 5;2 5 6;3 1 5,A(2, 3) ,A.2= 。 14、在MATLAB中,可以用命令 计算多项式的值,用命令 求多项式的根。 15、将区间a,b三等分,步长为h,各个节点的函数值为f1,f2,f3,f4,则3/8辛普森法的公式为 。1/3辛普森法的公式为 。 16、在MATLAB中,数据输出时可以用命令_改变数据输出格式。 17、在MATLAB的工具箱中,求定积分的函数为_、_、 _。 18、在MATLAB中,函数文件的基本结构为: _ 输出形参表函数名 2 注释说明部分 函数体语句 19、在MATLAB中,求向量或矩阵范数的函数为 。 20、在MATLAB中,eye (3,3)= 。 二、选择题 1、在MATLAB中,列出当前工作空间变量名的函数是 (A) who(s) (B) clc (C) path (D) draw 2、在MATLAB中,图形窗口色图的设置和改变需调用函数 (A)color (B) colormap (C) plot (D) change 3、在MATLAB中,求齐次线性方程组Ax=0的基础解系可直接调用函数 (A) numl (B) solve (C) null (D) polyfit 4、在MATLAB中,不能画三维图形的函数为 (A) text (B) mesh (C) surf (D) plot3 5、MATLAB中M文件的分类为 (A) 脚本文件、命令文件 (B) 仅有脚本文件 3 (C) 仅有函数文件 (D) 函数文件、命令文件 6、MATLAB中生成平面网格坐标矩阵的函数为 (A) meshgrid (B) gridmesh (C) subplot (D)sub 7、给定n+1个点可唯一确定一个n次多项式,需调用的命令 (A)poly(x,y,n) (B) polyfit(x,y,n) (C) polyfit(n) (D) poly(n) 8、MATLAB中legend函数的功能为 (A)给图形加标题 (B)在指定位置给图形加注释 (C)给图形变色 (D)给图形添加图例 é46ùú,则在9、已知A=ê28êúêë37úûMATLAB中调用命令A(3)的结果为 (A) 3 (B)2 (C) 无结果 (D)7 10、MATLAB中调用命令L,U,P=lu(A)后,矩阵A满足 (A) A=LU (B) A=PLU (C) A=LUP-1 (D) PA=LU11、MATLAB中调用命令v=eye(2,1)后的结果为 (A) v=1;0 (B) v=1,0 (C) v=0;1 (D) v=1,0;0,1 4 12、MATLAB中计算积分ò2处应填的命令是 63(t-1)(t-2)2dt,则下列程序中的空格sym t ; f=3/(t-1)2*(t-2); F=_, y=double(F) (A) (f,t,2,6) (B) qad(f,t,2,6) (C) int(t,2,6) (D) int(f,t,2,6) 13、如果在MATLAB的命令窗口输入命令a=input('a=?'),出来的结果为 (A) a=? (B)没有任何显示 (C) a= (D) a=? 14、try语句为MATLAB所特有的试探性语句,下面的程序MATLAB能执行吗,执行的命令为A=1,2,3;4,5,6; B=7,8,9;10,11,12;try C=A*B; catch C=A.*B; end (A) 不执行 (B) 执行的是 catch后的命令 (C) 执行,但没有结果 (D) 执行的是try后的命令 15、MATLAB中与linspace(3,7,11)等价的命令为 (A) 3:7 (B) 3:0.4:7 (C) 3:4/11:7 (D) 3:7/10:7 5 16、对于下面的程序,在MATLAB中运行后f的形式为 a=0;b=3*pi; n=1000; h=(b-a)/n; x=a:h:b; f=exp(-0.5*x).*sin(x+pi/6) (A) 数 (B) 矩阵 (C) 向量 (D) 没有结果 17、已知x=1,2T,A=êA可调用命令 é111ù,MATLABúë248û中若想由x生成矩阵(A) A=x,x.2,x.3 (B) A=x,x2,x3 (C) A=x;x2;x3 (D) A=x;x.2;x.3 18、已知数据点为x=-6:6,y=sin(x),x0=-6 :0.25 :6,过x、y做分段三次样条插值,并求该多项式再x0处的函数值,在MATLAB中应使用的命令是 (A) interp1(x,y,x0,pchip) (B) interp1(x,y,x0, pchip) (C) interp1(x,y,x0,spline) (D) interp1(x,y,x0,cubic) 19、下面命令中不能求解线性方程组Ax=b的命令是 (A) A/b (B) Ab (C) inv(A)*b (D) A(-1)*b 20、MATLAB中命令exp(1)的结果为 (A) 0 (B) 1 (C) e 6 (D) inf 21、MATLAB中命令sum(4 1 2;0 3 6)的结果为 (A) 16 (B) 4 4 8 (C) 7 9 (D) 程序出错,没有结果 22、MATLAB中生成希尔伯特矩阵的函数为 (A) invhilb(n) (B)company(n) (C)eye(n) (D) hilb(n) 23、MATLAB中给变量w赋空矩阵的语句为 (A) w=zeros (B) w= (C) w=zeros(0,0) (D) clear w 24、在MATLAB中,如需查询一个函数的基本用法,命令为 (A) help (B) version (C) demo (D) path 25、A=1 2 1;2 2 3;5 0 0,则MATLAB中求A的逆矩阵的命令为 (A) det(A) (B) uv(A) (C) A*(-1) (D) inv(A) 26、b=5,23,7,2,3,6,0,要把b向量的元素按从小到大的顺序排列,MATLAB中用的命令为 7 (A)sort (B) put (C) fprintf (D) mesh 27、已知A=4 0,MATLAB中C=A,ones(size(A)为 (A) 4 0 1 1 (B) 4 0 1 0 (C) 4 0 0 0 (D)4 0 4 0 28、在MATLAB中,列出当前工作空间变量名的函数是 (A) path (B) clc (C) who(s) (D) draw 29、计算矩阵、向量范数的命令为 (A) length (B) norm (C) size (D) anorm 30、MATLAB对图形窗口进行灵活分割的命令为 (A) plot (B) subplot (C) aplot (D) ploval 31、MATLAB中生成一个2行4列的单位矩阵的命令为 (A) eye(2,4) (B) eye(2,2) (C)eye(2) (D) zeros 32、已知x=4,2,,求以x为根的多项式的语句是 (A) x=4,2,; polval (x) (B) x=4,2,; poly(x) 8 (C) p=roots(x);poly(p) (D) x=4,2,; roots(x) 33、在MATLAB中,清除所有变量的命令为 (A) clear (B) clc (C) delete (D) hold off 34、命令floor(3.4)及ceil(3.4)的值为多少 (A) 3 4 (B) 4 4 (C) 3 3 (D)4 3 35、在MATLAB中,打开示例程序的命令为 (A) demo (B) help (C)clear (D) plot 36、MATLAB中保持图形窗口不关闭的命令为 (A) alter (B) hold on (C) hold off (D) cd 37、在MATLAB中,强行终止程序运行的命令为 (A) ctrl+v (B) ctrl+shift (C) (D)shift+c 38、A=3 6 3,B=2 1 1,则A.*B= (A) 运算不执行,因有错 (B) 6 8 3 (C) 5 (D) 6 6 3 9 ctrl+c 7 4 39、双纵坐标函数为 (A) plot (B) yplotty (C) plot3 (D) plotty 40、已知数据点为x=1, 1.4, 1.6, 1.8, 2.0',y=3.75, 3.99, 2.07, 1.52, 4.22',拟合一条过这些点的3次曲线,应使用的命令是 (A) polyfit(x,y) (B) polyfit(2) (C) polyfit(x,y,1) (D) polyfit(x,y,3) 41、MATLAB中表示无穷的符号是 (A) ¥ (B) int (C) inf (D) +in 42、MATLAB中给图形加网格线的命令为 (A) grid off (B) hold on (C)box on (D) grid on 43、MATLAB中程序A=1 2 3;-1 2 1;3 5 2;B=3 4 6;5 8 9;4 5 3; C=(B>1)&(B<7),运行后结果为 (A)C=1,1,1;1,0,0;1,1,1 (B) C=1,0,0;1,0,0;1,0,1 (C) 无结果 (D) C=0,1,0;1,0,0;1,1,1 44、MATLAB中生成一个从0到20的等差为0.5的数列应使用的命令为 10 (A) x=linspace(0,20)(B) x= 0:20 (C) x=linspace(0,20,41) (D) x=linspace(0,20,0.5) 45、积分区间被等分为奇数个小区间时,合理使用1/3辛普森法和3/8辛普森法的是 (A) 只用3/8辛普森法 (B) 1/3辛普森法和3/8辛普森法都不能使用,用cotes方法 (C) 前三个区间用3/8辛普森法,剩下的区间用1/3辛普森法 (D) 只用1/3辛普森法 46、MATLAB中c=1 2 3 4 ,要得到c的转置向量所用命令为 (A) b=c (B) b=1,2,3,4 (C) b=inv(c) (D) b= =c 47、MATLAB中计算积分ò4空格处应填的命令是 sym t ; f=5/(t-1)*(t-2)*(t-3); F=_, y=double(F) (A) (f,t,4,5) (B) qad(f,t,4,5) (C) int(t,4,5) (D) int(f,t,4,5) 48、MATLAB表示圆周率的符号是 (A) p (B) int (C) pi 11 55则下列程序中的dt,(t-1)(t-2)(t-3)(D) 没有符号可表示 49、MATLAB中a=1,3,2,则b=a.2的结果为 (A) b=1,6,4 (B) b=1,9,4 (C) b=2,6,4 (D) 执行出错,无结果 50、求解x3-3x+1=0在x=1附近的根的错误的语句为 (A) fzero('x3-3*x+1=0',1) (B) fzero('x3-3*x+1',1) (C) fzero('x3-3*x+1=0',1,2) (D) P=1,-3,1;roots(p) 三、1.阅读下述MATLAB脚本程序 A=3 5 7 9;0 2 4 1;6 4 4 8; B=ones(3,3); b=A(1 2,2:3); B(4,4)=5; A(1,2,:)=; C=A;B(:,1:3)' D=reshape(C,2,8); 写出b、A、B、C、D的结果。 2.用MATLAB0£x<1ìx编写函数,计算f(x)=ïí2-x1£x<2,函数的输入参数ï0其他î为x,输出参数为f,函数名为fun。 12 function f=fun(x) x=input('请输入x的值:'); if x<1&x>=0 y=x; elseif x<2&x>=1 y=2-x; else y=0; end y -5x-x£10a3.用如下迭代公式求,迭代的终止条件为n+1, n迭代初值x0=1.0,迭代次数不超过100次。分别对迭代结果和准确 值进行比较,并统计迭代次数。迭代公式:xn+1试对此迭代问题编写M函数文件。 function x, n=sqrt_a(a) x=1.0; for k=1:100 m=x; x=x/2+a/(2*x); if abs(x-m)<=10(-5) break end 13 xn-1a=+, 22xn-1 end x; n=k; s=(x-sqrt(a); if abs(s)<=10(-5) disp('正确'); else disp('错误'); end 3. 阅读一绘制地形图的程序,写出所标出的语句的功能。 fid=fopen('F:workdengzhixian.txt','r');_打开数据文件_ data = fscanf(fid,'%f %f %f',3,inf);_从文件中读取数据_ data=data' fclose(fid);_关闭文件_ x =data(:,1); y =data(:,2); z =data(:,3); xb=min(x); xe=max(x); yb=min(y); ye=max(y); Xl=linspace(xb,xe,200);_将区间离散化_ Yl=linspace(yb,ye,200); 14 X,Y=meshgrid(Xl,Yl); _生成二维网格数据_ method='cubic' Z =griddata(x,y,z,X,Y,method);_曲面拟合插值计算_ figure; _打开一个窗口_ hold on; _保持打开的图形窗口_ contour(X,Y,Z);_绘制等高线图形_ colormap cool; _设定图形色彩_ box on; _对坐标系的右边和上边加边框_ xlabel('x');_坐标横轴添加标签为x轴_ ylabel('y'); axis equal;_坐标轴的长度单位设成相等_ title('等值线图:(单位:scale)');_添加标题_ hold off _关闭图形保持_ 4 阅读下述MATLAB脚本程序 A=3 5 7 9;0 2 4 1;6 4 4 8; B=ones(3,3); b=A(1 2,2:3); B(4,4)=5; A(1,2,:)= 15 C=A;B(:,1:3)' D=reshape(C,2,8); 写出b、A、B、C、D的结果。 答案:b=5 7;2 4 A=6 4 4 8 B= 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 5 C= 6 4 4 8 1 1 1 0 1 1 1 0 1 1 1 0 D= 6 1 4 1 4 1 8 0 1 1 1 1 1 1 0 0 5.下面的函数完成什么功能? function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; end 16 6.下面的程序完成功能是什么? t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b') xlabel(' t'); ylabel('y'); grid on; 答:绘制两条曲线,第1条是蓝色的虚线;第2条是红色的实线。 给坐标轴添加标签。 7.下面的函数主要完成什么功能? a=0; i=1; while (a<100000) a=a+pow2(i); i=i+1; end m=i-1 答:求满足下式的最小m值 8.编写一个函数,计算下面函数的值,给出x的值,调用该函数后, i2åi=1>100000m 返回y的值。 17 ìsinx,ïy(x)=íx,ï-x+6,îx£00<x£3x>3function y=fun(x) x=input('请输入x的值:'); if x<=0 y=sin(x); elseif x<=3&x>0 y=x; else y=-x+6; end y -8x-x£10 9.用如下迭代公式求a,迭代的终止条件为n+1, n 18 迭代初值x0确 =1.5,迭代次数不超过200次。分别对迭代结果和准xn-1a=+, 22xn-1值进行比较,并统计迭代次数。迭代公式:xn+1试对此迭代问题编写M函数文件。 function x, n=sqrt_a(a) x=1.5; for k=1:200 m=x; x=x/2+a/(2*x); if abs(x-m)<=10(-8) break end end x; n=k; s=(x-sqrt(a); if abs(s)<=10(-8) disp('正确'); else disp('错误'); end 10以下为对一水准网进行间接平差的程序,试阅读并填写所标出的 语句的功能。 function shuizhunjjpc( ) _函数定义行_ disp('水准网间接平差示例') disp('已知高程')_提示输入已知高程_ Ha = 5.015 Hb = 6.016 19 disp('观测高差') L = 1.359;2.009; 0.363; 1.012; 0.657; -0.357 fid=fopen(E:szjj.txt,r)_打开数据文件_ temp=fscanf(fid,%f%f%f%f,4,6)_从文件中读取数据_ fclose(fid);_关闭数据文件_ temp=temp; B=temp(:,1,2);_读取矩阵的第1、2列_ l=temp(:,3); S=temp(:,4);_读取矩阵的第4列_ S=S; disp(C是单位线路公里数,S是线路长度') C = ones(1,6) _生成1行6列全1阵_ P = C./S ; _计算2个向量的点除_ P = diag(P) _计算观测值的权阵_ disp(参数的解) x=inv(B'*P*B)*B'*P*l_解算法方程_ disp('误差V(mm), 各待定点的高程平差值L1') V=B*x-l _计算观测值的改正数向量_ LP = L + V/1000 _计算观测值的平差值_ 20 disp('精度评定') n = 6; _输入观测值个数_ t = 2; delta = sqrt(V'*P*V/(n t)_计算验后单位权中误差_ 四、已知多项式a(x)=x3+2x2+1和b(x)=x2+1,编写脚本程序计算: 1) 多项式a(x)+b(x) 2) 多项式a(x)*b(x)。 3) 多项式a(x)的根。 五、用MATLAB0£x<1ìx编写函数,计算f(x)=ïí2-x1£x<2,函数的输入ï0其他î参数为x,输出参数为f,函数名为fun。 六、编程求y=å12j=1(j+1)88的值,要求: (1) 使用循环语句编程,但不能使用数组运算符和sum; (2) 使用数组运算符和sum编程,不能使用循环结构。 21 ì2x1+4x2=11ï3x-5x=312七、 已知超定方程组ï íïx1+2x2=6ïî2x1+x2=7 写出用Matlab中语言求解上述线性方程组的程序。 八、Hilbert矩阵是非常著名的病态矩阵,写出其定义,并编出Matlab程序求5´5到14´14的Hilbert矩阵的条件数、行列式。 九、 数值求解定积分时,当积分区间被等分为奇数个小区间时,如何合理使用1/3辛普森法和3/8辛普森法。 æ4ç8ç十、 写出将矩阵 ç4çç12è2785ö÷10÷进行6÷÷61120÷ø123LU 分解,并求出该矩阵的行列式的语句 十一、写出n+1个插值节点(xi,yi)的Lagrange插值多项式的公式,并将下面的Lagrange 插值多项式的Matlab实现程序补充完整。 Lagrange 插值多项式公式: 22 x=-5:5;y=1./(1+x.2); t=-5:0.05:5; y1=1./(1+t.2); n=length(t); for i=1:n z=t(i);s=0; for Lk=1; u=x(k); for 十二、已知y的表达式y=å1/i2,当n=100时,求y的值,请补i=1n充完整。 n=100; i=1:n; f= ;y= 十三、x是数据点的横坐标数组,li(x)是拟合数据点x=x1,x2L,x,iL,xn+,1,y=0,0,L,1,L,0的多项式,p是一个矩阵,它的第i行即为li(x)的幂系数,请补充完整。 function p = shape_pw(x) np = length(x); for j=1:np y = zeros(1,np); y(j) = 1; p(j,:)= ; end 十四、下面的程序是解线性方程组的一个函数文件,请补充完23 整。 function x,y=line_solution(A,b) m,n=size(A);y=; else disp('方程组的最小二乘法解是:'); if norm (b)>0 x=Ab; end if rank(A)=rank(A,b) else if rank(A)=n if rank(A)= x= ; x=Ab; else else disp(' 方程组有无穷个解, disp('原方程组有有无穷个解,其齐次方程组的基础解系为y,特解为x'); y=null(A,'r'); x= ; end 十五、下面是求解非线性方程的牛顿法的函数文件,公式为xn=xn-1-f(xn-1), ¢f(xn-1)基础解系为x'); x=null(A,'r'); end end return 请补充完整。 24 function Newt_n(f_name, x0) x = x = x0; xb=x-999;n=0; h = 0.01; while abs(x-xb)>0.0001 n= ; xb=x; if n>300 break; end y=feval(f_name, x); yd=(feval(f_name, y)/ ; x+h) - x = ; end fprintf('n Final answer = %12.6en', x); 25 十六、编写函数文件求半径为r的圆的周长和面积。 十七、求解下列微分方程 设著名的Lorenz方程可表示为 dx(t)dt=-bx(t)+y(t)z(t)dy(t)dt=-ry(t)+rz(t) dz(t)dt=-x(t)y(t)+sy(t)-z(t) 其中,b=83,r=10,s=28。若令其x(0)=y(0)=0,z(0)=1´10-10 26 初值为写出用desolve 命令求解该方程的语句,并指出能否用desolve求出解析解 写出用ode45求解该微分方程组的解并分别绘出状态变量的时间响应曲线和相空间三维图的程序 27 28