MATLAB程序设计方案与应用第二版实验参考答案.docx
- 文档编号:9452057
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:33
- 大小:21.31KB
MATLAB程序设计方案与应用第二版实验参考答案.docx
《MATLAB程序设计方案与应用第二版实验参考答案.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计方案与应用第二版实验参考答案.docx(33页珍藏版)》请在冰豆网上搜索。
MATLAB程序设计方案与应用第二版实验参考答案
封面
作者:
PanHongliang
仅供个人学习
MATLAB程序设计与应用(第二版)实验参考答案
%实验一MATLAB运算基础
%第一题
%
(1)
z1=2*sin(85*pi/180)/(1+exp
(2))
%
(2)
x=[2,1+2i。
-0.45,5]。
z2=0.5*log(x+sqrt(1+x.^2))
%(3)
a=-3.0:
0.1:
3.0。
z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)
%(4)
t=0:
0.5:
2.5。
z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3)
%第二题
A=[1234-4。
34787。
3657]。
B=[13-1。
203。
3-27]。
A+6*B
A-B+eye(size(A))
A*B
A.*B
A^3
A.^3
A/B
B\A
[A,B]
[A([1,3],:
)。
B^2]
%第三题
A=[12345。
678910。
1112131415。
1617181920。
2122232425]
B=[3016。
17-69。
023-4。
970。
41311]
C=A*B
F=size(C)
D=C(F
(1)-2:
F
(1),F
(2)-1:
F
(2))
whos
%第四题
%
(1):
A=100:
999。
B=rem(A,21)。
C=length(find(B==0))
%
(2):
A='lsdhKSDLKklsdkl'。
k=find(A>='A'&A<='Z')。
A(k)=[]
%实验二MATLAB矩阵分析与处理
%第一题
E=eye(3)。
R=rand(3,2)。
O=zeros(2,3)。
S=diag([2,3])。
A=[E,R。
O,S]。
A^2
B=[E,(R+R*S)。
O,S^2]
%第二题
H=hilb(5)
P=pascal(5)
Hh=det(H)
Hp=det(P)
Th=cond(H)
Tp=cond(P)
%第三题:
A=fix(10*rand(5))
H=det(A)
Trace=trace(A)
Rank=rank(A)
Norm=norm(A)
%第四题:
A=[-29,6,18。
20,5,12。
-8,8,5]
[V,D]=eig(A)
%数学意义略
%第五题方法一:
%
(1):
A=[1/2,1/3,1/4。
1/3,1/4,1/5。
1/4,1/5,1/6]。
b=[0.95,0.67,0.52]'。
x=inv(A)*b
%
(2):
B=[0.95,0.67,0.53]'。
x=inv(A)*B
%(3):
cond(A)
%第五题方法二:
A=hilb(4)
A(:
1)=[]
A(4,:
)=[]
B=[0.95,0.67,0.52]'。
X=inv(A)*B
B1=[0.95,0.67,0.53]'。
X1=inv(A)*B1
N=cond(B)
N1=cond(B1)
Na=cond(A)%矩阵A为病态矩阵
%第六题
A=[1,4,9。
16,25,36。
49,64,81]
B=sqrtm(A)
C=sqrt(A)%sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算
%实验三选择程序结构设计
%第一题程序一
x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]。
y=[]。
%建立存放所有y值的矩阵
forx0=x
ifx0<0&x0~=-3
y=[y,x0*x0+x0-6]。
elseifx0>=0&x0<5&x0~=2&x0~=3
y=[y,x0*x0-5*x0+6]。
else
y=[y,x0*x0-x0-1]。
end
end
x%输出所有x
y%输出所有y
%第一题程序二
x=[-5,-3,1,2,2.5,3,5]。
y=[]。
fora=1:
7
ifx(a)<0&x(a)~=-3
y=[y,(x(a))^2+x(a)-6]。
elseifx(a)>=0&x(a)<5&x(a)~=2&x(a)~=3
y=[y,(x(a))^2-5*x(a)+6]。
else
y=[y,x(a)*x(a)-x(a)-1]。
end
end
%第二题程序一:
x=input('请输入一个百分制成绩:
')。
ifx>100|x<0
disp('您输入的成绩不是百分制成绩,请重新输入。
')。
else
ifx<=100&x>=90
disp('A')。
elseifx<=89&x>=80
disp('B')。
elseifx<=79&x>=70
disp('C')。
elseifx<=69&x>60
disp('D')。
else
disp('E')。
end
end
%第二题程序二:
s=input('请输入一个成绩(0分到100分之间):
')。
%s用于存放成绩
while1%判断输入成绩的合理性
ifs<0|s>100
disp('输入的成绩需在0到100之间,请重新输入:
')
s=input('请输入一个成绩(0分到100分之间):
')。
else
break。
end
end
switchfix(s/10)%对成绩做出等级判断
case{9,10}
disp('A')
case8
disp('B')
case7
disp('C')
case6
disp('D')
otherwise
disp('E')
end
%第三题
n=input('请输入员工工号:
')。
h=input('该员工工作时数是:
')。
ifh>120
x=(h-120)*84*(1+0.15)+120*84。
elseifh<60
x=h*84-700。
else
x=h*84。
end
disp([num2str(n),'号员工','的应发工资为',num2str(x)])。
%第四题(还可以用switch语句实现)
a=fix(10+(99-10)*rand(1,2))%产生两个随机整数
x=a
(1)。
y=a
(2)。
t=input('请输入运算符号:
','s')。
ift=='+'
z=x+y。
elseift=='-'
z=x-y。
elseift=='*'
z=x*y。
elseift=='/'
z=x/y。
end
disp([num2str(x),t,num2str(y),'=',num2str(z)])%输出运算结果
%第五题
a=rand(5,6)%产生5x6的随机矩阵
n=input('请输入您要输出矩阵的第几行:
')。
ifn>5
disp('超出了矩阵的行数,矩阵的最后一行为:
')
a(5,:
)
else
disp(['矩阵的第',num2str(n),'行为:
'])
a(n,:
)
end
%实验四循环结构程序设计
%第一题程序一
s=0。
n=input('n=?
')。
fori=1:
n
s=s+1/i/i。
end
PI=sqrt(6*s)
pi
%第一题程序二
n=input('n=?
')。
a=1:
n。
b=1./a.^2。
PI=sqrt(6*sum(b))
pi
%第二题
y=0。
n=1。
while(y<3)
y=y+1/(2*n-1)。
n=n+1。
end
y=y-1/(2*(n-1)-1)
n=n-2
%第三题
a=input('a=?
')。
b=input('b=?
')。
Xn=1。
Xn1=a/(b+Xn)。
n=0。
whileabs(Xn1-Xn)>1e-5
Xn=Xn1。
Xn1=a/(b+Xn)。
n=n+1。
ifn==500
break。
end
end
n
Xn1
r1=(-b+sqrt(b*b+4*a))/2
r2=(-b-sqrt(b*b+4*a))/2
%第四题
fori=1:
100
ifi==1
f(i)=1。
elseifi==2
f(i)=0。
elseifi==3
f(i)=1。
else
f(i)=f(i-1)-2*f(i-2)+f(i-3)。
end
end
max(f)
min(f)
sum(f)
length(find(f>0))
length(find(f==0))
length(find(f<0))
%第五题:
s=0。
n=0。
fori=2:
49
b=i*(i+1)-1。
m=fix(sqrt(b))。
forj=2:
m
ifrem(b,j)==0
break
end
end
ifj==m
n=n+1。
s=s+b。
end
end
n
s
%实验五函数文件
%第一题
functiony=mat1(x)%建立函数文件mat1.m
y=[exp(x),log(x),sin(x),cos(x)]。
%在命令窗口调用上述函数文件:
y=mat1(1+i)
%第二题程序一
function[a,b,N,M]=shiyanwu2(m,n,t)
A=[m*cos(t*pi/180),-m,-sin(t*pi/180),0。
m*sin(t*pi/180),0,cos(t*pi/180),0。
0,n,-sin(t*pi/180),0。
0,0,-cos(t*pi/180),1]。
B=[0,9.8*m,0,9.8*n]。
C=inv(A)*B'。
a=C
(1)。
b=C
(2)。
N=C(3)。
M=C(4)。
%在命令窗口调用该函数文件:
m1=input('m1=')。
m2=input('m2=')。
theta=input('theta=')。
[a1,a2,N1,N2]=shiyanwu2(m1,m2,theta)
%第二题程序二
functionX=mat2(m1,m2,t)
g=9.8。
A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0。
m1*sin(t*pi/180),0,cos(t*pi/180),0。
0,m2,-sin(t*pi/180),0。
0,0,-cos(t*pi/180),1]。
B=[0。
m1*g。
0。
m2*g]。
X=inv(A)*B。
%在命令窗口调用该函数文件:
X=mat2(1,1,60)
%第三题
functionflag=mat3(x)
flag=1。
fori=2:
sqrt(x)
ifrem(x,i)==0
flag=0。
break。
end
end
%在命令窗口调用该函数文件:
fori=10:
99
j=10*rem(i,10)+fix(i/10)。
ifmat3(i)&mat3(j)
disp(i)
end
end
%第四题
functiony=fx(x)
y=1./((x-2).^2+0.1)+1./((x-3).^4+0.01)。
%在命令窗口调用该函数文件:
y=fx
(2)
a=[1,2。
3,4]。
y=fx(a)
%第五题
%
(1)
functionf1=mat5(n)
f1=n+10*log(n*n+5)。
%在命令窗口中调用该函数文件:
y=mat5(40)/(mat5(30)+mat5(20))
%
(2)方法一
functionf2=mat6(n)
f2=0。
fori=1:
n
f2=f2+i*(i+1)。
end
%在命令窗口中调用该函数文件如:
y=mat6(40)/(mat6(30)+mat6(20))
%
(2)方法二
functionf2=mat7(n)
i=1:
n。
m=i.*(i+1)。
f2=sum(m)。
end
%在命令窗口中调用该函数文件如:
y=mat7(40)/(mat7(30)+mat7(20))
%实验六高层绘图操作
%第一题:
x=linspace(0,2*pi,101)。
y=(0.5+3*sin(x)./(1+x.^2)).*cos(x)。
plot(x,y)
%第二题:
%
(1)
x=linspace(-2*pi,2*pi,100)。
y1=x.^2。
y2=cos(2*x)。
y3=y1.*y2。
plot(x,y1,'b-',x,y2,'r:
',x,y3,'y--')。
text(4,16,'\leftarrowy1=x^2')。
text(6*pi/4,-1,'\downarrowy2=cos(2*x)')。
text(-1.5*pi,-2.25*pi*pi,'\uparrowy3=y1*y2')。
%
(2)
x=linspace(-2*pi,2*pi,100)。
y1=x.^2。
y2=cos(2*x)。
y3=y1.*y2。
subplot(1,3,1)。
%分区
plot(x,y1)。
title('y1=x^2')。
%设置标题
subplot(1,3,2)。
plot(x,y2)。
title('y2=cos(2*x)')。
subplot(1,3,3)。
plot(x,y3)。
title('y3=x^2*cos(2*x)')。
%(3)
x=linspace(-2*pi,2*pi,20)。
y1=x.^2。
subplot(2,2,1)。
%分区
bar(x,y1)。
title('y1=x^2的条形图')。
%设置标题
subplot(2,2,2)。
stairs(x,y1)。
title('y1=x^2的阶梯图')。
subplot(2,2,3)。
stem(x,y1)。
title('y1=x^2的杆图')。
subplot(2,2,4)。
fill(x,y1,'r')。
%如果少了'r'则会出错
title('y1=x^2的填充图')。
%其他的函数照样做。
%第三题
x=-5:
0.01:
5。
y=[]。
%起始设y为空向量
forx0=x
ifx0<=0%不能写成x0=<0
y=[y,(x0+sqrt(pi))/exp
(2)]。
%将x对应的函数值放到y中
else
y=[y,0.5*log(x0+sqrt(1+x0^2))]。
end
end
plot(x,y)
%第四题:
a=input('a=')。
b=input('b=')。
n=input('n=')。
t=-2*pi:
0.01:
2*pi。
r=a*sin(b+n*t)。
polar(t,r)
%第五题
x=linspace(-5,5,21)。
y=linspace(0,10,31)。
[x,y]=meshgrid(x,y)。
%在[-5,5]*[0,10]的范围内生成网格坐标
z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4)。
subplot(2,1,1)。
surf(x,y,z)。
subplot(2,1,2)。
contour3(x,y,z,50)。
%其中50为高度的等级数,越大越密
%第六题
ezsurf('cos(s)*cos(t)','cos(s)*sin(t)','sin(s)',[0,0.5*pi,0,1.5*pi])。
%利用ezsurf隐函数
shadinginterp%进行插值着色处理
%实验七低层绘图操作
%第一题
h=figure('MenuBar','figure','color','r','WindowButtonDownFcn','disp(''LeftButtonPressed'')')
%第二题
x=-2:
0.01:
2。
y=x.^2.*exp(2*x)。
h=line(x,y)。
set(h,'color','r','linestyle',':
','linewidth',2)
text(1,exp
(2),'y=x^2*exp(2*x)')
%第三题
t=0:
0.00001:
0.001。
[t,x]=meshgrid(t)。
v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi)。
axes('view',[-37.5,30])。
h=surface(t,x,v)。
title('v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi)')。
xlabel(Ct'),ylabel('x'),zlabel('v')
%第四题
x=0:
0.01:
2*pi。
y1=sin(x)。
y2=cos(x)。
y3=tan(x)。
y4=cot(x)。
subplot(2,2,1)。
plot(x,y1)。
subplot(2,2,2)。
plot(x,y2)。
subplot(2,2,3)。
plot(x,y3)。
subplot(2,2,4)。
plot(x,y4)。
%第五题
cylinder(5)。
light('Position',[0,1,1])。
materialshiny
%实验八数据处理与多项式运算
%第一题
%
(1)
A=rand(1,30000)。
b=mean(A)
std(A,0,2)
%
(2)
max(A)
min(A)
%(3)
n=0。
fori=1:
30000
ifA(i)>0.5
n=n+1。
end
end
p=n/30000
%第二题
%
(1)
A=45+51*rand(100,5)。
[Y,U]=max(A)
[a,b]=min(A)
%
(2)
m=mean(A)
s=std(A)
%(3)
sum(A,2)
[Y,U]=max(ans)
[a,b]=min(ans)
%(4)
[zcj,xsxh]=sort(ans)
%第三题
h=6:
2:
18。
x=6.5:
2:
17.5。
t1=[18,20,22,25,30,28,24]。
t2=[15,19,24,28,34,32,30]。
T1=spline(h,t1,x)
T2=spline(h,t2,x)
%第四题
x=1:
0.1:
101。
y1=log10(x)。
p=polyfit(x,y1,5)
y2=polyval(p,x)。
plot(x,y1,':
',x,y2,'-')
%第五题
%
(1)
p1=[1,2,4,0,5]。
p2=[1,2]。
p3=[1,2,3]。
p=p1+[0,conv(p2,p3)]%为使两向量大小相同,所以补0
%
(2)
A=roots(p)
%(3)
A=[-1,1.2,-1.4。
0.75,2,3.5。
0,5,2.5]。
polyval(p,A)
%(4)
polyvalm(p,A)
实验十
程序:
x=sym('6')。
y=sym('5')。
z=(x+1)/(sqrt(3+x)-sqrt(y))
1、分解因式
(1)
程序:
symsxy。
A=x^4-y^4。
factor(A)
(2)
程序:
factor(sym('5135'))
3、化简表达式
(1)
程序:
symsbeta1beta2
y=sin(beta1)*cos(beta2)-cos(beta1)*sin(beta2)
simple(y)
(2)
程序:
symsx
y=(4*x^2+8*x+3)/(2*x+1)
simple(y)
5、用符号方法求下列极限或导数
(1)
程序:
symsx
f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(sin(x))
limit(f)
(2)
程序:
symsx
y=(sqrt(pi)-sqrt(acos(x)))/(sqrt(x+1))。
limit(f,x,-1,'right')
(3)
程序:
symsx
y=(1-cos(2*x))/x。
y1=diff(y)
y2=diff(y,x,2)
6、用符号方法求下列积分
(1)
程序:
symsx
f=1/(1+x^4+x^8)
int(f)
(2)
程序:
symsx
f=1/(((asin(x))^2)*sqrt(1-x^2))
int(f)
(3)
程序:
symsx
f=(x^2+1)/(x^4+1)
int(f,x,0,inf)
(4)
程序:
symsx
f=exp(x)*(1+exp(x))^2
y=int(f,x,0,log
(2))
double(y)
0
0
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.
用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebythe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 方案 应用 第二 实验 参考答案