MATLAB基础与应用教程 习题答案 作者 蔡旭晖 刘卫国 蔡立燕 第1-8章答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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 =
129 432 4197
7 -407 -1052
402 591 12489
A.*B
ans =
3 -108 134
68 -360 518
783 270 0
(2) A^3
ans =
-28917 240246 -4368
137883 -259101 27669
171333 252504 38673
A.^3
ans =
27 157464 8
39304 -91125 343
658503 729000 3375
(3)A/B
ans =
-5.8845 5.3549 -0.2028
6.3554 -5.6596 4.3293
-6.6325 6.2078 9.0241
B/A
ans =
30.2855 19.2643 -8.5614
33.4394 21.1547 -9.3974
-0.7443 -0.3938 0.2830
(4)[A,B]
ans =
3 5
4 2 1 -2 67
34 -45 7 2 8 74
87 90 15 9 3 0
[A([1,3],:);B^2]
ans =
3 5
4 2
87 90 15
600 183 -81
684 282 726
15 6 825
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;
for n=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;
if h>120
gz=dj*120+1.15*dj*(h-120);
elseif h<60
gz=dj*h-700;
else
gz=dj*h;
end
format bank;
display([gh,gz])
3.
循环结构
n=input('input n:');
s=0;
for k=1:n
s=s+1/k^2;
end
display(sqrt(s*6))
向量运算
n=input('input n:');
k=1:n;
display(sqrt(sum(1./k.^2)*6))
4.
y=0;k=0;
while y<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=');
while abs(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
function f=fun(n)
f=n+log(n^2+5);
(2)函数文件fun.m
function f=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,21);
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);
[x y]=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);shading interp;
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=[1 2 0 0 7];p2=[1 -2];p3=[1 0 0 5 1];
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
function F=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.
for x=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)syms x y ;
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)令''3,,21y x y x y x ='==,则可写出原方程的状态方程形式: 1232332
21
sin 31)1(2cos 5cos x t x x t t t x x x x x +--++='='='
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢
⎣⎡+-+-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'''t x x x t t t
x x x cos 00)1(2cos 51sin 311000103212321 建立函数文件ztfun.m function y=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
function yy=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) syms x y;
fxy=sin(x^2*y)*exp(-x^2-y);
diff(diff(fxy,x),y)
3.
(1) syms x
int(1/(1+x^4))
(2) syms x t
int((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t)) 4.
syms n x
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) syms x
taylor((exp(x)+exp(-x))/2,5,0)
(2) syms a x
taylor(exp(-5*x)*sin(3*x+pi/3),5,a)
6.
(1)x=solve(sym('x^3+a*x+1=0'))
(2)[x y]=solve('sqrt(x^2+y^2)-100=0,3*x+5*y-8=0')
7. 方程转化为: π
21'11't y y y y -=+=⎩⎨⎧
符号解
[y1,y11]=dsolve('Dy=y1,Dy1+y=1-t^2/pi','y(-2)=5,y1(-2)=5','t') 数值解
编写函数文件ztfun.m
function yy=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')。