云南大学2012至2013学年上学期 《科学计算实践》期末考试(上机)试卷A卷 满分100分 考试时间:120分钟 任课教师:李波 学院:信息学院 专业 :通信工程 学号:[1**********] 姓名:李刚
考试说明:
(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分)
n y =x 1 用符号计算方法求函数的一阶导数。
syms x n >> y=x^n; >> df=diff(y) df = x^n*n/x
⎡a 11
A =⎢⎢a 21
⎢⎣a 31
2 求符号矩阵
a 12a 22a 32
a 13⎤a 23⎥⎥a 33⎥⎦的行列式值和逆。
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*a22),
(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*a22),
(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*a22)]
[ (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*a22),
(a11*a22-a12*a21)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)]
⎡1-7i 4-2i ⎤⎢2-4i 3-7i ⎥⎣⎦
3 计算复数数组A=的实部、虚部和模。
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
2
4 求一阶微分方程x '=at +bt , x (0)=2的解。
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
1
0.5
-0.510
10
-10
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 循环语句和不使用循环的数值计算方法求解下面式子。
k =∑x n
n =o
100
注意:不要显示计算的中间结果。 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
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
云南大学2012至2013学年上学期 《科学计算实践》期末考试(上机)试卷A卷 满分100分 考试时间:120分钟 任课教师:李波 学院:信息学院 专业 :通信工程 学号:[1**********] 姓名:李刚
考试说明:
(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分)
n y =x 1 用符号计算方法求函数的一阶导数。
syms x n >> y=x^n; >> df=diff(y) df = x^n*n/x
⎡a 11
A =⎢⎢a 21
⎢⎣a 31
2 求符号矩阵
a 12a 22a 32
a 13⎤a 23⎥⎥a 33⎥⎦的行列式值和逆。
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*a22),
(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*a22),
(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*a22)]
[ (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*a22),
(a11*a22-a12*a21)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)]
⎡1-7i 4-2i ⎤⎢2-4i 3-7i ⎥⎣⎦
3 计算复数数组A=的实部、虚部和模。
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
2
4 求一阶微分方程x '=at +bt , x (0)=2的解。
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
1
0.5
-0.510
10
-10
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 循环语句和不使用循环的数值计算方法求解下面式子。
k =∑x n
n =o
100
注意:不要显示计算的中间结果。 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
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