Matlab基础与应用教程答案人民邮电出版社.docx
《Matlab基础与应用教程答案人民邮电出版社.docx》由会员分享,可在线阅读,更多相关《Matlab基础与应用教程答案人民邮电出版社.docx(31页珍藏版)》请在冰豆网上搜索。
![Matlab基础与应用教程答案人民邮电出版社.docx](https://file1.bdocx.com/fileroot1/2022-12/13/aa171512-6fa7-473c-8ad9-8cb179cb6033/aa171512-6fa7-473c-8ad9-8cb179cb60331.gif)
Matlab基础与应用教程答案人民邮电出版社
第1章
一、思考题
4.
(1)B=A(2:
5,1:
2:
5)
(2)A(7)=[]
(3)A=A+30
(4)size(A)
(5)t(find(t==0))=eps
(6)t=reshape(x,3,4)
(7)abs('matlab')
(8)char(93)
5.A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7]
(1)B=A(1:
3,:
)
C=A(:
1:
2)
D=A(2:
4,3:
4)
E=B*C
(2)A(find(A>=50&A<=100))
二、实验题
1.x=-74/180*pi;y=-27/180*pi;
sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi
2.a=-3.0:
0.1:
3.0;
exp(-0.3*a).*sin(a+0.3)
3.x=[2,4;-0.45,5];
log(x+sqrt(1+x.*x))/2
4.A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0];
(1)A*B
ans=
1294324197
7-407-1052
40259112489
A.*B
ans=
3-108134
68-360518
7832700
(2)A^3
ans=
-28917240246-4368
137883-25910127669
17133325250438673
A.^3
ans=
271574648
39304-91125343
6585037290003375
(3)A/B
ans=
-5.88455.3549-0.2028
6.3554-5.65964.3293
-6.63256.20789.0241
B/A
ans=
30.285519.2643-8.5614
33.439421.1547-9.3974
-0.7443-0.39380.2830
(4)[A,B]
ans=
35421-267
34-4572874
879015930
[A([1,3],:
);B^2]
ans=
3542
879015
600183-81
684282726
156825
5.a=1+2i;b=3+4i;
c=exp(pi*i/6)
c=
0.8660+0.5000i
c+a*b/(a+b)
ans=
1.6353+1.8462i
第2章
一、思考题
3.s=0;
forn=0:
63
s=s+2^n;
end
disp(s)
n=0:
63;
s=sum(2.^n)
二、实验题
1.
x=input('输入一个四位整数:
');
y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)]
z=mod((y+7),10)
x=z(3)*1000+z(4)*100+z
(1)*10+z
(2)
2.
gh=input('输入工号');
h=input('输入工时');
dj=84;
ifh>120
gz=dj*120+1.15*dj*(h-120);
elseifh<60
gz=dj*h-700;
else
gz=dj*h;
end
formatbank;
display([gh,gz])
3.
循环结构
n=input('inputn:
');
s=0;
fork=1:
n
s=s+1/k^2;
end
display(sqrt(s*6))
向量运算
n=input('inputn:
');
k=1:
n;
display(sqrt(sum(1./k.^2)*6))
4.
y=0;k=0;
whiley<3
k=k+1;
y=y+1/(2*k-1);
end
display([k-1,y-1/(2*k-1)])
5.
x0=0;x=1;k=0;
a=input('a=');
b=input('b=');
whileabs(x-x0)>=1e-5&&k<500
x0=x;
x=a/(b+x0);
k=k+1;
end
display([k,x]);
display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);
6.
y=fun(40)/(fun(30)+fun(20))
(1)函数文件fun.m
functionf=fun(n)
f=n+log(n^2+5);
(2)函数文件fun.m
functionf=fun(n)
a=1:
n;
f=sum(a.*(a+1));
第3章
一、思考题
4.
t=0:
0.01:
1.5;
y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);
5.
x=-10:
0.01:
10;
y=linspace(-6,6,size(x,2))
z=x.^3+3*x.*y.^2;
plot3(x,y,z)
6.
x=100:
100:
400;
y=100:
100:
400;
z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334];
[X,Y]=meshgrid(x,y);
mesh(X,Y,z)
二、实验题
1.
(1)x=-10:
0.01:
10;
plot(x,x-x.^3/3/2)
(2)plot(x,exp(-x.*x/2)/2/pi)
(3)x=-8:
0.01:
8;
plot(x,sqrt((64-x.*x)/2))
(4)t=0:
pi/100:
6*pi;
plot(t.*sin(t),t.*cos(t))
2.
(1)
x1=linspace(0,1,100);
y1=2*x1-0.5;
t=linspace(0,pi,100);
x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);
plot(x1,y1,'r-',x,y,'b:
');
text(0.4,1,'y=2x-0.5');
text(-0.4,0.5,'x=sin(3t)cos(t)');
text(-0.4,0.3,'y=sin(3t)sin(t)');
(2)
subplot(1,2,1);
scatter(x1,y1,10)
title('y=2x-0.5');
subplot(1,2,2);
scatter(x,y,10)
3.
subplot(1,2,1);
x=1:
1:
100;y=sin(1./x);
plot(x,y)
subplot(1,2,2);
fplot('sin(1/x)',[1,100])
4.
subplot(2,2,1);
bar(t,y);
subplot(2,2,2);
stairs(t,y);
subplot(2,2,3);
stem(t,y)
subplot(2,2,4);
semilogy(t,y);
5.
theta=linspace(-pi,pi,100);
ro=5.*cos(theta)+4;
polar(theta,ro);
fi=linspace(0,2*pi,100);a=1
r=a.*(1+cos(fi));
polar(fi,r);
6.
t=0:
pi/20:
2*pi;
x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t;
plot3(x,y,z);
t=0:
0.01:
1;
x=t;y=t.^2;z=t.^3;
plot3(x,y,z);
7.
x=-30:
0.1:
0;y=0:
0.1:
30;
[x,y]=meshgrid(x,y);
z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2);
meshc(x,y,z);
8.
x=linspace(-3,3,100);y=linspace(-3,3,100);
[xy]=meshgrid(x,y);
fxy=-5./(1+x.^2+y.^2);
i=find(abs(x)<=0.8&abs(y)<=0.5);
fxy(i)=NaN;
surf(x,y,fxy)
9.
u=linspace(1,10,100);v=linspace(-pi,pi,100);
[u,v]=meshgrid(u,v);
x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;
x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;
surf(x,y,z);shadinginterp;
light('position',[1,0,1]);
10.
t=0:
pi/100:
2*pi;
y=sin(t);
comet(t,y)
第4章
一、思考题
5.
(1)A=eye(3);
(2)C=100+(200-100)*rand(5,6);
(3)D=1+sqrt(0.2)*randn(1,500);
(4)E=ones(size(A));
(5)A=A+30*eye(size(A));
(6)B=diag(diag(A))
二、实验题
1.
P=pascal(5);H=hilb(5);
Dp=det(P);Dh=det(H);
Kp=cond(P);Kh=cond(H);
P矩阵的性能更好,因为Kp较小
2.
A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3]
B=[3,pi/2,45;32,-76,sqrt(37);5,72,4.5e-4;exp
(2),0,97]
A1=diag(A);B1=diag(B);
A2=triu(A);B2=triu(B);
A3=tril(A);B3=tril(B);
rA=rank(A);rB=rank(B);
nA=norm(A);nb=norm(B);
cA=cond(A);cB=cond(B);
3.
A=[31,1,0;-4,-1,0;4,-8,-2];
[V,D]=eig(A);
4.
A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2])
b=[1,0,0,0,0]';
x1=inv(A)*b;
x2=A\b;
[L,U]=lu(A);
x3=U\(L\b);
[Q,R]=qr(a);
[Q,R]=qr(A);
x4=R\(Q\b)
R=chol(A);
x5=R\(R'\b)
5.
B=sparse(A);
x1=inv(B)*b;
x2=B\b;
[L,U]=lu(B);
x3=U\(L\b);
第5章
一、思考题
3.
A=randn(10,5);
mean(A)
std(A)
max(max(A))
min(min(A))
sum(A,2)
sum(sum(A))
sort(A,1)
sort(A,2,'descend')
二、实验题
1.
A=rand(1,30000);
mean(A)
std(A)
max(A)
min(A)
size(find(A>0.5))/size(A)
2.
h=[466,715,950,1422,1635];
w=[7.04,4.28,3.40,2.52,2.13];
hh=[500,900,1500];
ww=interp1(h,w,hh,'spline')
3.
x=linspace(1,10,50);
y=log(x);
f=polyfit(x,y,5);
yy=polyval(f,x);
plot(x,y,'r-',x,yy,'g.')
4.
N=64;%采样点数
T=5;%采样时间终点
t=linspace(0,T,N);%给出N个采样时间ti(I=1:
N)
x=3*exp(-t);%求各采样点样本值x
dt=t
(2)-t
(1);%采样周期
f=1/dt;%采样频率(Hz)
X=fft(x);%计算x的快速傅立叶变换X
F=X(1:
N/2+1);%F(k)=X(k)(k=1:
N/2+1)
f=f*(0:
N/2)/N;%使频率轴f从零开始
plot(f,abs(F),'-*')%绘制振幅-频率图
xlabel('Frequency');
ylabel('|F(k)|')
5.
(1)p1=[12007];p2=[1-2];p3=[10051];
p12=conv(p1,p2);
p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3];
roots(p)
(2)A=[-1,4,3;2,1,5;0,5,6];
Px=polyval(p,A)
Pxm=polyvalm(p,A)
6.
(1)z=fzero('3*x-sin(x)+1',0)
(2)建立函数文件myfun.m
functionF=myfun(X)
x=X
(1);
y=X
(2);
F
(1)=x*x+y*y-9;
F
(2)=x+y-1;
在命令窗口中输入以下命令:
x=fsolve(@myfun,[3,0]',optimset('Display','off'))
第6章
一、思考题
2.
fx=inline('1./(1+x.^2)');
[I,n]=quad(fx,-100000,100000,1e-3);
[I,n]=quadl(fx,-100000,100000,1e-3);
x=-100000:
0.01:
100000;
y=1./(1+x.*x);
trapz(x,y);
3.
(1)fx=inline('-2*y+2*x*x+2*x');
[t,y]=ode23(fx,[0,0.5],1)
(2)fx=inline('y-exp(x)*cos(x)');
[t,y]=ode23(fx,[0,3],1)
二、实验题
1.
forx=1:
3
fx=[x,x^2,x^3;1,2*x,3*x;0,2,6*x];
diff(fx)
end
2.
(1)x=0:
0.01:
1;
y=x.^10+10.^x+1./log10(x);
dy=diff(y)/0.01;
(2)x=0:
0.01:
1;
y=log(1+x);
dy=diff(y,2)/0.01;
plot(x(1:
99),dy)
3.
(1)fx=inline('x.^2.*sqrt(2*x.*x+3)');
quad(fx,1,5)
(2)fx=inline('x./sin(x).^2');
quad(fx,pi/4,pi/3)
(3)fx=inline('abs(cos(x+y))');
dblquad(fx,0,pi,0,pi)
(4)symsxy;
fx=x*y;
int(int(fx,y^2,y+2),-1,2)
x的积分区间为【0,2】时
fx=inline('x.*y');
dblquad(fx,0,2,-1,2)
4.
x=0.3:
0.2:
1.5;
y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325];
trapz(x,y)
5.
(1)
yp=inline('-(1.2+sin(10*x))*y');
[t,y]=ode23(yp,[0,5],1);
(2)令
,则可写出原方程的状态方程形式:
--->
建立函数文件ztfun.m
functiony=ztfun(t,x)
b=[0;0;cos(t)];
y=[0,1,0;0,0,1;-1/(3+sin(t)),-1,5*cos(2*t)/(t+1)^2]*x+b;
解微分方程组
[t,y]=ode23(@ztfun,[0,5],[1;0;2]);
6.
建立函数文件ztfun.m
functionyy=ztfun(t,y)
yy=[y
(2)*y(3);-y
(1)*y(3);-0.51*y
(1)*y
(2)];
解微分方程组
[t,y]=ode23(@ztfun,[0,5],[0;1;1])
第7章
一、思考题
3.
(1)数值积分
fx=inline('exp(x).*(1+exp(x)).^2');
quad(fx,0,log
(2))
符号积分
f=sym('exp(x)*(1+exp(x))^2');
v=int(f,0,log
(2));
eval(v)
(2)略
二、实验题
1.
A=sym('[1,2,3;x,y,z;3,2,1]')
rank(A)
inv(A)
det(A)
2.
(1)y=sym('sqrt(x+sqrt(x+sqrt(x)))');
y1=diff(y)
y2=diff(y,'x',2)
(2)symsxy;
fxy=sin(x^2*y)*exp(-x^2-y);
diff(diff(fxy,x),y)
3.
(1)symsx
int(1/(1+x^4))
(2)symsxt
int((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t))
4.
symsnx
symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,inf)
symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,5)
5.
(1)symsx
taylor((exp(x)+exp(-x))/2,5,0)
(2)symsax
taylor(exp(-5*x)*sin(3*x+pi/3),5,a)
6.
(1)x=solve(sym('x^3+a*x+1=0'))
(2)[xy]=solve(sym('sqrt(x^2+y^2)-100=0,3*x+5*y-8=0'))
7.方程转化为:
符号解
[y1,y11]=dsolve('Dy=y1,Dy1+y=1-t^2/pi','y(-2)=5,y1(-2)=5','t')
数值解
编写函数文件ztfun.m
functionyy=ztfun(t,y)
yy=[y
(2);1-t^2/pi-y
(1)];
在命令窗口输入以下命令
[t,y]=ode45(@ztfun,[-2,7],[-5;5]);
t=linspace(-2,7,49)
y2=y
8.
[x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')
第9章
二、实验题
1.
(1)新建一个BlankGUI。
(2)在窗口上添加一个StaticText、一个EditText,一个PushBotton,两个CheckBox,一组RadioButton。
各控件的属性设置如表9.1所示。
表9.1界面控件属性
控件
属性名
属性值
静态文本框
String
实验一:
编辑框
String
按钮
String
设置字体大小
单选按钮1
String
red
单选按钮2
String
yellow
单选按钮3
String
blue
单选按钮4
String
black
Value
1.0
复选框1
String
倾斜
复选框2
String
加粗
(3)在按钮的Callback函数中添加以下代码:
s=eval(get(handles.edit1,'String'));
set(handles.text1,'FontSize',s);
(4)在复选框1的Callback函数中添加以下代码:
if(get(hObject,'Value')==get(hObject,'Max'))
set(handles.text1,'FontAngle','italic');
else
set(handles.text1,'FontAngle','normal');
end
在复选框2的Callback函数中添加以下代码:
if(get(hObject,'Value')==get(hObject,'Max'))
set(handles.text1,'FontWeight','bold');
else
set(handles.text1,'FontAngle','normal');
end
(5)在单选按钮组的SelectionChangeFcn函数中添加以下代码:
set(handles.text1,'ForegroundColor',get(eventdata.NewValue,'string'));
2.
(1)新建一个BlankGUI。
(2)用菜单编辑器编辑菜单,各菜单项属性如表9.2.
表9.2菜单项属性
菜单项
Label属性值
Tag属性值
Menu
Line
Label
m_line
Help
Help
m_help
LineMenuItem
LineStyle
LineStyle
m_linestyle
LineWidth
LineWidth
m_linewidth
LineColor
LineColor
mlinecolor
HelpMenuItem
About
About
m_about
(3)绘图。
在窗口的OpeningFcn函数添加以下代码:
globalh;
t=0:
0.01:
6;
h=plot(t.*sin(t),t.*cos(t))
(4)在LineStyle菜单项的Callback函数中添加以下代码:
globalh;
set(h,'LineStyle','-.');
在LineWidth菜单项的Callback函数中添加以下代码:
globalh;
set(h,'LineWidth',2);
在LineColor菜单项的Callback函数中添加以下代码:
globalh;
set(h,'color','red');
在About菜单项的Callback函数中添加以下代码:
msgbox('HelpItem');
3.
t=0:
pi/20:
6*pi;a=2;b=3;
r=a+b*t;
h_draw=polar(t,r,'-*');
h_menu=uicontextmenu;%½¨Á¢¿ì½Ý²Ëµ¥
%½¨Á¢²Ëµ¥Ïî
uimenu(h_menu,'Label','red','Call','set(h_draw,''C