社会实践期末考试试题
云南大学2012至2013学年上学期
《科学计算实践》期末考试(上机)试卷A卷
满分100分考试时间:120分钟任课教师:李波
学院:信息学院专业:通信工程学号:20111130168 姓名:李刚
考试说明:
(1)提交的试卷的文件名称是姓名_学号.doc。
(2)确认word菜单栏中有notebook选项,如果没有,请启动Matlab,并在指令窗口中输入notebook –setup指令,在菜单中输入3;然后再输入notebook指令。
最后在启动的word中打开本文档。
(3)对于本文档中出现的需要用matlab计算的指令,先执行notebook-Define Input Cell菜单项,然后执行notebook-Evaluate cell菜单项。
(4)指令执行过程中如果出现错误,请检查是否存在拼写或者使用中文标点的错误。
(5)要求将所有的代码和运行结果都放在本Word文档中。
(6)只有试卷已经被确认提交之后,才能够关闭电脑和离开教室。
(7)请注意在考试过程中保存中间结果,以免因电脑死机等原因导致的意外。
一、单项选择题(本题共10个小题,每题3分,共30分)
1.在MATLAB命令窗口中,要了解当前工作空间中所有变量的详细情况应该使用下面的哪一条命令()
A)help whos;B)whos;C)help who;D)who
2.在MATLAB命令窗口中键入两条命令:;和A(1,:)*A(:,3),屏幕将显示的结果会是下面的()所对应的数据
A)30;B)36;C)42;D)15
3.用MATLAB随机产生一个10到100的正整数,应该使用下面的哪一条命令
A)10+fix(90*rand);B)10+fix(101*rand);C)10+fix(100*rand);D)10+fix(91*rand)
4.在MATLAB中程序或语句的执行结果都可以用不同格式显示,format是用于控制数据输出格式命令。将数据结果显示为15位浮点格式的形式,用下面的哪一命令()
A)format long;B)format long e;C)format bank;D)fromat rat
5.利用赋值语句和表达式可完成某些复杂计算,例如在MATLAB命令窗口中键入命令,Vname=sum(2.^[0:63])/(4.0e+10),可计算出对应的数据,在这一语句中如果省略了变量名Vname及等号,MATLAB将用缺省变量名()显示计算结果
A)eps;B)ans;C)NaN;D)pi
6.正确表达命题A和B都大于C的逻辑表达式应该用下面哪一行()
A) A > C; B) B>C; C) A >C & B >C; D) A >C | B >C;
7.如果已输入方阵A的数据,在MATLAB中用命令()可计算出A的行列式的值
A)det(A);B)eig(A);C)inv(A);D)diag(A)
8 在二维图形绘制指令中,用于绘制阶梯图的指令是()
9 在数值积分过程中,可以实现计算精度可控的积分指令是()
A)trapz;B)quad;C)sum;D)fminbnd
10 在常用逻辑函数中,可用于进行判断一个矩阵是否为空阵的指令是()A)all;B)false;C)isempty;D)isfinite
二、计算题,写出完整的计算步骤。(本题共4个小题,每题5分,共20分)
1用符号计算方法求函数
n
y x
=的一阶导数。
syms x n >> y=x^n; >> df=diff(y)
df =
x^n*n/x
2求符号矩阵
?
?
?
?
?
?
?
?
?
?
=
33
32
31
23
22
21
13
12
11
a
a
a
a
a
a
a
a
a
A
的行列式值和逆。
syms a11 a12 a13 a21 a22 a23 a31 a32 a33 >> A=[a11,a12,a13;a21,a22,a23;a31,a32,a33]
A =
[ a11, a12, a13]
[ a21, a22, a23]
[ a31, a32, a33]
>> DA=det(A)
a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22
>> IA=inv(A)
IA =
[ (a22*a33-a23*a32)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13* a22),
-(a12*a33-a13*a32)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a2 2),
(a12*a23-a13*a22)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22 )]
[ -(a21*a33-a23*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a 22),
(a11*a33-a13*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22 ),
-(a11*a23-a13*a21)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a2 2)]
[ (a21*a32-a22*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13* a22),
-(a11*a32-a12*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a2 2),
(a11*a22-a12*a21)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22 )]
3计算复数数组A=
1742
2437
i i
i i
--
??
??
--
??的实部、虚部和模。
A=[1-7*i,4-2*i;2-4*i,3-7*i];
real_A =
1 4
2 3
>> image_A=imag(A) image_A =
-7 -2
-4 -7
>> magnitude_A=abs(A) magnitude_A =
7.0711 4.4721
4.4721 7.6158
4求一阶微分方程
2,(0)2
x at bt x
=+=
'的解。
syms a b t
>> x=dsolve('Dx=a*t^2+b*t','x(0)=2','t')
x =
1/3*a*t^3+1/2*b*t^2+2
三、应用题,请根据题目要求完成相应功能。(本题共2个小题,每题10分,共20分)1已知函数文件charray.m和mydemo.m分别如下
Charray.m函数文件如下:
elseif nargin==2
fout=a-b;
elseif nargin==3
fout=(a*b*c)/rand(1);
end
Mydemo.m文件如下:
x=[2:4]; y=[1;2;3];
a=charray(x)
b=charray(x,y')
c=charray(x,y,3)
请在matlab中编辑出上述两个文件,然后分别给出a,b和c的运行结果。
a =
2 3 4
b =
1 1 1
c =
67.3175
2、先运行指令x=-3*pi:pi/15:3*pi; y=x; [X,Y]=meshgrid(x,y); warning off; Z=sin(X).*sin(Y)./X./Y; 产生矩阵Z。
x=-3*pi:pi/15:3*pi; y=x;
>> [X,Y]=meshgrid(x,y); % X=ones(size(y))*x;Y=y*ones(size(x)); >> warning off;
>> Z=sin(X).*sin(Y)./X./Y; >> surf(X,Y ,Z); shading interp
-10
10
10
-0.50
0.5
1
图形有裂缝
x=-3*pi:pi/15:3*pi;y=x';
>> [X,Y]=meshgrid(x,y); % X=ones(size(y))*x;Y=y*ones(size(x)); >> X=X+(X==0)*eps; >> Y=Y+(Y==0)*eps; >> Z=sin(X).*sin(Y)./X./Y; >> surf(X,Y ,Z);shading interp
-10
10
四、计算和程序设计题。(本题共3个小题,每题10分,共30分) 1、
求[1,100]之间能够被17整除的所有整数。
i=1:100;
T=(rem(i,17)==0); i(T)
ans = 17 34 51 68 85
2 x=rand(1); 请分别写出用for 循环语句、while 循环语句和不使用循环的数值计算方法求解下面式子。
100
n
n o
k x ==∑
注意:不要显示计算的中间结果。 for 循环
x=rand(1);sum=1; tic >> for n=0:100
>>t=toc, sum
t =
118.5470
sum =
1.2874
while循环
x=rand(1); sum=1; n=0; tic
>> while n<=100
sum=sum+x; x=x*x; n=n+1; end
>> t=toc, sum
t =
27.6560
sum =
2.1294
数值计算方法
x=rand(1)
x =
0.4860
sum =
1.94546
t =
1.0620
3 已知x=[1,3,2,7,5,9,4,8,6,10],请给出一个程序将x中的元素按照从小到大的顺序排序。x=[1,3,2,7,5,9,4,8,6,10];
for i=9:(-1):1
for j=1:i
if x(j)>x(j+1)
k=x(j);
x(j)=x(j+1);
x(j+1)=k;
end
end
End
x
x = 1 2 3 4 5 6 7 8 9 10