当前位置:文档之家› Matlab程序设计教程(第二版)课后参考答案

Matlab程序设计教程(第二版)课后参考答案

Matlab程序设计教程(第二版)课后参考答案

第一章实验

1.实验一第1题

2.自己验证总结Matlab的主要优点

3.实验一第2题

4.实验一第3题

5.网站https://www.doczj.com/doc/b36662612.html, 思考练习 1. 启动见书P5 退出见书P6

2. Matlab主要功能见书P2 4种功能

3. 分行输入行末尾加续行符,即三个点“…”

4. 见书P11

5.

直接在命令窗口输入fac

第二章

实验

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题

3.实验二第2题

4. H=hilb(5);

P=pascal(5);

Hh=det(H)

Hh = 3.7493e-012

Hp=det(P)

Hp = 1

Th=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.在MATLAB中6+7i是一个复数常量,6+7*i则是一个表达式。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+randn(25,20)

5.实验二第3题

6. A=[34,NaN,Inf,-Inf,-pi,eps,0];

all(A)

ans = 0

any(A)

ans = 1

isnan(A)

ans = 0 1 0 0 0 0 0 isinf(A)

ans = 0 0 1 1 0 0 0 isfinite(A)

ans = 1 0 0 0 1 1 1 7.结构矩阵建立P46

结构矩阵名.成员名=表达式

单元矩阵建立 P47

矩阵元素用大括号括起来。

8.用稀疏存储方式可以可以节省内存空间; 运算规则上,稀疏矩阵与普通矩阵一样,只是矩阵的存储方式不同。在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。

第三章

实验

1.提示:先根据输入的3位整数分别求个、十、百位上的数字a、b、c,反向输出整数:100*a+10*b+c

2(1)

m=input('请输入一个百分制的成绩: ');

if m>=0&m<=100

switch fix(m/10)

case {9,10}

disp('这个成绩所属的成绩等级:A');

case {8}

disp('这个成绩所属的成绩等级:B');

case {7}

disp('这个成绩所属的成绩等级:C');

case {6}

disp('这个成绩所属的成绩等级:D');

otherwise

disp('这个成绩所属的成绩等级:E');

end

else

disp('错误:输入的成绩不合理');

end

3

a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] b=max(a)

c=min(a)

b=0

c=0

for i=1:20

if a(i)>b

b=a(i);

end

if a(i)

c=a(i);

end

end

b

c

4

a=[-3:0.1:3];

b=((exp(0.3.*a)-exp(-0.3.*a))./2)

c=sin(a+0.3)

y=b.*c+log((0.3+a)./2)

for i=1:61

y=(exp(0.3*a(i))-exp(-0.3*a(i)))/2*sin(a(i)+0.3)+log((0.3+ a(i))/2)

end

5

(1)

A=0;

n=100

for i=1:n

A=1/n/n+A;

end

(2)

A=1;

n=10000;

for i=1:n

A=(2*n*n*2)/((2*n-1)*(2*n+1))*A; end

6

A=rand(5,6)

n=input('??ê?è?ò???n');

if n>5

n=5

A(n,n)

else

A(n)

end

7

f1.m代码如下:

function m=f1(n)

m=n+10*log(n^2+5);

f2.m 代码如下:

function m=f2(n)

m=0;

for i=1:n

m=m+i*(i+1);

然后在命令文件p3_11.m 中调用f1.m 和f2.m p3_11.m 代码如下:

y1=f1(40)/(f1(30)+f1(20)); y2=f2(40)/(f2(30)+f2(20)); y1 y2 8

=100

1

k k 函数文件factor1.m 代码如下:

function f=factor1(k) if k==1 f=1; else

f=factor1(k-1)+k; end

∑=50

1

2^k k 函数文件factor2.m 代码如下:

function f=factor2(k) if k==1 f=1;

f=factor2(k-1)+^2; end

∑=10

1

/1k k 函数文件factor3.m 代码如下:

function f=factor3(k) if k==1 f=1; else

f=factor3(k-1)+1/k; end 思考练习 1.见课本3.1 2

N=[1,2,3,4,5] A=N.*2 B=N./4 C=1./N

D=1./(N./2)./(N./2)/4 3 B=0 for i=1:20

A(i)=fix((99-10+1)*rand(1)+10); B=A(i)+B;

end

B=B/20

for i=1:20

if A(i)

A(i)

end

end

4(1)

A=1

for i=2:100

A=(-1)^(i+1)*1/(2*n-1)+A;

end

A

(2)

A=0

for i=1:1000

A=1/((4)^i)+A;

end

A

5

function [m,n]=chengji(A,B)

m=A.*B;

n=A*B;

然后在命令文件p3_12.m中调用chengji.m文件a=[1 2 3;4 5 6;7 8 9]

b=[-1 0 1;1 -1 0;0 1 1]

[m,n]=chengji(a,b);

disp('a.*b=');

disp(m);

disp('a*b= ');

disp(n);

第四章

实验

1(1)x=-12:0.001:12;

y=x-x.^3/6;

plot(x,y);

xlabel('x轴');

ylabel('y轴');

title('Y=X-X^3/3!');

(2)ezplot('x^2+2*y^2-64',[-8,8,-8,8])

xlabel('x轴');

ylabel('y轴');

axis equal

title('x^2+2y^2=64'); 2

t=-pi:0.1:pi;

y=1./(1+exp(-t));

plot(t,y);

subplot(2,2,1)

stairs(t,y)

subplot(2,2,2)

bar(t,y)

subplot(2,2,3)

stem(t,y)

subplot(2,2,4)

fill(t,y, 'y')

3(1)

x=-2*pi:0.1:2*pi

y=5*cos(x)+4

polar(x,y)

(2)

x=-pi/3:.01:pi/3

a=sin(x)

b=cos(x)

y=a.*a.*5./b

polar(x,y)

4

t=0:pi/100:2*pi;

x=exp(-t/20).*cos(t);

y=exp(-t/20).*sin(t);

z=t;

plot3(x,y,z)

(2) [x,y]=meshgrid(-5:5);

z=ones(11);

surf(x,y,z);shading interp;

思考练习

1 务必自己看课本完成2(1)

x=1:0.1:10

a=exp((x.^2)/2)

y=a.*1/2/pi

plot(x,y)

(2)

t=-pi:0.1:2*pi

X=t.*sin(t)

Y=t.*cos(t)

plot(X,Y)

3

t=0:0.00005:pi;

x=sin(3*t).*cos(t);

y1=2*x-0.5;

y2=sin(3*t).*sin(t);

plot(x,y2,x,y1);

hold on

k=find(abs(y2-y1)<1e-4);

x1=x(k);

y3=2*x1-0.5;

plot(x1,y3,'rp')

4

x=-pi*6:0.1:pi*6

y=sin(1./x)

plot(x,y)

fplot('sin(1./x)',[-pi*6,pi*6],1e-4)

5(1)

x=1:0.1:10

y=12./x

polar(x,y)

(2)

x=-pi/6:0.1:pi/6

y=3*sin(x).*cos(x)./(sin(x).^3+cos(x).^3) polar(x,y)

6

[u,v]=meshgrid(-pi:pi/100:pi);

x=3*u.*sin(v);

y=2*u.*cos(v);

z=4*u.*u;

mesh(x,y,z);

(2) [x,y]=meshgrid(-3:6/100:3);

z=-5./(1+x.*x+y.*y);

mesh(x,y,z)

第五章

实验

1 a=randn(10,5); b=mean(a)

b=std(a,0,1)

b=max(a);

c=max(b,[],2)

b=min(a);

c=min(b,[],2)

b=sum(a)

c=sum(b,2)

sort(a)

sort(a,2,'descend') 思考练习

4 c=0

for i=1:30000

a(i)=rand(1);

if a(i)>0.5

c=c+1;

end

end

b=mean(a)

b=std(a,0,2)

b=max(a)

b=min(a)

c/30000

5

a=fix((100-0+1)*rand(5,100)); [b,c]=max(a,[],2)

[b,c]=min(a,[],2)

mean(a,2)

std(a,0,2)

[b,c]=sort(a,2,'descend')

zcj=sum(a,1)

xsxh=1:100

相关主题
文本预览
相关文档 最新文档