MATLAB程序实验参考答案docWord格式文档下载.docx
《MATLAB程序实验参考答案docWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《MATLAB程序实验参考答案docWord格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
whos
%第四题
%
(1):
A=100:
999;
B=rem(A,21);
C=length(find(B==O))
%
(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];
AA2
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)
%数学意义略
%第味题方法一:
A=[l/2,l/3,l/4;
l/3,l/4,l/5;
l/4,l/5,l/6];
b=[0.95,0.67,0.52]*;
x=inv(A)*b
%⑵:
B=[0.95,0.67,0.53]'
x=inv(A)*B
%(3):
cond(A)
%第五题方法二:
A=hilb(4)
A(:
l)=[]
A(4,:
)=[]
B=[0.95,0.67,0.52]'
X=inv(A)*B
Bl=[0.95,0.67,0.53]'
Xl=inv(A)*Bl
N=cond(B)
Nl=cond(Bl)
Na=cond(A)%矩阵A为病态矩阵
%第六题
A=[l,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];
elseifx6>
=O&
xOv5&
x6〜=2&
x0〜=3
y=[y,xO*xO-5*xO+6];
else
y=[y,x0*x0-x0-l];
end
X%输出所有X
y%输出所有y
%第一题程序二'
x=[-5,-3,l,2,2.5,3,5];
fora=l:
7
ifx(a)v0&
x(a)〜=・3
y=[y,(x(a))A2+x(a)-6];
elseifx(a)>
x(a)v5&
x(a)〜=2&
x(a)〜=3
y=[y,(x(a))A2-5*x(a)+6];
y=[y,x(a)*x(a)・x(a)-l];
%第二题程序一:
x=input("
请输入一个百分制成绩:
,);
ifx>
100|x<
dispC您输入的成绩不是百分制成绩,请重新输入。
ifx<
=100&
x>
=90
disp('
A'
elseifx<
=89&
=80
B'
=79&
=70
C'
=69&
60
D'
disp(E);
%第二题程序二:
s=input(请输入一个成绩(0分到100分之间):
%s用于存放成绩
while1%判断输入成绩的合理性
ifs<
0|s>
100
disp(输入的成绩需在0到100之间,请重新输入:
)
s=input(,请输大一•个成绩(0分到100分之I、旬):
*);
break;
switchfix(s/10)%对成绩做出等级判断
case{9,10}
disp(*A*)
case8
case7
case6
otherwise
E'
n=input(「清输入员工工号:
h=inputf该员工工作时数是:
ifh>
120
x=(h.120)*84*(l+0.15)+120*84;
elseifh<
x=h*84-700;
x=h*84;
disp([num2str(n)/号员工7的应发工资为,,num2str(x)]);
%为囱题(还可以用switch语句实现)
a=fix(10+(99-10)*rand(l,2))%产生两个随机整数
x=a⑴;
y=a
(2);
、、一
t=input(请输入运算符号:
ift=='
+'
z=x+y;
elseift=='
・'
z=x-y;
elseift==*
z=x*y;
elseift==7'
z=x/y;
disp([num2str(x),t,num2str(y),-'
num2str(z)])%输出运算结果
%第五题
a=rand(5,6)%产生5x6的随机矩阵
n=input(请输入您要输出矩阵的第几行:
'
ifn>
5
disp(超出了矩阵的行数,矩阵的最后一行为:
,)
a(5,:
disp([*矩阵的第0um2str(n),行为:
*])
a(n,:
%实验四循环结构程序设计
s=0;
n=input(^n=?
^);
fori=l:
n
s=s+l/i/i;
PI=sqrt(6*s)
Pi
%第一题程序二
n=input('
n=?
a=l:
n;
b=l./a.A2;
PI=sqrt(6*sum(b))
y=o;
n=l;
while(y<
y=y+l/(2*n-l);
n=n+l;
y=y-l/(2*(n-l)-l)
n=n-2
%昆三题
a=input('
a=?
b=input(^b=?
Xn=l;
Xnl=a/(b+Xn);
n=0;
whileabs(Xn1-Xn)>
1e-5
Xn=Xnl;
ifn==500
Xnl
rl=(-b+sqrt(b*b+4*a))/2
r2=(-b-sqrt(b*b+4*a))/2
ifi==l
f(i)=l;
elseifi==2
f(i)=0;
elseifi==3
f(i)=Hi-l)-2*f(i-2)+f(i-3);
max(f)
min(f)
sum(f)
length(find(f>
0))
length(find(f==O))
length(find(f<
%第五题:
s=O;
n=O;
fori=2:
49
b=i*(i+l)-l;
m=fix(sqrt(b));
forj=2:
m
ifrem(b,j)==0
break
ifj==m
s=s+b;
s
%实验五函数文件
%第_题
functiony=matl(x)%建立函数文件matl.m
y=[exp(x),log(x),sin(x),cos(x)];
%在斋令窗口调用上述函数文件:
y=matl(l+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=[O,9.8*m,O,6.§
*n];
C=inv(A)*B'
a=C(l);
b=C⑵;
N=C⑶;
M=C(4);
%在命令窗口调用该函数文件:
m]=input('
m]='
m2=input('
m2='
theta=input(,theta=,);
[al,a2,N1,N2]=shiyanwu2(ml,m2,theta)
%第二题程序二
functionX=mat2(ml,m2,t)
g=9.8;
A=[ml*cos(t*pi/l80),-ml,-sin(t*pi/l80),0;
ml*sin(t*pi/l80),0,cos(t*pi/l80),0;
0,m2,-sin(t*pi/l80)
0;
0,0,・cos(t*pi/180),1];
B=[0;
ml*g;
0;
m2*g];
X=inv(A)*B;
X=mat2(l,l,60)
%第=题
functionflag=mat3(x)
flag=l;
sqrt(x)
ifrem(x,i)==0
flag=O;
fori=10:
99
j=10*rem(i,10)+fix(i/10);
ifmat3(i)&
mat3(j)
disp(i)
functiony=fx(x)
y=l./((x-2).A2+0.1)+1./((x-3).A4+0.01);
y=fx
(2)
a=[l,2;
3,4];
y=fx(a)
%(D
functionfl=mat5(n)
fl=n+10*log(n*n+5);
%在命令窗口中调用该函数文件:
y=mat5(40)/(mat5(30)+mat5(20))
%
(2)方法一
functionf2=mat6(n)
f2=0;
f2=f2+i*(i+l);
%在命令窗口中调用该函数文件如:
y=mat6(40)/(mat6(30)+mat6(20))
%
(2)歹法二
functionf2=mat7(n)
i=l:
m=i.*(i+l);
f2=sum(m);
y=mat7(40)/(mat7(30)+mat7(20))
%实验六高层绘图操作
%第一题:
x=linspace(0,2*pi,101);
y=(0.5+3*sin(x)./(l+x.A2)).*cos(x);
plot(x,y)
%第二题:
x=linspace(-2*pi,2*pi,l00);
yl=x.A2;
y2=cos(2*x);
y3=yl.*y2;
plot〔x,yl,3,x,y2,k「,x,y3」y--,);
text(4,16,Meftarrowyl=xA2*);
text(6*pi/4,-1/\downarrowy2=cos(2*x)'
text(-1.5*pi,-2.25*pi*pi,*\uparrowy3=yl*y2'
%
(2),
x=linspace(-2*pi,2*pi,100);
y3=y].*y2;
subplot(1,3,1);
%分区
plot(x,yl);
title('
yl=xA2'
%设置标题
subplot(l,3,2);
plot(x,y2);
title(,y2=cos(2*x)*);
subplot(l,3,3);
plot(x,y3);
title(*y3=xA2*cos(2*x)*);
%(3)
x=linspace(-2*pi,2*pi,20);
subplot(2,2,l);
bar(x,yl);
titlefyl=xA2的条形图,);
%设置标题
subplot(2,2,2);
stairs(x,yl);
title(*yl=xA2的阶梯图
subplot(2,2,3);
stem(x,yl);
title(*yl=xA2的杆图);
subplot(2,2,4);
fill(x,y1如果少了F则会出错
titleCyl=xQ的填充图);
%其他的函数照样做。
x—_5.001.5.
%•起焰'
设y为空向量
forxO=x
=0%不能写成x0=<
y=[y,(xO+sqrt(pi))/exp⑵];
%将x对应的函数值放到y中
y=[y,0.5*log(xO+sqrt(l+xOA2))];
end
a='
b^input(^'
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.A2+y.A2)/4);
subplot(2,l,l);
surf(x,y,z);
subplot(2,l,2);
contour3(x,y,z,50);
%其中50为高度的等级数,越大越密
ezsurf('
cos(s)*cos(t)7cos(s)*sin(t)7sin(s),,[0,0.5*pi,0,1.5*pi]);
%利用ezsurf隐函数
shadinginterp%遂行插值着色处理
%实验八数据处理与多项式运算
%
(1)
A=rand(1,30000);
b=mean(A)
std(A,0,2)
%Q)
max(A)
min(A)
30000ifA(i)>
0.5n=n+l;
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:
17.5;
tl=[18,20,22,25,30,28,24];
t2=[15,19,24,28,34,32,30];
Tl=spline(h,tl,x)T2=spline(h,t2,x)%第四题
x=l:
101;
yl=logl0(x);
p=polyfit(x,yl,5)
y2=polyval(p,x);
plot(x,yl,?
x,y2,=)%第五题
pl=[l,2,4,0,5];
p2=[l,2];
p3=[l,2,3];
p=p1+[0,conv(p2,p3)]%为使两向量大小相同,所以补0
A=roots(p)
A=[-l,1.2,.1.4;
0.75,2,3.5;
0,5,2.5];
polyval(p,A)
polyvalm(p,A)
%实验十五综合实验
%定义函数文件
functionzp=fs(z,n)
zp=0;
z=0;
fork=l:
z=l+imag(z)-1.4*real(z)A2+i*real(z)*0.3;
zp=[zp,z];
%在主窗口调用该函数:
n=30000;
zp=fs(z,n);
plot(zp,'
p'
'
markersize'
2,'
color'
F)
quad('
l/sqrt(2*pi)*exp(・x.*x/2)'
0,1)
symsx
int(l/sqrt(2*pi)*exp(-x.*x/2),0,1)
functiondx=apollo(t,x)
mu=l/82.45;
mustar=l-mu;
rl=sqrt((x
(1)+mu)A2+x(3)A2);
r2=sqrt((x
(1)-mustar)A2+x(3)A2);
dx=[x
(2);
2*x(4)+x
(1)-mustar*(x
(1)+mu)/r1A3-mu*(x(l)-mustar)/r2A3;
x(4);
-2*x
(2)+x(3)-mustar*x(3)/rlA3-mu*x(3)/r2A3];
x0=[1.2;
-1.04935751];
options=odeset(,reltor,1e-8);
%该命令的另一种写法是options=odeset;
options.reltol=1e-8;
[t,y]=ode45(@apollo,[0,20],x0,options);
plot(y(:
l),y(:
3))%绘制x和y图像,也就是卫星的轨迹
titlefAppollo卫星运动轨迹)
xlabel('
X'
ylabel(Y)
%这是一个力矩平衡问题,可列方程:
500x1,5xcosa=400x2.0xcos(7r/3-a)
%解得a=26.8021°
o
%程序一:
迭代法解方程
xl=input('
xl=?
x=pi/3.0-acos(15.0*cos(x1)/16);
whileabs(x-xl)>
=10e-8
xl=x;
pi/3.0
disp(,error,);
尸xl*180/pi
%程序二:
利用绘图功能
%分别绘制两个小孩所产生力矩随a变化的曲线,两曲线的交点即是跷跷板平衡时的a
%第一个小孩产生的力矩
%第二个小孩产生的力矩
%找平衡点
alpha=linspace(0,pi/2,80000);
ml=500*1.5*cos(alpha);
m2=400*2*cos(pi/3-alpha);
1
k=find(abs(ml-m2)<
le-2);
alphaO=alpha(k);
m0=500*i.5*cos(alpha0);
plot(alpha,ml,alpha,m2,alpha。
m0,kp,);
alpha=alpEaO*180/pi%化为角度
clear;
close;
fplotC18-tA(2/3)'
[0,20]);
gridon;
holdon;
fjplot(,5+t+2*tA(2/3),,[0,20];
r,);
holdoff;
%发现t约为4
[t,f,h]=fsolve(,18-xA(2/3)-5-x-2*xA(2/3),,4)
%求得t=4.6465
t=linspace(0,t,100);
y=18-t.A(2/3)-5-t-2*t.A(2/3);
trapz(t,y)-20
%最大利润6.3232(百万元)