x=A\\b; 或x=inv(A)*b; %3分 3:下面的函数主要完成什么功能?(8分) function f=factor(n) if n<=1 f=1; else
f=factor(n-1)*n; end
答案:利用函数的递归调用,求n!。 4:下面的程序完成功能是什么?(8分) t=0:pi/50:3*pi; y0=exp(-t/2);
y=exp(-t/3).*sin(2*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b') xlabel(‘\\bf\\it t’); ylabel(‘\\bf\\it y’);
答案:在同一个图中绘制两个函数,这两个函数分别是: y=e(-t/3) y0=e(-t/3)*sin(3t) 四、编程题(每题10分,共20)
1:求解以下线性方程组,要求写出程序代码和运行结果(10分)
2x1- 3x2+ x3+2x4=8 x1+3x2+ x4=6 x1- x2+ x3+8x4=17x1+ x2-2x3+2x4=5
答案:
>> syms a b c x >> syms x1 x2 x3 x4 >> clear
>> syms x1 x2 x3 x4
>> f = 2*x1 + 3*x2 + x3 + 2*x4 -8; >> g = x1 + 3*x2 + x4 - 6; >> h = x1 - x2 + x3 + 8*x4 - 1; >> i = 7*x1 + x2 - 2*x3 + 2*x4 -5; >> [x1,x2,x3,x4] = solve(f,g,h,i) 2:设x=sint, y=sin(nt+a),
(1)若a=1,令n =1,2,3,4,在四个子图中分别画出其曲线。
(2)若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。 (1)matlab源程序如下; t=-pi:0.1:pi; %t的取值范围 a=1;n=1;%a=1,n=1 x=sin(t);%x的表达
y=sin(n*t+a); %y的表达式
subplot(221),plot(x,y)%在子图第一张,画出图像
hold on保持figure不关闭 t=-pi:0.1:pi; %t的取值范围 a=1;n=2; %a=1,n=2 x=sin(t);%x的表达式
y=sin(n*t+a); %y的表达式
subplot(222),plot(x,y) %在子图的第二张画出图像 hold on %保持figure不关闭 t=-pi:0.1:pi; %t的取值范围 a=1;n=3; %a=1,n=3 x=sin(t); %x的表达式
y=sin(n*t+a); %y的表达式
subplot(223),plot(x,y);%在子图的第三张,画出图像 hold on %保持figure不关闭 t=-pi:0.1:pi; %t的取值范围 a=1;n=4; %a=1,n=4 x=sin(t); %x的表达式
y=sin(n*t+a); %y的表达式
subplot(224),plot(x,y) %在子图的第四张上
五、程序填空和改错(每空5分,共20)
1:抛物线的方程为y?ax2?cx,输入c后,绘制该曲线,寻找曲线的最小值和对应的x值。小明编写程序如下: clc;clear;close all; c=input('c='); a=1;
x=-2:0.1:2;
xnum=length(x) or xnum=size(x,2);%(1)对变量xnum赋为数组x的个数 y=zeros(1,xnum);
y=a*x^2+c*x;→y=a*x.^2+c*x;%(2)按照函数形式对y赋值 figure;
plot(x,y) %(3)绘制曲线 xlabel('x');ylabel('y'); [ymin,Imin]=min(y);
xmin=x(ymin);→ xmin=x(Imin); %(4)找到最小函数值对应的x值
第五套
matlab期末考试试卷
考试时间:120分钟 考试分数:100分
一、填空题(每空1分,20分)
1、MATLAB常用操作界面包括、工作空间窗口、、、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。
2、MATLAB中Inf或inf表示、NaN或nan表示 、nargout表 示。
3、MATLAB中逗号主要用作;用作输入量与输入量之间的分隔符;。 4、工作空间浏览器主要用于内存变量的 、和 。
5、MATLAB实现将全下标转换为单下标的指令为、据单下标换算出全下标的指令为。
6、二维数组的标识有、、“逻辑1”标识。
7、在一个元胞数组A中寻访第2行第3列元胞元素用;寻访数组第 2行第3列元胞中的内容用。
8、MATLAB中clf用于清除、clc用于清除、clear用于清除MATLAB。
二、选择题(每题2分,20分)
1. 在matlab中_______用于括住字符串。 A., B.; C.‘’ D.“” 2.下列___D____是合法变量。
A. 1_1 B. a/b C.变量1 D. Eps
3.产生所有元素均为1的2行3列矩阵的命令是______。
A. ones(2,3) B.ones(3,2) C.eye(2,3) D.eye(3,2)
4.下列哪个变量的定义是不合法的 A. abcd-3 B. xyz_3 C. abcdef D. x3yz
?1234??,若要产生a的一个子矩阵?34?,则下 23455.已知数组a=??45???????9876??列命令中错误的是_____________。
A.a([1 2],[3 4]) B.a(1:2,3:end) C.a(linspace(1,2,2),3:4) D.a(:,:)
6.下面的程序执行后array的值为_____________。
for k=1:10 if k>6 break; else
array(k) = k; end end
A.array = [1, 2, 3, 4, 5, 6] B).array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
C.array =6 D.array =10.
7.在循环结构中跳出循环,但继续下次循环的命令为_________。
A.return; B. break ; C. continue ; D.keyboad
8.图形窗口(Figure)显示网格的命令是_____________。 A. axis on B. grid on C. box on D. hold on
9.已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为 ____。 A.a' *b B.a .*b C. a*b D. a-b
10.运行如下程序后, 命令窗口(command windows)显示的结果为__。 A=[13,-56,78; 25,63,-735; 78,25,563; 1,0,-1]; y=max(max(A))
A.y=564 B.y=9 C.y=-735 D.y=563 三、阅读程序并回答问题(每题4分,共28分)
1、写出下列指令运行结果。
A=[1,2,3;4:6;7:9]; C=[A;[10,11,12]], D=C(1:3,[2 3]) E=C(2,[1 2])
2、写出下列指令运行结果。
A=reshape(1:16,2,8) reshape(A,4,4)
s=[1 3 6 8 9 11 14 16]; A(s)=0
3、写出下列指令运行结果。 A=[1,2;3,4]; B=[-1,-2;2;1]; S=3; A.*B A*B S.*A S*B
4、下面的函数主要完成什么功能? function f=factor(n) if n<=1 f=1; else
f=factor(n-1)*n; end
5、写出下列指令运行结果。 ch=‘ABc123d4e56Fg9’; subch=ch(1:5) revch=ch(end:-1:1)
k=find(ch>=‘a’&ch<=‘z’); ch(k)=ch(k)-(‘a’-‘A’); char(ch)
6、写出下列指令运行结果。 A(1,1)={'this is cell'};