MATLAB课后习题.docx
《MATLAB课后习题.docx》由会员分享,可在线阅读,更多相关《MATLAB课后习题.docx(114页珍藏版)》请在冰点文库上搜索。
MATLAB课后习题
第1章MATLAB操作基础
1MATLAB的主要功能包括数值计算和符号计算功能,绘图功能,编程语言以及应用工具箱。
2MATLAB的优点在于可以在窗口直接输入运算命令,并的到计算结果;有许多现成的函数可以直接调用;可以直接绘制图形对结果更直接的显示。
3MATLAB中help命令在窗口中输入后将会显示当前帮助系统中的所包含的所有项目,即搜索路径中所有的目录项目,所以可以搜索到。
4主要有控制系统工具箱,信号处理工具箱,神经网络工具箱,最优化工具箱,金融工具箱,统计学工具箱,功能性工具箱。
5inv为求方阵的逆矩阵,plot为对所给函数作图,max为取最大值,round为四舍五入到最临近的整数。
第2章MATLAB矩阵及其运算
2-1合法的变量有globalMy_expAbCdAB_C_
2-2直接输入法;利用M文件建立;利用冒号表达式建立一个向量;建立大矩阵。
2-3A*B要求A阵的列数必须与B阵的行数相等,A.*B表示对应元素相乘,矩阵运算左除与右除值一般不同,点除也有类似的规律,但对于标量则都相同。
实验指导
1.
(1) w=sqrt
(2)*(1+0.34245*10^(-6))
w = 1.4142
(2) 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) 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=[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.0002i 0.0048 - 0.0034i
1.5899 2.0090 - 1.3580i
2.
(1)A=[-15-4;-078;3617]
A=
-15-4
078
3617
B=[83-1;253;-320]
B=
83-1
253
-320
A+6*B
ans=
4723-10
123726
-15737
I=[100;010;001]
I=
100
010
001
A*A-B+I
ans=
-18-21717
22533109
21867526
(2)A*B
ans=
141416
-105121
125328180
A.*B
ans=
-8154
03524
-91220
B*A
ans=
-110-15
722853
3-128
(3)[A,B]
ans=
-15-483-1
078253
3617-320
[A([1,3],:
);B^2]
ans=
-15-4
3617
73371
173713
-2019
3
(1)A=[2310-0.7780;41-45655;325032;6-9.54543.14]
A=
23.000010.0000-0.77800
41.0000-45.000065.00005.0000
32.00005.0000032.0000
6.0000-9.540054.00003.1400
B=A(1:
3,:
)
B=
23.000010.0000-0.77800
41.0000-45.000065.00005.0000
32.00005.0000032.0000
C=A(:
1:
2)
C=
23.000010.0000
41.0000-45.0000
32.00005.0000
6.0000-9.5400
D=A(2:
4,3:
4)
D=
65.00005.0000
032.0000
54.00003.1400
E=B*C
E=
1.0e+003*
0.9141-0.2239
1.20802.7123
1.1330-0.2103
(2)Eans=
01
00
01
E&D
ans=
11
01
11
E|D
ans=
11
11
11
~D
ans=
00
10
00
~E
ans=
00
00
00
4, H=hilb(5);
P=pascal(5);
Hh=det(H)
Hh = 3.7493e-012
Hp=det(P)
Hp = 1 T
h=cond(H)
Th = 4.7661e+005
Tp=cond(P)
Tp = 8.5175e+003
条件数越趋近于1,矩阵的性能越好,所以帕斯卡矩阵性能更好。
5 A=[-29,6,18;20,5,12;-8,8,5] A =
-29 6 18
20 5 12
-8 8 5
[V,D]=eig(A)
V =
0.7130 0.2803 0.2733
-0.6084 -0.7867 0.8725
0.3487 0.5501 0.4050
D = -25.3169 0 0
0 -10.5182 0
0 0 16.8351
V为A的特征向量,D为A的特征值。
它们之间满足A*V=V*D
思考练习
1、不一样,i为虚数单位,而I是单位矩阵。
6+7i中的i表示虚数单位,而6+7*i中的i表示一个变量
2、A.*B表示A和B单个元素之间对应相乘,A*B是按矩阵乘法的规则乘。
A./B表示A矩阵除以B矩阵的对应元素,B.\A等价于A./B。
A/B表示A *inv(B)而B\A表示inv(B)* A,对于矩阵运算一般两式不等
3.
(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))
4、3+rand(25,20)
5、A=[1-123;51-42;3052;111509]
A=
1-123
51-42
3052
111509
D=diag(A)
D=
1
1
5
9
>>C=triu(A)
C=
1-123
01-42
0052
0009
>>C=triu(A,2)
C=
0023
0002
0000
0000
>>C=tril(A)
C=
1000
5100
3050
111509
>>C=inv(A)
C=
-0.17580.16410.2016-0.0227
-0.1055-0.1016-0.03910.0664
-0.0508-0.08590.15160.0023
0.3906-0.0313-0.18130.0281
>>r=rank(A)
r=
4
>>trace(A)
ans=
16
6\A=[34,NaN,Inf,-Inf,-pi,eps,0];all(A)
ans=
0
>>any(A)
ans=
1
>>isnan(A)
ans=
0100000
>>isinf(A)
ans=
0011000
isfinite(A)
ans=
1000111
det(A)
ans=
1280
A1=norm(A,1)
A1=
20
>>A1=norm(A)
A1=
21.3005
>>A1=norm(A,inf)
A1=
35
>>A2=cond(A)
A2=
11.1739
>>A2=cond(A,2)
A2=
11.1739
>>A2=cond(A,inf)
B=[0.43432;-8.9421]
B=
0.430043.00002.0000
-8.90004.000021.0000
>>D=diag(B)
D=
0.4300
4.0000
>>C=triu(B)
C=
0.430043.00002.0000
04.000021.0000
>>C=tril(B)
C=
0.430000
-8.90004.00000
>>C=inv(B)
?
?
?
Errorusing==>inv
Matrixmustbesquare.
>>r=rank(A)
r=
4
>>r=rank(B)
r=
2
trace(B)
ans=
4.4300
B1=norm(B,1)
B1=
47
>>B1=norm(B)
B1=
43.4271
>>B1=norm(B,inf)
B1=
45.4300
>>B2=cond(B)
B2=
1.9354
>>B2=cond(B,2)
B2=
1.9354
7、结构矩阵建立 结构矩阵名.成员名=表达式
单元矩阵建立矩阵元素用大括号括起来。
8.用稀疏存储方式可以可以节省内存空间; 运算规则上,稀疏矩阵与普通矩阵一样,
只是矩阵的存储方式不同。
在运算过程中,稀疏存储矩阵可以直接参与运算。
当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。
第3章2-7>>A=[34,NaN,Inf,-MATLAB程序设计
3-1n=input('请输入一个三位数:
');
a=fix(n/100);
b=rem(fix(n/10),10);
c=rem(n,10);
m=c*100+b*10+a;
disp(m)
3-2用if语句实现s=input('请输入成绩:
');
ifs>=90&c<=10
disp('A');
elseifs>=8&s<=89
disp('B');
elseifs>=70&s<=79
disp('C');
elseifs>=6&s<=69
disp('D');
elseifs>=0&s<=59
disp('E')
else
disp('false')
end
用switch语句实现
score=input('socre:
');
switchfix(score/10)
case{10,9}
disp('A');
case{8}
disp('B');
case{7}
disp('C');
case{6}
disp('D');
case(0:
5)
disp('E');
otherwise
disp('false')
end
3-3A=input('pleaseenterA:
');
min=A
(1);
max=A
(1);
fori=1:
19;
ifA(i+1)>max
max=A(i+1);
end
ifA(i+1)min=A(i+1);
end
end
disp(max)
disp(min)
3-4顺序结构
a=input('pleaseinputa:
')
y=0.5*(exp(0.3*a)-exp(-0.3*a))*sin(a+0.3)+log(0.5*(0.3+a))
disp(y)
循环结构
fora=-3.0:
0.1:
3.0
y=0.5*(exp(0.3*a)-exp(-0.3*a))*sin(a+0.3)+log(0.5*(0.3+a))
disp(y)
end
3-5
(1)sum=0;
i=0;
n=input('entern:
')
whilei<=n
i=i+1;
sum=sum+1/i^2;
end
sum
(2)sum=0;
i=0;
n=input('entern:
')
forn=0:
1:
n
sum=sum*((2*n*2*n)/((2*n-1)*(2*n+1)));
end
sum
3-6A=[1,1,1,1,1,1;2,2,2,2,2,2;3,3,3,3,3,3;4,4,4,4,4,4;5,5,5,5,5,5;6,6,6,6,6,6];
n=input('请输入n的值:
');
ifn<=5&n>=0
disp(A([n],:
));
elseifn<0
disp(lasterr);
elsedisp(A([6],:
));
disp(lasterr);
end
3-7
(1)f=[];
forn=1:
40
f(n)=n+10*log(n^2+5);
end
y=f(40)/(f(30)+f(20))
(2)f=[];a=0;
forn=1:
40
f(n)=a+n*(n+1);
a=f(n);
end
y=f(40)/(f(30)+f(20))
3-8y=0;
函数文件
functions=ss(n,m)
s=0;
fori=1:
n
s=s+i^m;
end
命令文件
ss(100,1)+ss(50,2)+ss(10,1/2)
思考练习
3-1
M文件是指用MATLAB语言编写的程序。
建立一个M文件可以在主菜单File选项中的New选项中选择M-File建立;也可以在命令窗口中输入Edit建立;可以按命令按钮NewM-File建立。
执行时只需要在Debug中SaveAndRun。
3-2
N=[1,2,3,4,5];
2.*N
N./2
1./N
1./N.^2
3-3
s=fix(100*rand(1,20)*9/10+10)
y=sum(s)/20
j=0;
fori=1:
20
ifs(i)j=j+1;
A(j)=s(i);
elsecontinue;
end
end
A
3-4
y1=0;y2=0;
n=input('请输入n的值:
');
fori=1:
n
y1=y1+-(-1)^i/(2*i-1);
y2=y2+1/4^i;
end
y1
y2
3-5
x=input('pleaseenterx:
');
a=exp(x);
b=log(x);
c=sin(x);
d=cos(x)
abcd
3-6
A=[1234;5678];
B=[2345;4321];
N=A.*B
第四章
一、实验内容
1.绘制曲线:
(1)y=x-x^3/3!
(2)x^2+2y^2=64
答案一:
答案二:
将原式转化成x=8cost;y=4*2^0.5sint
2.设y=1/(1+e^(-t)),-pi≤t≤pi,在同一图形窗口绘制条形图、杆图、和对数坐标图等不同图形,并对不同图形加标注说明。
3.绘制下列极坐标图
(1)Ρ=5cosφ+4
(2)Γ=5(sinφ)^2/cosφ-pi/3≤φ≤pi/3
第一题答案
第二题答案
4.绘制下列三维图形
(1)x=e^(-t/20)*costy=e^(-t/20)*sintz=t0≤t≤2pi
(2)z=5-5≤x≤5-5≤y≤5
要求应用差值着色处理。
第一题答案:
第二题答案:
5.播放一个直径不断变换的球体
二、思考练习
1,绘制下列曲线
(1)y=(1/2pi)*e^(-(x^2/2))
(2)x=tsinty=tcost
第一题答案
第二题答案
2,在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。
(1)y=2x-0.5
(2)x=sin(3t)costy=sin(3t)sint0≤t≤pi
3,分别用ploi和fplot函数绘制函数y=sin(1/x)的曲线,分析两曲线的差别。
4,绘制下列极坐标图。
(1)p=12/φ^0.5
(2)λ=(3asinφcosφ)/((sinφ)^3)+(cosφ)^3)-pi/6≤φ≤pi/6
第一题答案
第二题答案
5,绘制曲面图形
(1)x=3usinvy=2ucosvz=4u^2
(2)f(x,y)=-5/(1+x^2+y^2)-3≤x≤3-3≤y≤3
第一题答案
第二题答案
附:
程序代码
实验指导
1
(1)
x=-10:
0.05:
10;
y=x-x.^3./6;
plot(x,y)
(2)
x=-10:
0.5:
10;
ezplot('x^2+2*y^2-64',[-8,8]);
gridon;
2
t=-pi:
pi/10:
pi;
y=1./(1+exp(-t));
subplot(2,2,1);
bar(t,y);
title('条形图(t,y)');
axis([-pi,pi,0,1]);
subplot(2,2,2);
stairs(t,y,'b');
title('阶梯图(t,y)');
axis([-pi,pi,0,1]);
subplot(2,2,3);
stem(t,y,'k');
title('杆图(t,y)');
axis([-pi,pi,0,1]);
subplot(2,2,4);
loglog(t,y,'y');
title('对数坐标图(t,y)');
3
(1)
t=0:
pi/50:
2*pi;
r=5.*cos(t)+4;
polar(t,r);
title('\rho=5*cos\theta+4');
(2)
t=-pi/3:
pi/50:
pi/3;
r=5.*((sin(t)).^2)./cos(t);
polar(t,r);
4
(1)
t=0:
pi/50:
2*pi;
x=exp(-t./20).*cos(t);
y=exp(-t./20).*sin(t);
z=t;
plot3(x,y,z);
gridon;
(2)
[x,y]=meshgrid(-5:
5);
z=zeros(11)+5;
mesh(x,y,z);
shadinginterp;
5
[x,y,z]=sphere(20);
surf(x,y,z);
axisoff;
shadinginterp;
m=moviein(20);
fori=1:
20
axis([-i,i,-i,i,-i,i])
m(:
i)=getframe;
endmovie(m,4);
思考练习
2
(1)
x=-5:
0.1:
5;
y=(1./(2*pi)).*exp((-(x.^2))/2);
plot(x,y);
(2)
t=-2*pi:
0.1:
2*pi;
x=t.*sin(t);
y=t.*cos(t);
plot(x,y);
gridon;
3
t=0:
pi/1000:
pi;
x=sin(3.*t).*cos(t);
y1=sin(3.*t).*sin(t);
y2=2.*x-0.5;
plot(x,y1,'k',x,y2);
holdon;
k=find(abs(y1-y2)<1e-2);
x1=x(k);
y3=2.*x1-0.5;
plot(x1,y3,'rp');
4
x=-2:
0.01:
2;
y=sin(1./x);
subplot(2,1,1);
plot(x,y);
subplot(2,1,2);
fplot('sin(1./x)',[-2,2],1e-4);
5
(1)
i=-4*pi:
0.1:
10;
j=12./sqrt(i);
polar(i,j);
title('{\rho}=12/sqrt(\theta)')
(2)
a=-pi/6:
0.01:
pi/6;
b=3.*asin(a).*cos(a)./((sin(a)).^3+(cos(a)).^3);
polar(a,b);
6
(1)
[u,v]=meshgrid(-4:
0.1:
4);
x=3.*u.*sin(v);
y=2.*u.*cos(v);
z=4.*u.^2;subplot(2,1,1);
mesh(x,y,z);
subplot(2,1,2);
surf(x,y,z);
(2)
[x,y]=meshgrid(-3:
0.2:
3);
z=-5./(1+x.^2+y.^2);
subplot(1,2,1);
mesh(x,y,z);
subplot(1,2,2);
surf(x,y,z);
第五章
实验指导
第1题
>>A=randn(10,5)
A=
-0.4326-0.18670.2944-0.3999-1.6041
-1.66560.7258-1.33620.69000.2573
0.1253-0.58830.71430.8156-1.0565
0.28772.18321.62360.71191.4151
-1.1465-0.1364-0.69181.2902-0.8051
1.19090.11390.85800.66860.5287
1.18921.06681.25401.19080.2193
-0.03760.0593-1.5937-1.2025-0.9219
0.3273-0.0956-1.4410-0.0198-2.1707
0.1746-0.83230.5711-0.1567-0.0592
(1)>>M=mean(A)