MATLAB实用教程课后习题答案.docx

上传人:b****5 文档编号:3350405 上传时间:2022-11-22 格式:DOCX 页数:21 大小:50.34KB
下载 相关 举报
MATLAB实用教程课后习题答案.docx_第1页
第1页 / 共21页
MATLAB实用教程课后习题答案.docx_第2页
第2页 / 共21页
MATLAB实用教程课后习题答案.docx_第3页
第3页 / 共21页
MATLAB实用教程课后习题答案.docx_第4页
第4页 / 共21页
MATLAB实用教程课后习题答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

MATLAB实用教程课后习题答案.docx

《MATLAB实用教程课后习题答案.docx》由会员分享,可在线阅读,更多相关《MATLAB实用教程课后习题答案.docx(21页珍藏版)》请在冰豆网上搜索。

MATLAB实用教程课后习题答案.docx

MATLAB实用教程课后习题答案

第二章

1.计算复数3+4i与5-6i的乘积。

a=3+4i

b=5-6i

c=a*b

2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,[‘Zhang163.’,’Zhang263.’]}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age属性值为19。

Students

(1).Age=18

Students

(1).Email='zhang163.','zhang263.'

Students

(2).Name='Wang'

Students

(2).Age=21

Students

(2).Email=[]

Students(3).Name='Li'

Students(3).Age=[]

Students(3).Email=[]

Students.Name

Student

(1).Age

(1)=19

Student.Age

3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵:

A=[01000;10000;00000;00010]

A=[01000;10000;00000;00010]

S=sparse(A)

S=sparse([2,1,4],[1,2,4],[1,1,1],4,5)

4.采用向量构造符得到向量[1,5,9....,41].

A=1:

4:

41

5.按水平和竖直方向分别合并下述两个矩阵:

A=[100;110;001],B=[234;567;8910]

A=[100;110;001]

B=[234;567;8910]

C=[AB]

D=[A;B]

6.分别删除第五题两个结果的第2行。

A=[100;110;001]

B=[234;567;8910]

C=[AB]

D=[A;B]

C(2,:

)=[]

D(2,:

)=[]

7.分别将第5题两个结果的第2行最后3列的数值改为[111213]。

A=[100;110;001]

B=[234;567;8910]

C=[AB]

D=[A;B]

C(2,4:

6)=[111213]

D(2,:

)=[111213]

8.分别查看第5题两个结果的各方向长度

A=[100;110;001]

B=[234;567;8910]

C=[AB]

D=[A;B]

a=size(C)

b=size(D)

9.分别判断pi是否为字符串和浮点数。

tf=ischar(pi)

tf=isfloat(pi)

10.分别将第5题两个结果均转换为2*9的矩阵。

A=[100;110;001]

B=[234;567;8910]

C=[AB]

D=[A;B]

E=reshape(C,2,9)

F=reshape(D,2,9)

11.计算第5题矩阵A的转秩。

A=[100;110;001]

B=transpose(A)

12.分别计算第5题矩阵A和B的A+B、A.\B和A\B。

A=[100;110;001]

B=[234;567;8910]

C=A+B

D=A.*B

E=A\B

13.判断第5题矩阵A和B中哪些元素值不小于4。

A=[100;110;001]

B=[234;567;8910]

A>=4

B>=4

14.分别用函数strcat()和矩阵合并符合并如下字符串:

’Thepictureis’和’verygood’。

a='Thepictureis'

b='verygood'

c=strcat(a,b)

d=[ab]

15.创建字符串数组,其中元素分别为’Picture’和’Pitch’。

a=char('Picture','Pitch')

16.在第14题结果中查找字符串’e’。

a='Thepictureis'

b='verygood'

c=strcat(a,b)

d=[ab]

e=strfind(c,'e')

f=strfind(d,'e')

17.在第15题结果中匹配字符串’Pi’。

a=char('Picture','Pitch')

x=strmatch('Pi',a)

18.将字符串’verygood’转换为等值的整数。

a=double('verygood')

19.将十进制的50转换为二进制的字符串。

a=dec2bin(50)

20将十六进制的字符串’50’转换为三进制的整数。

a=hex2dec('50')

第三章

1.计算矩阵A的二数、行列式、秩、化零空间和正交空间。

A=[17241850;23571449;46132043;1012192162;111825256]

N=norm(A)

A_det=det(A)

Z=null(A)

Q=orth(A)

b=rank(A)

A=[17241850;23571449;46132043;1012192162;111825256]

2.求解线性方程组AX=B,其中A如第1题所示,B=[11111]的转秩。

A=[17241850;23571449;46132043;1012192162;111825256]

B=transpose([11111])

X=A\B

3.对矩阵A进行LU分解和Schur分解,其中A如第1题。

A=[17241850;23571449;46132043;1012192162;111825256]

[L1,U1]=lu(A)

[U2,L2]=schur(A)

4对矩阵A的前4行进行QR分解和奇异值分解,其中A如第1题。

A=[17241850;23571449;46132043;1012192162;111825256]

B=A(1:

4,:

[Q,R]=qr(B)

[USV]=svd(B)

5计算矩阵A的特征值及对应的特征向量,判断矩阵A是否可对角化,其中A如第1题。

A=[17241850;23571449;46132043;1012192162;111825256]

[V,D]=eig(A)

a=inv(V)*A*V-D

6.计算矩阵A的指数、开平方和余弦值,其中A如第1题。

A=[17241850;23571449;46132043;1012192162;111825256]

Y1=expm(A)

Y2=sqrtm(A)

Y3=funm(A,cos)

7.计算矩阵A每个元素的指数、开平方和余弦值(元素单位为度),其中A如第1题。

A=[17241850;23571449;46132043;1012192162;111825256]

Y1=exp(A)

Y2=sqrt(A)

Y3=cosd(A)

8.计算复数矩阵C每个元素的模、相角和共轭。

C=[3+4i2–i-i;2-20]。

C=[3+4i2-i-i;2-20]

Y1=abs(C)

Y2=angle(C)

Y3=conj(C)

9.分别使用函数fix()、floor()、ceil()和round(),计算第8题中的相角结果。

C=[3+4i2-i-i;2-20]

Y1=fix(C)

Y2=floor(C)

Y3=ceil(C)

Y4=round(C)

10.将2-i的模结果近似为有理数,并以数值形式显示。

a=2-i

Y1=abs(a)

Y2=rats(Y1)

11.计算

,其中m=4!

和n是42与35的最大公因式。

n=gcd(42,35)

m=factorial(4)

c=nchoosek(m,n)

12.将球坐标系中的点(1,1,1)分别转换到笛卡尔坐标系和极坐标系。

[a,b,c]=sph2cart(1,1,1)

[d,e,f]=cart2pol(a,b,c)

第四章

1.创建脚本实现随机数序列的各元素由大到小排列,其中随机数服从U(-5,9)的均匀分布,并且序列长度为10。

clear

clc

A=unifrnd(-5,9,1,10)

n=10;

fori=1:

n-1

forj=i+1:

n

ifA(i)

tmpx=A(j);

A(j)=A(i);

A(i)=tmpx;

end

end

end

A

2.创建函数实现指定长度的随机数序列的各元素由大到小排列,其中随机数服从N(3,9)的高斯分布。

clear

clc

n=input('datalength')

A=normrnd(3,9,1,n);

B=sort(A,'descend')

fori=1:

n-1

forj=i+1:

n

ifA(i)

tmpx=A(j);

A(j)=A(i);

A(i)=tmpx;

end

end

end

A

3.提示用户输入1或2,如输入1时,执行第一题的脚本;如输入2时,提示用户输入随机数序列长度,然后执行第二题的函数。

clear

clc

r=input('1or2')

switchr

case1

disp('��������d1')

editd1.m

case2

n=input('��������������ò������¤��������')

disp('��������d2')

editd2.m

end

4.分别选用if或switch结构实现下述函数表示。

f(x,y)=

f(x)=

5.分别用for和while结构实现如下函数计算。

Sin(x)-cos(x)+sin(2x)+cos(2x)+……+sin(nx)+(-1)^xCos(nx)

expAt+AexpAt+…..+A^nxexpA^nt,其中A=[123;012;001]

6.在第3题的代码中添加continue、break、return、echo等命令,熟悉他们的用法。

7.计算n个随机数的自然对数,并对运算结果求其算术平方根和四舍五入的和,其中,随机数服从U(-2,2)的均匀分布。

运行下述函数并进行调试。

第五章

1.绘制函数y=sin(x)cos(x)在[-2,2]上的曲线,其中曲线为红实线。

x=-2:

0.01:

2;

y=sin(x).*cos(x);

plot(x,y,'-r')

2.绘制函数x^2/9+y^2/16=1的边界。

ezplot('16*x^2+9*y^2-144',[-3,3,-4,4])

3.绘制函数

=

在x1,x2

[-2,2]上的曲线,其中数据点为菱形。

x1=-2:

2;

x2=-2:

2;

x=[x1x2];

y1=x1'*sin(x2);

y2=x2'*cos(x1);

y=[y1y2];

plot(x,y,'d')

4.在第三题结果的上基础上绘制对应的等高线。

x1=-2:

2;

x2=-2:

2;

y1=x1'*sin(x2);

y2=x2'*cos(x1);

meshc(y1)

holdon

meshc(y2)

5.在第二题结果的基础上对坐标轴进行标注,标注容为对应变量的围并添加标题“解曲线”。

ezplot('16*x^2+9*y^2-144',[-3,3,-4,4])

xlabel('x[-3,3]')

ylabel('y[-4,4]')

title('解曲线')

6.在第三题结果基础上对曲线进行标注。

x1=-2:

0.01:

2;

x2=-2:

0.01:

2;

x=[x1;x2]

y=[x1.*sin(x2);x2.*cos(x1)]

plot(x,y,'d')

xlabel('x[-2,2]')

7.在第一题结果基础上将x轴的围限定在[-3,3],y轴围限定在[-1.5,1,5]。

x=-2:

0.01:

2

y=sin(x).*cos(x)

plot(x,y,'-r')

axis([-33-1.51.5])

8.在第七题结果的基础上绘制网格。

x=-2:

0.01:

2

y=sin(x).*cos(x)

plot(x,y,'-r')

axis([-33-1.51.5])

gridon

9.在第七题结果的基础上取10个点,并进行排序。

x=-2:

0.01:

2

y=sin(x).*cos(x)

plot(x,y,'-r')

axis([-33-1.51.5])

[x,y]=ginput(10)

[bc]=sort([x,y])

10.在一个图形窗口依次绘制函数sin(x)、cos(x)、tg(x)、ctg(x)、sec(x)、cec(x)的曲线,并进行标注。

x=-pi:

pi/20:

pi

plot(x,sin(x),'r')

holdon

plot(x,cos(x),'y')

plot(x,tan(x),'b')

plot(x,atan(x),'g')

plot(x,sec(x),'m')

plot(x,asec(x),'c')

xlabel('x[-pipi]')

ylabel('º¯ÊýÈ¡Öµ')

title('ÇúÏß')

 

11.在一个图形窗口中按3*2绘制第十题所列函数的子图。

x=-pi:

pi/20:

pi;

subplot(2,3,1)

plot(x,sin(x))

title('sin')

subplot(2,3,2)

plot(x,cos(x))

title('cos')

subplot(2,3,3)

plot(x,tan(x))

title('tan')

subplot(2,3,4)

plot(x,atan(x))

title('atan')

subplot(2,3,5)

plot(x,sec(x))

title('sec')

subplot(2,3,6)

plot(x,asec(x))

title('asec')

13.在不同窗口绘制第十题所列函数图形。

x=-pi:

pi/20:

pi;

figure

(1);

plot(x,sin(x));

title('sin');

figure

(2);

plot(x,cos(x));

title('cos');

figure(3);

plot(x,tan(x));

title('tan');

figure(4);

plot(x,atan(x));

title('atan');

figure(5);

plot(x,sec(x));

title('sec');

figure(6);

plot(x,asec(x));

title('asec');

%14

i=10;

j=10;

A=unifrnd(-2,6,i,j)

A;

a=1:

i;

b=1:

j;

num=0;

forb=1:

j

fora=1:

i

ifA(a,b)>1

num=num+1;

end

end

end

14.首先生成100个服从U(-2,6)的均匀分布随机数,其次按行排成10*10的矩阵,再次将数据保存在mydata.mat文件中,然后清除存和屏幕,最后计算数据于1的个数。

15.首先将第四题的10*10的矩阵写入二进制文件,其次清除存和关闭所有窗口,再次读入该矩阵,计算矩阵的逆。

x1=-2:

1:

2;

x2=-2:

0.5:

2;

y1=x1'*sin(x2);

x1=-2:

0.5:

2;

x2=-2:

1:

2;

y2=x2'*cos(x1);

A=y1;

B=y2;

C=[A;B]

fid=fopen('e15_1.m','w');

a=fwrite(fid,C,'float')

clear

clc

fclose('all');

fid=fopen('e15_1.m','r');

b=fread(fid,[1010])

D=inv(b)

fclose(fid)

16.首先将第四题的10*10的矩阵写入文本文件,其次清除存和关闭所有窗口,再次读入该矩阵,计算矩阵的指数。

x1=-2:

1:

2;

x2=-2:

0.5:

2;

y1=x1'*sin(x2);

x1=-2:

0.5:

2;

x2=-2:

1:

2;

y2=x2'*cos(x1);

A=y1;

B=y2;

C=[A;B]

fid=fopen('e16_1.txt','w');

a=fprintf(fid,'%g',C)

fclose('all');

fid=fopen('e16_1.txt','r');

b=fscanf(fid,'%d',[1010])

D=expm(b)

fclose(fid);

 

17.通过文本指针控制,首先读取第十五题二进制文件中的第一行第二个数据,其次移动指针读取第一行第四个数据,再次读取倒数的1~5个数据,最后判断是否到文件末尾。

clear

clc

fid=fopen('e15_1.m','r');

p1=ftell(fid)

status1=fseek(fid,2,'bof')

a1=fread(fid,[11])

status2=fseek(fid,2,'cof')

a2=fread(fid,[11])

status3=fseek(fid,5,'eof')

a3=fread(fid,[15])

status4=feof(fid)

fclose(fid);

 

第六章

1.将多项式A的系数向量形式[12421]转换为完整形式,并将多项式B的完整形式

2x^5+x^2+3x+5表示为系数向量形式。

symsx;

A=[12421]

[s,len]=poly2str(A,'x')

B=2*x^5+x^2+3*x+5;

b=[20013]

2.针对第一题A,计算自变量为1~10

A=[12421];

p=[12345;678910];

r_A=polyval(A,p)

3.针对第一题A和B,计算A和B的乘法和除法。

p1=[12421];

p2=[200135];

w=conv(p1,p2)

[q,r]=deconv(p2,p1);

sq=poly2str(q,'x')

sr=poly2str(r,'x')

4.针对第一题A和B,计算A/B的微分。

A=[12421];

B=[200135];

[q,d]=polyder(A,B)

5.针对第一题A,计算其积分。

A=[12421];

s1=polyint(A)

6.针对如下矩阵,计算其对应特征多项式。

[111;234;4916]

A=[111;234;4916;];

p=poly(A);

sp=poly2str(p,'x')

r=roots(p)

eA=eig(A)

7.针对第一题A,B,将A/B展成部分分式。

p1=[12421];

p2=[200135];

[r,p,k]=residue(A,B)

8.针对函数f(x)=expx在x

{0,0.1,0.2,……,5}上的取值,采用多项式进行拟合,并对x

{0.15,0.45,0.75}分别采用最邻近、双线性和三次样条插值方法进行插值。

x=0:

0.1:

5;

y=exp(x);

p=polyfit(x,y,5)

y=polyval(p,x)

plot(x,y,'ro')

xlabel('x');

ylabel('y');

x=0:

0.1:

5;

y=exp(x);

xi=[0.15,0.45,1.75]

yi_nearest=interp1(x,y,xi,'nearset');

yi_linear=interp1(x,y,xi);

yi_spline=interp1(x,y,xi,'spline');

figure;

holdon;

subplot(1,3,1);

plot(x,y,'ro',xi,yi_nearest,'r-');

title('最邻近法');

subplot(1,3,2);

plot(x,y,'ro',xi,yi_linear,'b-');

title('双线性法');

subplot(1,3,3);

plot(x,y,'ro',xi,yi_spline,'g--');

title('三次样条插值法');

9.针对二维函数f(x)=expxy在x

{0,0.1,0.2,……,5};y

{0,0.1,0.2,……,5}上的取值,对(x,y)

{(0.15,0.15),(0.45,0.45),(0.75,0.75)}分别采用最邻近、双线性和三次样条插值方法进行插值。

 

10.产生40个服从正态分布N(-1,4)的随机数,计算它们的最大值、最小值、平均值、中间值、元素和、标准差和方差,斌按照绝对值大小进行排序,同时标出原来的序列号。

y=normrnd(-1,4,1,40);

y_max=max(y)

y_min=min(y)

y_mean=mean(y)

y_sum=sum(y)

y_s=std(y)

y_var=var(y)

x=abs(y)

[z,iz]=sort(x)

11.产生五个样本,每个样本包含20个服从均匀分布U(3,4)的随机数,计算它们的协方差和相关系数矩阵。

y1=unifrnd(3,4,1,20)

y2=unifrnd(3,4,1,20)

y3=unifrnd(3,4,1,20)

y4=unifrnd(3,4,1,20)

a1=cov(y1)

a2=cov(y1,1)

a3=corrcoef(y1)

b1=cov(y2)

b2=cov(y2,1)

b3=corrcoef(y2)

c1=cov(y3)

c2=cov(y3,1)

c3=corrcoef(y3)

d1=cov(y4)

d2=cov(y4,1)

d3=corrcoef(y4)

12.实现对信号3*sin(t)+0.1(rand

(1)-0.5)的一维二阶平均值数字滤波。

t=0:

0.01:

10;

s=3*sin(t);

x=3*sin(t)+0.1*(rand

(1)-0.5);

a=1;

b=[1/21/2];

y=filter(b,a,x);

plot(t,s,'g-');

holdon

plot(t,x,'b--');

plot(t,y,'r:

');

axis([010-3030]);

xlabel('时间');

13.计算脉冲信号和单位正弦信号的卷积。

t=0:

0.2:

10;

u

(1)=1;

v=si

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1