MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx

上传人:b****8 文档编号:29929716 上传时间:2023-08-03 格式:DOCX 页数:122 大小:1.26MB
下载 相关 举报
MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx_第1页
第1页 / 共122页
MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx_第2页
第2页 / 共122页
MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx_第3页
第3页 / 共122页
MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx_第4页
第4页 / 共122页
MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx_第5页
第5页 / 共122页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx

《MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx(122页珍藏版)》请在冰豆网上搜索。

MATLAB程序设计与应用第二版课后题及实验答案全刘卫国.docx

MATLAB程序设计与应用第二版课后题及实验答案全刘卫国

第二章

3.设矩阵A为

A=[24239216;6574241121;345987521;8424253121;4321456421];

(1)B=A(2:

5,1:

2:

5)

B=

652421

349821

842121

434521

(2)A(7)=[]

A=

246534843235422192498424521117553646212112121

(3)A+30

(4)size(A);ndims(A)

(5)题目有误

(6)reshape(x,3,4)

(7)abs(x)

(8)char(x)

4.L1=

000010000

L2=

111110000

L3=

000111000

L4=

456

5.

(1)B=A(1:

3,:

C=A(:

1:

2)

D=A(2:

4,3:

4)

E=B*C

B=

23.000010.0000-0.77800

41.0000-45.000065.00005.0000

32.00005.0000032.0000

C=

23.000010.0000

41.0000-45.0000

32.00005.0000

6.0000-9.5400

D=

65.00005.0000

032.0000

54.00003.1400

E=

1.0e+003*

0.9141-0.2239

1.20802.7123

1.1330-0.2103

(2)E

ans=

01

00

01

E&D

ans=

11

01

11

E|D

ans=

11

11

11

~D|~E

ans=

00

10

00

find(A>=10&A<25)

ans=

1

5

6.

all(A)

ans=

0

any(A)

ans=

1

isnan(A)

ans=

0100000

isinf(A)

ans=

0011000

isfinite(A)

ans=

1000111

7.

A

(1).x1=’学号’;A

(1).x2=’姓名’;A

(1).x3=’专业’;A

(1).x4.x41=’成绩1’;……….

A

(2).x1=’学号’;A

(2).x2=’姓名’;A

(2).x3=’专业’;A

(2).x4.x41=’成绩1’;……….

A(3).x1=’学号’;A(3).x2=’姓名’;A(3).x3=’专业’;A(3).x4.x41=’成绩1’;……….

A(4).x1=’学号’;A(4).x2=’姓名’;A(4).x3=’专业’;A(4).x4.x41=’成绩1’;……….

A(5).x1=’学号’;A(5).x2=’姓名’;A(5).x3=’专业’;A(5).x4.x41=’成绩1’;……….

8.

(1)

size(B)

ans=

22

ndims(B)

ans=

2

(2)

B

(2)

ans=

[3x3double

B(4)

ans=

{3x3cell}

(3)

B(3)=[]

B=

[1][3x3double]{3x3cell}

B{3}=[]

B=

[1][3x3double][]

第三章

1.

(1)A=eye(3)

(2)A=100+100*rand(5,6)

(3)A=1+sqrt(0.2)*randn(10,50)

(4)B=ones(size(A))

(5)A+30*eye(size(A))

(6)B=diag(diag(A))

2.

B=rot90(A)

C=rot90(A,-1)

3.

B=inv(A);A的逆矩阵

C=det(A);A的行列式的值

D=A*B

E=B*A

D=E因此A与A-1是互逆的。

4.

A=[42-1;3-12;1230];

b=[2;10;8];

x=inv(A)*b

x=

-6.0000

26.6667

27.3333

5.

(1)

diag(A);主对角线元素

ans=

1

1

5

9

triu(A);上三角阵

ans=

1-123

01-42

0052

0009

tril(A);下三角阵

ans=

1000

5100

3050

111509

rank(A);秩

ans=

4

norm(A);范数

ans=

21.3005

cond(A);条件数

ans=

11.1739

trace(A);迹

ans=

16

(2)略

6.

A=[110.5;110.25;0.50.252]

A=

1.00001.00000.5000

1.00001.00000.2500

0.50000.25002.0000

[V,D]=eig(A)

V=

0.72120.44430.5315

-0.68630.56210.4615

-0.0937-0.69760.7103

D=

-0.016600

01.48010

002.5365

第四章

1.a=input('请输入一个4位数:

');

while(a<1000|a>9999)

a=input('输入错误,请重新输入一个4位数:

');

end

b=fix(a/1000);

c=rem(fix(a/100),10);

d=rem(fix(a/10),10);

e=rem(a,10);

b=b+7;

c=c+7;

d=d+7;

e=e+7;

b=rem(b,10);

c=rem(c,10);

d=rem(c,10);

e=rem(e,10);

g=b;b=d;d=g;

g=c;c=e;e=g;

a=1000*d+100*e+10*b+c;

disp(['加密后:

',num2str(a)])

2.a=input('请输入a:

');

b=input('请输入b:

');

c=input('请输入c:

');

x=0.5:

1:

5.5;

x1=(x>=0.5&x<1.5);

x2=(x>=1.5&x<3.5);

x3=(x>=3.5&x<=5.5);

y1=a.*(x.^2)+b.*x+c;

y2=a*(sin(b)^c)+x;

y3=log(abs(b+c./x));

y=y1.*x1+y1.*x2+y3.*x3;

disp(y)

3.x=fix(rand(1,20)*89)+10;

x1=fix(sum(x)/20);

disp(['平均数是:

',num2str(x1)])

m=(rem(x,2)==0&x

n=find(m);

disp(['小于平均数的数是:

',num2str(x(n))]);

4.A=input('请输入20个数:

');

n=A;

a=n;

b=n;

forn=A

ifa>=n

a=n;

elseifb<=n

b=n;

end

end

disp(['min:

',num2str(a)])

disp(['max:

',num2str(b)])

请输入20个数:

[1234567891011121314151617181920]

min:

1

max:

20

5.s=0;

x=0;

forn=1:

64

c=2^x;

x=x+1;

s=s+c;

end

disp(['2的0次方到63次方的和是:

',num2str(s)])

2的0次方到63次方的和是:

184********709552000

6,

(1)sum1=0;

forn=1:

100

x=(-1)^(n+1)*(1/n);

sum1=sum1+x;

end

disp(['当n取100时:

sum=',num2str(sum1)])

当n取100时:

sum=0.68817

sum2=0;

forn=1:

1000

x=(-1)^(n+1)*(1/n);

sum2=sum2+x;

end

disp(['当n取1000时:

sum=',num2str(sum2)])

当n取1000时:

sum=0.69265

sum3=0;

forn=1:

10000

x=(-1)^(n+1)*(1/n);

sum3=sum3+x;

end

disp(['当n取10000时:

sum=',num2str(sum3)])

当n取10000时:

sum=0.6931

(2)

sum1=0;

forn=1:

2:

100

x=(-1)^(n+1)*(1/(n+1));

sum1=sum1+x;

end

disp(['当n取100时:

sum=',num2str(sum1)])

当n取100时:

sum=2.2496

sum1=0;

forn=1:

2:

1000

x=(-1)^(n+1)*(1/(n+1));

sum1=sum1+x;

end

disp(['当n取1000时:

sum=',num2str(sum1)])

当n取1000时:

sum=3.3964

sum1=0;

forn=1:

2:

10000

x=(-1)^(n+1)*(1/(n+1));

sum1=sum1+x;

end

disp(['当n取10000时:

sum=',num2str(sum1)])

当n取10000时:

sum=4.5473

(3)

sum1=0;

forn=1:

100

x=(1/4)^n;

sum1=sum1+x;

end

disp(['当n取100时:

sum=',num2str(sum1)])

当n取100时:

sum=0.33333

sum1=0;

forn=1:

1000

x=(1/4)^n;

sum1=sum1+x;

end

disp(['当n取1000时:

sum=',num2str(sum1)])

当n取1000时:

sum=0.33333

sum1=0;

forn=1:

10000

x=(1/4)^n;

sum1=sum1+x;

end

disp(['当n取10000时:

sum=',num2str(sum1)])

当n取1000时:

sum=0.33333

(4)

sum1=0;

forn=1:

100

x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)];

sum1=sum1+x;

end

disp(['当n取100时:

sum=',num2str(sum1)])

当n取100时:

sum=100.4975

sum1=0;

forn=1:

1000

x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)];

sum1=sum1+x;

end

disp(['当n取1000时:

sum=',num2str(sum1)])

当n取1000时:

sum=1000.4998

sum1=0;

forn=1:

10000

x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)];

sum1=sum1+x;

end

disp(['当n取10000时:

sum=',num2str(sum1)])

当n取10000时:

sum=10000.5

7,

functionf=factor(n);

f

(1)=1;f

(2)=1;

fork=3:

n

f(k)=f(k-1)+f(k-2);

end

运行结果:

f=factor(10)

f=11235813213455

 

8.function[f1,f2]=factor(a,b);

f1=a*b;

f2=a.*b;

运行结果:

[f1,f2]=factor([1,2;12],[13;13])

f1=

39

39

 

f2=

16

16

 

9

functionf=factor(n,m);

y=0;

fork=1:

n

y=y+k^m;

end

10.

(1)S=108

(2)x=41220

y=246

第五章

1.

(1)x=-10:

0.1:

10;

y=100./(1+x.^2);

plot(x,y)

(2)x=-10:

0.1:

10;

y=1/(2*pi)*exp(-x.^2/2);

plot(x,y)

(3)ezplot('x^2+y^2=1')

(4)

t=-10:

0.1:

10;

x=t.^2;

y=5*t.^3;

plot(x,y)

2.

(1)

theta=0:

0.01:

2*pi;

rho=5*cos(theta)+4;

polar(theta,rho)

(2)

theta=0.001:

0.1:

2*pi;

rho=12./sqrt(theta);

polar(theta,rho)

(3)theta=0.001:

0.1:

2*pi;

rho=5./cos(theta)-7;

polar(theta,rho)

(4)

theta=0.001:

0.1:

2*pi;

rho=pi/3.*theta.^2;

polar(theta,rho)

3.

(1)

t=0:

pi/100:

2*pi;

x=cos(t);

y=sin(t);

z=t;

plot3(x,y,z)

(2)

u=0:

pi/100:

2*pi;

v=0:

pi/100:

2*pi;

x=(1+cos(u)).*cos(v);

y=(1+cos(u)).*sin(v);

z=sin(u);

plot3(x,y,z)

(3)

(4)

5.

plot函数:

>>x=linspace(-10,10,200);

>>y=[];

>>forx0=x

ifx0>0

y=[y,x0.^2+(1+x0).^(1/4)+5];

elseifx0==0

y=[y,0];

elseifx0<0

y=[y,x0.^3+sqrt(1-x0)-5];

end

end

>>plot(x,y)

fplot函数:

fplot('(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+5)',[-10,10])

第六章

1.

A=randn(10,5)

(1)mean(A);均值std(A);标准方差

(2)max(max(A));最大元素min(min(A));最小元素

(3)B=sum(A,2);A每行元素的和sum(B);A全部元素之和

(4)sort(A);A的每列元素按升序排列

sort(A,2,’descend’);A的每行元素按将序排列

2.

(1)

(2)

X=[149162536496481100];

Y=1:

10;

X1=1:

100;

Y1=interp1(X,Y,X1,'cubic')

3.

x=[165123150123141];

y=[187126172125148];

P=polyfit(x,y,3)

P=

1.0e+003*

-0.00000.0013-0.17798.4330

所以它的线性拟合曲线为:

p(x)=1.3x2—177.9x+8433

4.

(1)P1=[032];P2=[5-12];P3=[10-0.5];

P=conv(conv(P1,P2),P3)

P=

015.00007.0000-3.50000.5000-2.0000-2.0000

所以P(x)=15x5+7x4-3.5x3+0.5x2-2x-2

(2)

roots(P)

ans=

0.7071

0.1000+0.6245i

0.1000-0.6245i

-0.7071

-0.6667

(3)

i=0:

10;

xi=0.2*i;

polyval(P,xi)

ans=

-2.0000-2.3920-2.6112-1.70242.710415.000042.112094.1408184.9056332.5264560.0000

5.

(1)

建立函数文件:

functionf=fxy(u)

x=u

(1);y=u

(2);

f=3.*x.^2+2*x.*y+y.^2

在命令窗口中输入以下命令:

[U,fmin]=fminsearch('fxy',[1,1])

结果:

U=

1.0e-004*

-0.06750.1715

fmin=

1.9920e-010

(2)

f=inline('-sin(x)-cos(x.^2)');

fmax=fminbnd(f,0,pi)

fmax=

0.7310

6.

(1)x=[pi/6pi/4pi/3];

f=inline('sin(x).^2+cos(x).^2');

dx=diff(f([x,5*pi/12]))/(pi/12)可参见第157页例题6.19

dx=

000

x=pi/2时单独计算:

x=pi/2;

f=inline('sin(x).^2+cos(x).^2');

diff(f([x,pi]))/(pi/2)

ans=

0

(2)

x=1:

3;

f=inline('sqrt(x.^2+1)');

dx=diff(f([x,4]))

结果:

dx=

0.82190.92620.9608

7.

(1)

f=inline('sin(x).^5.*sin(5*x)');

quad(f,0,pi)

ans=

0.0982

(2)

f=inline('(1+x.^2)./(1+x.^4)');

quad(f,-1,1)

ans=

2.2214

(3)

f=inline('x.*sin(x)./(1+cos(x).^2)');

quad(f,0,pi)

ans=

2.4674

(4)

f=inline('abs(cos(x+y))');

dblquad(f,0,pi,0,pi)

ans=

6.2832

8.

N=64;%采样点数

T=5;%采样时间终点

t=linspace(0,T,N);%给出N个采样时间ti(i=1:

N)

y=exp(-t);%求各采样点样本值y

dt=t

(2)-t

(1);%采样周期

f=1/dt;%采样频率

Y=fft(y);%计算y的快速傅里叶变换Y

F=Y(1:

N/2+1);%F(k)=Y(k)

f=f*(0:

N/2)/N;%使频率轴f从0开始

plot(f,abs(F))%绘制振幅-频率图

9.

(1)

矩阵求逆法:

A=[235;374;1-71];

b=[10;3;5];

x=inv(A)*b

x=

-1.8060

-0.5373

3.0448

矩阵除法法:

A=[235;374;1-71];

b=[10;3;5];

x=A\b

x=

-1.8060

-0.5373

3.0448

矩阵分解法:

A=[235;374;1-71];

b=[10;3;5];

[L,U]=lu(A);

x=U\(L\b)

x=

-1.8060

-0.5373

3.0448

(2)方法同

(1)

10.

函数文件:

line_solution(A,b)

function[x,y]=line_solution(A,b)

[m,n]=size(A);

y=[];

ifnorm(b)>0

ifrank(A)==rank([A,b])

ifrank(A)==n

disp('原方程组有唯一解x');

x=A\b;

else

disp('原方程组有无穷个解,特解为x,齐次方程组的基础解系为y');

x=A\b;

y=null(A,'r');

end

disp('方程组无解');

x=[];

end

else

disp('原方程组有零解x');

x=zeros(n,1);

ifrank(A)

disp('方程组有无穷个解,基础解系为y');

y=null(A,'r');

end

end

程序:

A=[21-11;42-21;21-1-1];

b=[1;2;1];

[x,y]=line_solution(A,b)

结果:

原方程组有无穷个解,特解为x,齐次方程组的基础解系为y

Warning:

Rankdeficient,rank=2,tol=4.3512e-015.

>Inline_solutionat11

方程组无解

x=

[]

y=

-0.50000.5000

1.00000

01.0000

00

11.

(1)

f=inline('x-sin(x)./x');

x=fzero(f,0.5)

x=

0.8767

(2)

f=inline('(sin(x).^2).*exp(-0.1.*x)-0.5.*abs(x)');

x=fzero(f,1.5)

x=

1.6738

12.

函数文件:

functionf=fxy(u)

x=u

(1)

y=u

(2)

f

(1)=x-0.6*sin(x)-0.3*cos(y)

f

(2)=y-0.6*cos(x)+0.3*sin(y)

在命令窗口输入以下命令:

x=fsolve('fxy',[0.5,0.5],optimset('Display','off'))

结果:

x=

0.63540.3734

15.

A=[-120;-12-1;-12-1;-12-1;02-1];

d=[-1;0;1];

B=spdiags(A,d,5,5);

b=[10000]';

x=(inv(B)*b)'

x=

0.83330.66670.50000.33330.1667

实验一MATLAB运算基础

1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

(1)

(2)

,其中

(3)

(4)

,其中t=0:

0.5:

2.5

解:

M文件:

z1=2*sin(85*pi/180)/(1+exp

(2))

x=[21+2*i;-0.455];

z2=1/2*l

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

当前位置:首页 > 人文社科 > 法律资料

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

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