学号 姓名
题号 | 一 | 二 | 三 | 四 | 五 | 六 | 总分 |
分数 |
1. help format
答:显示format函数的使用方法与功能。
2. ezplot('sin(t)','cos(t)')
答:绘制二维曲线,其中t的正弦函数值为X轴,t的余弦函数值为Y轴。
3. B={1:3,magic(3),'hello'}; celldisp(B)
答:建立1行3列单元矩阵B,并显示所有单元数据:为行向量, 为3阶魔方矩阵,为字符串。
4. student=struct('ming','Qiang','gao',170, 'zhong',56)
答:构造描述学生的结构性数组,其中该学生姓名:强;身高:170;体重:56。
5. [X,Y]=meshgrid([-2:0.5:2]);mesh(X,Y)
答:向量组XY等于在-2到2的区间上以0.5的长度为间隔的向量组,以此生成二维网格曲线。
二、写出能完成指定功能的语句或语句组(3×6=18分)
1. 求极限。
解:syms x;
f=exp(1/x);
limit(f,x,0,‘left’);
ans=
0
2. 求函数的关于的导数。
解:syms y x t;
f=exp(2x)-3t^3;
diff(f,t);
ans=
-9t^2
3.产生3阶魔方阵,并计算其行列式的值。
解:M=magic(3);
C=det(M)
如:
A= magic(3)
A =
8 1 6
3 5 7
4 9 2
det(A)
ans =
-360
4.求矩阵的特征值和特征向量。
解:A=[1,-1,0;-3,2,1;6,1,0];
[V,D]=eig(A,’nobance’)
V =
0.1588 0.2907 -0.3915
0.3956 -0.1909 0.7181
-0.9046 0.9376 -0.5754
D =
-1.4909 0 0
0 1.6566 0
0 0 2.8342
5.解方程组:
解:A=[1,2,1;2,1,-1;-1,1,1];
b=[1,2,3];
x=A\\b
x=
-3
4
-4
6.求积分
解:x=sym(‘x’);
f=x*Ln(x);
int(f)
ans=
(x^2*(log(x) - 1/2))/2
三、
1.描述下列函数的功能(5×2=10分)
(1)
function y=average(x);
[m,n]=size(x);
if(~((m==1)|(n==1))|(m==1 & n==1))
error('Input must be a vector')
end
y=sum(x)/length(x);
解:y函数的功能是:对于输入的m行n列矩阵x,判断其是否为行向量或列向量,不是,输出一条错误提示“必须输入一个向量”;是,输出向量x的元素的平均值。
(2)
[X,Y]=meshgrid([-4:0.5:4])
Z=sqrt(X.^2+Y.^2)
meshz(Z);
答:在xy平面内选择区域[-4,4],绘制函数
Z=
三维网格曲面图。
2.给下列程序加注释。写在%之后。(12分)
function shili01 %答:定义函数文件shili01。
x=-pi:0.05:pi; %答:-≤x≤。
y=sin(x); %答:y为x的正弦函数。
plot(x,y); %答:绘制分别以x横坐标、y为纵坐标的二维曲线。
xlabel('自变量X'); %答:x轴说明。
ylabel('函数值Y');
title('SIN( )函数曲线'); %答:函数曲线的图形名称。
grid on 答:加网格线。
四、写程序,完成指定任务(10×5=50分)
1.在同一图形窗口绘制函数
,,
并将图形标题定义为“三角函数”,在图形的右上角给出图例标注。
解:sym(x,y);
y1=sinx;
y2=cosx;
y3=y1+y3;
polt(x,y1,x,y2,x,y3)
title(‘三角函数‘);
legend(‘y1’,‘y2’,‘y3’,1)
2.编制一个函数shiti3。功能:如果调用时只提供一个输入变量,则求该输入变量的绝对值,如果有两个输入变量,则求两个变量的和。
解:function f=shiti3(x,y)
if nargin==1
f=abs(x);
elseif nargin==2
f=x+y
3.利用公式计算的近似值,直到最后一项绝对值小于。
解:
PI = 0;
i = 1;
while abs(1/i)>10^(-6)
PI = PI + 1/i;
i = -1*sign(i)*(abs(i)+2);
end
PI = 4*PI;
4.编函数计算函数 的值
x=input(‘请输入X的值:’);
if x<=0
y=2*x+1;
elseif 0<x<=1
y=exp(x);
elseif x>1
y=sqart(x+3)
end
y
5.随机生成10个整数,求出其最大值和最小值。
x=round(rand(1,10);
f1=max(x);
f2= min(x);
end
disp(f1);
disp(f2)
1、在matlab环境下有6个变量a、b、c、x、y和z,现欲将这6个变量全部保存到c:盘下avar.mat文件中,应如何实现?若仅将指定的变量x、y和z保存到c:盘下变量文件mvar.mat中应如何实现?若仅将c:盘下mvar.mat文件中的变量z加入到工作空间中应如何实现?(6分)
答:(1)save avar a b c x y z
(2)save c:\\avar x y z
(3)load c:\\avar z
2、现有5行7列的矩阵A,如何取出矩阵A中第2、3、4行的全部元素构造矩阵B?如何将矩阵A中的第3行和第4列的元素删除?(6分)
答:(1)B=A(2:4 , :);
(2)A(3:4 , :)=[];
3、如何将矩阵A的行数和列数分别保存到变量L和H中?如何生成向量1、3、5、……、97、99并保存到变量b中?(6分)
答:(1)[L , H] =size(A);
(2)b=1:2:99;
4、生成全0矩阵、全1矩阵和单位矩阵的函数分别是什么?(4分)
答:全0矩阵——zeros;全1矩阵——ones;单位矩阵——eye。
5、有矩阵A=[1,2,3;4,5,6]和矩阵B=[2,3,4;5,6,7],求A.*B的结果是多少?如何将4行6列的矩阵A转换成3行8列(8分)
答:(1)A=[1,2,3;4,5,6];B=[2,3,4;5,6,7]; A.*B (结果略去)
(2)reshape(A , 3 , 8) ;
6、如何计算矩阵A中值大于5的元素的个数?如何提取矩阵A中第2条对角线上的元素?矩阵A=[1,2,3;4,5,6],则A的转置矩阵?(9分)
答:k=find(A>5);
length(k); 答:triu(A , 2) 答:A’(结果略去)
7、用求逆矩阵的方法求下面线性方程组 :(5分) 8、有两个矩阵A和B,如何实现并判断两个矩阵的性能好坏?(5分)
x+2y+3z=5 答:可通过使用矩阵的条件数来判断矩阵的性能好坏。分别求得矩阵A
x+4y+9z=-2 B的条件数cond(A)和cond(B),他们之中的条件数更接近于1的矩阵性
x+8y+27z=6 能就越好。
答:A=[1,2,3 ; 1,4,9 ; 1,8,27 ];
B=[ 5 , 2 , 6 ]’ ; x=inv(A)*B
9、如何将未知长度的字符串向量a反向排列?如何将一个字符串a的内容当成命令来执行?(6分)
答:(1)a(end : -1 : 1);
(2) 使用函数eval(a)
10、求向量a的最大值、最小值、各元素的和、各元素的乘积、平均值、中值和标准方差,并对向量a的各元素值按降序排列后保存到变量b中。(10分)
答:(1)最大值——max(a), 最小值——min(a),各元素的和——sum(a),各元素的乘积——prod(a),
平均值——mean(a),中值——median(a),标准方差——std(a)
(2)b=sort(a)
11、分别用直接法、LU分解法和QR分解法求下面线性方程组。(15分)
2x1+x2-5x3+x4=13
x1-5x2+7x4=-9
2x2+x3-x4=6
x1+6x2-x3-4x4=0
答:(1)直接法:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; B=[13,9,6,0]'; x= A\\B
(2)LU分解法:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; B=[13,9,6,0]'; [L,U]=lu(A);x=U\\(L\\B)
(3)QR分解法:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; B=[13,9,6,0]'; [Q,R]=qr(A); x=R\\(Q\\B)
(结果略去)
12、建立5*6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,
自动转为输出矩阵最后一行元素,并给出错信息。要求n值从键盘输入。(输入input、输出disp)(10分)
答:A=[1,2,3,4,5,6;2,3,4,5,6,1;2,1,3,4,5,6;3,1,2,6,5,4;4,2,6,1,4,3];
n=input('你想查看矩阵哪一行元素n=');
if n>=1 & n<=5
disp(A(n,:))
else
disp(A(5,:))
disp('行数已超过!!!')
end
13、在0至2π区间内绘制二维曲线sin(x)cos(x),并给出图形名称、x轴和y轴说明、图形说明以及图例。(10分)
答:x=linspace(0,2*pi,100);
y=sin(x).*cos(x);
plot(x,y,'r:');
axis([0,2*pi,-0.6,0.6]);
xlabel('X轴');
ylabel('Y轴');
title('y=sinxcosx曲线图');
legend('曲线y');
text(pi/4,0.55,'波峰');
text(3*pi/4,-0.55,'波谷');
text(5*pi/4,0.55,'波峰');
text(7*pi/4,-0.55,'波谷');