MATLAB课后题答案整理.docx
《MATLAB课后题答案整理.docx》由会员分享,可在线阅读,更多相关《MATLAB课后题答案整理.docx(14页珍藏版)》请在冰豆网上搜索。
![MATLAB课后题答案整理.docx](https://file1.bdocx.com/fileroot1/2022-12/30/98bce6cc-4748-49ec-a56c-076c9e764465/98bce6cc-4748-49ec-a56c-076c9e7644651.gif)
MATLAB课后题答案整理
第一章
1.利用MATLAB的帮助功能分别查询inv、plot、max、round等函数的功能及用法。
Help+函数
2.简述MATLAB的主要功能。
①数值计算和符号计算功能。
②绘图功能。
③编程语言功能。
④扩展功能。
3.help命令和lookfor命令有何区别?
Help命令只搜索出那些与关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。
Lookfor命令只对M文件的第一行进行关键字搜索。
若在lookfor命令后加上-all选项,则可对M文件进行全文搜索。
第二章1
(1)
w=sqrt
(2)*(1+0.34245*10^(-6))w=1.4142
(2)
,其中a=3.5,b=5,c=-9.8。
a=3.5;b=5;c=-9.8;x=(2*pi*a+(b+c)/(pi+a*b*c)-exp
(2))/(tan(b+c)+a)x=0.9829
(3)
,其中α=3.32,β=-7.9。
a=3.32;b=-7.9;y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a)y=-128.4271
(4)
,其中t=
。
t=[2,1-3i;5,-0.65];z=0.5*exp(2*t)*log(t+sqrt(1+t.*t))z=1.0e+004*
0.0048+0.0002i0.0048-0.0034i
1.58992.0090-1.3580i
2.已知
求下列表达式的值。
(1)
和
。
(2)
、
和
。
(3)A/B及B\A。
(4)[A,B]和[A([1,3],:
);B^2]。
输入矩阵A和B:
A=[-15-4;078;3617];>>B=[83-1;253;-320];
分别输入A+6*B,A^2-B+eye(size(A)),A*B,A.*B,B*A,A/B,B\A,[A,B],[A([1,3],:
);B^2]这些表达式,回车求值。
3.已知
。
(1)输出A在[10,25]范围内的全部元素。
(2)取出A前3行构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成矩阵D,B与C的乘积构成矩阵E。
(3)分别求表达式E输入矩阵A:
A=[2310-0.7780;41-45655;325032;6-9.54543.14];
取出矩阵A的前3行构成矩阵B:
>>B=A(1:
3,:
)
取出矩阵A的前2列构成矩阵C:
>>C=A(:
1:
2)
矩阵A的右下角3x2子矩阵构成矩阵D:
>>D=A(2:
4,3:
4)
B与C的乘机构成矩阵E:
>>E=B*C
分别输入式E=0&A<25)回车求值:
4.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好,why?
H=hilb(5);P=pascal(5);Hh=det(H)Hh=3.7493e-012
Hp=det(P)Hp=1
Th=cond(H)Th=4.7661e+005
Tp=cond(P)Tp=8.5175e+003
条件数越趋近于1,矩阵的性能越好,所以帕斯卡矩阵性能更好。
5.已知:
求A的特征值及特征向量,并分析其数学意义。
A=[-29,6,18;20,5,12;-8,8,5]
A=
-29618
20512
-885
[V,D]=eig(A)
V=
0.71300.28030.2733
-0.6084-0.78670.8725
0.34870.55010.4050
D=
-25.316900
0-10.51820
0016.8351
V为A的特征向量,D为A的特征值。
它们之间满足A*V=V*D
6.写出完成下列操作的命令。
(1)删除矩阵A的第7号元素。
(2)将向量t的0元素用机器零来代替。
(3)将含有12个元素的向量x转换成3*4的矩阵。
(4)求一个字符串的ASCII。
(5)产生和A同样大小的幺矩阵。
(6)从矩阵A提取主对角线元素,并以这些元素构成对角阵B。
(1)A(7)=[]
(2)abs(x)(3)reshape(x,3,4)(4)k=find(t==0);t(k)=0(5)ones(size(A))(6)diag(A)
B=diag(diag(A))
7.要产生均值为3,方差为1的500个正态分布的随即序列,写出相应的表达式。
3+randn(25,20)
8.求下列矩阵的主对角元素、上三角矩阵、下三角矩阵、逆矩阵、行列式的值、秩、范数、条件数、迹。
(1)
(2)
输入矩阵A和B:
A=[1-123;51-42;3052;111509];>>B=[0.43432;-8.9421];
求矩阵A的主对角元素:
>>diag(A)求矩阵B的主对角元素:
>>diag(B)
求矩阵A的上三角阵:
>>triu(A)求矩阵B的上三角阵:
>>triu(B)
求矩阵A的下三角阵:
>>tril(A)求矩阵B的下三角阵:
>>tril(B)
求矩阵A的逆矩阵:
>>inv(A)求矩阵B的伪逆矩阵:
>>pinv(B)
求矩阵A的行列式的值:
>>det(A)
因为B不是方阵,无法求它的行列式的值。
求矩阵A的秩:
>>rank(A)求矩阵B的秩:
>>rank(B)
求矩阵A的迹:
>>trace(A)求矩阵B的迹:
>>trace(B)
三种方式求矩阵A的范数:
>>norm(A)>>norm(A,1)>>norm(A,inf)
三种方式求矩阵B的范数:
>>norm(B,inf)>>norm(B,1)>>norm(B)
三种方式求矩阵A的条件数:
>>cond(A,1)>>cond(A)>>cond(A,2)>>cond(A,inf)
三种方式求矩阵B的条件(但有两种错误无法求出):
>>cond(B,inf)
?
?
?
Errorusing==>cond
Aisrectangular.Usethe2norm.
>>cond(B)>>cond(B,1)
?
?
?
Errorusing==>cond
Aisrectangular.Usethe2norm.
>>cond(B,2)
9.在MATLAB中如何建立结构矩阵和单元矩阵?
结构矩阵建立P46结构矩阵名.成员名=表达式单元矩阵建立P47矩阵元素用大括号括起来。
第三章
1.从键盘输入一个3位整数,将它反向输出。
如输入639,输出为936.
n=input('请输入一个三位数:
');a=fix(n/100);b=fix((n-a*100)/10);c=n-a*100-b*10;d=c*100+b*10+a
2.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分一下为E。
要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(1)n=input('请输入成绩');
switchn
casenum2cell(90:
100)
p='A';
casenum2cell(80:
89)
p='B';
casenum2cell(70:
79)
p='C';
casenum2cell(60:
69)
p='D';
otherwise
p='E';
end
price=p
(2)n=input('请输入成绩');
ifn>=90&n<=100
p='A';
elseifn>=80&n<=89
p='B';
elseifn>=70&n<=79
p='C';
elseifn>=60&n<=69
p='D';
else
p='E';
end
price=p
(3)try
n;
catch
price='erroe'
End
m=input('请输入一个百分制的成绩:
');
ifm>=0&m<=100
switchfix(m/10)
case{9,10}
disp('这个成绩所属的成绩等级:
A');
case{8}
disp('这个成绩所属的成绩等级:
B');
case{7}
disp('这个成绩所属的成绩等级:
C');
case{6}
disp('这个成绩所属的成绩等级:
D');
otherwise
disp('这个成绩所属的成绩等级:
E');
end
else
disp('错误:
输入的成绩不合理');
End
3.当n分别取100、1000、10000时,求下列各式的值:
(1)
(1)A=0;n=100fori=1:
nA=1/n/n+A;end
(2)
(2)A=1;n=10000;fori=1:
nA=(2*n*n*2)/((2*n-1)*(2*n+1))*A;end
4.已知
(1)当
时,y的值是多少?
(2)当
时,要的值是多少?
f1.m代码如下:
functionm=f1(n)
m=n+10*log(n^2+5);
f2.m代码如下:
functionm=f2(n)
m=0;
fori=1:
n
m=m+i*(i+1);
end
然后在命令文件p3_11.m中调用f1.m和f2.m
p3_11.m代码如下:
y1=f1(40)/(f1(30)+f1(20));
y2=f2(40)/(f2(30)+f2(20));
y1
y2
5.先用函数的递归调用定义一个函数文件求
,然后调用该函数文件求
。
函数文件factor1.m代码如下:
functionf=factor1(k)
ifk==1
f=1;
else
f=factor1(k-1)+k;
end
函数文件factor2.m代码如下:
functionf=factor2(k)
ifk==1
f=1;
else
f=factor2(k-1)+^2;
end
函数文件factor3.m代码如下:
functionf=factor3(k)
ifk==1
f=1;
else
f=factor3(k-1)+1/k;
End
6.编写程序,建立向量N=[1,2,3,4,5],然后利用向量N产生下列向量:
(1)2,4,6,8,10
(2)1/2,1,3/2,2,5/2(3)1,1/2,1/3,1/4,1/5(4)1,1/4,1/9,1/16,1/25
N=[1,2,3,4,5]A=N.*2B=N./4C=1./ND=1./(N./2)./(N./2)/4
7.编写程序,产生20个两位随即整数,输出其中小于平均值的偶数。
B=0
fori=1:
20
A(i)=fix((99-10+1)*rand
(1)+10);
B=A(i)+B;
end
B=B/20
fori=1:
20
ifA(i)
A(i)
end
End
8.当n分别取100、1000、10000时,求下列各式的值:
(1)
(2)
要求分别用循环结构和向量运算(使用sum函数)
(1)
A=1
fori=2:
100
A=(-1)^(i+1)*1/(2*n-1)+A;
end
A
(2)
A=0
fori=1:
1000
A=1/((4)^i)+A;
end
A
9.编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。
function[m,n]=chengji(A,B)
m=A.*B;
n=A*B;
然后在命令文件p3_12.m中调用chengji.m文件
a=[123;456;789]
b=[-101;1-10;011]
[m,n]=chengji(a,b);
disp('a.*b=');
disp(m);
disp('a*b=');
disp(n);
第四章
1.绘制下列曲线:
(1)
(2)
(1)x=-12:
0.001:
12;
y=x-x.^3/6;
plot(x,y);
xlabel('x轴');
ylabel('y轴');
title('Y=X-X^3/3!
');
(2)ezplot('x^2+2*y^2-64',[-8,8,-8,8])
xlabel('x轴');
ylabel('y轴');
axisequal
title('x^2+2y^2=64');
2.
在同一图形窗口采用子图的形式绘制条形图、阶梯图、杆图和对数坐标图等不同图形,并对不同图形加标注说明。
t=-pi:
0.1:
pi;
y=1./(1+exp(-t));
plot(t,y);
subplot(2,2,1)
stairs(t,y)
subplot(2,2,2)
bar(t,y)
subplot(2,2,3)
stem(t,y)
subplot(2,2,4)
fill(t,y,'y')
3.绘制下列三维图形。
(1)
(2)
。
并着色
t=0:
pi/100:
2*pi;
x=exp(-t/20).*cos(t);
y=exp(-t/20).*sin(t);
z=t;
plot3(x,y,z)
(2)[x,y]=meshgrid(-5:
5);
z=ones(11);
surf(x,y,z);shadinginterp;
4.在统一坐标轴回话多条二维曲线有哪些方法?
方法有plot函数的输入参数是矩阵形式含多个输入参数的plot函数具有两个纵坐标标度的图形图形保持
5.绘制下列曲线:
(1)
(2)
(1)
x=1:
0.1:
10
a=exp((x.^2)/2)
y=a.*1/2/pi
plot(x,y)
(2)
t=-pi:
0.1:
2*pi
X=t.*sin(t)
Y=t.*cos(t)
plot(X,Y)
6.在统一坐标轴中绘制下列两条曲线并标注两曲线交叉点,
(1)
(2)
,
t=0:
0.00005:
pi;
x=sin(3*t).*cos(t);
y1=2*x-0.5;
y2=sin(3*t).*sin(t);
plot(x,y2,x,y1);
holdon
k=find(abs(y2-y1)<1e-4);
x1=x(k);
y3=2*x1-0.5;
plot(x1,y3,'rp')
7.绘制曲面图形:
(1)
(2)
。
[u,v]=meshgrid(-pi:
pi/100:
pi);
x=3*u.*sin(v);
y=2*u.*cos(v);
z=4*u.*u;
mesh(x,y,z);
(2)[x,y]=meshgrid(-3:
6/100:
3);
z=-5./(1+x.*x+y.*y);
mesh(x,y,z)
第五章
1.利用MATLAB提供的randn函数生成符合正态分布的10
5随即矩阵A,进行以下操作:
(1)A各列元素的均值和标准方差。
(2)A的最大元素和最小元素。
(3)求A每行元素的和以及全部元素之和。
(4)分别对A的没咧元素按升序、每行元素按降序排序。
1a=randn(10,5);
b=mean(a)
b=std(a,0,1)
b=max(a);
c=max(b,[],2)
b=min(a);
c=min(b,[],2)
b=sum(a)
c=sum(b,2)
sort(a)
sort(a,2,'descend')
2.利用MATLAB提供的randn函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
(1)均值和标准方差。
(2)最大元素和最小元素
(3)大于0.5的随机数个数占总数的百分比。
c=0
fori=1:
30000
a(i)=rand
(1);
ifa(i)>0.5
c=c+1;
end
end
b=mean(a)
b=std(a,0,2)
b=max(a)
b=min(a)
c/30000
3.将100个学生5门功课的成绩存入矩阵P中,进行一下处理:
(1)分别求每门课的最高分、最低分及相应学生序号。
(2)分别求每门课的平均分和标准方差。
(3)5门课总分的最高分、最低分及相应学生序号。
(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。
a=fix((100-0+1)*rand(5,100));
[b,c]=max(a,[],2)
[b,c]=min(a,[],2)
mean(a,2)
std(a,0,2)
[b,c]=sort(a,2,'descend')
zcj=sum(a,1)
xsxh=1:
100