Matlab习题.docx
《Matlab习题.docx》由会员分享,可在线阅读,更多相关《Matlab习题.docx(61页珍藏版)》请在冰豆网上搜索。
![Matlab习题.docx](https://file1.bdocx.com/fileroot1/2023-2/13/aabebb0b-8db5-44f0-958e-b37f62735628/aabebb0b-8db5-44f0-958e-b37f627356281.gif)
Matlab习题
习题1
1.执行下列指令,观察其运算结果,理解其意义:
(1)[12;34]+10-2i
(2)[12;34].*[0.10.2;0.30.4]
(3)[12;34].\[2010;92]
(4)[12;34].^2
(5)exp([12;34])
(6)log([110100])
(7)prod([12;34])
(8)[a,b]=min([1020;3040])
(9)abs([12;34]-pi)
(10)[12;34]>=[4,3;21]
(11)find([1020;3040]>=[40,30;2010])
(12)[a,b]=find([1020;3040]>=[40,30;2010])(提示:
a为行号,b为列号)
(13)all([12;34]>1)
(14)any([12;34]>1)
(15)linspace(3,4,5)生成线性等距向量
(16)A=[12;34];A(:
2)
%Page20,ex1
(5)等于[exp
(1),exp
(2);exp(3),exp(4)]
(7)3=1*3,8=2*4
(8)a为各列最小值,b为最小值所在的行号
(10)1>=4,false,2>=3,false,3>=2,ture,4>=1,ture
(11)答案表明:
编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10)
(12)答案表明:
编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10)
2.执行下列指令,观察其运算结果、变量类型和字节数,理解其意义:
(1)clear;a=1,b=num2str(a),c=a>0,a==b,a==c,b==c
(2)clear;fun='abs(x)',x=-2,eval(fun),double(fun)
%Page20,ex2
(1)a=1b=1c=1ans=0ans=1ans=0
a,b,c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b。
(2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码
3.本金K以每年n次,每次p%的增值率(n与p的乘积为每年增值额的百分比)增加,当增加到rK时所花费的时间为
(单位:
年)
%Page20,ex3
>>r=2;p=0.5;n=12;
>>T=log(r)/n/log(1+0.01*p)
T=
11.5813
用MATLAB表达式写出该公式并用下列数据计算:
r=2,p=0.5,n=12.
4.已知函数f(x)=x42x在(-2,2)内有两个根。
取步长h=0.05,通过计算函数值求得函数的最小值点和两个根的近似解。
(提示:
求近似根等价于求函数绝对值的最小值点)
%Page20,ex4
>>x=-2:
0.05:
2;f=x.^4-2.^x;
>>[fmin,min_index]=min(f)
fmin=
-1.3907%最小值
min_index=
54%最小值点编址
>>x(min_index)
ans=
0.6500%最小值点
>>[f1,x1_index]=min(abs(f))%求近似根--绝对值最小的点
f1=
0.0328
x1_index=
24
>>x(x1_index)
ans=
-0.8500
>>x(x1_index)=[];f=x.^4-2.^x;%删去绝对值最小的点以求函数绝对值次小的点
>>[f2,x2_index]=min(abs(f))%求另一近似根--函数绝对值次小的点
f2=
0.0630
x2_index=
65
>>x(x2_index)
ans=
1.2500
5.
(1)用z=magic(10)得到10阶魔方矩阵;
(2)求z的各列元素之和;
(3)求z的对角线元素之和(提示:
先用diag(z)提取z的对角线);
(4)将z的第二列除以
;
(5)将z的第3行元素加到第8行。
6.先不用MATLAB判断下面语句将显示什么结果?
size(B)又得出什么结果?
B1={1:
9;'DavidBeckham'};
B2={180:
-10:
100;[100,80,75,;77,60,92;672890;1008978]};
B=[B1,B2];
B{1,2}(8)
D=cell2struct(B,{'f1','f2'},2);
[a,b]=D.f1
然后用MATLAB验证你的判断。
进一步,察看变量类型和字节数,并用Workspace工具栏显示B和D的具体内容。
习题2
1.设x为一个长度为n的数组,编程求下列均值和标准差
n>1
%Page40ex1
先在编辑器窗口写下列M函数,保存为eg2_1.m
function[xbar,s]=ex2_1(x)
n=length(x);
xbar=sum(x)/n;
s=sqrt((sum(x.^2)-n*xbar^2)/(n-1));
例如
>>x=[81706551766690876177];
>>[xbar,s]=ex2_1(x)
xbar=
72.4000
s=
12.1124
2.求满足
>100的最小m值。
%Page40ex2
s=log
(1);n=0;
whiles<=100
n=n+1;
s=s+log(1+n);
end
m=n
计算结果m=37
3.用循环语句形成Fibonacci数列F1=F2=1,Fk=Fk-1+Fk-2,k=3,4,…。
并验证极限
.(提示:
计算至两边误差小于精度10-8)
%Page40ex3
clear;
F
(1)=1;F
(2)=1;k=2;x=0;
e=1e-8;a=(1+sqrt(5))/2;
whileabs(x-a)>e
k=k+1;F(k)=F(k-1)+F(k-2);x=F(k)/F(k-1);
end
a,x,k
计算至k=21可满足精度
4.分别用for和while循环结构编写程序,求出
。
并考虑一种避免循环语句的程序设计,比较不同算法的运行时间。
%Page40ex4
clear;tic;s=0;
fori=1:
1000000
s=s+sqrt(3)/2^i;
end
s,toc
tic;s=0;i=1;
whilei<=1000000
s=s+sqrt(3)/2^i;i=i+1;
end
s,toc
tic;s=0;
i=1:
1000000;
s=sqrt(3)*sum(1./2.^i);
s,toc
5.假定某天的气温变化记录如下表,试作图描述这一天的气温变化规律。
时刻t(h)
0
1
2
3
4
5
6
7
8
9
10
11
12
温度oC(t)
15o
14o
14o
14o
14o
15o
16o
18o
20o
22o
23o
25o
28o
时刻t(h)
13
14
15
16
17
18
19
20
21
22
23
24
温度oC(t)
31o
32o
31o
29o
27o
25o
24o
22o
20o
18o
17o
16o
%Page40ex5
t=0:
24;
c=[15141414141516182022232528...
313231292725242220181716];
plot(t,c)
6.作出下列函数图象
(i)曲线y=x2sin(x2-x-2),-2x2(要求分别使用plot或fplot完成)
%
(1)
x=-2:
0.1:
2;y=x.^2.*sin(x.^2-x-2);plot(x,y)
y=inline('x^2*sin(x^2-x-2)');fplot(y,[-22])
(ii)椭圆x2/4+y2/9=1
%
(2)参数方法
t=linspace(0,2*pi,100);
x=2*cos(t);y=3*sin(t);plot(x,y)
(iii)抛物面z=x2+y2,x<3,y<3
%(3)
x=-3:
0.1:
3;y=x;
[x,y]=meshgrid(x,y);
z=x.^2+y.^2;
surf(x,y,z)
(iv)曲面z=x4+3x2+y2-2x-2y-2x2y+6,|x|<3,-3%(4)
x=-3:
0.1:
3;y=-3:
0.1:
13;
[x,y]=meshgrid(x,y);
z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;
surf(x,y,z)
(v)空间曲线x=sint,y=cost,z=cos(2t),0%(5)
t=0:
0.01:
2*pi;
x=sin(t);y=cos(t);z=cos(2*t);
plot3(x,y,z)
(vi)半球面x=2sincos,y=2sinsin,z=2cos,03600,0900
%(6)
theta=linspace(0,2*pi,50);fai=linspace(0,pi/2,20);
[theta,fai]=meshgrid(theta,fai);
x=2*sin(fai).*cos(theta);
y=2*sin(fai).*sin(theta);z=2*cos(fai);
surf(x,y,z)
(vii)三条曲线合成图y1=sinx,y2=sinxsin(10x),y3=sinx,0%(7)
x=linspace(0,pi,100);
y1=sin(x);y2=sin(x).*sin(10*x);y3=-sin(x);
plot(x,y1,x,y2,x,y3)
7.作下列分段函数图
%page41,ex7
x=-1.5:
0.05:
1.5;
y=1.1*(x>1.1)+x.*(x<=1.1).*(x>=-1.1)-1.1*(x<-1.1);
plot(x,y)
8.查询trapz的功能和用法:
查找trapz.m文件所在目录,查看trapz.m的程序结构,查看trapz.m文件所在目录还有哪些文件?
9.用MATLAB函数表示下列函数,并作图。
%page41,ex9
clear;close;
x=-2:
0.1:
2;y=x;
[x,y]=meshgrid(x,y);
a=0.5457;b=0.7575;
p=a*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1);
p=p+b*exp(-y.^2-6*x.^2).*(x+y>-1).*(x+y<=1);
p=p+a*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);
mesh(x,y,p)
10.已知连续时间Lyapunov方程为
AX+XA’=C
其中A=
C=
.试通过lookfor和help的帮助用MATLAB求解。
%page41,ex10
lookforlyapunov
helplyap
>>A=[123;456;780];C=[2-5-22;-5-24-56;-22-56-16];
>>X=lyap(A,C)
X=
1.0000-1.0000-0.0000
-1.00002.00001.0000
-0.00001.00007.0000
习题3
1.设a=(1,2,3),b=(2,4,3),分别计算a./b,a.\b,a/b,a\b,分析结果的意义。
%Exercise1
>>a=[1,2,3];b=[2,4,3];a./b,a.\b,a/b,a\b
ans=
0.50000.50001.0000
ans=
221
ans=
0.6552%一元方程组x[2,4,3]=[1,2,3]的近似解
ans=
000
000
0.66671.33331.0000
%矩阵方程[1,2,3][x11,x12,x13;x21,x22,x23;x31,x32,x33]=[2,4,3]的特解
2.用矩阵除法解下列线性方程组,并判断解的意义
(1)
%Exercise2
(1)
>>A=[41-1;32-6;1-53];b=[9;-2;1];
>>rank(A),rank([A,b])%[A,b]为增广矩阵
ans=
3
ans=
3%可见方程组唯一解
>>x=A\b
x=
2.3830
1.4894
2.0213
(2)
%Exercise2
(2)
>>A=[4-33;32-6;1-53];b=[-1;-2;1];
>>rank(A),rank([A,b])
ans=
3
ans=
3%可见方程组唯一解
>>x=A\b
x=
-0.4706
-0.2941
0
(3)
%Exercise2(3)
>>A=[41;32;1-5];b=[1;1;1];
>>rank(A),rank([A,b])
ans=
2
ans=
3%可见方程组无解
>>x=A\b
x=
0.3311
-0.1219%最小二乘近似解
(4)
%Exercise2(4)
>>a=[2,1,-1,1;1,2,1,-1;1,1,2,1];b=[123]';%注意b的写法
>>rank(a),rank([a,b])
ans=
3
ans=
3%rank(a)==rank([a,b])<4说明有无穷多解
>>a\b
ans=
1
0
1
0%一个特解
3.求第2题第(4)小题的通解。
%Exercise3
>>a=[2,1,-1,1;1,2,1,-1;1,1,2,1];b=[1,2,3]';
>>x=null(a),x0=a\b
x=
-0.6255
0.6255
-0.2085
0.4170
x0=
1
0
1
0
%通解kx+x0
4.(人口流动趋势)对城乡人口流动作年度调查,发现有一个稳定的朝向城镇流动的趋势,每年农村居民的5%移居城镇而城镇居民的1%迁出,现在总人口的20%位于城镇。
假如城乡总人口保持不变,并且人口流动的这种趋势继续下去,那么
(1)一年以后住在城镇人口所占比例是多少?
两年以后呢?
十年以后呢?
(2)很多年以后呢?
(3)如果现在总人口70%位于城镇,很多年以后城镇人口所占比例是多少?
(4)计算转移矩阵的最大特征值及对应的特征向量,与问题
(2)(3)有何关系?
%Exercise4
>>x0=[0.20.8]';a=[0.990.05;0.010.95];
>>x1=a*x,x2=a^2*x,x10=a^10*x
>>x=x0;fori=1:
1000,x=a*x;end,x
x=
0.8333
0.1667
>>x0=[0.80.2]';
>>x=x0;fori=1:
1000,x=a*x;end,x
x=
0.8333
0.1667
>>[v,e]=eig(a)
v=
0.9806-0.7071
0.19610.7071
e=
1.00000
00.9400
>>v(:
1)./x
ans=
1.1767
1.1767%成比例,说明x是最大特征值对应的特征向量
5.(经济预测)在某经济年度内,各经济部门的投入产出表如下表3.5(单位:
亿元)
消耗部门
最后需求
总产值
工业
农业
第三产业
生
产
部
门
工业
6
2
1
16
25
农业
2.25
1
0.2
1.55
5
第三产业
3
0.2
1.8
15
20
假设某经济年度工业,农业及第三产业的最后需求均为17亿元,预测该经济年度工业,农业及第三产业的产出(提示:
对于一个特定的经济系统而言,直接消耗矩阵和Leontief矩阵可视作不变)。
%Exercise5
%用到公式(3.11)(3.12)
>>B=[6,2,1;2.25,1,0.2;3,0.2,1.8];x=[25520]';
>>C=B/diag(x)
C=
0.24000.40000.0500
0.09000.20000.0100
0.12000.04000.0900
>>A=eye(3,3)-C
A=
0.7600-0.4000-0.0500
-0.09000.8000-0.0100
-0.1200-0.04000.9100
>>D=[171717]';x=A\D
x=
37.5696
25.7862
24.7690
6.求下列矩阵的行列式、逆、特征值和特征向量
(1)
(2)
(3)
%Exercise6
(1)
>>a=[41-1;32-6;1-53];det(a),inv(a),[v,d]=eig(a)
ans=
-94
ans=
0.2553-0.02130.0426
0.1596-0.1383-0.2234
0.1809-0.2234-0.0532
v=
0.0185-0.9009-0.3066
-0.7693-0.1240-0.7248
-0.6386-0.41580.6170
d=
-3.052700
03.67600
008.3766
%Exercise6
(2)
>>a=[11-1;02-1;-120];det(a),inv(a),[v,d]=eig(a)
ans=
1
ans=
2.0000-2.00001.0000
1.0000-1.00001.0000
2.0000-3.00002.0000
v=
-0.57730.5774+0.0000i0.5774-0.0000i
-0.57730.57740.5774
-0.57740.5773-0.0000i0.5773+0.0000i
d=
1.000000
01.0000+0.0000i0
001.0000-0.0000i
%Exercise6(3)
>>A=[5765;71087;68109;57910]
A=
5765
71087
68109
57910
>>det(A),inv(A),[v,d]=eig(A)
ans=
1
ans=
68.0000-41.0000-17.000010.0000
-41.000025.000010.0000-6.0000
-17.000010.00005.0000-3.0000
10.0000-6.0000-3.00002.0000
v=
0.83040.09330.39630.3803
-0.5016-0.30170.61490.5286
-0.20860.7603-0.27160.5520
0.1237-0.5676-0.62540.5209
d=
0.0102000
00.843100
003.85810
00030.2887
(4)
n分别为5,50,和500.
%Exercise6(4)(以n=5为例)
%关键是矩阵的定义
%方法一(三个for)
n=5;
fori=1:
n,a(i,i)=5;end
fori=1:
(n-1),a(i,i+1)=6;end
fori=1:
(n-1),a(i+1,i)=1;end
a
%方法二(一个for)
n=5;a=zeros(n,n);
a(1,1:
2)=[56];
fori=2:
(n-1),a(i,[i-1,i,i+1])=[156];end
a(n,[n-1n])=[15];
a
%方法三(不用for)
n=5;a=diag(5*ones(n,1));
b=diag(6*ones(n-1,1));
c=diag(ones(n-1,1));
a=a+[zeros(n-1,1),b;zeros(1,n)]+[zeros(1,n);c,zeros(n-1,1)]
%下列计算
>>det(a)
ans=
665
>>inv(a)
ans=
0.3173-0.58651.0286-1.62411.9489
-0.09770.4887-0.85711.3534-1.6241
0.0286-0.14290.5429-0.85711.0286
-0.00750.0376-0.14290.4887-0.5865
0.0015-0.00750.0286-0.09770.3173
>>[v,d]=eig(a)
v=
-0.7843-0.7843-0.92370.9860-0.9237
0.5546-0.5546-0.3771-0.00000.3771
-0.2614-0.26140.0000-0.16430.0000
0.0924-0.09240.0628-0.0000-0.0628
-0.0218-0.02180.02570.02740.0257
d=
0.75740000
09.2426000
007.449500
0005.00000
00002.5505
7.判断第6题各小题是否可以相似对角化,如果是,求出对角矩阵和对应的相似变换矩阵。
8.判断第6题各小题是否为正定矩阵。
9.求下列向量组的秩和它的一个最大线性无关组,并将其余向量用该最大无关组线性表示。
1=(4,-3,1,3),2=(2,-1,3,5),3=(1,-1,-1,-1),4=(3,-2,3,4),5=(7